当前位置: 首页 > news >正文

【Agent 开发中数据是怎样处理的】:从输入到输出的完整数据流——上下文工程、记忆管理与四大实战案例

【Agent 开发中数据是怎样处理的】:从输入到输出的完整数据流——上下文工程、记忆管理与四大实战案例

写在前面:大多数人以为 Agent 开发就是写好 prompt、调好工具——这是远远不够的。Agent 的本质是"数据转换器":输入非结构化文本 + 结构化参数 + 检索文档 + 历史记忆,输出结构化指令 + 文本回复 + 记忆更新 + 状态变更。每一次 Agent 循环,都是一次数据形态的转换。理解了数据流,就理解了 Agent。今天,我们从 ReAct 循环的数据视角、五层上下文架构、记忆管理到四大实战案例,彻底拆解 Agent 开发中的数据处理。


📑 文章目录

  • 🔄 一、ReAct 循环的数据视角:观察→思考→行动
  • 🏗️ 二、五层上下文架构:Agent 的"信息世界"
  • 📊 三、四大实战案例与核心挑战

🔄 一、ReAct 循环的数据视角:观察→思考→行动

1.1 Agent Loop 的本质是数据处理循环

Agent 的核心运行模式是 ReAct 循环:观察(Observation)→ 思考(Thought)→ 行动(Action),不断迭代直到任务完成。从数据视角看,每一次循环都是一次完整的数据处理流程:

观察阶段:接收外部数据。用户消息、工具返回结果、系统事件、环境状态变化——所有外部信息都在这一步进入 Agent 的"感知系统"。观察数据可能是文本(工具输出)、结构化数据(API 返回的 JSON)、甚至多模态数据(图像/音频)。

思考阶段:LLM 推理。将当前观察 + 历史上下文 + 系统指令组装成 prompt,送入 LLM 进行推理。LLM 的输出是结构化的"决策"——下一步该做什么、调用什么工具、传什么参数。这一步的核心挑战是:如何把所有必要信息塞进有限的上下文窗口。

行动阶段:执行工具调用。解析 LLM 输出的结构化指令,调用对应工具,获取执行结果。工具返回的数据又成为下一轮的"观察"——循环继续。

1.2 数据在循环中的六种形态

在 Agent 循环中,数据以六种形态不断转换:

原始输入。用户消息、文件上传、API 触发。这是数据的"原始形态"——可能是自然语言、代码、图片、甚至语音。Agent 的第一步是将原始输入解析为可处理的结构。

上下文组装。将系统提示 + 会话历史 + 记忆 + RAG 检索结果 + 工具描述 + 当前观察,组装成完整的 LLM prompt。这是数据处理的"核心环节"——决定了 Agent 能"看到"什么信息。

LLM 推理输出。LLM 生成的文本,包含思考过程和结构化指令。需要从自然语言中解析出工具调用意图、参数、以及纯文本回复。这是数据从"非结构化"到"结构化"的关键转换。

工具调用参数。解析后的结构化数据,格式为 JSON,包含工具名称和参数。这是 Agent 与外部世界交互的"指令格式"——必须严格符合工具的 Schema 定义。

工具执行结果。工具返回的数据,可能是文本、JSON、文件、图像等。这是 Agent 从外部世界获取的"新信息"——需要被解析、提取关键信息、注入下一轮上下文。

记忆更新。从交互中提取需要持久化的信息——用户偏好、任务状态、关键事实。这是数据的"沉淀"——让 Agent 在跨会话中保持连贯性。

1.3 Agent 数据处理的关键原则

数据最小化。只把必要的信息注入上下文。每多一个 Token,LLM 的推理质量就下降一点。工具返回 1000 行 JSON?只提取 Agent 需要的 5 个字段。RAG 检索到 20 个文档?只重排序保留最相关的 3 个。

结构化优先。Agent 内部的数据传递尽量使用结构化格式(JSON/Schema),而非自然语言。结构化数据解析可靠、校验方便、Token 效率高。LLM 输出的工具调用参数必须是结构化的——这是 Agent 可靠性的基础。

渐进式加载。不要一次性把所有数据塞进上下文。先加载摘要/元数据,需要时再按需加载详细内容。大文件不全量读取,而是先看目录/摘要,需要时再读取特定章节。

容错与重试。数据处理每一步都可能失败——LLM 输出格式错误、工具调用超时、RAG 检索无结果。每一步都需要错误处理和重试机制。Agent 的鲁棒性 = 数据处理的鲁棒性。


🏗️ 二、五层上下文架构:Agent 的"信息世界"

2.1 上下文工程的五个层次

上下文工程(Context Engineering)是 2025-2026 年 Agent 开发最核心的概念之一。它超越了传统的"提示工程"——不仅关注怎么写 system prompt,更关注 Agent 的整个"信息世界"如何构建。

