如何让长上下文Agent不遗忘、不跑偏?AxisAgentic上下文压缩与Discard-All双机制详解
【免费下载链接】AxisAgenticAxisAgentic: An Extensible Runtime and Trajectory-Collection Framework for Long-Horizon Agents.项目地址https://gitcode.com/gh_mirrors/ax/AxisAgentic点击查看免费下载跑多轮搜索、抓取、推理的长时程任务时长上下文 Agent 最容易栽在两个坑上上下文越滚越长关键事实被“淹没”而遗忘窗口快满时模型被迫截断或胡言思路直接跑偏。AxisAgentic 是一个面向长时程 AI 智能体的可扩展运行时与轨迹采集框架它用两套互补的上下文管理策略来正面解决这两个问题上下文压缩context_compression定时把旧对话摘要成结构化状态块Discard-All 在 token 用量逼近窗口上限时清空全部工具调用历史、干净重启任务。下面用尽量少的代码讲清楚这两个机制的原理、差异和配置方法。一、为什么长上下文 Agent 会“失忆”长任务比如 BrowseComp 这类多轮网页搜索基准中Agent 每一轮都会把搜索/抓取结果塞进对话prompt token 数量持续攀升。后果有三层关键信息被稀释几百轮之后模型对“已经确认的事实”和“已排除的候选”记忆模糊开始重复搜索、反复改口撞上限prompt 超过模型 context window请求被拒或触发finish_reasonlength任务直接失败注意力跑偏临近窗口上限时模型质量普遍下滑答案开始漂移。AxisAgentic 的做法是让“模型实际可见的上下文”与“完整轨迹日志”分离轨迹日志_full_conversation始终只追加append-only一条消息都不删保证回放、评估和 SFT 导出时能精确重建每一轮模型看到的上下文真正发给模型的 prompt 则由若干**运行时标记marker**重放生成——压缩和丢弃都只记录为标记而非破坏性删改历史。这套契约集中在 agentic/contracts/markers.py整体架构见 docs/architecture.zh-CN.md。二、机制一上下文压缩Context Compression——定时摘要旧事变“状态板”上下文压缩是“软管理”每隔 N 轮 assistant 输出把中间段的旧对话交给一个专门的摘要 LLM压缩成一份结构化状态总结插回对话里顶替那些旧消息最近 N 轮和系统提示 任务描述则原样保留。2.1 三段式切分历史管理器 ContextCompressionManager 会把可见对话切成三段片段内容处理方式prefix开头 system 消息 第一条 user 消息任务描述永不压缩earlier中间的旧对话摘要压缩recent最近recent_window轮约 2 倍条数消息原样保留对应源码逻辑在 _split_history。2.2 摘要不是“读后感”而是九栏状态板很多项目的压缩只是让模型“总结一下”结果摘要质量参差。AxisAgentic 的摘要工具 ContextCompressionTool 用一套严格的系统提示强制模型按九个固定键输出 JSON 状态块confirmed_facts已确认事实必须附来源和置信度current_hypothesis当前假设rejected_paths已排除的搜索路径dismissed_candidates已放弃的候选答案open_questions未解决的阻塞点answer_attempts正在冲刺的最终答案候选conflict_candidates互相冲突的候选值search_state搜索策略与覆盖进度retry_policy需要重试/改写的路径提示词还特别强调不能把猜测写成确认事实、不能复制原始推理链、重复搜索要合并成策略行——这正是防“遗忘”和防“跑偏”的关键新上下文里只保留决策必需的信息且每条都带证据状态。2.3 滚动更新previous_summary 接力每次压缩都会把上一次的摘要作为previous_summary传入新摘要 旧状态 新对话增量合并见 maybe_compress。这样即使任务跑了几百轮状态板始终是一份“当前最新的全量认知”而不是不断叠加的历史包袱。2.4 关键参数配置位于 recipe/web_search/configs/default.yamlagent: context_compression: enabled: false # 默认关闭高预算长任务建议开启 interval: 10 # 每 N 轮 assistant 输出触发一次 recent_window: 10 # 最近 N 轮原样保留只压缩更早部分 llm: base_url: null # 摘要模型端点可另配小模型降本 model_name: null api_key_env: COMPRESSION_LLM_API_KEY经验上当max_turns调到 650 之类的高预算档位时官方建议同时开启压缩见 default.yaml 中的注释避免长 rollout 一路滚进上下文上限。三、机制二Discard-All——token 逼近上限干脆清空重启如果说压缩是“定期大扫除”Discard-All 就是“断舍离”一旦观测到的 prompt token 用量超过上下文窗口的某个比例就丢弃全部工具调用历史只保留 system 提示 原始问题让模型从干净上下文重新开题。这个策略对齐了 DeepSeek-V3.2 / Kimi K2.5 / Qwen3.5 在 BrowseComp 上的公开做法见 discard_all_manager.py 模块说明。3.1 触发条件看真实 token 用量而不是估数DiscardAllManager 是无状态策略器触发逻辑只有三条should_trigger模型服务返回的最近一次 prompt token 数trigger_ratio× context window默认 0.80距上次重置至少间隔min_turns_between轮默认 3防止“前缀本身逼近阈值”时反复空重置可见对话必须比前缀多有内容可丢否则不触发。因为依赖 provider 上报的真实用量Discard-All 要求配置model.context.limit_detection: provider_error两者互斥校验在配置加载时 fail-fast。3.2 重置时保留了什么✅ 全部 system 消息 第一条 user 消息任务本体❌ 其余所有 assistant / tool 消息注意这同样不是物理删除——运行时只是追加一个discard_all标记build_discard_all_marker重放时把可见对话截断到前缀长度。完整轨迹原封不动SFT 导出与线上看到的 prompt 保持逐字节一致。3.3 配套护栏max_tool_calls 全局上限Discard-All 配置还带一个max_tool_calls默认 1800DiscardAllConfig跨整个 attempt 的工具调用总闸不因重置而清零。撞线后强制模型输出最终答案而不是硬终止——保证再长的任务也有体面的收尾。编排器侧的执行与日志见 orchestrator._maybe_apply_discard_all。四、两种机制怎么选维度上下文压缩Discard-All触发时机每 N 轮默认 10prompt token 超过窗口 80%对历史的态度摘要保留认知状态全部丢弃、干净重启额外成本每次触发一次摘要 LLM 调用无额外 LLM 调用知识保留好结构化状态板差依赖重新搜索依赖条件需配置摘要端点需 provider 上报真实 token 用量适用场景长预算、希望“记住”窗口有限、宁可贵一点重复搜索新手建议窗口较大如 256K且任务允许长跑 → 先试context_compression成本是每 10 轮一次小模型调用窗口偏小或端点 token 上限严格 → 用discard_all零额外调用代价是重启后重新搜索两者互斥只能开一个配置层强制校验都没开默认状态时运行时也有兜底generation_limit_recovery 会在撞上下文限制时回滚重试或重试任务空答案兜底empty-finalization始终开启。五、配套的“水位计”Context Length Tracker两个机制背后还有一个共同的底层设施——ContextLengthTracker。它维护可见对话的增量 token 估计支持cheap按字符估算 增量累加等多种 estimator并用 provider 上报的input_tokens在线校准比例消息逐段追加回滚rollback时可精确回退估算值保证回滚、压缩、重置三种操作下的计数一致。也就是说无论运行时当前处于“完整历史”“压缩后”还是“重置后”的状态发给模型的 prompt 长度始终有账可查。对话状态机本体在 agentic/conversations/conversation_runtime.py行为测试覆盖在 tests/test_context_compaction.py 与 tests/test_discard_all.py可以对照阅读验证机制细节。六、上手清单复制配置cp recipe/web_search/configs/default.yaml my-search-run.yaml按第二节或第三节选择一种机制把enabled改为true并核对interval/recent_window或trigger_ratio用 dry-run 校验配置python -m recipe.web_search.runners.run_eval_config \ --config my-search-run.yaml --dry-run跑完后在任务日志里搜[ContextCompression]与discard-all reset关键字确认触发节奏是否符合预期更完整的参数说明见 docs/configuration.zh-CN.md 与 docs/getting-started.zh-CN.md。写在最后长上下文 Agent 的“不遗忘、不跑偏”不是靠一味堆大窗口解决的。AxisAgentic 的答案是把上下文管理做成可观测、可回放、可选策略压缩机制用九栏状态板保住认知Discard-All 用干净重启兜住上限两者共用同一套只追加轨迹契约——模型看到什么轨迹就记什么。理解这两套机制也就理解了当前长时程 Agent 工程里上下文治理的主流思路。赞分享【免费下载链接】AxisAgenticAxisAgentic: An Extensible Runtime and Trajectory-Collection Framework for Long-Horizon Agents.项目地址https://gitcode.com/gh_mirrors/ax/AxisAgentic点击查看免费下载相关推荐Firecrawl Web Agent长任务不丢记忆的秘诀上下文压缩Compaction机制详解Firecrawl Web Agent长任务不丢记忆的秘诀上下文压缩Compaction机制详解 web agentFirecrawl Web AgenOpenClaw 如何理解并调整会话压缩 Compaction让长对话不超上下文OpenClaw 如何理解并调整会话压缩 Compaction让长对话不超上下文 每个模型都有上下文窗口context window即一次能处理的最大AI 应用AI Agent交互助手后端即时通讯网关ok-ww 鸣潮后台自动战斗指南一键日常声骸刷取简单教程实现后台挂机ok ww 鸣潮后台自动战斗指南一键日常声骸刷取简单教程实现后台挂机 ok wwok wuthering waves是一个基于图像识别的开源鸣潮自动化GUI 自动化计算机视觉RPA人工智能创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

