首页 教程 分类 Skills下载 关于
ZH EN JA KO
技能插件

OpenClaw系统提示词定制与动态构建

· 6 分钟

概述

系统提示词(System Prompt)是引导 AI 代理行为的核心指令。OpenClaw 不使用静态的提示词模板,而是通过 buildAgentSystemPrompt() 函数动态构建系统提示词。该函数接收超过 15 种参数类型,根据当前频道、用户角色、可用工具和会话上下文生成高度定制化的提示词。

buildAgentSystemPrompt() 机制

这个函数是 OpenClaw 系统提示词的核心构建器。每次创建新的代理会话时,系统都会调用该函数来生成适合当前上下文的系统提示词。由于 Pi SDK 是直接嵌入的(而非子进程调用),这个构建过程在同一个运行时中完成,没有序列化开销。

参数类型一览

buildAgentSystemPrompt() 支持的主要参数类型包括:

  1. channelType:当前频道类型(Discord / Telegram / Slack / WhatsApp)
  2. channelId:频道唯一标识符
  3. userId:当前用户 ID
  4. userRole:用户角色(管理员、普通用户、访客等)
  5. availableTools:当前可用的工具列表
  6. toolDescriptions:工具的详细描述信息
  7. sessionHistory:会话历史摘要
  8. customInstructions:用户自定义指令
  9. languagePreference:语言偏好设置
  10. responseFormat:期望的响应格式
  11. safetyPolicy:安全策略配置
  12. knowledgeBase:知识库引用
  13. extensionPrompts:已加载扩展的提示词片段
  14. timeContext:时间上下文(时区、当前时间)
  15. platformConstraints:平台特有限制(如消息长度上限)
  16. memoryContext:持久化记忆上下文

按频道动态定制

系统提示词最重要的动态维度是频道适配。不同平台有不同的交互规范和技术限制:

Discord 频道

针对 Discord 的系统提示词会包含:嵌入式消息格式说明、Markdown 渲染规则、表情符号使用指导、线程交互规范,以及 2000 字符消息长度限制的提醒。

Telegram 频道

Telegram 环境下,系统提示词会加入:内联键盘交互说明、HTML 格式化规则(Telegram 使用 HTML 而非完整 Markdown)、文件发送能力描述、以及 4096 字符消息限制。

Slack 频道

Slack 的系统提示词包含:Block Kit 格式说明、线程回复规范、应用消息与用户消息的区分,以及工作区相关的上下文信息。

WhatsApp 频道

WhatsApp 场景下会注入:简洁回复风格指令、有限的格式化支持说明、媒体消息处理方式等。

自定义指令层

除了系统自动生成的内容,管理员和用户可以在多个层级注入自定义指令:

全局指令

在 OpenClaw 配置文件中设置的全局指令,适用于所有频道和所有用户。这里通常放置 AI 代理的基本人设、核心行为规范和通用安全策略。

频道级指令

每个频道可以有独立的自定义指令。例如,技术支持频道可以注入领域知识和问题排查流程,而闲聊频道可以设定更轻松的对话风格。

用户级指令

个别用户可以设置自己的偏好指令,如语言偏好、响应详细程度等。这些指令会在构建过程中被合并到最终的系统提示词中。

扩展提示词集成

当 OpenClaw 加载扩展(Extension)时,每个扩展可以提供自己的提示词片段。buildAgentSystemPrompt() 会将这些片段收集并合并到系统提示词的适当位置。

例如,一个图片生成扩展可能注入如下提示词片段:"当用户请求生成图片时,使用 image_generate 工具,描述应使用英文,风格参数支持 realistic、anime、sketch 等。"

这种设计使得扩展不仅提供工具能力,还能指导 AI 正确使用这些工具。

会话上下文感知

buildAgentSystemPrompt() 还会参考当前会话的状态:

  • 会话长度:长对话中可能加入摘要上下文
  • 最近话题:根据对话主题微调提示词的侧重点
  • JSONL 持久化状态:从会话持久化存储中恢复上下文,包括经过压缩(compaction)处理的历史摘要

调试提示词

开发者可以在配置中开启 debugSystemPrompt: true,这会在日志中输出最终构建的完整系统提示词。这对于调试意外的 AI 行为非常有用——你可以准确看到 AI 接收到了什么指令。

还可以通过 API 端点 /api/debug/system-prompt 获取当前频道的系统提示词快照,方便在不查看日志的情况下检查提示词内容。

最佳实践

  1. 保持简洁:每个层级的自定义指令不宜过长,避免稀释核心指令的效果
  2. 避免冲突:不同层级的指令可能产生矛盾,优先级为:安全策略 > 全局指令 > 频道指令 > 用户指令
  3. 测试验证:修改提示词后,使用调试模式验证最终构建结果
  4. 版本管理:将自定义指令纳入版本控制,追踪变更历史

总结

buildAgentSystemPrompt() 是 OpenClaw 实现智能化频道适配的核心机制。通过超过 15 种参数的动态组合,每次对话都能获得量身定制的系统指令,让 AI 代理在不同平台、不同场景下都能表现出最佳的交互体验。

OpenClaw 是开源免费的个人AI助手,支持 WhatsApp、Telegram、Discord 等多平台接入