Anthropic 和多个研究团队提出了五层上下文架构:

第一层:系统上下文(System Context)。Agent 的"身份定义"——系统提示、角色设定、行为规则、安全约束。这一层最稳定,几乎不变。它定义了 Agent “是谁"和"怎么做事”。好的系统上下文应该简洁、明确、无歧义——每个多余的 Token 都是在浪费上下文窗口。

第二层:会话上下文(Session Context)。当前会话的对话历史——用户消息和 Agent 回复的交替序列。这一层随交互增长,是 Token 消耗的大头。管理策略包括:滑动窗口(保留最近 N 轮)、摘要压缩(旧对话压缩为摘要)、优先级排序(重要对话保留,闲聊丢弃)。

第三层:记忆层(Memory)。跨会话的持久化信息——用户偏好、历史任务、关键事实。分为短期记忆(当前任务状态)和长期记忆(用户画像/知识库)。记忆的挑战是:存什么、怎么存、何时取、取多少。Mem0 等记忆管理框架提供了自动化解决方案。

第四层:工件层(Artifacts)。Agent 创建和管理的持久化对象——文件、代码、图表、报告。Manus 等 Agent 把文件系统当作"外部记忆",通过路径引用而非全文加载。这是处理大对象的关键策略:引用 > 全文。

第五层:按需检索(On-demand Retrieval)。RAG 检索的外部知识——文档、网页、数据库记录。用户查询 → 嵌入 → 向量相似度搜索 → Top-K 结果 → 重排序 → 注入上下文。这一层最动态,质量最不稳定,但也最关键——垃圾进 = 垃圾出。

2.2 上下文窗口的 Token 预算分配

假设 Agent 使用 128K Token 的上下文窗口,一个典型的 Token 预算分配如下:

上下文层Token 预算占比管理策略
系统上下文2K-5K2-4%精简、固定
工具描述3K-10K3-8%工具门控:只加载相关工具
会话历史10K-30K8-23%滑动窗口 + 摘要压缩
RAG 检索5K-20K4-16%重排序 + 质量过滤
记忆注入2K-5K2-4%相关性筛选
工件引用1K-3K1-2%路径引用替代全文
LLM 输出预留4K-8K3-6%生成空间
合计27K-81K21-63%留有余量

关键洞察:工具描述是隐藏的 Token 杀手。一个有 50 个工具的 Agent,工具描述可能消耗 10K+ Token——在用户消息还没进来之前。这就是"工具门控"(Tool Gating)如此重要的原因:根据任务动态加载相关工具,而非全量加载。

2.3 RAG 数据管道:从原始数据到上下文注入

RAG(Retrieval-Augmented Generation)是 Agent 获取外部知识的核心管道。完整的数据处理流程包括六个步骤:

步骤一:数据收集。从数据源获取原始数据——网页、PDF、数据库、API。数据格式多样、质量参差不齐。

步骤二:数据清洗。去除 HTML 标签、广告、导航栏等噪声。统一编码、修复格式错误。数据清洗的质量直接决定后续所有步骤的效果。

步骤三:分块(Chunking)。将长文档切分为适合嵌入的小块。分块策略包括:固定大小(512 Token/块)、语义分块(按段落/章节)、递归分块(多层级)。分块大小是关键超参数——太大则检索不精确,太小则丢失上下文。

步骤四:嵌入(Embedding)。将每个文本块转换为高维向量(如 1536 维)。嵌入模型的选择影响检索质量——OpenAI text-embedding-3-large、Cohere embed-v3、BGE-M3 是当前主流选择。

步骤五:索引与存储。将向量存入向量数据库——Pinecone、Weaviate、Chroma、Qdrant。索引结构(HNSW/IVF)影响检索速度和精度。

步骤六:检索与重排序。用户查询 → 嵌入 → 向量相似度搜索(Top-20)→ 重排序(Cohere Rerank/BGE-Reranker,Top-5)→ 注入上下文。重排序是提升检索质量的关键步骤——向量搜索是"粗筛",重排序是"精选"。


📊 三、四大实战案例与核心挑战

3.1 客服 Agent:RAG 为主,低延迟

