System Prompt 在 Agent 系统中承载选型对比(详解越变越长时的处理方案)

System Prompt 在 Agent 系统里承担六类职责:定义角色与边界、声明能力与工具、约束行为与输出格式、划定安全与拒答红线、注入少样本示例、约定上下文与记忆的使用方式。它膨胀后的代价是 token 成本线性上升、关键指令被长文淹没导致遵循度下降、规则互相冲突难以维护;应对思路是分层管理、按需加载、prompt caching 摊薄成本,外加定期裁剪与评测。

一、System Prompt 在 Agent 系统里的定位

对一次 API 调用,System Prompt 只是约束输出的规则文本;对 Agent,它是每次行动前注入模型的”工作手册”,决定这个智能体是谁、能做什么、怎么做、底线在哪。它是系统里优先级最高的指令层,在整轮对话中常驻上下文顶层,持续影响模型行为。

值得注意的是,2025 年起业界开始用”上下文工程”(context engineering)取代”提示词工程”的说法:单次调用只要写好 Prompt,Agent 多轮循环后要管理的是一整块持续变化的上下文状态——系统指令、工具定义、外部数据、消息历史都在其中。System Prompt 管理正是上下文工程的核心一环。

二、六类职责一张表

职责 回答的问题 典型内容
角色与边界 你是谁、服务范围多大 人设、能力范围、不该做什么
能力与工具说明 你有哪些武器、何时用 工具清单、参数语义、调用时机
行为与格式规范 该怎么说话、怎么输出 语气、步骤、输出 JSON 约定
安全与拒答策略 红线在哪、越权怎么办 合规红线、拒答话术
少样本示例 期望行为长什么样 1~3 个范例锚定行为
上下文与记忆约定 怎么用历史与长期记忆 对话历史、检索内容的处理方式

一个真实的 Agent 系统里,System Prompt 可以很长。有拆解报告指出,部分开源 Agent(如 OpenClaw、Cursor、Devin 的同类架构)的 System Prompt 能到 6 万字、约 110KB,几乎是一篇中篇小说。

三、为什么会越变越长,代价在哪

场景增加、工具变多、规则打补丁,三条路都会让 System Prompt 膨胀。代价有三层:

  1. token 成本随每次调用线性上升——Agent 每转一圈都要把整份 System Prompt 重发一次,6000 字规则配 10 轮循环就是 6 万字流量;
  2. 注意力稀释——指令越多,关键规则越容易被”淹没”在长文里,模型遵循度反而下降;有实验表明超出约 2000 词的提示词,模型倾向于遵守开头、忽略结尾;
  3. 维护困难——补丁式规则会互相冲突,改一处牵动全局,难以回归测试。

四、越变越长时的五步处理法

处理 System Prompt 膨胀,核心是”上下文工程”而不是继续堆字。

  1. 分层管理:把静态系统提示(身份、安全红线、输出格式)与运行时动态注入(用户画像、检索结果、当前子任务)拆开存放,代码里按需组装;
  2. 按需加载:工具和技能详情外置,平时只暴露一句摘要,模型命中时才把完整描述注入上下文,避免一次性塞满;
  3. 开启 prompt caching:把稳定前缀缓存起来,复用只计增量 token,长 System Prompt 的成本可以大幅摊薄;
  4. 关键指令后置:超长上下文中,把最关键的格式约束与安全边界放到 System Prompt 最末尾,能显著提升遵循概率;
  5. 裁剪与评测:建一套评测集回归遵循度,删冗余、合并重复规则,用数据决定去留。

4.1 一个分层结构的示例

[系统层 system]——每次运行都成立,常驻
  身份与使命
  安全红线与拒答策略
  输出格式与 JSON 约定

[工作流层 workflow]——本次任务相关,运行时注入
  任务目标与步骤
  本次使用的工具摘要

[数据层 data]——按需注入
  检索到的文档片段
  用户画像
  工具完整描述(命中时才加载)

判定一条内容该放哪层有一个简单测试:如果它在该 Agent 的每一次对话里都成立,放系统层;只要依赖本次任务,就放工作流层。Anthropic 同样强调 System Prompt 要写”恰到好处的高度”:规则太死板会脆弱难维护,太含糊模型又会漂移。

五、文件化与版本管理

2025 年以来,把 System Prompt 外置成文件成了主流做法:Claude Code 用 CLAUDE.md,Cursor 用 .cursorrules,Codex 用 AGENTS.md。这样做的收益是可版本化、可评审、可热更新,规则改动走 Git 记录,团队共享同一套行为基线。对多模型项目,还可以按模型维护多份配置文件。

六、裁剪要有评测纪律

删规则不能凭感觉。落地的做法是建一个行为评测集:每个条目对应一条 System Prompt 里的规则,跑若干典型任务,统计遵循率。改版后全量回归,遵循率下降就回滚。Anthropic 把这类工作归入”以失败模式驱动迭代”——先给最小可用的提示词,观察到具体失败再补一条规则,而不是一次性写全。这样 System Prompt 的每一次变长都有据可依,膨胀从”补丁堆叠”变成”数据驱动”。

一句话收束:System Prompt 是 Agent 的地基,地基稳不稳不看长度,看分层清不清晰、指令是不是高信号。堆字解决不了的问题,分层、按需加载与评测能解决。

常见问题(FAQ)

Q1:System Prompt 越长越好吗?

不是。超过约 2000 词后遵循度下降,关键是覆盖必要规则而非长度。

Q2:长 System Prompt 怎么省成本?

用 prompt caching 缓存稳定前缀,复用只计增量 token。

Q3:动态信息该放 System Prompt 吗?

不该。任务相关的临时内容放工作流层,按需注入,避免污染系统层。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 qiqicto@qq.com 举报,一经查实,本站将立刻删除。
赞 (0)
其AI的头像其AI普通用户

相关推荐

返回顶部