Hawa Code Agent 自主上下文管理基础原理

简介: Hawa Code 推出Agent自主上下文管理,摒弃框架层压缩,让模型自主归档冗余消息、卸载长内容至磁盘(保留摘要),显著降低Token消耗(节约超50%),提升长程任务稳定性与成本效率。

Hawa Code 当前不再依赖 Agent 框架层上下文压缩机制,而是采用 Agent 自主上下文管理模式,历史消息交给模型自己管理,保证长时任务连续性,以下是其基础原理说明。

1、Agent 自主上下文管理 VS Agent 框架上下文管理

Agent 框架上下文管理

当前 Agent 上下文管理一般都在 Agent 框架层面,以上下文压缩为例,在执行模型请求的时候 Agent 框架会计算当前历史消息占用上下文的体积,当超出阈值时候通过另一个模型请求对历史消息进行摘要,原始模型请求发送摘要信息进行推理。

以上所有行为都是 agent 框架自主控制的,模型自身没有进行判断。

Agent 自主上下文管理

Agent 自主上下文管理,是通过给 Agent 提供操作历史消息的工具,让模型自主决定管理上下文,比如消息中很多的不再需要的过程消息,模型可以自主删除这些冗余消息。

之所以选择 Agent 自主模式,因为模型越来越“聪明”,在保证风险可控的情况下把月来越多的决策交给模型来判断。包括自身的上下文内容。

2、消息归档

2.1、冗余消息体

Agent 在工作过程中会存在很多的过程消息,比如用 coding agent 修复多个问题 ,coding 会执行多个 Grep 去寻找代码,在找到正确的代码位置前这些查询的消息对于其他问题修复是没有意义的,但是还是会存在上下文当中,占用上下文体积、并且导致 token 使用量指数增加。

如何去掉这些冗余消息?简单方式可以让 coding agent 尽量使用 subagent,这样主 agent 上下文冗余的过程信息就会减少,但是 subagent 粒度不可能一直这么小,subagent 应该是执行一个完整的任务。这样在 subagent 中同样存在这样冗余的过程消息。

2.2、工具定义

归档

定义 Message Archiving 归档工具,逻辑是让模型自己分析哪些消息是不需要了,传递 tool use id 进行归档,如果后续消息内容还是需要的可以回档重新召回历史消息。

摘要

如果归档中有部分是有用消息,可以进行摘要,同时也可以用于回档。如果要对大量的消息进行归档,可以配合下面的消息卸载,把归档内容总结内容保存到磁盘上。

const getInputSchema = memoize(() => {
  return z.strictObject({
    action: z
      .enum(['archive', 'unarchive'])
      .describe('Whether to archive or unarchive the listed tool results'),
    toolUseIds: z
      .array(z.string())
      .min(1)
      .describe('Array of tool_use_id strings to archive or unarchive'),
    summary: z
      .string()
      .optional()
      .describe(
        'Optional summary of information from the archived tool results that is relevant to the current task. Omit if the archived content is not useful for the current task.',
      ),
  })
})

2.3、归档示例

tool use id 被设置为归档后,在发送消息的时候会被显示为占位符号,减少上下文使用。

以下 tool result 消息一经被归档,显示 system 提示消息。

{
    "type": "tool_result",
    "content": [{
            "type": "text",
            "text": "<system>This tool result has been archived. You can use the Message Archiving Tool to unarchive it if needed (tool_use_id: tool_iYma3J2aKnUxeJqx4jK1zqEt).</system>"
        }
    ]
}

3、Agent 自主消息卸载

消息的卸载和记忆有些类似,在历史消息中留存消息的摘要,把真实总结内容放入到磁盘上,不是原始的历史消息是 agent 总结的消息,比如大段的中间总结过程,最终可以汇总为完整总结过程。

同时为了节约 Token 数量,消息卸载工具的入参会进行省略处理,这样历史消息就不会有冗余消息。消息卸载可以和消息归档配合使用。

3.1、工具定义

