API 参考

LibreFang 在守护进程运行时提供 REST API、WebSocket 端点和 SSE 流式传输。默认监听地址为 http://127.0.0.1:4545

所有响应均包含安全头(CSP、X-Frame-Options、X-Content-Type-Options、HSTS),并受 GCRA 成本感知速率限制器保护,支持按 IP 的令牌桶追踪和过期条目自动清理。LibreFang 实现了 16 个安全系统,包括 Merkle 审计链、污点追踪、WASM 双重计量、Ed25519 清单签名、SSRF 防护、子进程沙箱和密钥归零。

目录

代理与工作流 API

Agent 端点、工作流端点、触发器端点、调度端点、目标端点、定时任务端点

系统与配置 API

模板端点、系统端点、配置管理、会话管理、任务队列、备份和恢复、迁移、绑定和命令

智能与技能 API

记忆端点、技能和市场、ClawHub、Hands、扩展、插件、媒体生成

供应商与模型 API

模型目录、提供商配置

通信与网络 API

通道端点、MCP 和 A2A 协议、审计和安全、用量和分析、预算、Webhooks、集成、配对、OAuth/OIDC、通信、审批、网络和对等节点

实时 API

WebSocket 协议、SSE 流式传输、OpenAI 兼容 API


认证

config.toml 中配置 API 密钥后,所有端点(除 /api/health/ 外)均需要 Bearer 令牌:

Authorization: Bearer <your-api-key>

设置 API 密钥

~/.librefang/config.toml 中添加:

api_key = "your-secret-api-key"

无认证模式

如果 api_key 为空或未设置,则 API 无需认证即可访问。此模式下 CORS 仅限 localhost 来源。

公共端点(无需认证)

  • GET /api/health
  • GET / (WebChat UI)

错误响应

所有错误响应使用统一的 JSON 格式:

{
  "error": "Description of what went wrong"
}

HTTP 状态码

状态码含义
200成功
201已创建(创建 Agent、创建工作流、创建触发器、安装技能)
400请求错误(无效 UUID、缺少必填字段、格式错误的 TOML/JSON)
401未授权(缺少或无效的 Authorization: Bearer 头)
404未找到(Agent、工作流、触发器、模板、模型、技能或 KV 键不存在)
429请求过多(GCRA 速率限制已超)
500内部服务器错误(Agent 循环失败、数据库错误、驱动程序错误)

请求 ID

每个响应都包含 x-request-id 头,其值为用于追踪的 UUID:

x-request-id: 550e8400-e29b-41d4-a716-446655440000

在报告问题或在日志中关联请求时使用此值。

安全头

每个响应都包含安全头:

Content-Security-Policydefault-src 'self'(附带适当的指令)
X-Frame-OptionsDENY
X-Content-Type-Optionsnosniff
Strict-Transport-Securitymax-age=63072000; includeSubDomains
X-Request-Id每个请求唯一的 UUID

速率限制

GCRA(通用信元速率算法)速率限制器提供成本感知的令牌桶速率限制,支持按 IP 追踪和过期条目自动清理。不同端点消耗不同的令牌成本(例如 /api/agents/&lbrace;id&rbrace;/message 的成本高于 /api/health)。当超出限制时,服务器返回 429 Too Many Requests

HTTP/1.1 429 Too Many Requests
Retry-After: 60

{"error": "Rate limit exceeded"}

Retry-After 头以秒为单位指示窗口持续时间。


端点汇总

230+ 个端点,分布在 35 个分组中。

