项目简介
Beads (bd) 是一个为AI编码代理设计的轻量级图谱式问题追踪系统。它帮助AI代理解决长期任务中的“遗忘症”问题,通过管理任务、依赖和审计追踪,确保代理能够可靠地执行复杂的任务流。此仓库中的MCP服务器部分('beads-mcp')允许LLM客户端通过标准协议访问和操作Beads的问题数据和功能。
主要功能点
- 任务管理: 允许AI代理创建、查看、更新和关闭任务,支持多种任务类型,如Bug、Feature、Task、Epic和Chore。
- 依赖追踪: 支持四种依赖关系类型:'blocks'(硬性阻塞)、'related'(软性关联)、'parent-child'(史诗/子任务层级)和'discovered-from'(在执行某个任务时发现的新任务),有效管理任务顺序和阻止状态。
- 就绪工作检测: 自动识别没有任何未解决阻塞依赖的“就绪”任务,AI代理可以轻松查询并获取下一步可执行的工作。
- Git分布式存储: 任务数据以JSON Lines (JSONL) 格式存储在Git仓库中,实现跨机器同步和版本控制,并支持AI辅助的合并冲突解决。
- 可扩展性: 允许通过直接操作SQLite数据库来扩展Beads的功能,添加自定义数据表,满足特定应用需求。
- AI Agent友好: 设计上原生支持AI代理工作流,提供简洁的JSON输出接口和'discovered-from'等专为代理设计的依赖类型。
- MCP服务集成: 将核心'bd'命令行工具的功能封装成MCP工具和资源,通过JSON-RPC协议供LLM客户端调用。
安装步骤
-
安装bd命令行工具:
- 推荐快速安装(适用于macOS/Linux):
curl -fsSL https://raw.githubusercontent.com/steveyegge/beads/main/install.sh | bash - 手动安装(需要Go 1.21+):
go install github.com/steveyegge/beads/cmd/bd@latest
请确保'bd'命令安装完成后,其可执行文件所在的路径已添加到您的系统PATH环境变量中。
- 推荐快速安装(适用于macOS/Linux):
-
安装Beads MCP服务器模块:
pip install beads-mcp(如果您从GitHub仓库的源码安装,请在仓库根目录运行:'pip install ./integrations/beads-mcp')
-
初始化Beads数据库 (在您的项目根目录中运行,例如您的Git仓库):
bd init这将在当前目录下创建一个名为'.beads/'的目录,并在其中生成一个项目专属的SQLite数据库文件(例如'.beads/your_project_name.db'),同时设置默认的任务ID前缀。
服务器配置
MCP客户端需要配置启动命令来运行Beads MCP服务器。以下是配置示例,您需要将其整合到您的MCP客户端的配置中:
{ "name": "Beads", "command": ["python", "-m", "beads_mcp.server"], "args": [], "description": "Beads MCP服务器,提供依赖感知的问题追踪功能,作为AI代理的记忆和任务管理系统。", "context_filter": { "include": ["beads://quickstart"], "exclude": [] } }
参数注释:
- 'name': MCP服务器在客户端中的显示名称,此处设置为"Beads"。
- 'command': 用于启动Beads MCP服务器进程的命令。'python -m beads_mcp.server' 会以模块方式运行服务器。
- 'args': 启动命令的额外参数列表。当前版本默认不带任何额外参数。
- 'description': 对MCP服务器功能的简短描述,帮助LLM客户端理解其用途。
- 'context_filter': 定义了客户端应从服务器接收或过滤掉哪些上下文信息。'include: ["beads://quickstart"]' 表示客户端应加载Beads快速入门指南资源。
基本使用方法
一旦Beads MCP服务器成功运行并通过您的LLM客户端连接,LLM客户端即可通过JSON-RPC协议调用其公开的工具和访问资源。
LLM客户端可以执行的操作包括:
- 获取就绪任务: 调用 'ready' 工具,查询当前没有任何阻塞依赖且可立即开始执行的任务。这有助于AI代理安排和执行下一步工作。
- 创建新任务: 调用 'create' 工具,记录在工作过程中发现的新问题、需求或子任务。
- 更新任务状态: 调用 'update' 工具,修改任务的状态(例如设置为'in_progress'表示正在处理),更新优先级、标题或分配给特定负责人。
- 关闭任务: 调用 'close' 工具,将任务标记为已完成,并提供完成原因。
- 添加任务依赖: 调用 'dep' 工具,在任务之间建立新的依赖关系,例如声明任务A阻塞任务B。
- 查看快速入门指南: 访问 'beads://quickstart' 资源,获取详细的使用说明和示例。
- 获取系统统计: 调用 'stats' 工具,获取包括总任务数、开放任务、进行中任务、已关闭任务、阻塞任务和就绪任务等在内的统计信息。
- 查看阻塞任务: 调用 'blocked' 工具,获取所有当前处于阻塞状态的任务,并显示是哪些任务阻塞了它们。
信息
分类
开发者工具