const getInputSchema = memoize(() => {
  return z.strictObject({
    action: z
      .enum(['write', 'read', 'list', 'delete'])
      .describe('Memo operation: write, read, list, or delete'),
    key: z
      .string()
      .optional()
      .describe('Memo identifier. Required for write, read, and delete.'),
    summary: z
      .string()
      .min(1)
      .max(300)
      .optional()
      .describe(
        'Short summary (≤300 characters). Required for write. Summarizes the content and helps locate the corresponding memo content.',
      ),
    content: z
      .string()
      .min(1)
      .optional()
      .describe(
        'Full reusable content. Required for write. Must contain substantive analysis results (e.g. function responsibilities, call relationships, data flow, key findings).',
      ),
  })
})

3.2、消息卸载示例

{
    "type": "tool_use",
    "id": "tool_UqEQXzf5nfaixOYoqzKGordJ",
    "name": "Memo",
    "input": {
        "action": "write",
        "content": "[FRAMEWORK_PLACEHOLDER — NOT REAL CONTENT]\nThe original Memo content has been persisted to disk by the framework.\n- persistedSize: 381 chars\n- key: \"mcp-ui-manager\"\n- summary: \"MCP 命令入口与 MCPServerManager UI 导航\"\n- recall: use Memo read key=\"mcp-ui-manager\"\nWARNING: Do NOT treat this placeholder as the memo content. The real content is on disk and must be read back with Memo read.",
        "key": "mcp-ui-manager",
        "summary": "MCP 命令入口与 MCPServerManager UI 导航"
    }
}

3.3、幻觉

消息卸载工具的入参被省略掉了,会导致模型模型认为入参就是省略信息,导致调用工具出错,直接存入省略信息。通过以下两种方式解决:

  • prompt 中强化提示模型当前的入参已经被省略掉了。
  • 工具进行入参校验,如果传入摘要信息进行报错。

4、成本

通过消息归档等方式或者消息卸载的方式是否可以做到成本节约。这个要分两个方面来看。

Token 节约

消息归档可以大量的节约 Token ,对于长时任务至少可以节约 50 % 以上的 Token,避免的大量无效 Token 。这个角度上是可以大量节约成本。

Prompt Caching

修改历史消息会导致 Prompt Caching 失效,需要重新建立缓存,这里会导致成本增加。

综合考虑如果指示短任务,几次循环调用消息归档的意义会相对较小。设计消息归档和消息卸载主要还是着重考虑长时任务,任务可以长时间执行不需要被压缩后者很少次数压缩。

欢迎了解使用 Hawa Code https://www.hawacode.com/


