Agent(1):核心揭秘。每次与大模型对话,究竟发送了哪些数据?

发布时间:2026/6/15 0:38:34

Agent(1):核心揭秘。每次与大模型对话,究竟发送了哪些数据? 第一部分1. 一句话核心总结Agent每次与大模型通信时都必须按照大模型的规则发送四大类数据模型区使用的模型、系统提示词区不易变化的Skill/记忆/规则文件、历史消息区所有对话记录、工具信息区Agent提供的工具描述因为大模型本身是无状态、无记忆的。2. 核心概念定义Agent发送给大模型的数据Agent在与大模型每次对话中必须按照大模型规则传递的四大区域信息mod区、系统提示词区、历史消息区、工具信息区。前提不是Agent想发什么就发什么必须按照大模型的规则来。大模型的无状态/无记忆特性大模型本身不保存历史对话每次请求都是独立的。因此Agent必须每次都将所有历史消息携带过去大模型才能基于上下文进行推断。消息类型发送消息roleuserAgent发送给大模型的消息回复消息roleassistant大模型回复给Agent的消息3. 分类/类型/步骤Agent发送给大模型的四大区域数据区域名称存放内容特点作用mod区当前使用的模型如ChatGPT 5.5简单固定告诉大模型当前使用的是哪个具体模型系统提示词区Skill、记忆内容、AGENTS.md/CLAUDE.md中的规则等不易变化存放相对稳定的配置和规则大模型从中获取能力边界历史消息区Agent与大模型之间的所有历史消息user assistant一直变化每次都要携带全部弥补大模型无记忆缺陷使其能基于上下文推断工具信息区Agent提供的所有工具name description根据Agent能力变化告诉大模型有哪些工具可用、各自作用是什么历史消息的两种类型发送消息roleuserAgent发送给大模型的消息回复消息roleassistant大模型回复给Agent的消息4. 排序或对比关系四大区域的变化频率变化最频繁历史消息区每次对话都会增加新消息较稳定工具信息区Agent工具集变化时更新最稳定mod区通常不变、系统提示词区Skill/规则文件变化时更新5. 具体建议与注意事项建议学习这块内容可以理解Agent的核心工作原理理解Skill的工作原理理解Agent的工具是如何被大模型使用的注意事项并不是Agent想发送什么数据都可以必须按照大模型的规则来。例如为不支持Skill功能的弱模型开发Agent即使自己在Agent端开发了Skill功能也没用。每次通信都要发送四大区域数据不是只有第一次才发送。Agent必须把自己提供的所有Skill和工具都告诉大模型大模型才知道如何使用它们就像面试时要把能力展现给老板。大模型是无记忆的所以必须每次携带所有历史消息否则大模型不知道之前的对话内容。6. 补充说明误区有人可能认为只需要第一次发送配置信息后续不需要。实际上每一次都要发送全部四大区域数据。此篇基于ChatGPT大模型进行讲解不同大模型的具体格式可能有差异。类比Agent不告诉大模型自己有哪些工具就像面试时不展现自己的能力老板不会录用你。第二部分常见知识点与需了解的概念基础概念类Function Calling函数调用大模型根据用户输入和工具描述决定调用哪个工具并生成参数Agent执行后将结果返回。这是工具信息区发挥作用的核心机制。Token计数与上下文窗口每次发送的历史消息和工具描述都会消耗Token如果超过模型的上下文窗口如128K tokens旧消息会被截断。Agent需要管理历史消息长度。System Prompt vs User Prompt系统提示词System Prompt定义AI的角色、行为准则和能力边界用户提示词User Prompt是用户的具体问题。第一部分将Skill、记忆等都归入系统提示词区但未区分系统提示词和用户提示词的不同作用。工具描述的最佳实践工具描述应该清晰、具体包含使用场景、参数说明、返回值格式大模型才能准确决定何时调用。风险类上下文窗口溢出风险如果历史消息过长或工具描述过多超出模型的上下文窗口Agent需要实现截断、摘要或滑动窗口策略否则会报错或丢失信息。Token成本爆炸每次请求都携带完整历史消息和工具描述长对话会导致Token消耗快速增长产生高昂API费用。敏感信息泄露风险系统提示词区可能包含业务敏感信息如内部API密钥、数据库连接字符串如果这些内容被大模型意外输出或记录存在安全风险。工具信息过时如果Agent的工具集动态变化如运行时添加/删除工具但系统提示词区未同步更新大模型可能调用已失效的工具。实操类历史消息管理策略长对话中实现消息压缩如摘要历史、滑动窗口只保留最近N轮、重要消息标记如系统消息永久保留等策略避免上下文溢出。工具调用的完整流程用户输入 → Agent带工具描述请求大模型 → 大模型返回工具名和参数 → Agent执行工具 → Agent将结果返回大模型 → 大模型生成最终回答。工具描述优化技巧使用{tool_name: get_weather, description: 获取指定城市的天气信息参数city为城市名称}格式为复杂工具提供示例Example明确工具的限制和前提条件。不同大模型的格式差异OpenAIChatGPT使用tool_calls字段AnthropicClaude使用tool_use块开源模型如Llama格式各不相同。Agent需要适配不同模型的消息格式。对比类OpenAI格式 vs Anthropic格式OpenAI将工具描述放在tools数组中Anthropic使用tools参数但格式略有不同传统API调用 vs Agent模式传统API每次独立请求无状态Agent模式通过每次携带历史消息和工具信息实现上下文感知和工具调用能力。Function Calling vs Tool UseOpenAI称Function CallingAnthropic称Tool Use本质都是让大模型调用外部工具但实现细节和消息格式不同。常见误区误区1大模型有记忆不需要每次发历史消息。→ 大模型是无状态的必须每次携带所有历史消息。误区2工具信息只在第一次发送即可。→ 每次请求都要发送因为大模型不记忆。误区3Agent可以自由决定发送什么格式的数据。→ 必须按大模型的消息规范如OpenAI的Chat Completions格式。误区4系统提示词区可以放任何内容。→ 不同模型对系统提示词有长度限制如OpenAI约几千字符且不能放动态变化的数据。误区5工具描述越详细越好。→ 详细但会消耗更多Token且可能让大模型选择困难。需要权衡。进阶知识点并行工具调用OpenAI支持在一次请求中调用多个工具parallel_tool_calls提高效率。视频未提及。结构化输出Structured OutputsOpenAI支持JSON Schema约束工具参数格式确保输出符合预期格式。流式响应中的工具调用在流式模式下处理工具调用如tool_calls的增量传输需要特殊处理逻辑。Multi-Agent通信中的消息格式多个Agent之间协作时消息格式需要扩展如添加sender、recipient、thread_id等字段。消息裁剪与压缩技术使用max_tokens限制单个消息长度用text-embedding对历史消息做语义压缩用LLM自动摘要旧消息。第三部分全面内容总结合并第一、二部分1. 主题概述Agent与大模型通信时必须按照大模型的消息规范发送四大区域数据mod区使用的模型、系统提示词区Skill、记忆、规则文件等不易变化的数据、历史消息区所有历史对话分为user和assistant两种角色、工具信息区Agent提供的工具名称和描述。因为大模型本身是无状态、无记忆的所以每次请求都必须携带全部四大区域数据否则大模型无法知道之前的对话内容、无法使用Agent提供的工具。理解这些数据如何组织是掌握Agent核心工作原理、理解Skill和工具调用机制的关键。2. 分类与对比数据区域内容示例变化频率关键作用mod区model: gpt-5.5极低指定调用哪个模型系统提示词区Skill定义、记忆内容、AGENTS.md规则低仅配置变更时定义Agent的能力边界和行为准则历史消息区{role: user, content: 你好}每次对话增加弥补大模型无记忆缺陷工具信息区{name: write_file, description: 写文件}中工具集变化时让大模型知道有哪些工具可用消息角色对比role: userAgent发送给大模型的消息role: assistant大模型回复给Agent的消息3. 风险与注意事项注意不支持Skill的弱模型Agent端开发Skill功能也没用Agent必须把所有Skill和工具告诉大模型否则大模型不会使用大模型无记忆每次都要发送所有历史消息补充风险上下文溢出长对话历史消息超出模型窗口限制需实现截断/摘要策略Token成本每次携带完整数据导致成本随对话长度线性增长敏感信息泄露系统提示词区可能包含内部密钥或敏感规则工具描述过时动态添加/删除工具时未同步更新大模型可能调用失效工具4. 实操建议历史消息管理实现滑动窗口保留最近N轮对话对超长对话生成摘要替代原始消息标记重要消息如系统消息永久保留工具描述优化清晰描述工具功能、参数、返回值格式为复杂工具提供使用示例避免过度冗长消耗Token格式示例{name: get_weather, description: 获取城市天气参数city:string返回温度/湿度}系统提示词设计区分角色定义你是谁、能力边界你会什么、约束条件你不能做什么控制长度避免超出模型限制通常几千字符将Skill、项目规则AGENTS.md、记忆内容合理组织多模型适配OpenAI使用tools数组和tool_calls字段Anthropic Claude使用tools参数和tool_use块Agent需提供抽象层适配不同消息格式工具调用完整流程实现构造请求包含工具描述和历史消息调用大模型解析返回的tool_calls字段执行对应工具函数将工具执行结果以tool角色消息返回大模型大模型生成最终回答5. 常见误区辨析误区1大模型有记忆不需要每次发历史消息。→ 大模型是无状态的必须每次携带所有历史消息。误区2工具信息只在第一次发送即可。→ 每次请求都要发送因为大模型不记忆。误区3Agent可以自由决定发送格式。→ 必须严格按大模型的消息规范如OpenAI Chat Completions格式。误区4系统提示词区可以放任何内容。→ 有长度限制通常几千字符且不能放动态变化的数据。误区5工具描述越详细越好。→ 需要权衡太短大模型理解不清太长消耗Token且可能让选择困难。误区6Skill功能在Agent端实现即可。→ 如果大模型不支持Skill格式如弱模型Agent端实现无效因为大模型不会解析。通过本篇内容你将掌握理解Agent每次与大模型通信时必须发送的四大区域数据mod区、系统提示词区、历史消息区、工具信息区认识到大模型无状态、无记忆的特性以及为什么每次请求都要携带完整历史消息理解Skill和工具信息存放在哪个区域以及大模型如何知道并使用它们掌握历史消息中user和assistant两种角色消息的区别识别开发Agent时的常见误区如误以为只需第一次发送工具信息为实际开发Agent如OpenClaw、Cursor等打下核心原理基础

相关新闻