AI News HubLIVE
站内改写2 分钟阅读

构建有状态AI代理:Centri——记忆优先的编码代理

Centri是一个开源项目,通过持久的记忆脊柱解决AI代理的遗忘问题。它采用仅追加的事件脊柱作为真相来源,派生可重新推导的记忆图,确定性地为每轮对话组装上下文。主要功能包括事件脊柱、类型化记忆图、确定性策展、FTS5精确回忆、LLM整合、时间回忆、基于ACP的编码委托、工具合同和历史导入。与Letta的基准测试显示,Centri在处理过时事实方面表现更佳。

来源Hacker News AI作者: suryaankata

Centri是一个开源的记忆优先编码代理,旨在解决AI代理普遍存在的遗忘问题。传统代理在上下文窗口填满、会话结束后,每次新对话都从零开始,导致重复解释已做决策和已拒绝方案。Centri通过引入一个仅追加的事件脊柱(event spine)作为系统的唯一真相来源,颠覆了这一模式。记忆不再依赖于脆弱的上下文窗口,而是从一个持久化日志中派生而来,并可随时重新生成。

Centri的核心架构分为三个部分:Python内存API核心、基于OpenCode的TypeScript/Bun应用外壳,以及Hermes集成插件。事件脊柱是真相来源,类型化的记忆图(包含决策、事实和开放循环)具有双时态取代能力,新事实使旧事实失效,但历史完整保留。每次对话的上下文由纯函数curate()确定性地计算得出,每条信息都附带指向源头事件的ID,保证了可审计性和可复现性。

Centri提供了多项关键功能:

  • 仅追加事件脊柱:记录每个工具调用、文件编辑、决策和结果,并即时脱敏敏感信息。
  • 类型化记忆图:支持双时态取代,旧事实不再出现在新上下文中,但可追溯。
  • 确定性策展:不依赖LLM生成上下文,保证相同输入产生相同输出。
  • FTS5精确回忆:通过SQLite全文索引,可将之前的精确令牌(如文件名、错误字符串)直接引入上下文。
  • LLM整合:离线工作线程将原始事件折叠成用户画像、活跃项目、开放循环等高层信息。
  • 时间回忆:支持“自昨天以来发生了什么变化”等自然语言查询。
  • 基于ACP的编码委托:通过代理客户端协议(JSON-RPC over stdio)将任务委托给编码代理,支持实时流式进度、破坏性操作审批门控和故障切换。
  • 工具合同:Composio工具(如Tavily搜索)通过事件日志记录调用,副作用操作经过审批,只读结果自动回馈记忆。
  • 历史导入:支持一次性引导和持续跟踪OpenCode、Claude Code和Cursor的历史记录,使新安装即拥有完整记忆。
  • Hermes结构化摄入:将Hermes聊天作为类型化、可去重的信封摄入。

快速部署方面,Centri支持Docker一键启动(docker compose up -d),也可手动从源码运行。配置全部通过环境变量驱动,模型无关且自带密钥(BYOK)。默认监听127.0.0.1:8760端口,提供健康检查和状态端点。参考部署方案包括systemd服务搭配Caddy/TLS。

Centri还集成了Hermes作为内存提供者,通过薄插件将Hermes内存调用转译为Centri核心的HTTP API。此外,Centri提供了基准测试工具centri-bench,与Letta v0.16.8(pgvector归档)进行对比。在三个角色平均测试中,Centri在过时事实处理上获得满分1.00,而Letta仅为0.67,复合得分1.00对0.93。

Centri拥有385个测试用例的测试套件,覆盖核心、记忆图、策展、ACP编码循环、工具合同和历史导入。项目采用MIT许可证,其中OpenCode分支保留原上游MIT许可证。完整的文档和路线图可在项目的docs/目录下找到。