内容
<p align="center">
<img src="docs/assets/brigade-social-preview.jpg" alt="Brigade" width="900">
</p>
<h1 align="center">Brigade CLI</h1>
<p align="center">
<strong>单一的MCP服务器、工具和记忆来源,所有AI编码代理共享,通过审查门户和每次更改的回执,合并到每个工具的原生配置中。本地文件,无守护进程,无锁定。</strong>
</p>
<p align="center">
<img src="https://img.shields.io/github/actions/workflow/status/escoffier-labs/brigade/ci.yml?branch=main&style=for-the-badge&label=ci" alt="CI状态">
<img src="https://img.shields.io/pypi/v/brigade-cli?style=for-the-badge&label=pypi" alt="PyPI版本">
<img src="https://img.shields.io/badge/python-3.10%2B-blue?style=for-the-badge&logo=python&logoColor=white" alt="Python 3.10+">
<img src="https://img.shields.io/badge/license-MIT-green?style=for-the-badge" alt="MIT许可证">
</p>
您的代理运行循环。Brigade保留回执。
## 它做什么
您运行多个代理CLI。每个CLI都将其MCP服务器保存在其自己的配置文件中,其内存保存在其自己的存储库中,并写入两者而无需审查。Brigade是本地层,解决了这个问题。您为MCP服务器、工具和技能目录以及内存保留一个规范源,Brigade将其合并到您实际使用的工具中:将MCP服务器合并到每个工具的原生配置中,将工具和技能投影到每个托管平台中,以及一个共享的内存,所有内容都在一个地方拥有。审查门户位于任何写入操作之前,每个有影响的操作都会留下回执,您可以grep、diff和回滚。没有守护进程,没有托管服务,没有供应商锁定:它在您运行命令时写入存储库中的普通文件,仅此而已。
## 60秒试用
<p align="center">
<img src="docs/assets/quickstart.svg" alt="Recording: brigade operator quickstart wires a repo and brigade operator doctor reports ready, in seconds" width="760">
</p>
```bash
pipx install brigade-cli
pipx ensurepath # 然后打开新shell,使`brigade`在PATH上
brigade operator quickstart --target ./my-repo --harnesses codex # 连接一个存储库
brigade operator doctor --target ./my-repo --profile local-operator # 验证
```
这安装了CLI,将内存、交接和本地防护措施连接到一个存储库中,用于单个托管平台,并打印就绪检查。没有任何东西离开您的机器,也没有启动守护进程。添加 `--dry-run` 来预览每个文件更改计划,然后再进行任何操作。更多托管平台、工作空间设置和自主采用路径请参见 [安装](#安装)。
运行结束时,会有就绪判决(上面的录制显示了完整的报告):
```
operator doctor: ~/my-repo
profile: local-operator
ready: yes
blocking_issues: 0
next: brigade daily plan --target .
content_guard: installed hook=configured-hooks-path policy=public-repo
```
## 一个MCP目录,同步到每个工具
每个代理工具从不同的文件中读取其MCP服务器,而且文件格式不同。相同的服务器跨Claude Code、Cursor、Codex、VS Code、OpenCode和Antigravity意味着手动编辑六个配置文件并保持同步永远。Brigade保留一个规范目录,并为您合并到每个工具的原生配置中。
```bash
brigade mcp init # 搭建 .brigade/mcp.json
brigade mcp add --name github --command npx \
--args "-y @modelcontextprotocol/server-github" \
--env GITHUB_TOKEN=ref:GITHUB_TOKEN
brigade mcp sync # dry-run: 显示每个工具的差异
brigade mcp sync --write # 合并到每个工具的配置中
```
运行 `brigade mcp sync`,您会得到每个工具的计划,按服务器排序,然后再更改任何文件。两个服务器在目录中,投影到此存储库中配置的托管平台上:
```
brigade mcp sync (dry-run): ~/my-repo
claude github missing -> create
claude sentry missing -> create
cursor github missing -> create
cursor sentry missing -> create
codex github missing -> create
codex sentry missing -> create
vscode github missing -> create
vscode sentry missing -> create
opencode github missing -> create
opencode sentry missing -> create
```
一个目录(`.brigade/mcp.json`),六个原生目标:
| 工具 | 它写入的文件 |
|---|---|
| Claude Code | `.mcp.json` |
| Cursor | `.cursor/mcp.json` |
| Codex CLI | `.codex/config.toml`(有手术合并,其他表格保留) |
| VS Code | `.vscode/mcp.json`(机密成为 `inputs[]`) |
| OpenCode | `opencode.json` |
| Antigravity | `~/.gemini/config/mcp_config.json`(用户范围, `--user-scope`) |
它默认是dry-run,并且从 `doctor` 或 `brief` 永远不会运行。它按服务器键合并,因此您手动添加的服务器永远不会被触碰,您编辑的服务器除非您传递 `--force`,否则会单独保留。机密以 `${VAR}` 引用(或 VS Code `${input:VAR}`)写入,而不是内联。所有权在gitignored侧车中跟踪,因此在全新克隆上重新同步不会引起冲突。完整行为见 [docs/mcp-sync.md](docs/mcp-sync.md)。
工具和技能得到相同的处理:`brigade tools sync` 将一个审查过的目录投影到每个托管平台的原生格式中。
> `brigade mcp` 需要brigade 0.13.0或更新版本(`pipx upgrade brigade-cli`)。
## 共享内存,前面有防护
编写托管平台时,会留下交接笔记。Brigade检查、防护和分类每个笔记,然后将安全、有针对性的笔记自动归档到持久内存中。内存所有者(OpenClaw、Hermes或您)仅需介入少数模糊的笔记。每个有影响的操作都会留下回执到一个普通文件中,您可以grep、diff和修剪。
1. 代理将交接笔记写入其自己的本地收件箱
2. Brigade检查并分类每个笔记,然后再将其变成内存
3. 安全、有针对性的笔记自动归档到持久内存中
4. 只有模糊或有风险的少数笔记需要您的审查
5. 未来的会话以更好的上下文开始,并且回执显示发生了什么
```mermaid
flowchart LR
WRITERS["编写托管平台<br/>Codex · Claude Code · OpenCode · ..."]
BRIGADE["Brigade<br/>检查 · 防护 · 分类 · 回执"]
OWNER["内存所有者<br/>OpenClaw / Hermes / 您"]
MEM["持久内存<br/>MEMORY.md 索引 · 内存卡"]
REVIEW["审查收件箱<br/>模糊 · 有风险"]
WRITERS -- 交接笔记 --> BRIGADE --> OWNER
OWNER -- 安全有针对性,自动归档 --> MEM
OWNER -. 模糊或有风险 .-> REVIEW
MEM -. 上下文 .-> WRITERS
classDef brigade fill:#2563eb,stroke:#1d4ed8,color:#fff;
classDef memory fill:#ecfdf5,stroke:#059669,color:#064e3b;
classDef gate fill:#fff7ed,stroke:#ea580c,color:#7c2d12;
class BRIGADE brigade;
class OWNER,MEM memory;
class REVIEW gate;
```
内存有两层:`memory/cards/`下的知识卡持有详细信息,`MEMORY.md`保持为一个简洁的一行每卡索引,加载每个会话。`brigade memory care scan` 标记过时、矛盾或来源不足的卡片以供审查,而不是让它们腐烂。Brigade永远不会编辑规范内存本身;所有者进行写入。所有操作都在您控制的机器上运行:笔记本电脑、工作站或VPS。
## 验证学习
交接笔记是第一个循环。第二个循环获得信任。Brigade可以独立提升学习技能,但只有当真实信号证明它有帮助时,并且一旦信号表明它已损坏,就会将其回滚。模型永远不会评估自己的工作。
- `brigade outcome capture` 记录验证运行的结果(实际退出代码,而不是意见)与生成它的技能。
- `brigade outcome score` 按Wilson下限对每个技能进行排名,因此两次通过的技能永远不会超过二十次验证的技能。
- `brigade outcome reconcile` 是关口。默认dry-run;使用 `--apply` 它会在您的托管平台上安装已获得的技能,或将其回滚到上一个良好版本。
- `brigade outcome explain` 打印任何决策背后的完整信号轨迹:哪个运行产生的结果、它跨越的阈值以及采取的可逆操作。
整个账本是纯JSON和markdown,位于 `memory/outcome/` 下,通过git跟踪,无需Brigade即可读取。 在您自己的cron中调度 `brigade outcome reconcile` 以手动运行;Brigade仍然不安装守护进程。
## 侧车
Brigade是中心枢纽。每个站点都连接一个可选的独立工具,使用 `brigade add <station>` 安装,并通过 `brigade status` 和 `brigade doctor` 进行健康检查。每个工具都是自己的存储库,可以独立安装,与Brigade没有库耦合。
| `brigade add` | 工具 | 它做什么 |
|---|---|---|
| `guard` | content-guard | 在任何东西离开机器之前扫描交接和内容以查找机密和PII |
| `tokens` | tokenjuice | 跟踪您的托管平台上的令牌花费并压缩嘈杂的输出 |
| `memory` | memory-doctor, bootstrap-doctor | 验证内存卡和引导文件是否过期和矛盾 |
| `pantry` | agentpantry | 在代理的机器上同步浏览器会话和身份验证 |
| `search` | code-search | 在您的存储库上进行本地语义代码搜索 |
| `evidence` | miseledger | 带有回执和源导出器的本地优先证据账本 |
## 托管平台支持
每个编写者都有自己的本地收件箱;一个规范所有者消化。Brigade保持笔记格式一致,以便不同工具可以贡献而无需发明自己的样式。
| 编写者 | 托管平台ID | 收件箱 |
|---|---|
| Codex CLI | `codex` | `.codex/memory-handoffs/` |
| Claude Code | `claude` | `.claude/memory-handoffs/` |
| OpenCode | `opencode` | `.opencode/memory-handoffs/` |
| Antigravity | `antigravity` | `.antigravity/memory-handoffs/` |
| Pi | `pi` | `.pi/memory-handoffs/` |
| Cursor | `cursor` | `.cursor/memory-handoffs/` |
| Aider | `aider` | `.aider/memory-handoffs/` |
| Goose | `goose` | `.goose/memory-handoffs/` |
| Continue | `continue` | `.continue/memory-handoffs/` |
| GitHub Copilot CLI | `copilot` | `.copilot/memory-handoffs/` |
| Qwen Code | `qwen` | `.qwen/memory-handoffs/` |
| Kimi Code | `kimi` | `.kimi/memory-handoffs/` |
| AdaL | `adal` | `.adal/memory-handoffs/` |
| OpenHands | `openhands` | `.openhands/memory-handoffs/` |
| Grok CLI | `grok` | `.grok/memory-handoffs/` |
| Amp | `amp` | `.amp/memory-handoffs/` |
| Crush | `crush` | `.crush/memory-handoffs/` |
| Hermes | `hermes` | `.hermes/memory-handoffs/` |
| OpenClaw | `openclaw` | 通常是内存所有者,不是编写者 |
它们都获得交接模板和摄入源覆盖。大多数还获得投影工具和技能在其原生格式下;每个托管平台的矩阵在 [技术指南](docs/technical-guide.md) 中。Hermes针对真实安装进行验证:交接落地在 `.hermes/memory-handoffs/`,而审查的技能安装到您的Hermes存储 (`~/.hermes/skills`)。
## 更多
相同的审查和回执模式涵盖了操作员一天的其余部分,您可以忽略所有这些,直到您需要它们。
- **跨模型运行**:`brigade run "<task>"` 在您的团队名单中的代理CLI上计划、调度并综合一个有界任务,因此昂贵的模型可以思考,而更便宜的模型则进行繁琐的工作。 `--worktree` 在一个分离的git检出中运行所有操作,返回一个可审查的 `changes.patch`.
- **日常循环**:`brigade work brief` 显示待处理的工作、导入和警告;`brigade daily status` 保持其有界且廉价。
- **摩擦日志**:`brigade friction scan` 从最近的笔记、交接和会话工件中挖掘可审查的工作流摩擦。
- **安全和清除**:`brigade security scan` 是代理工作空间的本地只读扫描器;`brigade scrub` 在内容离开机器之前进行防护。
- **研究**:`brigade research run` 将一个问题变成一个引用的本地报告和一个可审查的内存交接。
- **舰队和发布**:您的本地存储库的健康证据和发布就绪回执,无需发布步骤。
完整的每个站点巡览位于 [docs/overview.md](docs/overview.md)。
## 为什么不使用其他东西?
- **mem0, Letta, and friends** 是您正在构建的应用程序的内存层,通常在API或服务器后面。Brigade适用于您已经运行的代理CLI,并且是文件优先的:您的内存是存储库中的markdown,在git中可审查,无需Brigade。
- **原生托管平台内存**(每个工具自己的自动内存)是每个工具的独立存储库。它不会跨托管平台,并且写入时不进行审查。Brigade为每个工具提供一个共享格式和一个规范所有者,并在两者之间提供一个审查门户。
- **已经运行Hermes,或任何自我改进的代理?** 保留它。Brigade不是替换,它是顶层的验证层。内置的学习循环对其工作进行评分,并将学习内容存储在一个工具中。Brigade仅在真实信号确认后提升技能,将学习内容作为git中的可移植markdown,并在您的git中运行一个循环跨您的整个舰队。
- **一个纯CLAUDE.md / AGENTS.md** 文件在它超出上下文预算并过时时效果很好。Brigade保持引导文件精简,将详细信息移到索引卡,并标记过时而不是永远信任上个月的事实。
- **守护进程或托管服务** 将更简单演示,但更不值得信任。Brigade在您运行命令时写入本地文件,仅此而已。
## 不是什么
Brigade不是托管的内存服务、守护进程或自动发布机器人。
它不:
- 在后台运行或安装调度程序
- 推送到GitHub或发布软件包
- 默认发送通知
- 自动保存每个笔记
- 将内存摄入变成一个沉默的后台进程
- 跳过对模糊、有风险或失败的笔记的审查
这种暂停是关键。代理内存应该是有效的,而不是嘈杂的。
## 安装
`brigade operator quickstart`(在 [60秒试用](#60秒试用)中)为一个托管平台配置一个代码存储库。对于OpenClaw或Hermes工作空间:```bash
brigade operator quickstart --target ~/agent-workspace --depth workspace --harnesses openclaw,hermes --owner openclaw
```
使用 `--dry-run` 首先预览计划步骤而不写入任何内容。传递更多托管平台作为逗号分隔列表;quickstart仅配置您选择的托管平台并留下其他平台不变。
编写交接并检查线路:```bash
brigade handoff draft --target ./my-repo --inbox codex \
--title "更改了什么" \
--summary "简短的笔记未来的代理应该知道。" \
--content "持久的笔记本身在这里。"
brigade handoff lint --target ./my-repo
brigade handoff doctor --target ./my-repo`
```
新的这里?从 [QUICKSTART.md](QUICKSTART.md) 开始进行5分钟安装,然后 [docs/first-10-minutes.md](docs/first-10-minutes.md) 进行引导式第一会话。已经有自制脚本、crons和交接文件夹?Brigade有采用路径,记录您现有的内容,然后更改内容:从 `brigade operator adopt plan` 开始并查看 [技术指南](docs/technical-guide.md)。让代理为您设置?指向 [divAGENTS.md](AGENTS.md) 告诉它该怎么做以及在哪里停止。
## 为什么我创建了这个
我运行一个始终在线的OpenClaw代理,每天与Codex和Claude Code会话一起运行。每个工具都启动时都是空的,每个会话学到的内容都分散在特定于工具的文件夹中并在那里死亡。两个事件塑造了设计:一个“梦想”工作流,它将原始的会话片段直接提升到内存中,使 `MEMORY.md`膨胀到引导预算之外,因此每个会话都从截断状态开始,没有人注意到几个星期,直到有人注意到;以及35个存储库中有一个硬编码的允许列表,收集器无法正常工作,没有警告间隙。沉默是故障模式。 Brigade的每个部分检查、警告或写入回执,都源于某件事情曾经在沉默中失败。完整的生产堆栈,现在有482张卡牌,跨越每日多代理工作,都记录在 [solos-cookbook](https://github.com/escoffier-labs/solos-cookbook).
## 文档
- [前10分钟](docs/first-10-minutes.md):从安装到健康设置的最短路径。
- [概述](docs/overview.md):每个站点和图表的完整游览。
- [技术指南](docs/technical-guide.md):详细的命令操作指南。
- [MCP同步](docs/mcp-sync.md):规范目录、支持的工具和合并规则。
- [安全和内容防护](docs/security.md):扫描器策略、交接防护、导入流程。
- [交接推广](docs/handoff-promotion.md):笔记如何转化为内存。
- [存储库舰队](docs/repo-fleet.md) 和 [工具目录](docs/tool-catalog.md)。
- [命令清单](docs/command-inventory.md):每个公共CLI命令。
- [维护者](MAINTAINERS.md)、 [治理](GOVERNANCE.md)、 [安全](SECURITY.md) 和 [贡献](CONTRIBUTING.md)。
- [路线图](ROADMAP.md) 和 [路线图存档](docs/roadmap-archive.md).
项目身份:GitHub [`escoffier-labs/brigade`](https://github.com/escoffier-labs/brigade),网站 [brigade.tools](https://brigade.tools),PyPI [`brigade-cli`](https://brigade-cli/). 命令 `brigade`. 名称来自厨房:一个 *brigade de cuisine* 负责整个厨房流程,而 *mise en place* 意味着站点在服务前已准备就绪。 根据规则、内存、工具和回执来设置站点,然后在会话变得昂贵之前。
它仍处于早期阶段,正在快速发展。 如果您遇到工作流程中断、命令不清晰或设置问题, [请提交问题](https://github.com/escoffier-labs/brigade/issues),我将解决它。
MCP 配置
以下是此 MCP Server 的配置信息,可直接复制到 Cursor 或其他 MCP 客户端中使用。
mcp.json
连接信息
猜你喜欢
暂无推荐服务器