Q1082Agent 架构真题解析Agent 架构AgentAlpha 社区真题库约 9 分钟更新 2026-09-29

Agent 的 Prompt 如何压缩以减少 Token 消耗

Agent 的 Prompt 如何压缩以减少 Token 消耗

1️⃣ 考察意图

面试官想看你能否系统性地减少 Agent 的 prompt token 消耗。刁钻点在于:压缩不是简单删字——需要在"信息保持"和"token 减少"之间平衡。过度压缩导致信息丢失、Agent 决策质量下降。答好了能展示你对 prompt 工程的深度理解和成本优化能力。

2️⃣ 标准答

1. Prompt Token 消耗分析

Agent 的 prompt 通常包含:

  • System prompt(500-2000 tokens)
  • 工具 Schema(1000-5000 tokens,取决于工具数量)
  • 对话历史(1000-10000+ tokens,随轮数增长)
  • RAG 检索结果(2000-10000 tokens)
  • 当前用户输入(50-500 tokens)

总消耗可达 5000-30000 tokens/次调用。以 GPT-4o($2.5/1M input tokens)计算,单次调用成本 0.0125-0.075

2. 六种压缩策略

  • 策略 1:System Prompt 精简删除冗余指令:如"你是一个专业的AI助手"可以简化为"AI助手"
  • 合并重复规则:如"用中文回复"和"回复必须是中文"合并
  • 用列表替代段落:列表比段落省 20-30% tokens(减少连接词)
  • 实测:2000 tokens 的 system prompt 可压缩到 1200 tokens(减少 40%) 策略 2:工具 Schema 优化
  • 精简 description:"搜索企业知识库,当用户询问公司政策、产品信息、历史记录时使用" → "搜索企业知识库"
  • 删除冗余参数描述:如果参数名已经自解释(如 query),不需要额外描述
  • 按需加载工具:不把所有工具 schema 都放入 prompt,只加载当前步骤可能用的工具
  • 实测:15 个工具的 schema 从 3000 tokens 压缩到 1500 tokens(减少 50%) 策略 3:对话历史压缩
  • 滑动窗口:只保留最近 N 轮(如 5 轮),旧轮次丢弃
  • 摘要压缩:用 LLM 对旧对话做摘要("用户之前询问了RAG分块策略,Agent推荐了语义分块"),用摘要替换原始对话
  • 关键信息提取:从旧对话中提取"事实性信息"(如"用户偏好Python"),存入结构化格式
  • 实测:10 轮对话(8000 tokens)压缩到摘要+最近3轮(2000 tokens,减少 75%) 策略 4:RAG 结果压缩
  • Top-K 减少:从 top-10 减到 top-3(检索精度足够时)
  • 文档截断:每个文档只取前 500 tokens(关键信息通常在开头)
  • 摘要替代:用 LLM 对每个文档做 1 句话摘要,用摘要替代原文
  • 实测:10 个文档 × 1000 tokens = 10000 tokens → 3 个摘要 × 100 tokens = 300 tokens(减少 97%) 策略 5:格式优化
  • JSON → 紧凑格式:去掉缩进和换行,省 15-20% tokens
  • 自然语言 → 结构化格式:用列表/表格替代段落,省 20-30% tokens
  • 重复信息去重:工具返回值和RAG结果中的重复内容去重 策略 6:上下文裁剪
  • 移除已完成步骤的详细输出:如工具调用的完整返回值在后续步骤中不需要时,替换为"[工具调用成功,返回了5条搜索结果]"
  • 移除中间推理过程:CoT 在后续步骤中不需要时,只保留结论
  • 动态上下文:根据当前步骤的需要,只加载相关部分的上下文

3. 压缩效果量化

策略Token 减少信息损失适用场景
System Prompt 精简40%低所有场景
工具 Schema 优化50%低工具多(>10)
对话历史压缩75%中长对话(>10轮)
RAG 结果压缩90%+中高文档多(>5)
格式优化20%无所有场景
上下文裁剪50%中多步Agent

综合应用可减少 60-80% 的 prompt token,单次调用成本从 $0.075 降到 0.015-0.030

3️⃣ 答题模板(30 秒电梯版)

"Agent Prompt 压缩六策略。System Prompt精简(删冗余指令,-40%)。工具Schema优化(精简description+按需加载,-50%)。对话历史压缩(滑动窗口+摘要+关键信息提取,-75%)。RAG结果压缩(Top-K减少+文档截断+摘要替代,-90%)。格式优化(JSON紧凑+列表替代段落,-20%)。上下文裁剪(移除已完成步骤的详细输出,-50%)。综合减少60-80%token,成本从0.075降到0.015-0.030。核心:在信息保持和token减少间平衡,用LLM-as-Judge验证压缩后的决策质量不下降。"

