agent-Specialization/api_doc/README.md

4.0 KiB
Raw Blame History

API v1 接入文档(后台任务 + 轮询进度 + 文件)

本目录面向第三方/多端Web、Flutter、脚本、其它服务对接目标是

  • API 调用不依赖 WebSocket网页刷新/断网/关闭不会影响后台任务运行;
  • 客户端使用 HTTP 轮询获取与网页端一致的细粒度进度token 输出、工具块、工具结果等);
  • API 账号与网页账号隔离:避免互相抢占任务/文件/对话状态。

基本信息

  • API 版本v1
  • 默认后端地址(本地):http://localhost:8091
  • 鉴权方式:Authorization: Bearer <token>
  • API 前缀:/api/v1
  • 数据落盘:对话与文件落盘到 API 用户独立目录(见 auth.md
  • 任务与事件:仅内存保存(进程重启后任务/事件不可恢复)
  • 默认最大迭代次数 max_iterations100(可在调用 /api/v1/messages 时覆盖)

只保留的接口(共 6 组能力)

  1. 创建对话:POST /api/v1/conversations
  2. 发送消息/启动后台任务:POST /api/v1/messages
  3. 轮询任务事件:GET /api/v1/tasks/<task_id>?from=<offset>
  4. 停止任务:POST /api/v1/tasks/<task_id>/cancel
  5. 文件上传(仅 user_uploadPOST /api/v1/files/upload
  6. 文件浏览/下载:GET /api/v1/filesGET /api/v1/files/download

详细参数与返回请看:

  • auth.mdAPI 用户与 Token、目录结构、安全注意事项
  • messages_tasks.md:发送消息/轮询/停止
  • events.md:事件流格式与事件类型说明(与 WebSocket 同源)
  • files.md:上传/列目录/下载
  • errors.mdHTTP 错误码与常见排查
  • examples.mdcurl/Python/JS/Flutter 示例
  • openapi.yamlOpenAPI 3.0 规范(可导入 Postman/Swagger

快速开始curl

<TOKEN> 替换为你的 Bearer Token。
默认后端:http://localhost:8091,如不同请修改。

0创建对话

curl -sS -X POST \
  -H "Authorization: Bearer <TOKEN>" \
  http://localhost:8091/api/v1/conversations

返回示例:

{ "success": true, "conversation_id": "conv_20260123_234245_036" }

1发送消息创建后台任务

curl -sS -X POST \
  -H "Authorization: Bearer <TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "conversation_id": "conv_20260123_234245_036",
    "message": "请用中文简要介绍《明日方舟:终末地》",
    "run_mode": "fast",            # 可选fast / thinking / deep
    "model_key": null,
    "max_iterations": 100         # 默认 100示例显式填写便于对齐
  }' \
  http://localhost:8091/api/v1/messages

返回示例202

{
  "success": true,
  "task_id": "60322db3-f884-4a1e-a9b3-6eeb07fbab47",
  "conversation_id": "conv_20260123_234245_036",
  "status": "running",
  "created_at": 1769182965.30
}

2轮询进度按 offset 增量拉取)

首次从 from=0 开始,之后使用返回中的 next_offset

curl -sS \
  -H "Authorization: Bearer <TOKEN>" \
  "http://localhost:8091/api/v1/tasks/60322db3-f884-4a1e-a9b3-6eeb07fbab47?from=0"

3停止任务可选

curl -sS -X POST \
  -H "Authorization: Bearer <TOKEN>" \
  http://localhost:8091/api/v1/tasks/60322db3-f884-4a1e-a9b3-6eeb07fbab47/cancel

统一约定:响应结构与错误处理

成功响应

大部分接口返回:

{ "success": true, ... }

失败响应

大部分失败返回:

{ "success": false, "error": "原因说明" }

并使用合适的 HTTP 状态码(如 400/401/404/409/503

重要限制(务必阅读)

  • 单用户禁止并发任务:同一个 API 用户同一时间只允许一个 running/pending 任务。重复发送消息会返回 409
  • 事件缓冲为内存队列maxlen=1000:任务特别长或轮询太慢会导致早期事件被丢弃;请按推荐频率轮询并在客户端持久化你需要的内容。
  • 进程重启不可恢复:重启后任务/事件会消失,但对话/文件已落盘的不受影响。