乐于分享
好东西不私藏

给 AI 编程 Agent 一套“不失忆”的工作记忆:flowctx 开源了

给 AI 编程 Agent 一套“不失忆”的工作记忆:flowctx 开源了
给 AI 编程 Agent 一套“不失忆”的工作记忆:flowctx 开源了         

项目地址:https://github.com/Ayou-Claw/flowctx

如果你经常让 AI Agent 处理复杂代码任务,大概率遇到过这种情况:

刚开始,它能记住需求、文件结构、排查路径、失败尝试和测试结果;聊到后面,上下文越来越长,工具输出越来越多,它突然开始重复搜索、忘记约束、重走已经排除的路线。

这不是简单的“模型不聪明”。很多时候,是上下文窗口管理出了问题。

传统做法往往很粗暴:窗口快满了,就截断早期对话;或者把历史压成一段笼统摘要。问题在于,软件工程任务里的“早期信息”并不一定过时:一个错误日志、一个函数签名、一个失败 patch、一个隐藏约束,都可能是后续修复的关键。

flowctx 想解决的就是这个问题。

flowctx 是什么?         

flowctx 是一个面向 OpenClaw 的开源 ContextEngine 插件,定位是本地优先的短期工作记忆与上下文管理层。

它的核心理念很简单:

> 记忆应当渐远,而不是骤断。

它不把上下文看成“装满就截断”的缓冲区,而是把一次 AI 编程会话看成一段有纵深的工作记忆:越近的信息越清晰,越远的信息越凝练,但不真正遗忘。

GitHub 仓库:https://github.com/Ayou-Claw/flowctx中文 README:https://github.com/Ayou-Claw/flowctx/blob/main/README.zh.md流程演示:https://ayou-claw.github.io/flowctx/docs/flow-demo-zh.html

三档记忆:当前任务原文保留,历史逐级压缩       

flowctx 按照信息和当前任务的距离,把上下文分成三层:

记忆层级
处理方式
目标
当前任务
原文保留
刚读到的代码、刚运行的测试、最新需求不丢失
临近历史
结构化压缩
大段工具输出压缩成可恢复引用
更早历史
后台摘要
折叠成分层交接笔记,保留失败路径和关键标识符

最重要的是:当前正在做的事不会被压缩。Agent 刚刚获得的代码片段、错误输出和工具结果会原样进入模型,避免“刚看完就忘”。

而离当前任务更远的内容,会被确定性投影或摘要折叠,既节省 token,又保留可恢复路径。

可逆压缩:省 token,但不把原文丢掉         

flowctx 的结构化压缩不是简单删减。它会把原文保存在本地 CompressionStore 中,并在上下文里留下带 hash 的引用标记。需要时,Agent 可以通过 flowctx_retrieve 按 hash byte-exact 取回原文。

这意味着:

/>
 大段日志可以折叠,但需要时能恢复;           
/>
 大文件片段可以压缩,但不会永久消失;           
/>
 失败尝试可以被摘要,但不会完全丢掉路线;           
/>
 宿主 transcript 始终保留未压缩原文;           
/>
 压缩只是 assemble() 阶段的读时投影,而不是破坏真实会话。           

对于代码 Agent 来说,这点很关键。工程上下文不是普通聊天记录,很多细节只有在后续调试时才显出价值。

KV-cache 友好:不只是“把 prompt 变短”         

长上下文不仅更贵,也可能影响推理效率。flowctx 关注字节稳定的 KV-cache 前缀:通过确定性压缩、分层折叠和读时投影,尽量让上下文前缀保持稳定,减少反复重写造成的缓存损失。

它在三个目标之间做平衡:

1.
当前任务的原始材料直接可用;           
2.
历史材料可压缩、可恢复、可审计;           
3.
上下文前缀尽可能稳定,照顾缓存命中。           

这也是 flowctx 和“直接摘要一下历史”的区别:它不是一次性压缩,而是一套面向长会话 Agent 的上下文引擎。

 评测:token 降了,解题能力没掉         

项目 README 中给出了 SWE-bench Verified 的评测结果:确定性挑选 40 题,覆盖 12 个仓库、跨 3 档难度;关键对照是在共享会话场景下开启或关闭 flowctx。

配置
解决率
平均分
KV 命中率
总 token/题
flowctx off · 共享
68%
71.1
96.1%
288k
flowctx on · 共享
68%
71.8
93.9%
127k

结论很直接:

> 在解决率保持 68% 的情况下,平均每题 token 从 288k 降到 127k,下降约 56%。

换句话说,flowctx 的目标不是“压缩后让模型神奇变强”,而是在不明显牺牲任务质量的前提下,让长会话 Agent 更省、更稳、更少重复劳动。

交互式评测图表:https://ayou-claw.github.io/flowctx/data/bench/flowctx_bench_zh.html

本地优先、可审计、可恢复         

flowctx 的设计对开发者很友好:

/>
 使用 SQLite 持久化 refs、scratchpad、summary;           
/>
 会话重启后仍可恢复上下文状态;           
/>
 不改写宿主 transcript;           
/>
 摘要是加性的 <flowctx-handoff-note>;           
/>
compact() 透传,宿主压缩器仍可作为兜底;           
/>
 运行日志有 [flowctx:trigger][flowctx:engine][flowctx] 等前缀,方便调试。           

如果你在做 Agent 基础设施,这些细节很重要:它不是一个黑盒记忆插件,而是一套可检查、可调参、可恢复的上下文管理层。

 快速体验         

克隆仓库:

git clone https://github.com/Ayou-Claw/flowctx.git
cd flowctx 
npm install ./install.sh

默认安装会构建插件、链接 OpenClaw,并把 plugins.slots.contextEngine 设置为 flowctx

如果只想安装插件、不切换当前 context engine:

./install.sh --no-engine

修改配置后建议运行:

openclaw config validate openclaw gateway restart
 适合谁?         

flowctx 适合这些开发者和团队:

/>
 正在使用 OpenClaw 构建 AI 编程 Agent;           
/>
 经常跑长会话、多文件、多阶段代码任务;           
/>
  工具输出很多,prompt token 持续膨胀;           
/>
  不想用“一刀切截断”牺牲工程上下文;           
/>
  需要本地优先、可审计、可恢复的上下文机制;           
/>
  想研究 Agent 工作记忆、上下文压缩、KV-cache 友好投影。           
写在最后         

AI Agent 的能力,不只取决于模型本身,也取决于它如何管理自己的工作记忆。

flowctx 给 OpenClaw 提供了一种更工程化的答案:当前任务保持清晰,临近历史结构化压缩,更早历史形成交接笔记,所有关键材料仍可恢复。

如果你也在关注 AI 编程 Agent 的长上下文问题,欢迎查看、试用或 star:

https://github.com/Ayou-Claw/flowctx