@dongxi_nlp: https://x.com/dongxi_nlp/status/2066991890348572950

X AI KOLs Following 新闻

摘要

本文是“Context Is A Projection Harness”系列的第6篇,深入探讨了coding agent中context management的核心问题,提出了将完整历史投影为模型所需的小视野的Harness方法,包括Large-Result Preview、Idle-Gap Microcompact、Old-Span Collapse和Auto-Compact Near The Limit等关键技术。

https://t.co/lnLnSmr1Dc
查看原文
查看缓存全文

缓存时间: 2026/06/17 01:43

Context Is A Projection

Harness 系列文章之 6,关于 context management。

在 coding agent的世界里,昨日的重现,就是将昨日重要的事情映射到今天。

A transcript records what happened. Context decides what matters now.

每个 coding agent 最后都会遇到同一个问题: session 会越来会长。

Model 读过文件,跑过命令,搜过日志,改过代码,收到过 validation output,也回答过旧问题。

这些 context 如何管理?

The Naive Append Loop

最直觉的做法很简单,append transcript。但其实这是 context flooding。

一开始,model 似乎更聪明,因为它能看到更多。

很快就会遇到问题:

  • 旧 tool output 会和当前 evidence 竞争

  • 巨大的 shell log 会淹没下一条 instruction

  • retry message,partial read,旧 plan,stale summary 全部挤在一个不断变大的 blob 里

The Multi-Turn Loop

比 Naive Append Loop 更成熟一点的是 5 phase loop,这部分放在文章的末尾。

The Core Split

成熟的 Harness 会把三件事分开:

  • Durable log 应该完整和简洁,它服务 resume,audit,evals 和 debugging。

  • Model-visible context 应该被选择,是 model 为下一步行动需要看到的视图。

  • app state 应该结构化。它不能依赖旧 transcript text 是否还在 prompt 里。

在此,我们定义出了projection:

Projection means to turn the full history into the small, relevant view the model needs for the next step.

这对应了这篇文章的标题:

Context Is A Projection

Projection Happens Before The Model Call

Context management 应该发生在 model call 之前。

Harness projection pipeline:

  • 先从完整 session log 开始,这是 source of truth

  • 再看 context pressure:下一轮回答,tool use,evidence 还需要多少 context 空间

  • 保留最近几轮 verbatim,因为这里通常放着当前任务

  • 大的 output 变成 preview,完整内容留在 prompt 外

  • 已完成的旧片段做显式 summary

  • 注入当前 app state:changed files,validation,goal,tasks 和 fresh evidence

Four Projection Moves

每个动作解决 context management 中面临的不同问题

Large-Result Preview

有些 tool result 太大,不适合在每个 turn 原样放进 context。

例如:

  • test logs,grep output

  • generated files, web fetches

  • dependency trees

弱 Harness 会随机截断,更强的 Harness 则会把完整结果放到别处,然后在 model-visible context 里放一个稳定 preview。

Model 得到足够继续工作的 evidence。

Harness 保留足够的 metadata,用来 resume,inspect,或者重新加载完整结果。

Idle-Gap Microcompact

有些 context 因为时间过去而变得不那么重要。

比如用户吃完午饭回来,或者 session 空闲了一夜。

最新 goal 仍然重要,最近几次 edit 仍然重要。

很久以前的重复 read 和 command output,未必重要。

microcompact 是一个小动作:

Old-Span Collapse

有时一整段 messages 已经完成使命,Harness 可以把这段折叠成 summary。但 summary 应该显式存在:

Model 知道 collapse 发生过,用户可以检查保留下来的内容。

resume 可以围绕 compact boundary 重建 conversation,而不会把 summary 当成一条随机的新 user message。

Auto-Compact Near The Limit

当 context pressure 很高时,Harness 应该在 model call 失败前 compact。

好的实现不能只写一句 “if too long, summarize”。

它需要:

  • warning thresholds:提示用户 context 还剩余多少百分比

  • hard blocking thresholds:超过限制前需要block model call,要求 compact 后再继续

  • recursion guards:防止 compact 又触发新的 compact

  • restored attachments or state blocks:compact 后重新加入attachments、file state、validation、goal 和 tasks。

auto-compact 要保护下一轮,同时保留继续工作所需的 evidence。

The Multi-Turn Loop

context 的管理,在 Multi-turn Loop 中尤其重要。

一个 Multi-turn Loop 大概如下,分为 5 个 phase:

在 loop 中,The next turn 从 committed runtime state 开始。

Phase 2 context projection 负责生成 model-visible view。

Phase 5 负责提交变化,让下一轮从真实的 runtime state 开始。

从 model call 开始,coding agent 的世界状态发生了变化,划分成了昨天和今天。

Model 不需要整个过去,它需要正确的过去、当前 state,以及足够支持下一步的 evidence。

Harness Context management 就是管理和决定 model call 看到的 selected view。

相似文章

@Xudong07452910: 开源项目推荐:Autocontext —— 让你的 AI Agent 递归自我进化 Autocontext 是一个递归自我改进的 harness,专为帮助你的 AI Agent(及其未来迭代)在任何任务上持续成功而设计。它通过迭代执行、真…

X AI KOLs Timeline

Autocontext 是一个开源递归自我改进 harness,帮助 AI Agent 通过迭代执行、评估和知识积累持续优化,生成可复用的 playbook、数据集甚至本地模型,适合构建生产级 Agent 工作流的开发者。

上下文压缩应该保留什么?我观察了六种智能体的处理方式[D]

Reddit r/MachineLearning

分析六种AI编程智能体(Claude Code、Codex CLI、OpenCode、Cline、Cursor、Amp)如何趋同于分层渐进式压缩以处理长上下文,它们在保护内容(用户消息、有状态工具输出)以及是否告知模型压缩方面存在差异,并在成本与准确性之间进行权衡。

@Potatoloogs: https://x.com/Potatoloogs/status/2057391224592667051

X AI KOLs Timeline

本文深度拆解了Agent Harness的概念,即包裹在LLM外部的工程基础设施,包括编排循环、工具调用、记忆系统、上下文管理等12个组件。文章引用Anthropic、OpenAI、LangChain等公司的实践,论证了harness对生产级AI Agent的关键作用。