返回市场
blah

blah

作者:thomasdavis16 星标更新:2025-04-30

项目介绍

处于极端POC模式下的项目 - 一切都不稳定 - 文档和愿景纯粹是笔记

BLAH - 几乎无逻辑代理主机 - 更新 #1

(可以类比npmjs用于工具)

一旦这个列表完成,BLAH的JSON模式将会最终确定。

  • 工具
    • 本地函数
    • 主机托管函数
    • 注册表
      • 发布
      • 浏览
    • MCP支持
      • 本地标准输入输出
      • 本地服务器发送事件
      • 主机托管服务器发送事件
    • Slop支持
      • 本地Slop
      • 主机托管Slop
    • 工具组合性
      • 分组
      • 流程
      • 触发器/标签
    • 扩展
      • 本地blah.json
      • 主机托管blah.json
    • 调试
      • 沙盒
      • 日志记录

备注:

  • 流程将使用agnt.gg流程模式的一个子集
  • 扩展意味着你可以以任何你喜欢的方式组合blah.json。(想象一下,如果你只想包括你关注的设计师的工具)
  • 注册表意味着我们将有一个方便的方式来推送和拉取函数(工具)

BLAH - 几乎无逻辑代理主机

BLAH是一个开源生态系统,用于管理、分发和执行使用模型上下文协议(MCP)的AI代理工具。它提供了一个去中心化的MCP服务器注册表,促进透明度、安全性和社区驱动的发展。

项目结构

该项目组织为一个单仓库,使用Turborepo:

  • packages/cli - 主要的BLAH CLI工具,用于处理MCP
  • apps/web - BLAH的Web界面
  • apps/docs - 文档站点

开始使用

先决条件

  • Node.js >= 18.18.0(推荐使用Node 20+)
  • pnpm

安装

# 克隆仓库
git clone https://github.com/thomasdavis/blah.git
cd blah

# 安装依赖
pnpm install

# 构建项目
pnpm run build

使用CLI快速开始

参见CLI README,了解详细使用BLAH CLI的说明。

# 导航到CLI包
cd packages/cli

# 设置环境变量(.env文件)
echo "OPENAI_API_KEY=your_openai_api_key_here" > .env
echo "BLAH_HOST=https://ajax-blah.web.val.run" >> .env

# 运行模拟
pnpm run simulate

目前正在开发中

  • 需要一种使用任何模型/IDE调试MCP服务器的方法
  • 思考门户
  • Lisa Watts提出了“auton”,这可能是我将要建议的内容

无关的想法

  • 需要在想法中保存状态,以防你没有提交
  • 社交工具的点赞
  • 自动错误率
  • 分享你的工具组合结果

使用本地blah.json

主机托管blah.json(Valtown)

开始使用(主机托管)

  1. 设置一个Valtown账户
  2. 创建一个新的HTTP函数名为blah
export default async function server(request: Request): Promise<Response> {
  const tools = [
    {
      name: "hello_name",
      description: `向名字打招呼`,
      inputSchema: {
        type: "object",
        properties: {
          name: {
            type: "string",
            description: `要打招呼的名字`,
          },
        },
      },
    },
  ];

  return new Response(JSON.stringify(tools), {
    headers: {
      "Content-Type": "application/json",
    },
    status: 200,
  });
}

添加到客户端

  • Claude
    • 桌面
    • 代码(CLI)
  • Cursor
  • Cline
  • Windsurf
  • BLAH客户端
  • 是否已经有不错的Web客户端了

开发

我仍在开发工具,以便开发不会变得糟糕。

日志记录

在开发过程中,我想从每个人的客户端发送日志,以找出由于不同配置导致的所有错误。

沙盒

目前只是一个基本客户端,列出提示、资源和工具。以后可能会变得交互式,并且应该运行测试。

npm run playground

需要改进

  • Valtown是当前的封装,需要一个替代方案,可能使用Vercel函数或其他。
  • 需要有良好的策略来实现组合性

致谢

  • Lisa Watts
  • Travis
  • Wombat

AI生成的胡言乱语(以上内容是真实的)

npm 版本 CI 许可:MIT TypeScript

  • MCP服务器版本徽章
  • 注册表在线状态

什么是BLAH?

BLAH是一个开源生态系统,用于管理、分发和执行使用模型上下文协议(MCP)的AI代理工具。它提供了一个去中心化的MCP服务器注册表,避免了利益不一致的问题,促进了透明度、安全性和社区驱动的发展。

关键特性:

  • 开源基础设施,任何系统(IDE、AI平台等)都可以连接
  • 语言无关的工具注册表,支持无限的工具选择
  • 通过可选的签名和验证MCP服务器来确保强大的安全性
  • 综合CLI,用于发布、发现和管理工具
  • 支持各种工具类型:函数、REST端点、本地文件或标准清单

