API接口说明

MCP 服务

地址:https://kefu.aipm123.com/mcp

send_wechat_message: 向微信客户发送消息
open_kfid: (string) 客服账号ID
external_userid: (string) 客户ID
content: (string) 消息内容 (当 msgtype=text 时必填)
msgtype: (string) 消息类型 (text, image, voice, file,默认: text)
url: (string) 媒体文件URL (当 msgtype 为 image/voice/file 时必填,自动上传转为 media_id)
media_id: (string) 媒体文件ID (可选,image/voice/file 时作为 url 的替代)
set_agent_enabled: 开启/关闭 Agent 托管自动回复
enabled: (boolean) 必填,true=启用,false=停用
customer_id: (string) 必填,客户ID(external_userid)
assign_staff: 人工座席分配(演示用)
user_id: (string) 必填,用户ID
list_session_summaries: 查询会话摘要列表
user_id: (string) 必填,用户ID(external_userid)
open_kfid: (string) 可选,客服账号ID
status: (string) 可选,会话状态(open/closed/timeout_closed/customer_closed/staff_closed/agent_closed/ticketed)
order: (string) 可选,start_time.asc|start_time.desc

返回: sessions[] 每项包含 session_id, status, summary

API端点一览

基础地址:https://kefu.aipm123.com

内容类型:application/json

POST /send
向企业微信客服发送消息
参数
open_kfid: 必填,客服账号ID(未在请求体提供时使用服务配置)
external_userid/touser: 必填,客户ID
msgtype: 必填,消息类型(text, image, voice, file)
content: 条件必填(当 msgtype=text),文本内容
url: 条件必填(当 msgtype=image/voice/file 且无 media_id),文件绝对URL,系统会自动下载上传
media_id: 条件必填(当 msgtype=image/voice/file 且无 url),已上传的素材ID
调用示例 (文本)
curl -X POST https://kefu.aipm123.com/send \
  -H 'Content-Type: application/json' \
  -d '{
    "open_kfid": "wk...",
    "external_userid": "wm...",
    "msgtype": "text",
    "content": "hello"
  }'
调用示例 (图片)
curl -X POST https://kefu.aipm123.com/send \
  -H 'Content-Type: application/json' \
  -d '{
    "open_kfid": "wk...",
    "external_userid": "wm...",
    "msgtype": "image",
    "url": "https://example.com/image.jpg"
  }'
POST /api/set_agent_enabled
开启/关闭 Agent 托管自动回复
参数
enabled: 必填,true=启用,false=停用
customer_id: 必填,客户ID(external_userid)
调用示例
curl -X POST https://kefu.aipm123.com/api/set_agent_enabled \
  -H 'Content-Type: application/json' \
  -d '{
    "customer_id": "wm...",
    "enabled": true
  }'
POST /api/assign_staff
人工座席分配(演示接口)
参数
user_id: 必填,用户ID
响应字段
staff_id: 分配的座席ID(使用当前默认客服ID)
queue_count: 分配的座席排队数(随机 0-3)
queue_eta_minutes: 座席排队时间预估(queue_count * 3 分钟)
调用示例
curl -X POST https://kefu.aipm123.com/api/assign_staff \
  -H 'Content-Type: application/json' \
  -d '{
    "user_id": "wm..."
  }'
响应示例
{
  "staff_id": "wk...",
  "queue_count": 2,
  "queue_eta_minutes": 6
}
POST /api/upload_file
上传文件到服务器
参数
file: 必填,文件数据 (multipart/form-data)
调用示例
curl -X POST https://kefu.aipm123.com/api/upload_file \
  -F "file=@/path/to/image.jpg"
响应示例
{
  "ok": true,
  "url": "/uploads/1700000000000_image.jpg",
  "name": "1700000000000_image.jpg"
}
GET /db/messages
从数据库查询标准化消息
参数
conversation_id: 可选,会话ID
session_id: 可选,会话分段ID(筛选该分段开始至结束时间范围内的消息)
direction: 可选,消息方向(in/out)
external_userid: 可选,客户ID
open_kfid: 可选,客服账号ID
agent_id: 可选,Agent唯一标识(按绑定范围筛选客户消息)
limit: 可选,返回条数(默认100)
调用示例
curl 'https://kefu.aipm123.com/db/messages?session_id=SESSION_ID&limit=50'
GET /db/sessions
查询会话分段(表:public.kf_sessions)
参数
conversation_id: 可选,会话ID
external_userid: 可选,客户ID
open_kfid: 可选,客服账号ID
status: 可选,会话状态,参考说明
order: 可选,start_time.asc|start_time.desc
limit: 可选,默认100
调用示例
curl 'https://kefu.aipm123.com/db/sessions?conversation_id=wk...__wm...&order=start_time.desc&limit=50'
状态值说明
open: 进行中(未结束)
closed: 已结束(包含所有结束状态)
timeout_closed: 系统超时自动结束
customer_closed: 客户主动结束
staff_closed: 人工客服结束
agent_closed: 智能体结束
ticketed: 已转工单
POST /db/sessions/summary
更新某个 session 的 summary 总结字段
参数
session_id: 必填,会话分段ID
summary: 必填,总结内容
调用示例
curl -X POST https://kefu.aipm123.com/db/sessions/summary \
  -H 'Content-Type: application/json' \
  -d '{
    "session_id": "sess_...",
    "summary": "本次会话总结..."
  }'
响应示例
{
  "ok": true
}
GET /db/conversations
从数据库查询会话列表
参数
external_userid: 可选,客户ID
open_kfid: 可选,客服账号ID
agent_id: 可选,Agent唯一标识(按绑定范围筛选客户会话)
limit: 可选,返回条数(默认100)
调用示例
curl 'https://kefu.aipm123.com/db/conversations?agent_id=agent-001&limit=50'
GET /db/send_receipts
从数据库查询发送回执
参数
open_kfid: 可选,客服账号ID
external_userid: 可选,客户ID
limit: 可选,返回条数(默认100)
调用示例
curl 'https://kefu.aipm123.com/db/send_receipts?open_kfid=wk...&external_userid=wm...&limit=50'
GET /callback
接收来自企业微信的验证请求并返回 echostr
参数
msg_signature/signature: 必填,签名
timestamp: 必填,时间戳
nonce: 必填,随机数
echostr: 必填,回声字符串
调用示例
curl 'https://kefu.aipm123.com/callback?msg_signature=...×tamp=...&nonce=...&echostr=...'
POST /callback
接收来自企业微信的回调消息,记录事件并触发同步
参数
Content-Type: 必填,请求体类型(application/xml 或 application/json)
Encrypt: 可选,加密字段
调用示例
curl -X POST 'https://kefu.aipm123.com/callback?msg_signature=...×tamp=...&nonce=...' \
  -H 'Content-Type: application/json' \
  -d '{
    "Encrypt": "..."
  }'