Poco 使用手册
WebHook

自动化与交互事件

处理定时任务状态变化、人工输入请求与回答,以及工作台洞察状态变化。

这组事件适合把 Poco 的自动化运行和需要人工参与的节点接入工单、IM、审批或监控系统。

定时任务状态变化

事件:scheduled_task.run_status_changed

载荷版本:v2,正式推送和测试推送一致。

该版本使用 scheduled_task.cron_expressions 数组替代原来的 scheduled_task.cron 字符串,不再发送旧字段。接收端需要同步处理新版本和表达式数组。

当定时任务的一次运行状态变化时触发。主要字段:

字段说明
scheduled_task.scheduled_task_id定时任务 ID
scheduled_task.name定时任务名称
scheduled_task.cron_expressions主步骤的 Cron 表达式数组
scheduled_task.timezone定时任务时区
run.run_id本次运行 ID
run.session_id本次运行关联会话 ID
run.status当前状态
run.previous_status上一个状态,可能为 null
run.last_error失败原因,可能为 null
session.project_id关联项目,可能为 null

接收端应使用 run.run_id + run.status 作为业务状态推进依据。同一运行可能多次触发状态变化,不要把收到第一条事件当作运行结束。

该事件不使用 session_kinds 过滤。项目级配置会根据关联项目匹配。

请求人工输入

事件:user_input.requested

Agent 运行到需要用户选择、确认或补充信息的节点时触发。

字段说明
user_input.request_id用户输入请求 ID,回答时的关联依据
user_input.session_id关联会话 ID
user_input.tool_name发起请求的工具名
user_input.tool_input请求内容,可能已规范化或清理敏感配置
user_input.status通常为 pending
user_input.answers请求阶段通常为 null
user_input.expires_at请求过期时间
user_input.answered_at请求阶段通常为 null
session关联会话摘要

建议把 request_id 存入工单或交互卡片中,并在展示给用户前根据 tool_input 生成业务友好的问题。到达 expires_at 后不要再提交回答。

查询和回答步骤见 人工输入接口。回答使用任务所属用户的登录 Token,不是原始对话 Key。

人工输入已回答

事件:user_input.answered

用户完成回答后触发,结构与 requested 事件相同,主要变化是:

  • user_input.status 通常为 answered。
  • user_input.answers 包含回答内容。
  • user_input.answered_at 包含回答时间。

该事件适合关闭外部待办、同步审批结果或更新 IM 卡片。使用 request_id 与先前的 requested 事件关联,不要只按会话 ID 查找,因为同一会话可能出现多个输入请求。

工作台洞察状态变化

事件:workbench.insight_status_changed

当工作台洞察的处理状态变化时触发,主要对象为 insight,并通过 meta.trigger_source 说明触发来源。事件包含洞察标题、摘要、优先级,以及变化前后的状态。

接收端可以用于:

  • 同步洞察状态到外部知识库。
  • 在高优先级洞察进入待处理状态时告警。
  • 洞察关闭后更新外部任务。

状态枚举应以载荷实际值为准。接收端对未知新状态应记录并忽略,不要因为无法识别状态而返回 5xx 导致重复投递。

实现注意事项

  • 这四类事件都不使用 session_kinds 过滤。
  • 系统级 WebHook 收到不同用户事件时,应读取外层 user 决定数据归属。
  • 对同一运行或输入请求的状态更新可能乱序到达;持久化时结合事件时间和当前业务状态判断是否更新。

On this page