RGF 仓颉版输入法组合窗事件 EvImeComposition 详解:捕获并处理 Windows IME 组合状态

RGF 仓颉版输入法组合窗事件 EvImeComposition 详解:捕获并处理 Windows IME 组合状态

图形学桌面应用 【免费下载链接】RGF_CJ RGF是仓颉Windows系统下的通用渲染框架(兼应用开发框架)。RGF仓颉版(后续简称"RGF")基于RGF(C/C版)封装优化而来。RGF为开发者提供轻量化、安全、高性能以及高度一致性的2D渲染能…

2026/10/15 18:16:29 阅读更多 →
深入 menubar 的窗口定位模块:getWindowPosition 与 taskbarLocation 的跨平台实现解析

深入 menubar 的窗口定位模块:getWindowPosition 与 taskbarLocation 的跨平台实现解析

桌面应用开发工具 【免费下载链接】menubar ➖ high level way to create menubar desktop applications with electron 项目地址: https://gitcode.com/gh_mirrors/me/menubar 点击查看 免费下载 本文以 docs/modules/util_getwindowposition.md 这份 API 参考文档…

2026/10/15 18:16:28 阅读更多 →
ARMCC 5.06 Windows安装与Keil配置:嵌入式老工程编译实战

ARMCC 5.06 Windows安装与Keil配置:嵌入式老工程编译实战