客服 Agent 的数据流最简洁:用户消息 → 意图分类 → 查询知识库 → 生成回复。工具调用少(主要 … 上下文窗口溢出 | 最常见 | 滑动窗口 + 摘要压缩 + 优先级排序 |
| 结构化输出不稳定 | 最头疼 | JSON Schema + 重试 + 修复解析 |
| 检索质量不稳定 | 最关键 | 查询改写 + 重排序 + 混合检索 |
| 延迟累积 | 最影响体验 | 并行调用 + 流式输出 + 缓存 |

一句话总结

Agent 开发中数据处理的本质是"数据转换"——从原始输入到最终输出,数据在 ReAct 循环中以六种形态不断转换:原始输入→上下文组装→LLM 推理输出→工具调用参数→工具执行结果→记忆更新。五层上下文架构定义了 Agent 的"信息世界":系统上下文(身份定义)、会话上下文(对话历史)、记忆层(跨会话持久化)、工件层(文件/代码引用)、按需检索(RAG 外部知识)。RAG 数据管道六步走:收集→清洗→分块→嵌入→索引→检索+重排序。四大实战案例揭示了不同场景的数据处理差异:客服 Agent(RAG 为主,3K Token,2s 响应)、编码 Agent(工具密集,30-80K Token,5-15 轮)、研究 Agent(检索密集,50-100K Token,10-30 次检索)、多模态 Agent(Token 密集,20-60K Token,压缩关键)。四大核心挑战:上下文窗口溢出(滑动窗口+摘要压缩)、结构化输出不稳定(Schema+重试+修复)、检索质量不稳定(查询改写+重排序+混合检索)、延迟累积(并行+流式+缓存)。Agent 开发 = 80% 数据工程 + 20% LLM 推理——LLM 是 Agent 的大脑,数据管道是 Agent 的血管,血管堵塞,大脑再聪明也没用。


参考链接

  • Context Architecture for AI Agents (Atlan)
  • Effective Context Engineering (Anthropic)
  • State of AI Agent Memory 2026 (Mem0)
  • Context Engineering Complete Guide (Galileo)
  • ReAct: Synergizing Reasoning and Acting (Yao et al.)
http://www.jsqmd.com/news/844675/

相关文章:

  • 斜率优化 DP
  • 新手入驻卡多多必看 官方唯一邀请码 55555 及权益保障说明
  • 采购管理管什么?一文说清采购管理的本质:开源、节流、避险
  • Adobe-GenP 3.0终极指南:5分钟快速免费激活Adobe全系列软件
  • 沈阳5月名表回收优质榜单整理,闲置腕表出手别错过 - 奢侈品回收测评
  • 别再傻傻用FFT了!用MATLAB的czt函数5分钟搞定频谱细化,精准定位98Hz和99Hz信号
  • 从省一作品到实战指南:单相交流电子负载的硬件设计与调试心法
  • VSCode里PowerShell报错‘conda.exe‘找不到?别急着改环境变量,先检查这个隐藏文件
  • draw.io桌面版终极指南:免费跨平台绘图神器完整教程
  • RTKLIB学习(二)--3、PPP扩展卡尔曼滤波核心实现剖析
  • 废话那么
  • 从Xilinx ZYNQ切换到复旦微FMQL20S400,我的踩坑与填坑全记录(附核心板选型建议)
  • 2026年深圳音视频系统集成一站式解决方案完全指南|政企指挥中心、展厅剧院智能多媒体升级必读 - 企业名录优选推荐
  • 如何快速掌握ZenStatesDebugTool:AMD处理器深度调试的完整实践指南
  • CycleGAN实战避坑指南:用PyTorch训练自己的‘季节转换器’(附数据集处理技巧)
  • CentOS 8.5最小化安装实战:为什么我只选Minimal Install,以及后续必装的10个软件包
  • Trae 调用 MiMo API 报错 400?一文搞懂原因并用 Proxy 完美解决
  • 中电金信智能数据挖掘助手,让数据分析像聊天一样简单
  • 告别手动统计!用Python+WeChatMsg给你的微信聊天做个‘年度报告’(附完整代码)
  • Arm Ethos-N78 NPU性能剖析与优化实战
  • 佛山用户亲测:2026年户外伸缩遮阳雨篷选型避坑指南 - 品牌优选官
  • 粤收回收:一家深耕广州的再生资源回收企业如何构建全链条服务体系 - 品牌优选官
  • 从iwlist扫描到自动联网:嵌入式设备RTL8188EUS WiFi完整配置与开机自启教程
  • Clip Converter实战指南:从网页到硬盘,轻松获取高清视频资源
  • 2026年深圳音视频系统集成与多媒体会议方案怎么选?一站式全包vs多头对接深度对比指南 - 企业名录优选推荐
  • 哈密市巨昌商贸:新疆有实力的钢材批发公司 - LYL仔仔
  • 分期乐购物额度回收:让闲置额度变成灵活可用的现金 - 团团收购物卡回收
  • 『App自动化测试之Appium实践篇』| 从零到一:Appium-Inspector跨平台安装与核心配置实战指南
  • 终极指南:如何用Python实现手机号反查QQ号的3种高效方法
  • Unity软体模拟避坑指南:Obi Softbody的Surface与Volume蓝图到底怎么选?