Files
aiagent/docs/api-reference.md
renjianbo ab1589921a fix: 修复35个安全与功能缺陷,补全知识进化/数字孪生/行为采集模块
## 安全修复 (12项)
- Webhook接口添加全局Token认证,过滤敏感请求头
- 修复JWT Base64 padding公式,防止签名验证绕过
- 数据库密码/飞书Token从源码移除,改为环境变量
- 工作流引擎添加路径遍历防护 (_resolve_safe_path)
- eval()添加模板长度上限检查
- 审批API添加认证依赖
- 前端v-html增强XSS转义,console.log仅开发模式输出
- 500错误不再暴露内部异常详情

## Agent运行时修复 (7项)
- 删除_inject_knowledge_context中未定义db变量的finally块
- 工具执行添加try/except保护,异常不崩溃Agent
- LLM重试计入budget计数器
- self_review异常时passed=False
- max_iterations截断标记success=False
- 工具参数JSON解析失败时记录警告日志
- run()开始时重置_llm_invocations计数器

## 配置与基础设施
- DEBUG默认False,SQL_ECHO独立配置项
- init_db()补全13个缺失模型导入
- 新增WEBHOOK_AUTH_TOKEN/SQL_ECHO配置项
- 新增.env.example模板文件

## 前端修复 (12项)
- 登录改用URLSearchParams替代FormData
- 401拦截器通过Pinia store统一清理状态
- SSE流超时从60s延长至300s
- final/error事件时清除streamTimeout
- localStorage聊天记录添加24h TTL
- safeParseArgCount替代模板中裸JSON.parse
- fetchUser 401时同时清除user对象

## 新增模块
- 知识进化: knowledge_extractor/retriever/tasks
- 数字孪生: shadow_executor/comparison模型
- 行为采集: behavior_middleware/collector/fingerprint_engine
- 代码审查: code_review_agent/document_review_agent
- 反馈学习: feedback_learner
- 瓶颈检测/优化引擎/成本估算/需求估算
- 速率限制器 (rate_limiter)
- Alembic迁移 015-020

## 文档
- 商业化落地计划
- 8篇docs文档 (架构/API/部署/开发/贡献等)
- Docker Compose生产配置

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-10 19:50:20 +08:00

7.2 KiB
Raw Blame History

🔌 API 参考文档

API Reference

本文档描述了天工智能体平台后端 RESTful API 接口规范。所有 API 均通过 Nginx 反向代理暴露,前缀为 /api/v1

💡 交互式文档:启动后端服务后,可访问 http://localhost:8037/docs 查看 Swagger UI 文档。


一、通用规范

基础 URL

生产环境https://your-domain.com/api/v1
开发环境http://localhost:8037/api/v1

认证方式

所有受保护的接口需在请求头中携带 JWT Token

Authorization: Bearer <access_token>

响应格式

// 成功响应
{
    "code": 200,
    "message": "success",
    "data": { ... }
}

// 错误响应
{
    "code": 40001,
    "message": "用户不存在",
    "data": null
}

通用错误码

状态码 错误码 说明
200 200 请求成功
400 40000 请求参数错误
401 40100 未认证Token 缺失或过期)
403 40300 无权限访问
404 40400 资源不存在
500 50000 服务器内部错误

二、用户模块

2.1 用户注册

注册新用户账号。

POST /api/v1/users/register

请求体:

参数 类型 必填 说明
email string 邮箱地址
password string 密码(至少 8 位,含字母和数字)
nickname string 用户昵称

请求示例:

{
    "email": "user@example.com",
    "password": "Abc12345",
    "nickname": "张三"
}

响应示例:

{
    "code": 200,
    "message": "success",
    "data": {
        "id": 1,
        "email": "user@example.com",
        "nickname": "张三",
        "created_at": "2026-05-10T08:00:00Z"
    }
}

2.2 用户登录

获取 JWT 访问令牌。

POST /api/v1/users/login

请求体:

参数 类型 必填 说明
email string 邮箱地址
password string 密码

响应示例:

