Skip to content
Beta内部开发者开发者

Hook 机制 ​

Hook 是 WinWork 平台提供的事件驱动扩展机制,允许在 Agent 生命周期的特定节点插入自定义逻辑。通过 Hook,开发者可以动态修改 Agent 行为,而无需修改 Agent 本身的配置。

核心概念 ​

Hook 监听平台内部事件,当事件触发时执行预定义的处理逻辑。目前支持的事件:

事件名触发时机典型用途
agent:bootstrapAgent 启动初始化注入系统提示词
agent:session:start新会话开始会话级配置初始化
agent:tool:before工具调用前参数校验、权限检查
agent:tool:after工具调用后结果处理、日志记录

system-prompt-enhancer ​

system-prompt-enhancer 是最常用的内置 Hook,在 agent:bootstrap 事件触发时向 Agent 注入额外的系统提示词。

工作原理 ​

注入模式 ​

Hook 支持两种注入模式:

prepend(前置注入):将内容添加到系统提示词的开头,适合注入高优先级指令。

append(后置注入):将内容添加到系统提示词的末尾,适合注入补充说明。

配置方式 ​

Hook 在 openclaw.json 的 hooks.internal.entries 下配置:

json
{
  "hooks": {
    "internal": {
      "entries": [
        {
          "name": "system-prompt-enhancer",
          "event": "agent:bootstrap",
          "mode": "append",
          "content": "你是一个专业的客服助手,始终保持友好、耐心的态度。"
        }
      ]
    }
  }
}

多条 Hook 配置 ​

可以同时配置多个 Hook 条目,按数组顺序依次执行:

json
{
  "hooks": {
    "internal": {
      "entries": [
        {
          "name": "system-prompt-enhancer",
          "event": "agent:bootstrap",
          "mode": "prepend",
          "content": "## 身份设定\n你是 WinWork 平台的智能助手。"
        },
        {
          "name": "system-prompt-enhancer",
          "event": "agent:bootstrap",
          "mode": "append",
          "content": "## 回答规范\n- 使用简洁的语言\n- 重要信息用列表呈现\n- 涉及代码时提供示例"
        }
      ]
    }
  }
}

从文件加载内容 ​

对于较长的提示词,支持从文件加载:

json
{
  "hooks": {
    "internal": {
      "entries": [
        {
          "name": "system-prompt-enhancer",
          "event": "agent:bootstrap",
          "mode": "append",
          "contentFile": "./prompts/company-guidelines.md"
        }
      ]
    }
  }
}

条件触发 ​

通过 condition 字段设置触发条件:

json
{
  "hooks": {
    "internal": {
      "entries": [
        {
          "name": "system-prompt-enhancer",
          "event": "agent:bootstrap",
          "mode": "append",
          "condition": {
            "agentName": "customer-service-agent"
          },
          "content": "仅在客服 Agent 中注入此内容。"
        }
      ]
    }
  }
}

实际应用示例 ​

企业合规要求 ​

json
{
  "name": "system-prompt-enhancer",
  "event": "agent:bootstrap",
  "mode": "prepend",
  "content": "重要:你不得讨论竞争对手产品,不得透露公司内部系统架构,所有回答需符合公司信息安全规范。"
}

角色扮演设定 ​

json
{
  "name": "system-prompt-enhancer",
  "event": "agent:bootstrap",
  "mode": "prepend",
  "content": "你是一名资深 DevOps 工程师,拥有 10 年云原生和 CI/CD 经验。在回答技术问题时,优先考虑可靠性和可维护性。"
}

团队知识注入 ​

json
{
  "name": "system-prompt-enhancer",
  "event": "agent:bootstrap",
  "mode": "append",
  "contentFile": "./team-knowledge/coding-standards.md"
}

TIP

system-prompt-enhancer 与 Skill 的 SKILL.md 内容注入是互补的。Skill 提供能力描述,Hook 提供行为规范和上下文增强。

WARNING

过多的 Hook 注入会增加系统提示词长度,可能影响 Agent 性能和准确性。建议保持注入内容简洁,总长度控制在 2000 tokens 以内。

最后更新: