System Prompt Agent职责与长Prompt处理 整理
System_Prompt_Agent职责与长Prompt处理
问题
System_Prompt_Agent职责与长Prompt处理
标准回答
System Prompt 在 Agent 系统中的职责与长 Prompt 处理策略
System Prompt 是? Agent 的“操作系统”,承载了所有行为的底层规则。在 Agent 系统中,其职责可归为五类: 角色定义和行为准则:告诉模型“你是谁”(编程助手、客服等),并约束语气、风格和边界。 工具使用规范和约束:告知有哪些工具可用、如何调用、何时使用。 输出格式要求:规定回复格式(JSON、Markdown、消息标签等)。 安全与权限控制:设定禁止行为(危险命令、信息泄露等),划清红线。 上下文信息补充:提供当前运行环境(工作目录、时间、用户身份、技能清单等)。
当 System Prompt 越来越长时,处理策略为 “拆、选、扔”:
- 拆:按职责拆分为独立模块。
- 选:根据当前任务场景只注入相关模块。
- 扔:将稳定不变的知识移出 prompt,放入外部文件或知识库,按需读取。
扩展知识
1. 模块化组装方案(以 OpenClaw 为例)
OpenClaw 将 System Prompt 拆为三层:
- 基础层(每次必加):身份声明、安全红线、工具列表及调用规范。
- 场景层(按需加载):技能提示、记忆召回、消息路由、语音合成等。
- 动态层(每次生成):当前时间、工作目录、用户白名单、沙箱信息等。
同时支持 分级加载:通过 promptMode 参数控制加载级别:
- 完整模式:主 Agent 使用。
- 精简模式:子 Agent 使用(仅核心模块)。
- 最小模式:仅身份声明。
2. 插件化扩展机制
通过钩子(Hook)在 System Prompt 拼装前注入内容。插件有四种注入方式:
- 替换系统提示(覆盖全部)
- 头部追加(适合静态指令,可缓存)
- 尾部追加(同样可缓存)
- 对话层注入(动态上下文,每轮变化)
优先级机制(priority 数值)解决冲突:高优先级覆盖低优先级的 systemPrompt 字段;拼接型字段按优先级顺序拼接。
3. 长 System Prompt 的性能影响
- Token 消耗与延迟:Prompt 越长,每次请求成本越高。按需加载可显著降低子 Agent 的开销。
- Prompt Cache:LLM 提供商(如 Anthropic、OpenAI)支持对不变部分缓存,第二次请求不重复计费。因此将稳定内容放在系统提示层(头部/尾部追加)有利于缓存命中。
4. 业界其他方案对比
- Cursor:全量加载极长 System Prompt,依赖模型长上下文能力,适合场景单一的应用。
- Devin:将规则编码为代码逻辑,灵活性较低但减少 prompt 依赖。
- LangChain:模板化组装,Callbacks 偏向观测,prompt 注入灵活度不如 OpenClaw 的四字段钩子。
面试官追问
Q1:System Prompt 里的安全规则真的靠谱吗?用户通过 prompt injection 绕过去怎么办?
A:纯靠 System Prompt 不够。必须在代码层面做硬校验:路径白名单、危险命令拦截等。OpenClaw 采用分层防御:System Prompt 中的安全模块作为第一道防线,工具执行层的 before_tool_call 钩子和审批机制提供真正保障。
Q2:模块拼接顺序会影响模型行为吗?
A:会。模型对开头和结尾关注度更高。OpenClaw 的固定顺序为:Identity → Tooling → Safety(最前面),Skills → Memory(中间),Runtime 信息(最后),符合“重要内容靠前”原则。
Q3:按需读取外部文件不也消耗 token 吗?如何判断何时放 prompt 里、何时放外部?
A:判断标准:频率和体积。每次请求都需要的信息放 prompt 里,偶尔用到的放外部;体积小(<500 token)可直接放,体积大且使用频率低于 30% 时放外部更经济。OpenClaw 的 Skills 模块正是此思路:prompt 中只放技能目录,需要时再读取完整 SKILL.md。
Q4:多个插件通过钩子注入 System Prompt 时如何解决冲突?
A:通过优先级机制。priority 数值越大越先执行。对于 systemPrompt 字段,后执行的覆盖先执行的(高优先级覆盖低优先级);对于 prependContext、appendSystemContext 等拼接字段,按优先级顺序依次拼接,不覆盖。开发者如需覆盖核心 prompt,应设高优先级并使用 systemPrompt 字段;若仅追加内容,用拼接字段避免冲突。
关键点
System Prompt 是 Agent 的“操作系统”,承载了所有行为的底层规则。
- 在 Agent 系统中,其职责可归为五类: 角色定义和行为准则:告诉模型“你是谁”(编程助手、客服等),并约束语气、风格和边界。
-
- 工具使用规范和约束:告知有哪些工具可用、如何调用、何时使用。
-
- 输出格式要求:规定回复格式(JSON、Markdown、消息标签等)。
-
- 安全与权限控制:设定禁止行为(危险命令、信息泄露等),划清红线。
备注
System_Prompt_Agent职责与长Prompt处理
System Prompt 是 Agent 的“操作系统”,承载了所有行为的底层规则。在 Agent 系统中,其职责可归为五类: 角色定义和行为准则:告诉模型“你是谁”(编程助手、客服等),并约束语气、风格和边界。
-
2. 工具使用规范和约束:告知有哪些工具可用、如何调用、何时使用。
-
- 输出格式要求:规定回复格式(JSON、Markdown、消息标签等)。
-
- 安全与权限控制:设定禁止行为(危险命令、信息泄露等),划清红线。
-
- 上下文信息补充:提供当前运行环境(工作目录、时间、用户身份、技能清单等)。
-
本文已做格式统一与噪声清理,保留原始语义。
-
Agent 的“操作系统”,承载了所有行为的底层规则。在 Agent 系统中,其职责可归为五类:
-
- 角色定义和行为准则:告诉模型“你是谁”(编程助手、客服等),并约束语气、风格和边界。
-
- 工具使用规范和约束:告知有哪些工具可用、如何调用、何时使用。
-
- 输出格式要求:规定回复格式(JSON、Markdown、消息标签等)。
-
- 安全与权限控制:设定禁止行为(危险命令、信息泄露等),划清红线。
-
本文已做格式统一与噪声清理,保留原始语义。
Share Article
If this article helped you, please share it with others!