🔍 愿景

BLAH旨在成为新一代易于共享、发现和组合的AI工具的基础。我们设想未来:

  1. 任何人都可以创建并分享扩展AI能力的工具
  2. 每个人都有访问丰富工具生态系统的权限,无论其技术背景如何
  3. 每个系统都可以通过标准协议集成到这个生态系统中

🚀 开始使用

安装

npm install -g blah-mcp

基本用法

# 搜索工具
blah search "图像生成"

# 安装一个工具
blah install awesome-image-generator

# 列出已安装的工具
blah list

# 获取工具信息
blah info awesome-image-generator

📖 核心概念

注册表

BLAH的注册表借鉴了像npm这样的包管理器的经验教训,重点在于:

  • 透明度:所有基础设施代码都是开源的
  • 去中心化:存储选项包括本地、云、IPFS或gist
  • 安全性:MCP服务器的可选签名和验证
  • 治理:社区驱动,没有任何单一实体控制生态系统

代理行为

BLAH支持各种代理交互模式:

  • 并行执行
  • 递归工具调用
  • 分支工作流
  • 顺序处理
  • 复杂的基于图的工作流

工具定义

BLAH中的工具本质上是一个函数,但可以表示为:

  • 代码片段
  • RESTful端点
  • 本地可执行文件
  • 标准清单(SLOP,agents.json)

每个工具应明确记录其调用方式,尽管这不是强制性的。

🛠️ CLI命令

BLAH附带了一个综合CLI:

blah publish    - 将工具发布到注册表
blah search     - 按名称、标签或描述搜索工具
blah install    - 安装一个工具
blah remove     - 移除已安装的工具
blah update     - 更新工具到最新版本
blah list       - 列出已安装的工具
blah info       - 显示工具信息
blah config     - 配置BLAH设置
blah login      - 注册表认证
blah logout     - 结束认证会话
blah whoami     - 显示当前认证用户
blah version    - 显示版本信息
blah help       - 显示帮助信息

📋 清单

BLAH使用清单文件(blah.json)来定义工具及其依赖项。此清单可以存在于:

  • 项目工作区
  • 用户主目录
  • 云端托管
  • 作为gist或IPFS上的内容

示例blah.json

{
  "name": "awesome-image-generator",
  "version": "1.0.0",
  "description": "生成精彩图片的工具",
  "entry": "./dist/index.js",
  "tools": [
    {
      "name": "generate_image",
      "description": "根据文本提示生成图片",
      "parameters": {
        "prompt": {
          "type": "string",
          "description": "所需图片的文字描述"
        },
        "style": {
          "type": "string",
          "enum": ["写实", "卡通", "抽象"],
          "default": "写实"
        }
      }
    }
  ],
  "dependencies": {
    "image-gen-lib": "^2.0.0"
  },
  "tags": ["图像", "生成", "创意"]
}

🔄 标准支持

BLAH支持并致力于兼容:

  • 模型上下文协议(MCP)
  • SLOP(语言操作协议结构)
  • agents.json
  • [通过转换器支持您自己的自定义协议]

🌟 发现与元数据

BLAH中的工具使用以下方式进行组织:

  • 标签(例如,#TOOLBELT)
  • 语义元数据,便于直观导航
  • 使用分析,基于受欢迎程度进行推荐
  • 基于用户的推荐(类似用户使用的工具)

🏗️ 架构

BLAH由三个主要组件组成:

  1. 注册表:用于工具存储和发现
  2. CLI:用于与注册表交互和管理工具
  3. MCP服务器:用于在代理工作流中执行工具

目前,ValTown作为注册表存储和计算的主要后端,欢迎其他实现。

🔒 安全与问责

BLAH认真对待安全问题:

  • MCP服务器的可选签名
  • 在沙箱环境中执行代码
  • 详细的日志记录以确保问责
  • 遵守当地法律法规

🚧 路线图

  • 在云平台上托管MCP服务器(如Cloudflare Workers)
  • 创建基于Web的工具浏览器和文档网站
  • 提升调试和开发者体验
  • 开发工具创建向导/生成器
  • 实现工具推荐系统

🧠 未来想法

  • 用户行为共享,用于个性化工具推荐
  • 通过类似cron的机制安排代理执行
  • 注册表管理的去中心化治理模型
  • 扩展生态系统,用于自定义注册表实现

🤝 贡献

欢迎贡献!请稍后再查看详细的贡献指南。

👏 致谢

特别感谢Lisa和Wombat对这个项目的宝贵贡献。

📄 许可

BLAH在MIT许可下发布。详情请参阅LICENSE文件。


<div align="center"> <em>人性化地构建逻辑代理</em> </div>