GoForum🌐 V2EX

[项目分享] Pragma:尝试解决不同 Agent Harness 之间的记忆断裂

pqpo · 2026-08-07 16:12 · 0 次点赞 · 0 条回复

最近把自己做的项目 Pragma 正式公开了,你觉得有意思或者对你有帮助的话求个 star ,有兴趣的也欢迎提交 pr:

https://github.com/pqpo/pragma

Pragma 不是想再做一个 Claude Code 或 Codex ,而是想解决一个我在长期使用 AI Agent 时越来越明显的问题:

不同 Agent 很强,但工作方式、上下文和经验都被困在各自的 Session 里。

比如一个开发任务可能是:

Claude Code 做需求分析
        ↓
Codex 做技术方案
        ↓
Codex 实现代码
        ↓
Claude Code 做独立 Review

每一步可以使用不同的模型、不同的 Harness 。

真正麻烦的不是怎么调用它们,而是:

前一个 Agent 学到的东西,怎么让后一个 Agent 继续利用?

不迁移 Session ,而是迁移工作语义

一开始很自然会想到:能不能把 Claude Code 的 Session 直接交给 Codex ?

但不同 Harness 有完全不同的 Session 、Message 、Tool Call 、Compaction 等内部机制,而且真正有价值的通常也不是完整的聊天记录。

比如一次任务中发现:

这个项目不能使用 UUID ,
因为历史数据和接口都依赖 ULID 。

真正值得留下的是这个事实

或者一次排障过程:

修改方案
→ 测试失败
→ 找到历史兼容逻辑
→ 调整实现
→ 最终通过

值得留下的是这次经验,而不是几十轮聊天记录。

所以 Pragma 的核心思路是:

不迁移 Session ,而是迁移工作语义。

所有 Harness 进入同一条 Memory Pipeline

Pragma 会把 Claude Code 、Codex 、PI 等不同 Runtime 的执行过程归一化,最终进入统一的 Memory Pipeline:

Claude Code / Codex / PI
          ↓
      Execution
          ↓
       Evidence
          ↓
        Memory

Memory 目前主要分成两类:

Episodic Memory

记录「以前发生过什么」,例如一次任务的目标、尝试、失败、恢复和最终结果。

Semantic Memory

记录「现在认为哪些事情是真的」,例如项目约束、用户偏好和稳定事实。

所以最终不会存在:

Claude Code Memory
Codex Memory

而只有:

Pragma Memory

下一次无论换成 Codex 、Claude Code ,还是未来其他 Harness ,都可以继续利用这些经验。

Context 和 Memory 是两回事

这个边界我觉得也很重要。

刚刚生成的:

requirements.md
architecture.md
review findings
TODO

属于当前任务的 Context,应该直接在 Agent 之间流动。

而:

这个项目过去踩过什么坑
用户长期有什么偏好
什么方案以前失败过
有哪些稳定约束

才更适合进入 Memory

我现在会简单理解成:

Context 是这次工作正在知道什么。

Memory 是过去的工作有什么值得继续知道。

最后

Pragma 想做的事情其实可以浓缩成一句话:

让 AI 的工作方式和经验脱离某个具体 Agent ,变成可以持续积累、复用和迁移的资产。

模型和 Agent Harness 会不断变化。

今天是 Claude Code 、Codex ,明天一定还会有更好的工具。

但如果每换一个工具,我们积累的经验就重新归零,那其实很可惜。

所以我更希望最终留下来的不是某一个 Agent ,而是:

Workflow
+ Context
+ Memory
+ Evaluation

项目目前还在比较早期,欢迎讨论这种跨 Harness 的 Context / Memory 设计。

GitHub:

https://github.com/pqpo/pragma

0 条回复
添加回复
你还需要 登录 后发表回复

登录后可发帖和回复

登录 注册
主题信息
作者: pqpo
发布: 2026-08-07
点赞: 0
回复: 0