01
接入三步
密钥在系统设置签发,站点要单独打开开放渠道。访客挂件和管理后台路径不变。Agent 接入见 MCP 接入。
STEP 01
打开渠道
运营后台「接入站点」勾选「开放 API / MCP」。默认关,未开时问答返回 channel_disabled。
STEP 02
签发应用
系统设置 → 开放应用。runtime 问答、ops 同步工单、agent 给 MCP。明文只显示一次。
STEP 03
带 Bearer 调用
服务端不要带 Origin。多站密钥每次传 site。写操作加 Idempotency-Key。
应用类型默认范围:
| 类型 | 场景 | 默认 scopes |
runtime | 对方后端代访客问答 | chat live.write kb.read |
ops | ERP / 电商同步 | crm.* work.* ticket.read |
agent | CodeNeo 代码编排工具 / 内部 Agent,见 MCP 接入 | chat kb.read ticket.read crm.read |
02
鉴权
密钥格式 aics_<live|test>_<12位hex>.<secret>。也可用头 X-AICS-Token。
HTTP
Authorization: Bearer aics_live_REPLACE.REPLACE
Content-Type: application/json
Idempotency-Key: erp-order-20260907-001
成功响应统一带 request_id,对账排错带上它:
JSON
{
"code": 200,
"success": true,
"message": "success",
"request_id": "req_…",
"data": {}
}
限流按密钥每分钟计数(默认 60),与挂件访客限流分开。响应不会包含渠道密钥、模型 Key、ticket_token 或内部备注。
03
REST 调用
基址 。把示例里的 YOUR_SITE 换成站点 ID。成功时外层仍是 code / success / request_id / data,下面每条给出完整响应。
| 方法 | 路径 | scope | 做什么 |
| GET | /meta | 任意密钥 | 站点、渠道开关、当前 scopes |
| POST | /chat | chat | 同步问答 |
| GET | /chat/sessions/{id} | chat | 会话摘要 |
| GET | /kb/search | kb.read | q top_k |
| GET / POST | /kb/faq | kb.read / kb.write | 列表 / 新增 FAQ |
| GET | /tickets | ticket.read | status limit include=last_message |
| GET | /tickets/{id} | ticket.read | 公开消息,无内部备注 |
| POST | /tickets | live.write | 排队或留言 offline:true |
| POST | /tickets/{id}/messages | live.write | 访客追问 |
| POST | /tickets/{id}/reply | agent.reply | 机器人回复(访客可见) |
| POST | /tickets/{id}/close | ticket.write | 关单,可带 note |
| GET / POST | /contacts | crm.read / crm.write | 列表 / 按手机 upsert |
| GET / PATCH | /contacts/{id} | 同上;完整手机要 crm.pii | 详情 / 改状态 |
| POST | /contacts/{id}/follows | crm.write | kind=phone|chat|note |
| GET / POST | /work | work.read / work.write | 售后列表 / 新建 |
| GET / POST | /work/{id} | 同上 | 详情 / 改 status |
| POST | /work/{id}/follows | work.write | 售后跟进 |
| GET / POST | /webhooks | hooks.write | 签名密钥只返回一次 |
| GET | /analytics/overview | analytics.read | 排队计数 |
| GET | /logs/chats | logs.read | 对话日志分页 |
| GET | /openapi.json | 无需密钥 | 路径清单 |
Webhook 投递头 X-AICS-Signature: sha256=<HMAC-SHA256(原始 body, secret)>,另有 X-AICS-Event。须 5 秒内 2xx。售后 status:open | pending | waiting | resolved | closed;客户 status:new | following | done。
04
试调用
粘贴你在「开放应用」复制过的密钥。本页不签发、不回显、不写入 localStorage。写操作会真实改数据,请用测试密钥。
站点须已打开开放 API 渠道,否则 chat / 建单为 403。密钥范围不够会 403 forbidden_scope。
结果会出现在这里。
05
错误码与边界
| HTTP | error | 含义 |
| 400 | bad_request | 缺参数 |
| 401 | unauthorized | 缺密钥、格式错、已吊销 |
| 403 | forbidden_scope | 缺范围 |
| 403 | wrong_site | 密钥未绑定该站 |
| 403 | channel_disabled | 站点未开 api 渠道 |
| 403 | forbidden_ip | 不在 IP 白名单 |
| 404 | not_found | 不存在或跨站 |
| 429 | rate_limited | 该密钥每分钟超限 |
| 409 | conflict | FAQ / 文档 ID 已存在 |
不开放:模型 Key、成员与 TOTP、渠道 AppSecret、短信/语音、原始数据库。A 站密钥读 B 站工单为 404/403。客户手机默认掩码。