方法路径说明
系统
GET/WebChat UI
GET/api/health健康检查(无需认证,已脱敏)
GET/api/health/detail完整健康检查(需要认证)
GET/api/status内核状态
GET/api/version版本信息
POST/api/shutdown优雅关闭
GET/api/profiles列出 Agent 配置文件
GET/api/profiles/{name}获取指定配置文件
GET/api/tools列出可用工具
GET/api/tools/{name}获取工具详情
GET/api/metricsPrometheus 指标
GET/api/versionsAPI 版本发现
GET/api/openapi.jsonOpenAPI 规范
配置
GET/api/config配置(敏感信息已脱敏)
GET/api/config/schema配置 JSON Schema
POST/api/config/set运行时设置配置值
POST/api/config/reload从磁盘重新加载配置
Agent
GET/api/agents列出 Agent
POST/api/agents创建 Agent
POST/api/agents/bulk批量创建 Agent
DELETE/api/agents/bulk批量删除 Agent
POST/api/agents/bulk/start批量启动 Agent
POST/api/agents/bulk/stop批量停止 Agent
GET/api/agents/{id}获取 Agent 详情
DELETE/api/agents/{id}终止 Agent
PATCH/api/agents/{id}部分更新 Agent
PUT/api/agents/{id}/update完整更新 Agent 配置
PUT/api/agents/{id}/mode设置 Agent 模式(Stable/Normal)
PATCH/api/agents/{id}/identity更新 Agent 身份
PATCH/api/agents/{id}/config部分更新 Agent 配置
POST/api/agents/{id}/clone克隆 Agent
POST/api/agents/{id}/message发送消息(阻塞)
POST/api/agents/{id}/message/stream发送消息(SSE 流)
GET/api/agents/{id}/session获取当前对话历史
GET/api/agents/{id}/sessions列出所有 Agent 会话
POST/api/agents/{id}/sessions创建新会话
POST/api/agents/{id}/sessions/{session_id}/switch切换活跃会话
GET/api/agents/{id}/sessions/by-label/{label}按标签查找会话
DELETE/api/agents/{id}/history清除对话历史
POST/api/agents/{id}/session/reset重置会话
POST/api/agents/{id}/session/compact基于 LLM 的压缩
POST/api/agents/{id}/stop取消当前运行
PUT/api/agents/{id}/model切换模型
GET/api/agents/{id}/tools获取 Agent 工具
PUT/api/agents/{id}/tools设置 Agent 工具
GET/api/agents/{id}/skills获取 Agent 技能
PUT/api/agents/{id}/skills设置 Agent 技能
GET/api/agents/{id}/mcp_servers获取 Agent 的 MCP 服务器
PUT/api/agents/{id}/mcp_servers设置 Agent 的 MCP 服务器
GET/api/agents/{id}/traces执行追踪
GET/api/agents/{id}/metricsAgent 指标
GET/api/agents/{id}/logsAgent 日志行
GET/api/agents/{id}/deliveries入站投递
GET/api/agents/{id}/files列出工作区文件
GET/api/agents/{id}/files/{filename}获取工作区文件
PUT/api/agents/{id}/files/{filename}设置工作区文件
DELETE/api/agents/{id}/files/{filename}删除工作区文件
POST/api/agents/{id}/upload上传文件(multipart)
GET/api/uploads/{file_id}获取已上传文件
GET/api/agents/{id}/wsWebSocket 聊天
GET/api/agents/{id}/memory/export导出 KV 记忆
POST/api/agents/{id}/memory/import导入 KV 记忆
工作流
GET/api/workflows列出工作流
POST/api/workflows创建工作流
GET/api/workflows/{id}获取工作流
PUT/api/workflows/{id}更新工作流
DELETE/api/workflows/{id}删除工作流
POST/api/workflows/{id}/run运行工作流
GET/api/workflows/{id}/runs列出工作流执行记录
触发器
GET/api/triggers列出触发器(可选 ?agent_id=
POST/api/triggers创建触发器
GET/api/triggers/{id}获取触发器详情
PATCH/api/triggers/{id}部分更新触发器
DELETE/api/triggers/{id}删除触发器
调度
GET/api/schedules列出调度
POST/api/schedules创建调度
GET/api/schedules/{id}获取调度
PUT/api/schedules/{id}更新调度
DELETE/api/schedules/{id}删除调度
POST/api/schedules/{id}/run立即运行调度
记忆(KV)
GET/api/memory/agents/{id}/kv列出 KV 键值对
GET/api/memory/agents/{id}/kv/{key}获取 KV 值
PUT/api/memory/agents/{id}/kv/{key}设置 KV 值
DELETE/api/memory/agents/{id}/kv/{key}删除 KV 值
记忆(主动式)
GET/api/memory列出所有主动式记忆
POST/api/memory添加主动式记忆
GET/api/memory/search搜索记忆(全局)
GET/api/memory/stats记忆聚合统计
POST/api/memory/cleanup移除陈旧记忆
POST/api/memory/decay施加时间衰减
POST/api/memory/bulk-delete批量删除记忆
PUT/api/memory/items/{memory_id}更新记忆条目
DELETE/api/memory/items/{memory_id}删除记忆条目
GET/api/memory/items/{memory_id}/history记忆编辑历史
GET/api/memory/user/{user_id}按用户查询记忆
GET/api/memory/agents/{id}Agent 主动式记忆
DELETE/api/memory/agents/{id}清除 Agent 记忆
GET/api/memory/agents/{id}/search搜索 Agent 记忆
GET/api/memory/agents/{id}/statsAgent 记忆统计
DELETE/api/memory/agents/{id}/level/{level}按级别清除记忆
GET/api/memory/agents/{id}/duplicates查找重复记忆
POST/api/memory/agents/{id}/consolidate合并记忆
GET/api/memory/agents/{id}/count统计 Agent 记忆数
GET/api/memory/agents/{id}/relations查询关系图谱
POST/api/memory/agents/{id}/relations存储关系
GET/api/memory/agents/{id}/export导出 Agent 记忆
POST/api/memory/agents/{id}/import导入 Agent 记忆
通道
GET/api/channels列出通道(44 种适配器)
GET/api/channels/{name}获取通道配置
POST/api/channels/{name}/configure配置通道
DELETE/api/channels/{name}/configure移除通道配置
POST/api/channels/{name}/test测试通道
POST/api/channels/reload重新加载所有通道
POST/api/channels/whatsapp/qr/start启动 WhatsApp 二维码会话
GET/api/channels/whatsapp/qr/statusWhatsApp 二维码状态
模板
GET/api/templates列出模板
GET/api/templates/{name}获取模板
会话
GET/api/sessions列出所有会话
POST/api/sessions/cleanup清理孤立会话
GET/api/sessions/{id}获取会话详情
DELETE/api/sessions/{id}删除会话
PUT/api/sessions/{id}/label为会话添加标签
模型目录
GET/api/models完整模型目录(130+ 模型)
GET/api/models/aliases列出模型别名
POST/api/models/aliases创建模型别名
DELETE/api/models/aliases/{alias}删除模型别名
POST/api/models/custom注册自定义模型
DELETE/api/models/custom/{id}移除自定义模型
GET/api/models/{id}模型详情
GET/api/catalog/status目录版本和更新信息
POST/api/catalog/update触发目录更新
提供商
GET/api/providers提供商列表及认证状态
GET/api/providers/ollama/detect自动检测 Ollama
POST/api/providers/github-copilot/oauth/start启动 Copilot OAuth
GET/api/providers/github-copilot/oauth/poll/{poll_id}轮询 Copilot OAuth
GET/api/providers/{name}获取提供商详情
POST/api/providers/{name}/key设置提供商 API 密钥
DELETE/api/providers/{name}/key移除提供商 API 密钥
POST/api/providers/{name}/test测试提供商连通性
PUT/api/providers/{name}/url覆盖提供商基础 URL
技能和市场
GET/api/skills列出已安装技能(60 个内置)
POST/api/skills/install安装技能
POST/api/skills/uninstall卸载技能
POST/api/skills/create创建新技能
GET/api/marketplace/search搜索 FangHub
ClawHub
GET/api/clawhub/search搜索 ClawHub
GET/api/clawhub/browse浏览 ClawHub
GET/api/clawhub/skill/{slug}技能详情
GET/api/clawhub/skill/{slug}/code技能源代码
POST/api/clawhub/install从 ClawHub 安装
Hands
GET/api/hands列出 Hand 定义
POST/api/hands/install安装 Hand
GET/api/hands/active列出活跃的 Hand 实例
GET/api/hands/{hand_id}获取 Hand 详情
POST/api/hands/{hand_id}/activate激活 Hand
POST/api/hands/{hand_id}/check-deps检查 Hand 依赖项
POST/api/hands/{hand_id}/install-deps安装 Hand 依赖项
GET/api/hands/{hand_id}/settings获取 Hand 设置
PUT/api/hands/{hand_id}/settings更新 Hand 设置
POST/api/hands/instances/{id}/pause暂停 Hand 实例
POST/api/hands/instances/{id}/resume恢复 Hand 实例
DELETE/api/hands/instances/{id}停用 Hand 实例
GET/api/hands/instances/{id}/statsHand 实例统计
GET/api/hands/instances/{id}/browserHand 浏览器状态
扩展
GET/api/extensions列出扩展
GET/api/extensions/{name}获取扩展
POST/api/extensions/install安装扩展
POST/api/extensions/uninstall卸载扩展
插件
GET/api/plugins/registries列出插件注册表
GET/api/plugins列出插件
GET/api/plugins/{name}获取插件
POST/api/plugins/install安装插件
POST/api/plugins/uninstall卸载插件
POST/api/plugins/scaffold脚手架创建插件
POST/api/plugins/{name}/install-deps安装插件依赖项
MCP(托管)
GET/api/mcp/serversMCP 服务器连接
POST/api/mcp/servers添加 MCP 服务器
GET/api/mcp/servers/{name}获取 MCP 服务器
PUT/api/mcp/servers/{name}更新 MCP 服务器
DELETE/api/mcp/servers/{name}删除 MCP 服务器
A2A(外部)
GET/api/a2a/agents列出外部 A2A Agent
GET/api/a2a/agents/{id}获取外部 A2A Agent
POST/api/a2a/discover发现外部 A2A Agent
POST/api/a2a/send向外部 A2A Agent 发送任务
GET/api/a2a/tasks/{id}/status外部 A2A 任务状态
MCP 和 A2A 协议
POST/mcpMCP HTTP 传输(JSON-RPC 2.0)
GET/.well-known/agent.jsonA2A Agent Card
GET/a2a/agentsA2A 本地 Agent 列表
POST/a2a/tasks/send发送 A2A 任务
GET/a2a/tasks/{id}获取 A2A 任务状态
POST/a2a/tasks/{id}/cancel取消 A2A 任务
审计和安全
GET/api/audit/recent最近审计日志
GET/api/audit/verify验证 Merkle 链完整性
GET/api/security安全状态(16 个系统)
GET/api/logs/streamSSE 实时日志流
用量和分析
GET/api/usage用量统计
GET/api/usage/summary用量摘要及配额
GET/api/usage/by-model按模型分类的用量
GET/api/usage/daily每日用量明细
预算
GET/api/budget全局预算状态
PUT/api/budget更新全局预算
GET/api/budget/agentsAgent 预算排名
GET/api/budget/agents/{id}Agent 预算详情
PUT/api/budget/agents/{id}设置 Agent 预算
目标
GET/api/goals列出目标
POST/api/goals创建目标
GET/api/goals/{id}获取目标
PUT/api/goals/{id}更新目标
DELETE/api/goals/{id}删除目标
GET/api/goals/{id}/children列出子目标
定时任务
GET/api/cron/jobs列出定时任务
POST/api/cron/jobs创建定时任务
GET/api/cron/jobs/{id}获取定时任务
PUT/api/cron/jobs/{id}更新定时任务
DELETE/api/cron/jobs/{id}删除定时任务
PUT/api/cron/jobs/{id}/enable切换定时任务状态
GET/api/cron/jobs/{id}/status定时任务状态
Webhooks
GET/api/webhooks/events列出事件 Webhook 订阅
POST/api/webhooks/events创建事件 Webhook
PUT/api/webhooks/events/{id}更新事件 Webhook
DELETE/api/webhooks/events/{id}删除事件 Webhook
GET/api/webhooks列出出站 Webhook
POST/api/webhooks创建出站 Webhook
GET/api/webhooks/{id}获取出站 Webhook
PUT/api/webhooks/{id}更新出站 Webhook
DELETE/api/webhooks/{id}删除出站 Webhook
POST/api/webhooks/{id}/test测试出站 Webhook
POST/api/hooks/wake唤醒触发(无版本前缀)
POST/api/hooks/agentAgent 触发(无版本前缀)
备份和恢复
POST/api/backup创建备份
GET/api/backups列出备份
DELETE/api/backups/{filename}删除备份
POST/api/restore从备份恢复
MCP 服务器
GET/api/mcp/servers列出已配置的 MCP 服务器
POST/api/mcp/servers新增服务器(body 可为 {template_id, credentials} 或原始配置)
GET/api/mcp/servers/{id}获取单个服务器
PUT/api/mcp/servers/{id}更新服务器
DELETE/api/mcp/servers/{id}移除服务器
POST/api/mcp/servers/{id}/reconnect重新连接
GET/api/mcp/catalog浏览可安装的 MCP 模板
GET/api/mcp/catalog/{id}模板详情
GET/api/mcp/health所有 MCP 服务器的健康聚合
POST/api/mcp/reload热重载 MCP catalog 并重连
配对
POST/api/pairing/request发起配对
POST/api/pairing/complete完成配对
POST/api/pairing/notify通知已配对设备
GET/api/pairing/devices列出已配对设备
DELETE/api/pairing/devices/{id}移除已配对设备
OAuth / OIDC
GET/api/auth/providers列出 OAuth 提供商
GET/api/auth/login重定向到默认 OAuth 登录
GET/api/auth/login/{provider}重定向到指定 OAuth 登录
GET/api/auth/callbackOAuth 回调(GET)
POST/api/auth/callbackOAuth 回调(POST)
GET/api/auth/userinfoOIDC 用户信息
POST/api/auth/introspectToken 内省
任务队列
GET/api/tasks/status任务队列汇总
GET/api/tasks/list列出排队任务
DELETE/api/tasks/{id}取消排队任务
POST/api/tasks/{id}/retry重试失败任务
GET/api/queue/status队列深度和吞吐量
通信
GET/api/comms/topology通信拓扑
GET/api/comms/events最近通信事件
GET/api/comms/events/streamSSE 通信事件流
POST/api/comms/send通过通信层发送
POST/api/comms/task分派通信任务
审批
GET/api/approvals列出审批请求
POST/api/approvals创建审批请求
GET/api/approvals/{id}获取审批请求
POST/api/approvals/{id}/approve批准请求(body: {totp_code?}
POST/api/approvals/{id}/reject拒绝请求
POST/api/approvals/totp/setup生成 TOTP 注册密钥
POST/api/approvals/totp/confirm确认 TOTP 注册
GET/api/approvals/totp/status查询 TOTP 注册状态
POST/api/approvals/totp/revoke撤销 TOTP 注册
绑定和命令
GET/api/bindings列出 UI 绑定
POST/api/bindings添加绑定
DELETE/api/bindings/{index}移除绑定
GET/api/commands列出斜杠命令
GET/api/commands/{name}获取斜杠命令
媒体生成
POST/api/media/image从文本生成图像
POST/api/media/speech文本转语音
POST/api/media/video提交视频生成任务
GET/api/media/video/{task_id}轮询视频任务状态
POST/api/media/music从提示/歌词生成音乐
GET/api/media/providers列出媒体提供商和能力
网络和对等节点
GET/api/peers列出 OFP 对等节点
GET/api/peers/{id}获取 OFP 对等节点
GET/api/network/statusOFP 网络状态
迁移
GET/api/migrate/detect检测迁移来源
POST/api/migrate/scan扫描可导入数据
POST/api/migrate执行迁移
OpenAI 兼容
POST/v1/chat/completionsOpenAI 兼容聊天
GET/v1/modelsOpenAI 兼容模型列表
Plugins(生命周期与自检)
GET/api/plugins/doctor跨所有已装 plugin 诊断问题
GET/api/plugins/{name}/statusPlugin 运行状态
GET/api/plugins/{name}/healthPlugin 健康探针
GET/api/plugins/{name}/envPlugin 环境变量(脱敏)
GET/api/plugins/{name}/export导出 plugin 定义
GET/api/plugins/{name}/lintLint plugin manifest
POST/api/plugins/{name}/enable启用 / 激活 plugin
POST/api/plugins/{name}/reload热加载 plugin
POST/api/plugins/{name}/sign签名 plugin manifest(Ed25519)
POST/api/plugins/prewarm启动时预热 plugin 实例
Skills(注册表与运行时)
GET/api/skills/{name}获取单个 skill 详情
GET/api/skills/{name}/file取 skill 支持文件(references/templates/scripts/assets/)
GET/api/skills/registry列出 skill 市场注册表
POST/api/skills/reload热加载已装 skills
Tools(直接调用)
POST/api/tools/{name}/invoke从 REST 客户端直调工具(受 [tool_invoke] 允许列表限制)
Terminal
GET/api/terminal/health终端服务健康检查
GET/api/terminal/ws终端 WebSocket 会话
A2A(扩展任务 API)
GET/api/a2a/tasks/{id}按 ID 取外部 A2A 任务
POST/api/a2a/tasks/send向外部 A2A agent 提交新任务
MCP(HTTP transport)
POST/api/mcpMCP HTTP transport(JSON-RPC 2.0)—— 不鉴权的 /mcp 挂载点的另一选项
Config 与 Registry
GET/api/config/export导出完整生效配置
GET/api/registry/schema配置 JSON schema(给编辑器工具用)
GET/api/models/{*id}通配模型查询(处理带斜杠的模型 ID 如 vendor/model-name)
GET/api/templates/{name}/toml原始 agent-template TOML(给编辑器用)
Goals 与 Inbox
GET/api/goals/templates列出 goal 模板
GET/api/inbox/statusInbox 概要(按来源 pending 计数)
GET/api/sessions/search带过滤条件搜索 sessions
Approvals(扩展)
GET/api/approvals/auditApproval 决策的审计轨迹
GET/api/approvals/count待处理 approval 数量
POST/api/approvals/batch原子地批量处理多个 approval
Auto-Dream
GET/api/auto-dream/statusAuto-dream 自动化状态
Hands(扩展)
DELETE/api/hands/{hand_id}卸载 hand
POST/api/hands/reload从磁盘热加载 hand 定义
Media(扩展)
POST/api/media/transcribe音频转文本
ClawHub 中国镜像
GET/api/clawhub-cn/browse浏览 ClawHub 中国镜像目录
GET/api/clawhub-cn/search搜索 ClawHub 中国镜像
Init
POST/api/init快速初始化向导(被 librefang setup --quick 调用)
Dashboard 鉴权
POST/auth/logout清掉 dashboard session cookie
Prompt 版本化 & A/B 测试([prompt_intelligence] enabled = true 时)
GET/agents/{agent_id}/prompts/versions列出 agent 的 prompt 版本
POST/agents/{agent_id}/prompts/versions保存新 prompt 版本
GET/prompts/versions/{id}取单个 prompt 版本
DELETE/prompts/versions/{id}删除 prompt 版本
POST/prompts/versions/{id}/activate把这个版本激活给该 agent
GET/agents/{agent_id}/prompts/experiments列出 agent 的 A/B 实验
POST/agents/{agent_id}/prompts/experiments创建 A/B 实验
GET/prompts/experiments/{id}实验详情
POST/prompts/experiments/{id}/start启动实验(开始采样)
POST/prompts/experiments/{id}/pause暂停实验
POST/prompts/experiments/{id}/complete完成实验 + 记录胜者
GET/prompts/experiments/{id}/metrics按 arm 的指标(impression / wins / cost / latency)