OPEN SOURCE · 完全本地运行

给你的 AI agent 加上记忆恢复

AgentMesh Runtime 是一层完全本地、开源的 agent 运行时脚手架:跨会话的持久情景记忆、有界 OODA 循环记录、崩溃后干净拾起的能力。装好之后,智能仍然来自你的 agent(Claude Code / OpenClaw / Codex / Hermes / 自定义)——这层脚手架只在底下做记忆、记录、恢复这些脏活。不需账户、不上云、免费、Apache 2.0 开源。

~ run-this-locally
$ git clone https://github.com/jiyangnan/AgentMesh-Runtime.git && cd AgentMesh-Runtime
$ uv sync
$ uv run agentmesh-runtime doctor           # 自检:Neo4j / SQLite / ledger / checkpoint

# 让你的 agent 调用(看 AGENTS.md):
$ uv run agentmesh-runtime memory recall "your query" --top-k 5
$ uv run agentmesh-runtime memory ingest-file ./session.jsonl discord
$ uv run agentmesh-runtime rehydrate --write-default --print-path  # 重启后捡起
为什么需要这一层

Agent 很聪明,可惜记不住,断了就断了

会话一结束、进程一重启、上下文一爆,昨天讨论过的决策、踩过的坑、失败过的尝试,全部归零

AgentMesh Runtime 把记忆、循环记录、断点恢复这层底层脏活做掉,让你的 agent 跨天跨次依然延续——而具体怎么想、怎么决定,仍然在它自己的脑子里。

脚手架能力 · 全在本地跑

5 件 诚实 的事,全部跑在本机。

不夸大,不画饼。下面列的是代码里真的实现了、能跑的能力。决策智能继续来自你的 agent,这层只做底下的事。

i.

多后端持久情景记忆

Neo4j 图召回、SQLite FTS5(BM25 + snippet)、原始文件 grep、可选 Gemini 向量——四层 failover,任一后端挂了其余继续服务。会话事件、决策、教训都能跨次召回。

ii.

有界 OODA 循环记录

Observe / Orient / Decide / Act / Verify / Record 状态机,把每一步落到持久轨迹。真正的决策由 agent 给——脚手架只确保步骤被执行、过程被记录、不偏离纪律。

iii.

崩溃 / 重启恢复

SQLite ↔ Neo4j 延迟同步账本、checkpoint 存储、rehydrate 一键命令——重启后立刻重建"我刚才到哪了",注入新会话开干。

iv.

一键自检 + 反模式检测

doctor 给出 JSON 健康报告;规则式 blind_retry / phantom_progress / pivot_exhaustion 反模式提醒——是计数器加阈值,不是魔法。

谁能驱动

脚手架不挑 agent。

不绑死任何一家。任何能调用本地 CLI 或 Python 包的 agent / 自定义脚本,都能驱动这层脚手架。

CLI / SKILL

Claude Code

agentmesh-runtime 当工具命令调;可写 skill 自动加载。

原生宿主

OpenClaw

本产品的发源地,路径默认就指向 OpenClaw 的运行时目录。

CLI / MCP

Codex

通过 shell 调用 CLI 或包装成 MCP 工具;与 Codex CLI 完全兼容。

本地 agent

Hermes / 自定义

任何能跑 Python 子进程的脚本都能驱动;env 改路径就接好。

本地依赖

三件套,全在你自己的机器上。

没有云端 worker、没有托管数据库、没有付费 API。装好这三样,脚手架就能在本机跑。uv sync 会处理 Python 这边;其余手动装。

RUNTIME

Python 3.10+ · uv

包管理用 uv,对齐 AgentMesh 生态。uv sync 一行装好所有依赖。

GRAPH

Neo4j(社区版可选)

图后端走 docker:docker compose -f docker/docker-compose.neo4j.yml up。挂了不影响——SQLite + 文件 grep 会接住。

VECTOR

Gemini Embedding(可选)

语义召回需要 GEMINI_API_KEY,你自己注册。不配也能跑——只是没向量这一路。

怎么用

设计为 agent-friendly

整个仓库的设计是让 agent 调用,不是给你一行行手敲。你只负责装上 + 告诉 agent 怎么用,剩下的让它跑。

01

装上 CLI

git clone 仓库后 uv sync,得到 agentmesh-runtime / amr 命令;先跑一次 doctor 看环境是绿的。
看 GitHub →

02

把 AGENTS.md 整段交给你的 agent

仓库根目录的 AGENTS.md 是写给 agent 看的——什么时候 recall、什么时候 ingest、什么时候 rehydrate,以及什么话不能对人类许诺。整段贴给你的 Claude Code / OpenClaw / Codex / Hermes 就行。
看 AGENTS.md →

03

agent 在本机跑,跨次延续

新任务前 agent 自己 recall 历史决策、任务后 ingest 沉淀经验、重启后 rehydrate 捡回状态。你这边只看输出,不必接触底层。

常见问题

FAQ.

它自己带 LLM 吗?
不带。这是脚手架,智能由你已经在用的 agent(Claude Code / OpenClaw / Codex / Hermes / 自定义)提供。脚手架做的是记忆、循环记录、崩溃恢复这些底层事情。
它会上云吗?需要账户或 API key 吗?
不会,也不需要。所有数据都在你自己的机器上,没有 AgentMesh360 账户、云服务或 key 要求。可选的 Gemini 向量召回需要你自己的 GEMINI_API_KEY
OODA 循环会替我决策吗?
decideverify 步骤是有意做小的状态机存根——它们记录你做了什么,但不替你想下一步。真正的推理由你的 agent 出,这层只确保步骤被走完、记录被写下、不偏离纪律。
我用的不是 OpenClaw,也能用吗?
可以。默认路径还指向 ~/.openclaw/* 是历史原因,把 ARS_SESSION_BASEARS_MEMORY_DB 改成你自己 agent 的路径即可。Claude Code / Codex / Hermes / 任何自定义 agent 都能驱动。
"SQLite FTS" 真是 FTS5 吗?还是包了个 LIKE?
真 FTS5,带 BM25 排序和 snippet 高亮。这里写实诚——文档里有过一次错误指控说"实为 LIKE",后来对照代码确认 chunks_fts MATCH ? 是正经的 FTS5 表查询,已经撤回(见 决策文档的 errata)。
向量层是 O(n) 暴力余弦吗?
是。个人 / 小团队规模够用,百万级以上向量请外置 pgvector 或 faiss。我们没有装作它是分布式向量库——卖点要诚实。
未来会做托管 server 吗?
暂时不做。如果将来有真实用户问"能帮我托管 Neo4j 吗",会做一个只代管数据库的极薄 server——不是智能层。决策见 docs/decisions/
真的开源吗?
是。Apache 2.0,代码全在 GitHub,欢迎自取、改造、提 issue。