darwin-memo

io.github.rogermsc由 GitHub 账号 rogermsc 发布v0.7.1更新于 Oct 24, 2026

Self-curating agent memory kept honest by survival-based selection over measured outcomes.

发布方自己的服务:Darwin

已验证STDIO仅桌面知识与记忆开发者工具

概览

AI 生成的概览

一个本地 MCP 服务器,为编码代理提供持久、自我筛选的仓库经验记忆,并与实测任务结果关联。

可以做什么
在开始任务前查询已存经验并开启工单,任务完成后添加新经验。通过仪表盘和检查工具查看经验、其结算记录与移除原因。保留由宿主管理:结果会改变有界能量余额,维护计时会移除或合并条目,固定可豁免经验。结算只是把结果与查询过的经验关联,并不证明因果关系。
适用场景
适用于使用 pytest 和 GitHub Actions 的 Python 仓库,希望代理跨任务携带仓库经验,并根据上报结果观察哪些经验得以保留。适合愿意运行生成的工作流并把绑定的存储随改动提交的团队。
运行要求
通过 stdio 在本地运行,通常用 uvx 从 PyPI 启动。需要 Python 3.10 或更高版本,MCP 支持为可选附加项。持久化需要本地文件系统上的 POSIX 咨询锁,因此不支持 Windows 和共享网络存储。环境变量 DARWIN_MEMO_PATH 指定记忆文件位置(默认 ~/.darwin-memo/memory.json)。构建仪表盘需要 npm。
安装前请注意
README 说明节省成本的收益尚未得到证实,结算也不证明因果关系。记忆可能有害,有用的经验可能被淘汰,控制足够多结果报告的攻击者可以操纵保留。推荐配置把结算和保留变更留给宿主,但这不能防止对存储、评估或工作流有写权限的人。一次只处理一个任务;独立的 Git 快照不会合并。

安装

在 SourceWeft 中

  1. 打开 控制台中的 darwin-memo,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

darwin-memo

Measured memory for coding agents. Keep repository lessons, connect them to reported task outcomes, and inspect why each lesson stays or is removed.

Start with Python projects using pytest, GitHub Actions, and an MCP client. The core uses only the Python standard library. MCP support is an optional extra.

The product goal is lower total operating cost while preserving task success. That benefit is not established by the committed experiments. A smaller memory store or a larger energy balance is not a savings measurement.

See the mechanism in 60 seconds

From this reviewed checkout:

bash
python -m pip install -e .darwin-memo demo --out /tmp/darwin-demo.jsondarwin-memo ui /tmp/darwin-demo.json

The demo uses a filesystem-backed simulation: file deletion uses file size, and protected-file recreation incurs a modeled penalty of three times that size. It does not measure restoration scratch space, I/O cost, or money. Open a lesson in the dashboard to inspect its settlements and removal reason.

To try the coding workflow with a real failing evaluation, use the fixed pytest example. Its authentication-retry defect changes one fixed case from failure to success. The example demonstrates settlement; it does not establish that memory caused the fix.

Install the development workflow

The init and task commands in this checkout are unreleased. Install them from the reviewed checkout on Python 3.10 or later:

bash
python -m pip install -e '.[mcp]'

Build the dashboard from this checkout before packaging it:

bash
npm ci --prefix uinpm run build --prefix ui

Persistence requires POSIX advisory locks on a local filesystem. Windows and shared network stores are unsupported; the package refuses lockless persistence.

Connect one repository

  1. Run darwin-memo init --profile github-pytest at your repository root.
  2. Configure your MCP client using .darwin-memo/mcp.example.json.
  3. Add a repository lesson and query memory before a task.
  4. Bind the returned ticket to the repository, task, base commit, and fixed evaluation.
  5. Complete the task and commit the bound store with your changes.
  6. Run the generated GitHub Actions workflow against that task commit.
  7. Download its outcome artifact and carry the accepted store forward.
  8. Open the dashboard to inspect the reported outcome and retained lesson.

The GitHub pytest guide includes setup requirements and the generated operating instructions. init refuses overwrites and changes no global agent settings. The recommended MCP configuration exposes query, add, and inspection while reserving settlement and retention mutations for the host. It reduces accidental self-awarded credit; it does not protect against a malicious actor with write access to the store, evaluation, or workflow.

The workflow compares the same base evaluation at both commits. Added passing tests earn no credit. Green-to-green results earn zero. Missing observations or infrastructure failures abstain and leave the ticket pending. Bound settlements record repository, task, commit, run, evaluation fingerprint, and report hashes. Process one task at a time: independent Git snapshots do not merge.

Understand retention

A query retrieves lessons and opens a ticket. A later outcome moves the consulted lessons' bounded energy balances. Ticks charge upkeep; entries that reach the floor are removed, and similar entries can merge. Pinning exempts a lesson from removal and consolidation. The glossary explains the terms.

Settlement associates outcomes with consulted lessons. It does not establish causation. Passing tests are observable outcomes, not physically conserved resources. ci, operator, and agent identify reporting paths. Historical measured labels are caller claims; absent provenance is unknown. None of these labels authenticates a report by itself.

CLI, dashboard, and MCP mutations lock the full load–modify–save operation. MCP reloads on each call, cached embeddings survive unrelated writes, and stale Python writers are rejected. Retry the whole operation after contention. See the store format and API reference.

Inspect the evidence

QuestionEvidenceWhat it supports
What happens under corrupted feedback?Central attack-table reconstruction, committed observationsA controlled simulated comparison with a modeled restoration penalty, including failure boundaries
Does a tuned counter compete?Counter sweep, paperNegative findings for universal superiority; tuned forgiveness can retain useful memory under small attack budgets
Does memory reduce total coding cost while preserving success?Prospective protocolAn unanswered question; historical results lack the required complete cost comparison and noninferiority evidence
Can users complete and retain the workflow?Pilot and release recordPending external observation; no fabricated adoption counts

Reconstruct the paper's central table without an installation or network:

bash
python tools/reconstruct_paper.py

The paper, Attacking the Curator, focuses on the feedback-corruption threat model, curator comparisons, and a reusable reproduction artifact. Historical replays remain replays. Read the claim audit, reproduction paths, and submission status.

Limitations and participation

Memory can be harmful, useful lessons can starve, and an attacker who controls enough outcome reports can control retention. A fixed evaluation can still be incomplete or gameable. The threat model defines the boundary. If no memory performs best in the cost study, the release will report that result.

Other integrations remain available; the GitHub pytest profile is the supported first-release path. Report setup failures with the diagnostic issue template, or choose a bounded contributor task. Release promotion, participant contact, paid experiments, and submission remain separate authorized actions.

来源:README.md,提交 0f8209d

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.7.1最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

其他 Darwin 集成