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

发布于

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

[GitHub 项目链接](https://github.com/pqpo/pragma)

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

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

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

```text
Claude Code 做需求分析

Codex 做技术方案

Codex 实现代码

Claude Code 做独立 Review
```

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

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

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

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

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

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

比如一次任务中发现:

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

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

或者一次排障过程:

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

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

所以 Pragma 的核心思路是:

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

## 所有 Harness 进入同一条 Memory Pipeline

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

```text
Claude Code / Codex / PI

Execution

Evidence

Memory
```

Memory 目前主要分成两类:

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

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

所以最终不会存在:

```text
Claude Code Memory
Codex Memory
```

而只有:

```text
Pragma Memory
```

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

## Context 和 Memory 是两回事

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

刚刚生成的:

```text
requirements.md
architecture.md
review findings
TODO
```

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

而:

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

才更适合进入 **Memory**。

我现在会简单理解成:

> **Context 是这次工作正在知道什么。**
> **Memory 是过去的工作有什么值得继续知道。**

## 最后

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

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

模型和 Agent Harness 会不断变化。
今天是 Claude Code、Codex,明天一定还会有更好的工具。

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

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

```text
Workflow
+ Context
+ Memory
+ Evaluation
```

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

GitHub:

[GitHub 项目链接](https://github.com/pqpo/pragma)

---

原文链接:[点击查看](https://www.v2ex.com/t/1232758)

评论

暂无评论。

0.056114s