简介:ARMCompiler_506_Windows_x86_b960.msi 是 ARM 公司推出的 ARM Compiler 5.06(960) 编译器安装包,面向从事 ARM 架构嵌入式开发的工程师与学习者,尤其适合使用 Keil MDK 进行单片机、物联网终端等项目的开发者。该版本包含符合 ANSI C 标…

2026/10/15 18:15:27 阅读更多 →

最新新闻

基于planetary.js与Three.js的动态地球可视化实战

基于planetary.js与Three.js的动态地球可视化实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 1:34:40 阅读更多 →
Vue3+TypeScript全栈项目实战:工程化、类型与状态管理指南

Vue3+TypeScript全栈项目实战:工程化、类型与状态管理指南

时下很多前端同学刚接触全栈项目时,第一个念头是“我用 Vue3 写页面,后端找一个框架,接口串起来不就行了”。结果真正动手,两天就发现事情没这么简单:项目结构怎么组织、类型要不要专门建一层、接口返回不一致怎么处理…

2026/10/16 1:34:40 阅读更多 →
QQ空间说说备份完全指南:3 步把历史说说和图片搬进硬盘

QQ空间说说备份完全指南:3 步把历史说说和图片搬进硬盘

QQ空间说说备份完全指南:3 步把历史说说和图片搬进硬盘 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory GetQzonehistory 是一款免费开源的 Python 小工具。你用手机扫一次码…

2026/10/16 1:34:40 阅读更多 →
分布式定时任务系列10:XXL-job源码分析之路由策略

分布式定时任务系列10:XXL-job源码分析之路由策略

传送门 分布式定时任务系列1:XXL-job安装 分布式定时任务系列2:XXL-job使用 分布式定时任务系列3:任务执行引擎设计 分布式定时任务系列4:任务执行引擎设计续 分布式定时任务系列5:XXL-job中blockingQueue的应用 …

2026/10/16 1:34:40 阅读更多 →
Snowy 3.x 前端文件在线预览组件 XnFilePreview 使用指南:图片、PDF 与 Office 文档预览实战

Snowy 3.x 前端文件在线预览组件 XnFilePreview 使用指南:图片、PDF 与 Office 文档预览实战

后端前端认证鉴权应用安全 【免费下载链接】Snowy 💖国内首个国密前后分离快速开发平台💖《免费商用》,基于开源技术栈精心打造,融合Vue3AntDesignVue4Vite5SpringBoot3MpHuToolSa-Token。平台内置国密加解密功能,保障…

2026/10/16 1:34:40 阅读更多 →
free-account-tool兑换失败处理清单:3次失败、日上限与CDK释放机制你该知道的事

free-account-tool兑换失败处理清单:3次失败、日上限与CDK释放机制你该知道的事

【免费下载链接】free-account-tool UPI redeem only extension 项目地址: https://gitcode.com/gh_mirrors/cd/free-account-tool 点击查看 免费下载 如果你用过 free-account-tool 这款 UPI 兑换专用浏览器扩展,一定遇到过"兑换失败"的场景…

2026/10/16 1:33:40 阅读更多 →

日新闻

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 0:00:05 阅读更多 →
信号与系统频域分析作业解题指南

信号与系统频域分析作业解题指南

1. 作业背景与核心要求解析信号与系统作为电子信息类专业的核心基础课,其作业设计往往直接关联课程的核心知识框架。2026年春季第六次作业的布置,通常对应着课程进展到频域分析的关键阶段。根据常规教学进度推测,本次作业可能涉及以下核心内容…

2026/10/16 0:00:05 阅读更多 →
Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

1. 从一个"四不像"的练手项目说起如果你已经看完了Django的官方教程前几章,跟着敲完了投票应用,大概会有一种"我好像会了,又好像什么都不会"的割裂感。教程里每个知识点都是拆开的——这一章讲模型,下一章讲视…

2026/10/16 0:00:05 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →