开源框架支持 Agent 动态演化和自我改进,降低复杂 AI 应用开发门槛,当前 Agent 方向的实用探索。
循环流程已完美解决。但分叉之后的事情并非如此。
这是 Claude Agent SDK 的一个插件,可以对 agent 的演变进行版本控制——比较差异、合并,在评估失败时拒绝发布。
Agent SDK 运行循环、交付工具、管理上下文并强制执行权限。它也支持分支:fork 会给你一个从第一个会话的副本开始的第二个会话。
但没有办法将两者合并回来。不存在两个会话之间的合并、没有差异比较,也没有办法拒绝发布一个评估指标回退的 agent。会话的记录是纯 JSONL 格式,任何人都可以编辑。会话保存了对话的内容——产生这个对话的 skill、子 agent、模型和目标本身并未被版本化。
这个仓库填补了这个空白。
from claude_agent_sdk import query, ClaudeAgentOptions
options = ClaudeAgentOptions(
plugins=[{"type": "local", "path": "/path/to/evolving-agents/plugin"}],
)
完整详情见 plugin/README.md。MCP 服务器没有任何运行时依赖——仅使用标准库,并配有测试以确保这一点永远不会改变。
它曾是 Evolving Agents Toolkit:跨越十二个子系统的 18,680 行代码——一个组件库、一个 agent 总线、智能记忆、一个演变循环,以及一个名为 Firmware 的治理层。由 MongoDB Atlas 提供支持。
它有三个测试函数。
这个数字讲述了故事。EAT 不是一个失败的产品;它是一个被记录下来但从未固定到任何可以反驳它的东西上的架构。
大部分代码现在已被删除,因为 SDK 做得更好——docs/WHAT-WAS-DELETED.md 列出了 10,165 行代码以及什么替代了每一个。Firmware 要求一个模型"永远不要使用危险的导入",用字符串形式编写;一个返回 permissionDecision: "deny" 的 PreToolUse 钩子会停止调用,不管模型决定了什么。我们不会为一个已经解决的问题提供自己的版本。
保留在 legacy/eat/ 中的是今天所发布内容的历史。如果你只读一个东西,请读 evolution/:337 行代码关闭了 agent 变化和该变化被保留之间的循环,但没有任何东西来验证这个变化是一个改进。avcs_freeze 是同样的想法,但补充了缺失的一半。
这里的声明是有度量的,包括那些回来时结果打平的声明。
双嵌入解析器并无帮助。EAT 对每个组件进行了两次索引——一次用于它是什么,一次用于它用于什么。重新构建并测量:两种方式的准确度@1 都是 80%,没有区别。第二个轴确实是不同的(余弦 = 0.753);它只是在现代编码器上没有买到任何东西。
这个组织的"字节级相同的有线格式"声明是错误的。三个操作码正则表达式中的两个匹配;HALT 已经以改变解析内容的方式发生了偏差。通过编写测试而不是重复这句话发现的。
pip install git+https://github.com/EvolvingAgentsLabs/evolving-agents 不再安装 evolving_agents 包——这现在是一个单一仓库。直接安装你想要的:
pip install ./packages/agentvcs
2025 包位于 legacy/eat/,包含其原始的 setup.py,未做任何改动。
由 Matias Molinas 和 Ismael Faro 创作 · Apache 2.0