目录
相关文章
|
2月前
|
人工智能 运维 自然语言处理
最新版通义千问(Qwen3.7-Max)功能介绍
通义千问Qwen3.7-Max(2026上线)是阿里云新一代旗舰大模型,支持百万级上下文、原生全模态、自主智能体、顶尖代码能力、全链路办公与阿里生态办事六大升级,实现从问答工具到通用AI代理的跃迁,个人端永久免费。
|
2月前
|
人工智能 弹性计算 安全
AI实训营|一句话,云就听你的:用 Agent Toolkit 玩转阿里云
阿里云AI实训营推出Agent Toolkit,让AI Agent安全、稳定操作云资源。告别手动点控台、写Terraform、敲API,只需一句话(如“部署商品网站”),即可自动完成建机、配网、部署、巡检等全流程。含环境搭建+三大实战场景,新手跟练即会。
|
2月前
|
人工智能 API iOS开发
Codex Computer Use 完整指南:AI 自动操控 Mac 与 Windows 桌面实战详解
先说结论。 OpenAI 4 月 16 日给 Codex 桌面 app 发了 Computer Use:Codex 现在能看屏、点按、打字,接管你桌面上的任意 GUI 应用——不再局限于浏览器。macOS 上它在后台跑(不占用你的鼠标键盘,你能同时用电脑干别的),Windows 上是前台接管(5/29 的 v26.527 才补上)。 从「聊天框里的编程助手」变成「会自己动手操作整台电脑的 agent」,这是这次更新真正跨过的那道线。国内照例卡在三道墙——ChatGPT 账号、海外支付、网络——凑得齐走官方;凑不齐,桌面接管这一刀没有等价替代,但编程模型可以用 Codex CLI + 网关本地化
|
2月前
|
存储 关系型数据库 API
|
2月前
|
人工智能 运维 数据可视化
阿里云百炼全链路对接实操指南:账号、API、订阅、应用开发完整教程
阿里云百炼是面向个人开发者、中小企业、大型政企打造的一站式大模型MaaS服务底座,整合自研通义千问全系列模型,同时兼容DeepSeek、Kimi等多款第三方优质开源与商用大模型,统一提供模型推理、API调用、包月订阅、智能体开发、可视化工作流、私有知识库、MCP工具集成等全栈AI能力。整套平台打通从账号开通、密钥创建、算力付费、模型调用到应用上线完整链路,提供零代码、低代码、高代码三层开发模式,兼顾零基础业务人员与专业研发团队,2026年迭代后完善计费管控、权限隔离、数据合规体系,成为国内落地通用AI、编码智能、私有知识库应用的主流服务平台。下文按照前置账号准备、三类接入计费方案、代码调用实操
324 0
|
2月前
|
运维 自然语言处理 监控
Elasticsearch 智能助手:Agent 让运维从经验驱动迈向智能协同
阿里云Elasticsearch智能助手(ES Agent)基于五维数据联动分析,提供自然语言交互式运维能力,覆盖健康巡检、故障诊断、性能优化、容量规划等场景,将专家经验沉淀为可复用Skill,实现从“人工排查”到“智能协同”的升级。
251 0
|
3月前
|
人工智能 弹性计算 API
什么是 AlibabaCloud Agent Toolkit
Alibaba Cloud Agent Toolkit 是面向AI Agent的阿里云智能工具套件,集成OpenAPI、Terraform、CLI与文档能力,提供MCP插件、场景化Skills及执行审计机制,助AI准确查API、生成代码、规划架构、校验部署,实现安全、可靠、可追溯的云上智能运维。
2114 2
|
2月前
|
人工智能 自然语言处理 前端开发
老板让我把整个测试团队换成AI,一个月后他跪着求我回来
本文深度剖析AI测试热潮下的认知误区:AI能替代重复执行,却无法承载判断力、风险决策与业务直觉。裁掉测试人员≠提升质量,反致线上事故频发。核心主张——AI应作“外骨骼”赋能人,而非取代“角色”。关注公众号领AI测试技术合集。
|
2月前
|
存储 运维 安全
阿里云无影云电脑全流程实操指南:开通、部署、权限运维与成本管控完整解读
阿里云无影云电脑是面向个人与企业打造的DaaS云上虚拟桌面服务,所有计算、存储、网络资源集中部署在云端服务器,本地终端仅承担画面输出、键鼠输入等轻量化交互功能,区别于传统物理PC、本地主机。整套产品覆盖个人远程办公、临时开发测试、图形实验,以及企业标准化坐席、外包人员管理、分支机构统一办公、研发测试集群、合规数据管控等多元场景,提供从账号注册、实例创建、多端接入、网络安全配置、分层权限、存储备份、性能调优、成本治理一整套标准化流程,2026年产品体系完成迭代,镜像、权限、自动调度、审计能力全面升级,兼顾易用性与政企合规要求,下文基于官方完整流程分模块详细拆解。
159 0
|
2月前
|
监控 安全 JavaScript
阿里云WAF CC攻击防护规则配置完全指南:从入门到精通
本文全面解析阿里云Web应用防火墙(WAF)的CC攻击防护规则配置方法。文章从CC攻击的原理与危害入手,详细介绍了WAF CC防护的两种配置路径——一键式CC安全防护与精细化自定义防护策略,涵盖防护模板创建、频率参数调优、处置动作选择等核心环节。深入讲解了统计对象、统计时长、阈值、超时时间等关键参数的配置逻辑与最佳实践,并针对大流量攻击、海外攻击源、API防护、误拦截处理等典型场景给出了具体的解决方案。此外,还介绍了访问控制/限流白名单、日志监控告警等配套功能的使用方法。通过本文,读者可以掌握从基础防护到高级定制的完整技能体系,有效抵御各类CC攻击,保障业务连续性与用户体验。

热门文章

最新文章