mcpField
D
darwin-memo

darwin-memo

本地服务
github.com记忆与知识05 周前更新

关于 darwin-memo

darwin-memo 为编码 Agent 提供基于测量结果的记忆,将仓库经验与报告的任务结果关联。团队可检查经验保留或移除的原因;项目说明尚未证实其能降低成本。

主要功能

  1. 01仓库经验的存储与查询
  2. 02按结果更新经验能量
  3. 03经验保留、移除与合并规则
  4. 04检查结算信息的仪表板
  5. 05GitHub Actions 结果工作流

适用场景

  1. 01为编码任务记录仓库经验
  2. 02查看经验被保留或移除的原因
  3. 03在 GitHub Actions 中运行固定 pytest 评估

MCP 相关

可选的 MCP 服务向 MCP 客户端提供记忆查询、添加和检查操作。结算与保留策略变更由宿主端执行。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"rogermsc-darwin-memo": {
"command": "uvx",
"args": [
"darwin-memo"
],
"env": {
"DARWIN_MEMO_PATH": "<DARWIN_MEMO_PATH>"
}
}
}
}
启动命令uvx darwin-memo
需要配置的环境变量
DARWIN_MEMO_PATHPath to the persistent memory file (default ~/.darwin-memo/memory.json)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypidarwin-memo0.7.1

工具

8

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

参数类型必填说明
querystring是
half_lifenumber否

详细介绍

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 和共享网络存储;该软件包会拒绝无锁持久化操作。

连接一个仓库

  1. 在仓库根目录运行 darwin-memo init --profile github-pytest。
  2. 使用 .darwin-memo/mcp.example.json 配置 MCP 客户端。
  3. 添加一条仓库经验,并在任务开始前查询记忆。
  4. 将返回的票据绑定到仓库、任务、基础提交和固定评估。
  5. 完成任务,并将已绑定的存储与更改一同提交。
  6. 针对该任务提交运行生成的 GitHub Actions 工作流。
  7. 下载结果产物,并将已接受的存储沿用到后续任务。
  8. 打开仪表板,检查报告的结果和保留的经验。

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 配置是首个正式版本支持的路径。请使用诊断问题模板报告设置失败,或选择一项范围明确的贡献任务。发布推广、参与者联系、付费实验和投稿仍是彼此独立且需要授权的操作。

评论

支持 Markdown

第一次接触 MCP?

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

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