mcpField
B
Brevet

Brevet

本地服务
github.com/BrightbeamAIAI 与智能体12 周前更新

关于 Brevet

Brevet 是用于管理现有 AI Agent 学习过程的本地优先 Python 运行时,适合需要审查变更的团队。它将纠正意见转为经评估和人工批准的签名版本,并支持撤回。

主要功能

  1. 01记录纠正意见及其原因
  2. 02从反复出现的纠正中提出候选能力
  3. 03通过人工审批与评估门槛
  4. 04发布带能力清单的签名版本
  5. 05追踪证据并支持撤回和回滚

适用场景

  1. 01在发布前审查 Agent 行为变更
  2. 02追踪学习能力的审批者
  3. 03撤回已证明有误的能力

MCP 相关

Brevet 通过 `uvx brevet mcp` 提供 MCP 服务,向 MCP 客户端开放捕获、审查、发布和撤回操作。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"brightbeamai-brevet": {
"command": "uvx",
"args": [
"brevet"
],
"env": {
"BREVET_HOME": "<BREVET_HOME>",
"BREVET_AUTO_CAPTURE": "<BREVET_AUTO_CAPTURE>"
}
}
}
}
启动命令uvx brevet
需要配置的环境变量
BREVET_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+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypibrevet0.4.0

工具

14

收录的工具列表 · 更新于 2 周前

参数类型必填说明
tagsstring否
taskstring是
draftstring是
finalstring否
familystring是
rationalestring否
participantstring否

详细介绍

Brightbeam Applied Research 推出的 Brevet。治理 Agent 的演进。管控 AI Agent 学习的内容。

网站 · 文档 · 论文 · PyPI · CHAP

PyPI 版本 Python 3.10+ 许可证:Apache-2.0 兼容 CHAP

AI Agent 现在会在工作过程中改变自身行为。它们会保存记忆、编写新技能,还会编辑自己的指令。这些变化中有很多确实有帮助。然而,这些变化都没有经过组织在有人改变工作方式时所期望的流程。没有人记录变更,没有人批准变更,而且一旦发现变更有误,也没有旧版本可供回退。

Brevet 为此引入了这些流程。它是一个本地优先的 Python 运行时,负责封装你已有的 Agent,并将其学习过程作为受治理的演进循环来运行。专家纠正 Agent 的草稿时,Brevet 会将这项纠正及其原因记录为一条覆盖记录。在离线的 dream 周期中,反复出现的覆盖记录会成为候选能力:它们是拟议的规则和其他学习到的行为,不具备任何权限。在 dawn 审核关卡,指定的人类或任务组(承担问责责任的评审委员会)会决定晋升哪些候选项。随后,这些覆盖记录会作为 eval 重放,而保守关卡会阻止任何导致其中一半以上结果变差的发布。晋升的能力会随附带签名的发布版本一起交付,并列在 capabilities.lock 中;如果某项能力被证实有误,可以将其召回,并标记所有包含它的发布版本。每个步骤都会记录在哈希链式的证据链上。

Agent 提出变更;证据负责测试;人类负责晋升; 运行时只会执行带签名的版本。

受治理的演进循环:Agent 在一套带签名的运行框架下工作;专家的纠正会记录为覆盖记录;dream 周期会将反复出现的覆盖记录转化为不具备权限的候选能力;在 dawn 审核关卡,指定的人类或任务组会晋升、暂缓或拒绝每个候选项;eval 会重放覆盖记录,且必须通过保守关卡;晋升的能力会随带签名的发布版本一起交付,并列在 capabilities.lock 中。如果某项能力被证实有误,就会将其召回,并标记所有包含它的发布版本。

## Brevet 解答的三个问题
问题Brevet 如何解答
Agent 学到了什么?每个版本都包含 capabilities.lock,即其物料清单:其中列出每项已学会的能力、来源和准确内容的哈希值,以及该版本运行所用的执行环境(提示词、技能、工具、设置和库)。
谁批准了它?每项能力都会记录在黎明审核关卡将其提升的个人或任务组,以及为此提供依据的例外;工作区启用此要求后,还会使用其注册密钥进行签名。
如何撤回它?撤回该能力,或回滚到较早的版本。Brevet 会标记所有包含该能力的版本,不再向运行中的 Agent 提供该能力,并记录每个 Agent 的确认。

一个具体示例

某制药厂的质量审核员会检查 Agent 对每个设备问题的严重程度评级。Agent 将清洁期间水泵的振动评为轻微。她每次都会将其改为严重,因为这种振动是密封件磨损的早期迹象。经过四次覆盖后,梦境周期提出了一条候选规则。黎明时,她所在的任务组将其提升,该规则随 0.2.0 版本一同发布,并写入其 capabilities.lock。几个月后,工程师发现振动是由传感器故障导致的,于是任务组撤回该规则,Brevet 将 0.2.0 版本标记出来。

示例时间线:三周内,审核员记录了四次覆盖;当晚,梦境周期在证据层提出一条候选规则;第二天早上,任务组在黎明时将其提升,该规则经签名后随 0.2.0 版本发布;几个月后,该规则被撤回,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 项目。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。