Poco 使用手册
WebHook

工作区导出事件

在工作区文件清单和归档准备完成后接收通知,并通过 API 获取可访问文件。

事件:workspace_export.completed

该事件表示工作区导出流程完成,适合驱动文件同步、归档下载或后续审批。它与 session.completed 分开触发,因为 Agent 运行结束后,文件清单和归档还可能需要时间准备。

请求体示例

{
  "schema_version": "v1",
  "event_type": "workspace_export.completed",
  "event_id": "f1b5a6d4-0000-4000-8000-000000000001",
  "occurred_at": "2026-02-15T14:32:00+00:00",
  "is_test": false,
  "user": {
    "user_id": "1234567890",
    "username": "alice",
    "full_name": "Alice",
    "department": "研发",
    "role": "user"
  },
  "webhook": {
    "id": 14,
    "owner_scope": "user"
  },
  "workspace_export": {
    "status": "ready",
    "files_prefix": "workspaces/user-1/session/files",
    "manifest_key": "workspaces/user-1/session/manifest.json",
    "archive_key": "workspaces/user-1/session/archive.zip",
    "archive_available": true
  },
  "session": {
    "session_id": "5f6a0000-0000-4000-8000-000000000001",
    "title": "日报总结",
    "kind": "chat",
    "status": "completed",
    "project_id": "97d20000-0000-4000-8000-000000000001",
    "created_at": "2026-02-15T14:20:00+00:00",
    "updated_at": "2026-02-15T14:32:00+00:00"
  },
  "run": {
    "run_id": "6dc90000-0000-4000-8000-000000000001",
    "turn_id": "20cf0000-0000-4000-8000-000000000001",
    "status": "completed",
    "schedule_mode": "immediate",
    "scheduled_task_id": null,
    "started_at": "2026-02-15T14:20:10+00:00",
    "finished_at": "2026-02-15T14:29:58+00:00"
  },
  "meta": {
    "trigger": "workspace_export.completed",
    "source": "poco.backend.callback.workspace_export",
    "idempotency_key": "f1b5a6d4-0000-4000-8000-000000000001",
    "capability_profile_version": 3
  }
}

核心字段

字段说明
workspace_export.status当前完成事件固定为 ready
workspace_export.files_prefix文件对象前缀,可能为 null
workspace_export.manifest_key文件清单对象 key,可能为 null
workspace_export.archive_key工作区归档对象 key,可能为 null
workspace_export.archive_available是否存在归档包
session.session_id关联会话 ID
session.kindchat、api 或 scheduled
session.project_id关联项目,可能为 null
run.run_id、run.turn_id关联运行和轮次;无法解析时可能为 null
run.scheduled_task_id定时任务 ID,可能为 null

对象 key 是后端资源引用,不是公开下载 URL。接收端不要自行拼接对象存储地址,也不要假设存储桶可以公开访问。

获取实际文件

API 会话可调用:

GET /openapi/v1/sessions/{session_id}/artifacts

它返回文件树和具有访问时效的下载地址,详见产物管理。管理员看板接入也可使用 Office Mode 的工作区文件与归档接口。

过滤规则

该事件使用 session_kinds 过滤。只关心 API 任务文件时,将会话类型设置为 api;定时任务文件设置为 scheduled。项目级 WebHook 还会要求会话项目与配置项目一致。

推荐处理流程

  1. 校验签名并按 event_id 去重。
  2. 检查 workspace_export.status 和 archive_available。
  3. 使用 session_id 调用 API 获取当前有效下载地址。
  4. 把文件同步到自己的存储后返回业务完成状态。

WebHook 接收请求本身仍应快速返回;文件下载放到内部队列执行。

On this page