关于 Brevet
Brevet 是用于管理现有 AI Agent 学习过程的本地优先 Python 运行时,适合需要审查变更的团队。它将纠正意见转为经评估和人工批准的签名版本,并支持撤回。
主要功能
- 01记录纠正意见及其原因
- 02从反复出现的纠正中提出候选能力
- 03通过人工审批与评估门槛
- 04发布带能力清单的签名版本
- 05追踪证据并支持撤回和回滚
适用场景
- 01在发布前审查 Agent 行为变更
- 02追踪学习能力的审批者
- 03撤回已证明有误的能力
MCP 相关
Brevet 通过 `uvx brevet mcp` 提供 MCP 服务,向 MCP 客户端开放捕获、审查、发布和撤回操作。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx brevetBREVET_HOMEThe Brevet workspace to serve: a folder holding agent.yaml and .brevet/. It is created on first use; run 'brevet init' there to write a starter manifest.BREVET_AUTO_CAPTURESet to true to have sessions record corrections without being asked. Leave unset to record only on request.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
14收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| tags | string | 否 | |
| task | string | 是 | |
| draft | string | 是 | |
| final | string | 否 | |
| family | string | 是 | |
| rationale | string | 否 | |
| participant | string | 否 |
详细介绍
AI Agent 现在会在工作过程中改变自身行为。它们会保存记忆、编写新技能,还会编辑自己的指令。这些变化中有很多确实有帮助。然而,这些变化都没有经过组织在有人改变工作方式时所期望的流程。没有人记录变更,没有人批准变更,而且一旦发现变更有误,也没有旧版本可供回退。
Brevet 为此引入了这些流程。它是一个本地优先的 Python 运行时,负责封装你已有的 Agent,并将其学习过程作为受治理的演进循环来运行。专家纠正 Agent 的草稿时,Brevet 会将这项纠正及其原因记录为一条覆盖记录。在离线的 dream 周期中,反复出现的覆盖记录会成为候选能力:它们是拟议的规则和其他学习到的行为,不具备任何权限。在 dawn 审核关卡,指定的人类或任务组(承担问责责任的评审委员会)会决定晋升哪些候选项。随后,这些覆盖记录会作为 eval 重放,而保守关卡会阻止任何导致其中一半以上结果变差的发布。晋升的能力会随附带签名的发布版本一起交付,并列在 capabilities.lock 中;如果某项能力被证实有误,可以将其召回,并标记所有包含它的发布版本。每个步骤都会记录在哈希链式的证据链上。
Agent 提出变更;证据负责测试;人类负责晋升; 运行时只会执行带签名的版本。
| 问题 | Brevet 如何解答 |
|---|---|
| Agent 学到了什么? | 每个版本都包含 capabilities.lock,即其物料清单:其中列出每项已学会的能力、来源和准确内容的哈希值,以及该版本运行所用的执行环境(提示词、技能、工具、设置和库)。 |
| 谁批准了它? | 每项能力都会记录在黎明审核关卡将其提升的个人或任务组,以及为此提供依据的例外;工作区启用此要求后,还会使用其注册密钥进行签名。 |
| 如何撤回它? | 撤回该能力,或回滚到较早的版本。Brevet 会标记所有包含该能力的版本,不再向运行中的 Agent 提供该能力,并记录每个 Agent 的确认。 |
一个具体示例
某制药厂的质量审核员会检查 Agent 对每个设备问题的严重程度评级。Agent 将清洁期间水泵的振动评为轻微。她每次都会将其改为严重,因为这种振动是密封件磨损的早期迹象。经过四次覆盖后,梦境周期提出了一条候选规则。黎明时,她所在的任务组将其提升,该规则随 0.2.0 版本一同发布,并写入其 capabilities.lock。几个月后,工程师发现振动是由传感器故障导致的,于是任务组撤回该规则,Brevet 将 0.2.0 版本标记出来。
同一故事的代码实现
这里的 Agent 是一个普通的 Python 函数;在实际使用框架时,传入你的 Agent 对象即可。
import brevet
agent = brevet.wrap(triage_agent) # wrap the agent you already have
# Work and override: the agent drafts; the reviewer corrects the draft and says why.
result = agent.run("Pump P-301: vibration high during cleaning",
task_family="equipment_triage")
agent.record_final(result.task_id, "severity: major",
participant="human:[email protected]",
rationale="Vibration during cleaning is an early sign of seal wear.",
tags=["vibration-during-cleaning"])
# Dream: once the same override keeps recurring, it becomes a candidate.
agent.dream()
candidates = agent.dawn() # the dawn queue
rule = next(c for c in candidates if c.kind == "prompt_rule")
# Dawn: a named mission group promotes the rule and the eval cases compiled
# with it. A dream:* approver is rejected.
for cap in candidates:
agent.dawn(decide=(cap.capability_id, "promote"),
approver="mission_group:quality_team")
# Evals: replay the overrides as tests, on the current release and on the next.
before = agent.evaluate(baseline=True)
# ...the agent now receives the promoted rule with each task...
after = agent.evaluate()
# Release: bound to those two runs, and refused unless the conservative gate passes.
agent.release(to_version="0.2.0", channel="trial",
approver="mission_group:quality_team", evals=(before, after))
# Recall: the rule proves wrong. Then verify the whole evidence chain.
agent.recall(rule.capability_id, reason="The vibration came from a faulty sensor.",
issued_by="mission_group:quality_team")
agent.verify()
完整脚本见 examples/pump_vibration.py, ABOUT.md 展示了脚本的输出。
快速入门
pip install brevet
brevet demo # the whole loop as one command
brevet playground # step through the loop in your browser
所有操作都在你自己的机器上运行,无需模型或网络连接。要运行上面的示例,请安装 Brevet、克隆仓库,然后运行
python examples/pump_vibration.py。要浏览可点击的引导演示,请在浏览器中打开克隆仓库里的
docs/demo.html。
兼容你已有的 Agent
brevet.wrap() 可识别使用 LangGraph、Claude Agent SDK、
DeepAgents、AutoGen、LlamaIndex、Pydantic AI、Google Agent Development Kit、
CrewAI 和 OpenAI Agents SDK 构建的 Agent,也接受任何 Python 函数。你的
框架仍负责运行 Agent;Brevet 会在每项任务中提供受治理的规则,并在框架提供工具接口的情况下,根据版本声明的层级检查每次工具调用。uvx brevet mcp 可向任何 MCP 客户端提供采集、
审核、发布和撤回功能
(ABOUT.md 展示了配置方法),而
examples/claude-cowork 则利用它治理 Claude
自身的学习内容。
专为生产环境打造
每项决策都可以要求审批者签名,并根据允许签名者文件或 GitHub 检查其密钥。版本与支撑其指标的评估运行记录绑定,且任何版本都可以回滚。被撤回的规则不会提供给运行中的 Agent,并要求 Agent 留下确认记录。工具代理会根据清单授予的层级检查 Agent 的工具调用;证据链锚定在工作区之外,因此即使证据链被重写,也能被发现。ABOUT.md 展示了如何启用每项功能:参见 签名审批和 在生产环境中运行。
了解更多
- ABOUT.md:七个阶段、权限阶梯、支持的框架、MCP 服务和命令、Brevet 与 CHAP 和 Metis 的关系,以及仓库的组织方式。
- GLOSSARY.md:所有术语,并优先给出通俗释义。
- SPEC.md:所有实现都必须遵循的规则。
- BENCHMARK.md:受治理的适应性基准测试;
brevet benchmark会根据四个维度为工作区评分。
引用
如果在研究中使用 Brevet,请按照 CITATION.cff 中的说明引用。配套论文为 Brevet: Change Control for What Self-Evolving AI Agents Learn(Shahid、Suttie 和 Black,2026 年)。
许可证
Apache-2.0。请参阅 LICENSE。Brevet 是 Brightbeam 项目。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。