关于 darwin-memo
darwin-memo 为编码 Agent 提供基于测量结果的记忆,将仓库经验与报告的任务结果关联。团队可检查经验保留或移除的原因;项目说明尚未证实其能降低成本。
主要功能
- 01仓库经验的存储与查询
- 02按结果更新经验能量
- 03经验保留、移除与合并规则
- 04检查结算信息的仪表板
- 05GitHub Actions 结果工作流
适用场景
- 01为编码任务记录仓库经验
- 02查看经验被保留或移除的原因
- 03在 GitHub Actions 中运行固定 pytest 评估
MCP 相关
可选的 MCP 服务向 MCP 客户端提供记忆查询、添加和检查操作。结算与保留策略变更由宿主端执行。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
8收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| query | string | 是 | |
| half_life | number | 否 |
详细介绍
darwin-memo
为编码 Agent 量化记忆效果。 留存仓库经验,将其与报告的任务结果关联,并检查每条经验为何被保留或移除。
从使用 pytest、GitHub Actions 和 MCP 客户端的 Python 项目开始。 核心功能仅使用 Python 标准库。MCP 支持是可选扩展。
产品目标是在保持任务成功率的同时降低总运营成本。 已提交的实验尚未证实这一收益。更小的记忆存储或更大的能量差额都不代表节省了成本。
60 秒了解其工作机制
在此已审核的检出版本中:
python -m pip install -e .
darwin-memo demo --out /tmp/darwin-demo.json
darwin-memo ui /tmp/darwin-demo.json
演示使用基于文件系统的模拟:删除文件时按文件大小计算,重新创建受保护文件时会产生模拟的惩罚,数值为文件大小的 3 倍。它不衡量恢复所需的临时空间、I/O 成本或金钱成本。在仪表板中打开一条经验,查看其结算记录和移除原因。
如需使用真实失败评估尝试编码工作流,请参阅固定的 pytest 示例。其中的身份验证重试缺陷会使一个固定用例从失败变为成功。该示例演示了结算流程,但不能证明记忆促成了修复。
安装开发工作流
此检出版本中的 init 和 task 命令尚未发布。请在 Python 3.10 或更高版本上从已审核的检出版本安装:
python -m pip install -e '.[mcp]'
打包之前,请从此检出版本构建仪表板:
npm ci --prefix ui
npm run build --prefix ui
持久化需要在本地文件系统上使用 POSIX 建议锁。不支持 Windows 和共享网络存储;该软件包会拒绝无锁持久化操作。
连接一个仓库
- 在仓库根目录运行
darwin-memo init --profile github-pytest。 - 使用
.darwin-memo/mcp.example.json配置 MCP 客户端。 - 添加一条仓库经验,并在任务开始前查询记忆。
- 将返回的票据绑定到仓库、任务、基础提交和固定评估。
- 完成任务,并将已绑定的存储与更改一同提交。
- 针对该任务提交运行生成的 GitHub Actions 工作流。
- 下载结果产物,并将已接受的存储沿用到后续任务。
- 打开仪表板,检查报告的结果和保留的经验。
GitHub pytest 指南包含设置要求和生成的操作说明。
init 会拒绝覆盖现有内容,也不会更改任何全局 Agent 设置。推荐的 MCP 配置会开放查询、添加和检查功能,同时将结算和保留策略变更留给宿主处理。这样可以减少意外自我授信,但无法防范对存储、评估或工作流具有写入权限的恶意行为者。
工作流会在两个提交上比较相同的基础评估。新增的通过测试不会获得任何奖励。从成功到成功的结果奖励为零。观测数据缺失或基础设施故障时,系统会弃权,并将票据保持为待处理状态。已绑定的结算记录会保存仓库、任务、提交、运行、评估指纹和报告哈希。一次只处理一个任务:独立的 Git 快照不会合并。
理解保留机制
查询会检索经验并打开一个工单。后续结果会改变已查阅经验的有界能量余额。每个周期都会扣除维护费用;达到下限的条目会被移除,相似条目可能会合并。固定的经验不会被移除或合并。术语表解释了相关术语。
结算会将结果与已查阅的经验关联起来,但不会确立因果关系。测试通过是可观察到的结果,并非物理上守恒的资源。ci、operator 和 agent 标识报告路径。历史上的 measured 标签是调用方的声明;缺少来源信息时,来源为未知。这些标签本身都无法验证报告。
CLI、仪表板和 MCP 的变更操作会锁定整个加载—修改—保存过程。MCP 会在每次调用时重新加载,缓存的嵌入向量会在无关写入后保留,过时的 Python 写入者会被拒绝。发生争用后,请重试整个操作。请参阅存储格式和 API 参考。
检查证据
| 问题 | 证据 | 支持的结论 |
|---|---|---|
| 反馈遭到篡改时会发生什么? | 中央攻击表重建、已提交的观测结果 | 在建模恢复惩罚的受控模拟比较中,包含失败边界 |
| 调优后的反制方案能否与之竞争? | 反制方案扫描、论文 | 发现不存在普遍优势;经过调优的宽容机制在攻击预算较小时可以保留有用记忆 |
| 记忆能否在保持成功率的同时降低编码总成本? | 前瞻性方案 | 尚无定论;历史结果缺少所需的完整成本比较和非劣效证据 |
| 用户能否完成并保留此工作流? | 试点与发布记录 | 等待外部观察;没有捏造采用数量 |
无需安装或联网,即可重建论文的核心表格:
python tools/reconstruct_paper.py
论文 Attacking the Curator 聚焦于反馈篡改威胁模型、策展器比较以及可复用的复现成果。历史回放仍然只是回放。请阅读声明审计、复现路径和投稿状态。
局限性与参与方式
记忆可能有害,有用的经验可能得不到保留,而能够控制足够多结果报告的攻击者可以控制保留情况。固定的评估仍可能不完整或被操纵。威胁模型定义了边界。如果在成本研究中,不使用记忆的方案表现最佳,发布时将报告这一结果。
其他集成仍可使用;GitHub pytest 配置是首个正式版本支持的路径。请使用诊断问题模板报告设置失败,或选择一项范围明确的贡献任务。发布推广、参与者联系、付费实验和投稿仍是彼此独立且需要授权的操作。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。