问题描述
当前「聊天频道 → 事件 → Webhooks」功能可以添加任意 webhook URL,但 Codeg 发送的 payload 是固定的通用 JSON:
{
"event": "turn_complete",
"level": "info",
"title": "...",
"body": "...",
"fields": [],
"connection_id": "...",
"source": "codeg"
}
这个格式只适合能直接接收并解析 Codeg schema 的服务。很多常见通知平台或 webhook 服务都有自己的 payload 格式,因此用户虽然可以成功保存 webhook URL,但实际不会收到提醒。
例如:
- 钉钉机器人要求
msgtype、text 等字段。
- 其他 webhook 中转服务也可能要求特定 JSON schema。实测某个非钉钉 webhook 地址返回:
HTTP 400
{"code":400,"message":"invalid json payload"}
当前行为
- 在「聊天频道 → 事件 → Webhooks」里添加 webhook URL。
- 启用
turn_complete 事件。
- 等待 agent 正常完成一轮回复。
- Codeg 向 webhook URL 发送固定通用 JSON。
- 如果目标服务不接受这个 schema,请求会失败,或者不会产生任何可见提醒。
目前失败信息只会写到后端 stderr,UI 中看不到投递状态。用户很难判断到底是:
- 事件没有触发;
- webhook 请求失败;
- 还是目标服务拒绝了 payload。
期望行为
希望 webhook 配置至少支持以下一种能力:
-
内置常见平台 payload 适配器,例如:
- 通用 JSON
- 钉钉
- 飞书 / Lark
- 企业微信
- Slack / Discord 等
-
支持每个 webhook 配置自定义 payload 模板,例如把 Codeg 的字段映射为:
title
body
event
fields
connection_id
-
支持配置自定义 headers / 签名参数,以适配需要 secret、timestamp、signature 的平台。
另外也建议增加:
- 「测试 webhook」按钮;
- 最近一次投递状态;
- 最近一次 HTTP 状态码 / 错误信息;
- 文档或 UI 提示:
turn_complete 只在 agent 正常 end_turn 结束时触发。
影响
现在 UI 看起来像是可以直接填任意 webhook URL,但实际上 webhook payload 没有统一标准。很多真实平台无法直接接收 Codeg 当前的固定 JSON。
这会导致用户配置看起来成功,但没有收到任何提醒,而且 UI 中没有错误反馈,排查成本比较高。
问题描述
当前「聊天频道 → 事件 → Webhooks」功能可以添加任意 webhook URL,但 Codeg 发送的 payload 是固定的通用 JSON:
{ "event": "turn_complete", "level": "info", "title": "...", "body": "...", "fields": [], "connection_id": "...", "source": "codeg" }这个格式只适合能直接接收并解析 Codeg schema 的服务。很多常见通知平台或 webhook 服务都有自己的 payload 格式,因此用户虽然可以成功保存 webhook URL,但实际不会收到提醒。
例如:
msgtype、text等字段。当前行为
turn_complete事件。目前失败信息只会写到后端 stderr,UI 中看不到投递状态。用户很难判断到底是:
期望行为
希望 webhook 配置至少支持以下一种能力:
内置常见平台 payload 适配器,例如:
支持每个 webhook 配置自定义 payload 模板,例如把 Codeg 的字段映射为:
titlebodyeventfieldsconnection_id支持配置自定义 headers / 签名参数,以适配需要 secret、timestamp、signature 的平台。
另外也建议增加:
turn_complete只在 agent 正常end_turn结束时触发。影响
现在 UI 看起来像是可以直接填任意 webhook URL,但实际上 webhook payload 没有统一标准。很多真实平台无法直接接收 Codeg 当前的固定 JSON。
这会导致用户配置看起来成功,但没有收到任何提醒,而且 UI 中没有错误反馈,排查成本比较高。