{
    "code": 200,
    "message": "success",
    "data": {
        "access_token": "eyJhbGciOiJIUzI1NiIs...",
        "refresh_token": "eyJhbGciOiJIUzI1NiIs...",
        "token_type": "bearer",
        "expires_in": 1800
    }
}

2.3 Token 刷新

使用 Refresh Token 获取新的 Access Token。

POST /api/v1/users/refresh

请求体:

参数 类型 必填 说明
refresh_token string 登录时获取的 Refresh Token

响应示例:

{
    "code": 200,
    "message": "success",
    "data": {
        "access_token": "eyJhbGciOiJIUzI1NiIs...",
        "refresh_token": "eyJhbGciOiJIUzI1NiIs...",
        "token_type": "bearer",
        "expires_in": 1800
    }
}

2.4 获取当前用户信息

获取已登录用户的个人信息。

GET /api/v1/users/me

请求头:

Authorization: Bearer <access_token>

响应示例:

{
    "code": 200,
    "message": "success",
    "data": {
        "id": 1,
        "email": "user@example.com",
        "nickname": "张三",
        "avatar": "https://...",
        "created_at": "2026-05-10T08:00:00Z"
    }
}

三、智能体模块

3.1 创建智能体

创建一个新的 AI 智能体。

POST /api/v1/agents

请求体:

参数 类型 必填 说明
name string 智能体名称
description string 智能体描述
prompt_template string 系统提示词模板
model_config object LLM 模型配置

model_config 对象:

参数 类型 必填 说明
provider string 模型提供商:openai / azure / local
model_name string 模型名称:gpt-4o / gpt-3.5-turbo
temperature number 生成温度(默认 0.7
max_tokens integer 最大 Token 数(默认 2048

请求示例:

{
    "name": "智能客服助手",
    "description": "用于解答常见产品问题",
    "prompt_template": "你是一个专业的客服助手...",
    "model_config": {
        "provider": "openai",
        "model_name": "gpt-4o",
        "temperature": 0.5,
        "max_tokens": 2048
    }
}

3.2 获取智能体列表

获取当前用户的所有智能体。

GET /api/v1/agents?page=1&page_size=20

查询参数:

参数 类型 必填 默认值 说明
page integer 1 页码
page_size integer 20 每页条数(最大 100

3.3 获取智能体详情

GET /api/v1/agents/{agent_id}

路径参数:

参数 类型 说明
agent_id integer 智能体 ID

3.4 更新智能体

PUT /api/v1/agents/{agent_id}

请求体:(部分更新)

参数 类型 必填 说明
name string 智能体名称
description string 智能体描述
prompt_template string 系统提示词
model_config object 模型配置

3.5 删除智能体

DELETE /api/v1/agents/{agent_id}

四、对话模块

4.1 创建对话会话

POST /api/v1/conversations

请求体:

参数 类型 必填 说明
agent_id integer 关联的智能体 ID
title string 会话标题(可选)

4.2 发送消息

向指定对话发送消息支持流式响应SSE

POST /api/v1/conversations/{conversation_id}/messages

请求体:

参数 类型 必填 说明
content string 用户消息内容

流式响应SSE

data: {"type": "token", "content": "你好"}
data: {"type": "token", "content": ""}
data: {"type": "token", "content": "请问有什么可以帮您?"}
data: {"type": "done"}
data: {"type": "error", "content": "..."}

4.3 获取对话历史

GET /api/v1/conversations/{conversation_id}/messages?page=1&page_size=50

五、知识库模块

5.1 上传文档

POST /api/v1/knowledge/documents/upload

请求格式: multipart/form-data

参数 类型 必填 说明
file file 支持 PDF / TXT / Markdown
agent_id integer 关联的智能体 ID

5.2 文档检索

POST /api/v1/knowledge/search

请求体:

参数 类型 必填 说明
query string 检索关键词
agent_id integer 限定知识库范围
top_k integer 返回条数(默认 5

六、健康检查

GET /api/v1/health

响应:

{
    "status": "ok",
    "version": "1.0.0",
    "timestamp": "2026-05-10T08:00:00Z"
}

📎 相关文档快速开始指南 | 开发指南