
Blah
用于创建、测试和共享 AI 智能体工具的开源生态系统,包含可视化流程编辑器、仿真环境和去中心化工具发现功能。
项目处于极端概念验证模式 - 完全不稳定 - 文档和愿景纯粹是笔记
BLAH - Barely Logical Agent Host - 更新 #1
(可以理解为工具的 npmjs)
一旦此列表全部完成,BLAH JSON 模式将最终确定。
- 工具
- 本地函数
- 托管函数
- 注册表
- 发布
- 浏览
- Mcp 支持
- 本地标准输入输出
- 本地 SSE
- 托管 SSE
- Slop 支持
- 本地 Slop
- 托管 Slop
- 工具可组合性
- 分组
- 流程
- 触发器 / 标签
- 扩展
- 本地 blah.json
- 托管 blah.json
- 调试
- 操场
- 日志记录
备注:
- 流程将使用 agnt.gg 流程模式的一个子集
- 扩展意味着您可以以任何方式组合 blah.json。(想象一下,如果您只想包含您所关注设计师的工具)
- 注册表意味着我们将有一个方便的方式来推送和拉取函数(工具)
BLAH - Barely Logical Agent Host
BLAH 是一个开源生态系统,用于使用模型上下文协议 (MCP) 管理、分发和执行 AI 代理工具。它为 MCP 服务器提供了一个去中心化的注册表,促进了透明度、安全性和社区驱动的开发。
项目结构
该项目组织为一个使用 Turborepo 的单体仓库:
packages/cli
- 主要的 BLAH CLI 工具,用于与 MCP 配合工作apps/web
- BLAH 的 Web 界面apps/docs
- 文档站点
快速入门
先决条件
- Node.js >= 18.18.0(推荐使用 Node 20+)
- pnpm
安装
bash
# 克隆存储库
git clone https://github.com/thomasdavis/blah.git
cd blah
# 安装依赖项
pnpm install
# 构建项目
pnpm run build
CLI 快速入门
有关使用 BLAH CLI 的详细说明,请参阅 CLI README。
bash
# 导航到 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)
快速入门(托管)
- 设置 Valtown 帐户
- 创建一个名为
blah
的新 HTTP 函数
typescript
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 客户端?
开发
我仍在努力开发让开发不那么糟糕的工具。
日志记录
在开发此功能时,我想从所有人的客户端发送日志,以便找出由于不同配置导致的所有该死的错误。
操场
目前只是一个列出提示、资源和工具的基本客户端。未来可能会变得互动,并且还应该运行测试。
bash
npm run playground
需要改进
- Valtown 是当前的封装器,需要有一个替代方案,可能是使用 Vercel 函数或其他东西。
- 需要一个好的可组合性策略
致谢
- Lisa Watts
- Travis
- Wombat
AI 生成的废话(上面的内容是真实的)
- mcp 服务器版本徽章
- 注册表正常运行时间状态
什么是 BLAH?
BLAH 是一个开源生态系统,用于使用模型上下文协议 (MCP) 管理、分发和执行 AI 代理工具。它为 MCP 服务器提供了一个去中心化的注册表,不会受到激励机制错位的影响,促进了透明度、安全性和社区驱动的开发。
主要特点:
- 任何系统(IDE、AI 平台等)都可以连接的开源基础设施
- 支持无限工具选择的语言无关工具注册表
- 通过可选的签名和验证 MCP 服务器实现强大的安全性
- 用于发布、发现和管理工具的综合 CLI
- 支持各种工具类型:函数、REST 端点、本地文件或标准清单
🔍 愿景
BLAH 旨在成为新一代 AI 工具的基础,这些工具可以轻松共享、发现和组合。我们设想了一个未来:
- 任何人都可以创建和分享扩展 AI 能力的工具
- 每个人都可以访问丰富的工具生态系统,无论其技术背景如何
- 每个系统都可以通过标准协议与此生态系统集成
🚀 快速入门
安装
bash
npm install -g blah-mcp
基本用法
bash
# 搜索工具
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
:
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 由三个主要组件组成:
- 注册表:用于工具存储和发现
- CLI:用于与注册表交互和管理工具
- MCP 服务器:用于在代理工作流中执行工具
目前,ValTown 作为注册表存储和计算的主要后端,尽管欢迎替代实现。
🔒 安全与责任
BLAH 十分重视安全:
- 可选的 MCP 服务器签名
- 在沙箱环境中执行代码
- 全面的日志记录以确保责任
- 符合当地法律法规
🚧 路线图
- 在云平台(例如 Cloudflare Workers)上托管 MCP 服务器
- 创建基于 Web 的工具浏览器和文档站点
- 改进调试和开发者体验
- 开发工具创建向导/生成器
- 实现工具推荐系统
🧠 未来想法
- 用户行为共享以获得个性化的工具推荐
- 通过类似 cron 的机制安排代理执行
- 去中心化的注册表管理治理模型
- 支持自定义注册表实现的扩展生态系统
🤝 贡献
欢迎贡献!请稍后查看详细的贡献指南。
👏 致谢
特别感谢 Lisa 和 Wombat 对本项目的宝贵贡献。
📄 许可证
BLAH 在 MIT 许可下发布。详情请参阅 LICENSE 文件。