4️⃣ 高频追问 & 应对

追问 1:对话历史压缩用摘要替换原始对话,如果后续用户引用了旧对话的具体内容怎么办?

三层保障:(1) 关键信息提取——摘要时不仅生成概述,还提取"关键事实列表"(如"用户提到的数据:营收100万、成本30万"、"用户偏好:Python、深度学习")。保留具体数字和偏好,只压缩寒暄和中间推理;(2) 按需恢复——摘要中标注"详见第N轮"。如果用户说"刚才你说的那个数字是多少",Agent 从长期存储中加载第 N 轮的原始对话。代价是增加 1 次 LLM 调用(约 500ms),但只在需要时触发;(3) 混合策略——最近 3 轮保留原始对话(覆盖 80% 的引用场景),4-10 轮用摘要,10 轮以上只保留关键事实。实测:混合策略的信息保留率约 90%,token 减少 70%。

追问 2:工具 Schema 按需加载怎么实现?Agent 怎么知道当前步骤需要哪些工具?

两种方式:(1) Planner 指定——Planner LLM 在生成计划时,标注每步需要的工具。如"Step 1: search_web(搜索)→ Step 2: execute_python(分析)→ Step 3: send_email(报告)"。Executor 只加载当前步骤的工具 Schema;(2) Router 分类——用小模型(GPT-4o-mini)判断"当前步骤属于哪类任务"(搜索类/代码类/通信类),只加载对应类别的工具 Schema(3-5 个而非全部 15 个)。延迟增加 200ms 但 token 减少 60%。挑战:Router 分类错误导致需要的工具没加载。兜底:如果当前步骤执行失败(工具不可用),回退到加载全部工具重新执行。

追问 3:RAG 结果用摘要替代原文,会不会丢失关键细节?

取决于任务:(1) 事实性任务(需要精确数字/引用)——摘要会丢失细节。解法:保留原始文档的"关键段落"(包含数字/引用的句子),只对非关键段落做摘要。用 NER 检测"哪些句子包含数字/实体";(2) 理解性任务(需要整体把握)——摘要足够。如"总结这篇文章的核心观点"——摘要保留了核心观点,细节不重要;(3) 混合策略——Top-1 文档保留原文(最重要的),Top-2-3 用摘要。实测:Top-1 原文 + Top-2-3 摘要的效果与 Top-3 原文的效果接近(任务完成率差 <3%),但 token 减少 60%。关键:Reranker 确保最相关的文档排第 1。

5️⃣ 避坑 · 常见错误答法

  • ❌ "Prompt 越短越好" → ✅ "过度压缩导致信息丢失,Agent 决策质量下降。需要在 token 减少和信息保持间平衡。用 LLM-as-Judge 验证压缩后的任务完成率不下降。"
  • ❌ "删掉 system prompt 中的示例可以省很多 token" → ✅ "Few-shot 示例对 LLM 的行为引导至关重要。删掉示例可能导致输出格式错误、工具调用错误,反而增加重试的 token 消耗。应该精简示例(1-2 个而非 5-10 个)而非完全删除。"
  • ❌ "工具 Schema 可以完全省略,让 LLM 自己猜" → ✅ "没有工具 Schema,LLM 不知道有哪些工具可用、参数格式是什么。会导致工具调用格式错误、调用不存在的工具。Schema 可以精简但不能省略。"

6️⃣ 简历呼应

  • 如果你有 Prompt 优化项目:从"Token 成本优化"切入,描述你的压缩策略和效果,给出数据(如平均 token 从 20k 降到 6k、成本降低 70%、任务完成率保持 90%+)
  • 如果你有 NLP 经验:用"文本摘要"迁移——对话历史压缩本质是文本摘要任务。核心差异是 Agent 的摘要需要保留"可操作信息"(参数、偏好、决策)而非仅语义概括
  • 如果你是校招无项目:用 LangChain 实现对话历史压缩(滑动窗口+摘要),对比压缩前后的 token 消耗和任务完成率
  • "Prompt Compression for LLM Applications" (Jiang et al., 2023)
  • "LLMLingua: Compressing Prompts for LLMs" (Jiang et al., 2023)
  • "Context Window Optimization for Agent Systems" (LangChain, 2024)

—— 本场面试完 ——