news 2026/10/4 8:39:59

Agent学习——上下文工程(一)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Agent学习——上下文工程(一)

一,上下文工程回顾

之前在agent概览中提到过上下文工程包含的部分,包含了系统提示词,工具定义,工具调用返回结果,历史记录和思考过程。上下文是决定了agent能力上限的关键。

这里有一个一般人的会有的误区,上下文工程绝对不是prompt优化比如在提示词中多添加“绝对不可以”、“必须要”这类的修饰词来限制模型。这会产生许多缺点,首先就是模型是不可控的只是添加输入是无法优化agent。必须要这样理解,模型只是做决策,只能做决策真正决定模型输出是输入的信息,这个信息就是上下文。

二,agent通过api调用上下文

要让agent变得聪明就必须要在调用上下文时添加api,让整个过程变得透明。不是依赖于模型本身,觉得模型足够聪明可以自行调取上下文,这是不可取的,必须要用代码的形式展现出来。

上下文可以分为动态和静态部分,静态为系统提示词(定位模型当前的角色)和工具定义,动态为历史记录,工具返回结果和当前用户消息。结构图为:

其中每一块都在调用api时有具体命名,分别为:system(系统提示词),user(用户消息),assistant(助手消息:包含了之前的文本回复和工具调用),tool(工具返回结果)。此外tools(工具定义)是作为独立字段而非消息。这样设计是为了更好的调取api,当模型无法通过本身来回答时就会调取外部的api。

agent调用api的流程为:模型处理静态前缀和动态轨迹获取信息,发现需要调用工具来获取信息,发起第一次请求,得到工具调用结果和上一轮对话信息历史记录全部打包开始第二轮api调用若发现已得到工具返回结果跳出循环。

以上的agent带工具调用的多轮交互就是agent的核心。但同时随着轮数的增加动态轨迹部分会成指数级增长,为了解决这个问题就需要用到KV Cache优化和上下文压缩技术了。

三,KV Cache

这个和transform有着相似之处,为什么它能大大提升agent的处理速度呢,首先先来了解kv是什么。

在静态前缀和动态轨迹输入给模型之前会利用拆词器将它们转化为一个个的token,每个token都有自己的向量信息(由模型参数和词向量决定),叠加这个token在语句中的位置向量也就是它现在在哪个位置,就会产生qkv三个新的向量,其中q用来查询,k是用来匹配,v则是用来存储这个token的真正信息。

那这个和agent上下文有什么关系呢。有关系而且使用kv cache能大大提升agent的上下文能力,根据上述信息我们可以知道每个token的kv只和本身的词向量、模型的参数以及之前的token的词向量有关,只要前面内容没变不论进行多少次的react都不会变。我们就可以使用缓存将前文的kv给存入,只取最后一个token的qkv来计算可以很快得到下一个token是什么。所以在使用kv cache时只有计算第一个token的时间最长,后续都可以复用前面计算的结果。模型本身是无状态的,当用户输入、历史记录和工具结果输入时若不进行缓存会大大降低生成的效率,若在缓存中存入上一轮的kv值下轮来复用就可以加快模型的处理速度。可以让模型不用反复计算每一次的输入信息。

但仅仅只是这样并不能完全解决agent处理效率慢的问题,因为缓存容量是有限制,随着会话次数的增加,缓存也会装不下,这是就该使用上下文压缩技术了。并且若是将所有原始信息都塞给模型也是不可取的,这会导致上下文腐化噪音过多。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/4 8:39:47

ArcGIS分区统计详解:用Zonal Statistics快速计算栅格众数、中位数等指标

很多刚接触ArcGIS的人,拿到“按矢量范围统计栅格数据”这个需求时,第一反应就是“裁剪”,把栅格按矢量边界裁出来,然后打开属性表看统计结果。这个思路本身不算错,但一旦涉及的数据量变大、矢量范围变多、或者要统计的…

作者头像 李华
网站建设 2026/10/4 8:39:17

Java工程师如何把大模型接入Spring Boot实现AI落地

最近总有人问我:Java工程师是不是要被AI取代了?我的回答恰恰相反。Java工程师在AI时代的核心机会,根本不在训练模型,而在把AI落地到一个个真实业务系统里。这个赛道不仅没被堵死,反而因为大模型普及变得越来越宽。你不…

作者头像 李华
网站建设 2026/10/4 8:39:06

OpenShell完全指南:Windows经典开始菜单恢复与自定义技巧

1. 从Classic Shell到OpenShell:为什么还有人要坚持用"过时"的开始菜单1.1 微软押注新式开始菜单,老用户却不买账Windows 11 发布之后,我身边不少朋友的第一反应不是"哇,新界面好漂亮",而是"…

作者头像 李华
网站建设 2026/10/4 8:37:59

从面粉与油盐开始:一个仓储新人的行业进阶之路

很多人刚入行时,心里都藏着一句没说出口的话:“我就干这个吗?”尤其是走进仓库,看见一袋袋面粉、一箱箱蛋糕粉、一瓶瓶油盐酱醋,心里难免会空一下。流程不熟,系统不懂,同事忙得顾不上你&#xf…

作者头像 李华
网站建设 2026/10/4 8:37:44

T7920加装显卡实战:供电、BIOS、散热与驱动全解析

捡到一台二手的DELL Precision T7920,第一反应多半是捡到宝了——双路Xeon、四通道内存、大机箱、白金电源,拿来跑渲染、挂虚拟机、做模型推理都是好胚子。但等你真把显卡拿在手里准备往机箱里塞的时候,才会发现这台机器根本不按普通台式机的…

作者头像 李华
网站建设 2026/10/4 8:37:35

DMX512协议C语言实现:从微秒级时序到RS-485硬件控制

1. 项目概述:为什么一个看似“过时”的协议,至今仍是舞台灯光工程师的硬通货?DMX512协议——这个名字听起来像上世纪90年代的电子词典,但如果你走进任何一场专业演出、大型演唱会、主题乐园夜场或高端商业空间的控制室&#xff0c…

作者头像 李华