为一个 Agent 事件创建 Hook 配置,提交名称、事件、JSON 配置数组和启用状态。同一组织内名称不能重复,每个事件只能有一组配置;保存成功不代表数组中的命令已执行验证。
所需权限
| 所需权限 | 资源 | Scope | 资源服务 |
|---|
| Hooks 规则管理(管理) | hooks | admin.v1.hooks.manage | qwenwork-biz-service |
POST /api/openapi/v1/hook-policies
认证与请求头
使用应用 API Key 调用。当前接口校验上方独立 Scope;读取、管理与执行权限互不包含。
| 名称 | 位置 | 类型 | 必填 | 说明 | 示例 |
|---|
| Authorization | header | string | 是 | 应用 API Key,使用 Bearer 方式传递。 | Bearer qwk_\\* |
| X-Request-Id | header | string | 否 | 可选的调用追踪标识;未传入时由服务端生成。 | req-20260831-001 |
请求参数
| 名称 | 位置 | 类型 | 必填 | 说明 | 示例 |
|---|
| Idempotency-Key | header | string | 必填 | 本次写操作的幂等键。同一操作重试时复用相同键和请求内容,避免重复处理。 | "<string>" |
| config | body | any | 必填 | 该事件的 Hook 配置,必须是 JSON 数组。服务端保存数组原文,只校验 JSON 语法和顶层数组结构,不校验数组内的脚本或命令能否执行。 | [] |
| description | body | string | 必填 | Hook 配置的用途说明。 最多字符数:500。 | "<string>" |
| enabled | body | boolean | null | 必填 | 是否启用这项配置。 | false |
| event_name | body | string | 必填 | 触发事件:SessionStart(会话开始)、UserPromptSubmit(提交用户输入)、PreToolUse(工具调用前)、PostToolUse(工具调用后)、Stop(停止)或 Notification(通知)。 | "SessionStart" |
| name | body | string | 必填 | Hook 配置的名称。 最多字符数:80。 | "<string>" |
请求示例
将 <BASE_URL> 替换为企业部署的千问办公 API 服务地址,并填写实际参数。示例中的占位值不能直接用于请求。
curl --request POST --url '<BASE_URL>/api/openapi/v1/hook-policies' --header 'Authorization: Bearer <API_KEY>' --header 'Idempotency-Key: <UNIQUE_REQUEST_ID>' --header 'Content-Type: application/json' --data '{ "config": [], "description": "<string>", "enabled": false, "event_name": "SessionStart", "name": "<string>"}'
响应
201 创建成功,返回新建的记录。
| 名称 | 类型 | 必填 | 说明 | 示例 |
|---|
| config | any | 是 | 该事件的 Hook 配置,必须是 JSON 数组。服务端保存数组原文,只校验 JSON 语法和顶层数组结构,不校验数组内的脚本或命令能否执行。 | [] |
| created_at | string · date-time | 是 | 此记录的创建时间。 | "2026-08-27T10:00:00Z" |
| description | string | 是 | Hook 配置的用途说明。 | "<string>" |
| enabled | boolean | 是 | 是否启用这项配置。 | false |
| event_name | string | 是 | 触发事件:SessionStart(会话开始)、UserPromptSubmit(提交用户输入)、PreToolUse(工具调用前)、PostToolUse(工具调用后)、Stop(停止)或 Notification(通知)。 | "<string>" |
| id | string | 是 | 此记录的唯一标识,查询、更新或删除对应记录时使用。 | "<string>" |
| name | string | 是 | Hook 配置的名称。 | "<string>" |
| updated_at | string · date-time | 是 | 此记录最后一次更新的时间。 | "2026-08-27T10:00:00Z" |
{
"config": [],
"created_at": "2026-08-27T10:00:00Z",
"description": "<string>",
"enabled": false,
"event_name": "<string>",
"id": "<string>",
"name": "<string>",
"updated_at": "2026-08-27T10:00:00Z"
}
default 请求失败,返回错误码和错误详情。
| 名称 | 类型 | 必填 | 说明 | 示例 |
|---|
| code | string | 否 | 用于程序判断错误原因的稳定业务错误码。 | "<string>" |
| detail | string | 是 | 便于阅读的错误说明。 | "<string>" |
| details | OpenapiErrorDetails | 否 | 字段校验失败时的详细信息。 | {"field":"<string>","reason":"<string>","suggestion":"<string>"} |
| details.field | string | 否 | 未通过校验的请求字段。 | "<string>" |
| details.reason | string | 否 | 稳定的校验失败原因,用于判断字段为何不合法。 | "<string>" |
| details.suggestion | string | 否 | 建议采用的规范化字段值。 | "<string>" |
| error | string | 是 | 稳定的 HTTP 错误类型。 | "<string>" |
{
"code": "<string>",
"detail": "<string>",
"details": {
"field": "<string>",
"reason": "<string>",
"suggestion": "<string>"
},
"error": "<string>"
}