System Prompt Agent职责与长Prompt处理 整理

1664 words
8 minutes
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 字段,后执行的覆盖先执行的(高优先级覆盖低优先级);对于 prependContextappendSystemContext 等拼接字段,按优先级顺序依次拼接,不覆盖。开发者如需覆盖核心 prompt,应设高优先级并使用 systemPrompt 字段;若仅追加内容,用拼接字段避免冲突。

关键点#

  • System Prompt 在 Agent 系统中的职责与长 Prompt 处理策略#

System Prompt 是 Agent 的“操作系统”,承载了所有行为的底层规则。

  • 在 Agent 系统中,其职责可归为五类: 角色定义和行为准则:告诉模型“你是谁”(编程助手、客服等),并约束语气、风格和边界。
    1. 工具使用规范和约束:告知有哪些工具可用、如何调用、何时使用。
    1. 输出格式要求:规定回复格式(JSON、Markdown、消息标签等)。
    1. 安全与权限控制:设定禁止行为(危险命令、信息泄露等),划清红线。

备注#

  • 本文已做格式统一与噪声清理,保留原始语义。
  • 问题#

System_Prompt_Agent职责与长Prompt处理

System Prompt 是 Agent 的“操作系统”,承载了所有行为的底层规则。在 Agent 系统中,其职责可归为五类: 角色定义和行为准则:告诉模型“你是谁”(编程助手、客服等),并约束语气、风格和边界。

  • 2. 工具使用规范和约束:告知有哪些工具可用、如何调用、何时使用。

    1. 输出格式要求:规定回复格式(JSON、Markdown、消息标签等)。
    1. 安全与权限控制:设定禁止行为(危险命令、信息泄露等),划清红线。
    1. 上下文信息补充:提供当前运行环境(工作目录、时间、用户身份、技能清单等)。
  • 本文已做格式统一与噪声清理,保留原始语义。

  • Agent 的“操作系统”,承载了所有行为的底层规则。在 Agent 系统中,其职责可归为五类:

    1. 角色定义和行为准则:告诉模型“你是谁”(编程助手、客服等),并约束语气、风格和边界。
    1. 工具使用规范和约束:告知有哪些工具可用、如何调用、何时使用。
    1. 输出格式要求:规定回复格式(JSON、Markdown、消息标签等)。
    1. 安全与权限控制:设定禁止行为(危险命令、信息泄露等),划清红线。
  • 本文已做格式统一与噪声清理,保留原始语义。

Share Article

If this article helped you, please share it with others!

System Prompt Agent职责与长Prompt处理 整理
https://estars-blog.pages.dev/posts/求职作战室-面经-agent面经-system_prompt_agent职责与长prompt处理_整理/
Author
Estars
Published at
2026-06-10
License
CC BY-NC-SA 4.0
Profile Image of the Author
Estars
这条路要走完,才能看到世界的终点,是海纳百川,还是星火燎原。
公告
欢迎来到我的博客!这是一则示例公告。
Music
Cover

Music

No playing

0:00 0:00
No lyrics available
Categories
Tags
Site Statistics
Posts
91
Categories
5
Tags
44
Total Words
374,063
Running Days
0 days
Last Activity
0 days ago

Table of Contents