开发者文档

首页 · 控制台 · 协议

文档版本 v2.32 · 更新:2026-10-31

一、快速开始(网页模式,5 分钟,无需代码)

  1. 打开 我的中心,注册一个账号(用户名+邮箱验证码+密码)。
  2. 进入 控制台,用该账号登录,填写开发者自助申请表单。
  3. 提交后立即获得三样东西:
    • APP 编号(12位,形如 BX3F9K2M7Q4A,永久有效,充值查账都用它)
    • API 密钥(bx- 开头,只在申请成功那一刻显示一次,请立即复制保存到安全的地方)
    • 专属客服链接:https://3w.chat/chat.html?app=您的编号
  4. 新应用自动赠送 0.5 元体验余额(API 与技能调用可用,约几十次典型问答试用量),账单中心可查。
  5. 把专属链接挂进你的 APP 客服入口、用户群公告、官网任意位置——用户点开就是你的智能客服,开场白自动填好。
  6. 在控制台"知识库链接"里粘贴你的公告/更新帖地址(批量粘贴,随便什么分隔符都行),系统每天自动抓取入库。
用户问问题时,AI 只依据你知识库里的内容回答,并附原文出处;知识库没有的会明说,答不了的自动走人工工单发你邮箱。

二、API 接入(程序调用模式)

基础信息

项目说明
接口地址https://3w.chat/ask/(POST,JSON)
认证方式请求头 X-BX-Key: 你的API密钥
内容类型Content-Type: application/json

请求参数

参数类型必填说明
qstring是用户问题,最长 500 字(超出自动截断)
appstring否您的 APP 编号,用于归属统计(强烈建议带)
conv_idstring否对话ID(自己生成,字母数字),带上下文时同一对话用同一个 ID
ctxarray否最近对话上下文 [{"who":"user","text":"…"}],最多4轮,AI 会参考

调用示例(curl)

curl -X POST https://3w.chat/ask/ \\
  -H "Content-Type: application/json" \\
  -H "X-BX-Key: bx-你的密钥" \\
  -d '{"q":"会员多少钱一个月","app":"BX3F9K2M7Q4A","conv_id":"conv001"}'

响应说明(异步模式)

为避免超时,采用"两步取件":第一次调用立即返回查询中状态,之后用相同问题再次调用取结果:

// 第一次调用,立即返回:
{"ok":true,"pending":true,"answer":"收到,正在帮您翻官方公告…"}

// 通常 30~60 秒后,再次调用相同请求,返回结果:
{"answer":"根据《会员服务说明》公告:基础版每月5元…",
 "sources":[{"title":"会员服务说明","url":"https://…"}]}

// 未完成时继续返回 pending:true
建议轮询间隔 10~15 秒,最多重试 5 次。相同问题的结果会缓存 30 分钟,缓存命中时直接返回结果。

错误码表

code含义处理建议
RC-2101访问受限检查调用来源网络环境
RC-2102密钥无效或系统繁忙先核对密钥;多次出现请到控制台重置密钥
RC-2201调用过于频繁单密钥 60 次/分钟突发限流,降低调用频率;网页模式套餐额度用尽不会返回本错误码,而是正常响应并自动降级原文模式(见第七节)
RC-2301访问受限稍后再试;持续出现请检查调用来源
RC-2401服务维护中稍后再试
RC-2501API 余额用尽已暂停服务;充值后即刻恢复

所有错误均返回 HTTP 200 + 上述 code + 随机参考号(E-XXXX),不暴露拦截细节。

三、内容审核与风控(v2.0 起)

四、应用管理(v2.1 起)

应用公开状态标记(v2.31 起)

平台对确认存在异常行为、违规或已处置的应用,会在应用广场、应用详情与客服页旁公开一个状态标签,用户与开发者均可看到,数据直接来自平台记录(GET /ask/apps 与 GET /ask/app-info 同步返回):

被标记不等于永久处罚:每次标记都会写入处罚记录(原因、时间),可在「我的中心 → 被处罚记录」查看;开发者可通过工单或邮件申诉,整改达标后解除。状态标签由平台数据驱动,应用方无法自行修改或隐藏。

应用管理 API(程序调用)

以下接口均 POST JSON,鉴权方式与主 API 相同(token 登录态,或 app+key):

接口参数说明
/ask/console/appstoken本人全部应用列表(含已删除),含状态/时间/密钥指纹/平台标记(mark、mark_label)
/ask/console/reset-keytoken, app重置密钥,返回新密钥(仅此一次)
/ask/console/del-apptoken, app删除应用(软删除)
/ask/console/exporttoken, app导出应用数据(知识库+配置,不含密钥)
/ask/console/statstoken, app(可空=全部), days(7/14/30/90)评价统计:三档计数、好评率、原因排名、建议原文

app-info 状态字段(v2.31 起扩展)

GET /ask/app-info?app=编号:status(deleted=已删除 / banned=已封禁 / offline=已下架;正常时不返回此字段)、del_ts(删除时间戳)、mark 与 mark_label(公开状态标记:warn=重点关注 / offline=已下架 / banned=已封禁,无标记时为空)、faqs(常见问题列表,来自你的知识库,聊天页自动展示为快捷按钮)。

应用处于"已下架/已封禁"状态时,主问答接口 POST /ask/ 会直接返回"服务已停止"提示,不再产生问答与计费;"重点关注"不影响服务。

五、密钥安全须知

五(二)、知识库数据接口规范(批量接入推荐)

为合规起见,系统不直接抓取第三方论坛板块。开发者可提供一个自己有权访问的数据接口,系统每日自动增量拉取(按标题去重):

示例(可直接部署为静态 JSON 文件):你的服务器上放一个 docs.json,内容 [{"title":"会员价格","text":"会员5元每月…","url":"https://…"}],控制台填该文件地址即可。

数据接口常见失败原因(v2.32 起,控制台直接显示具体环节)

在控制台"方式二"填入地址后会立即试拉一次;失败时不再只给一句笼统提示,而是直接显示失败环节,便于自查:

系统会自动跟随重定向、兼容 gzip/deflate 压缩响应,并对瞬时失败自动重试一次;因此偶发抖动通常无需处理,若持续失败请按上面提示逐项排查。

技能执行透明度说明

用户提问命中已配置回调的技能时,AI 的回答开头会自动注明「(已自动调用技能「技能名」为您获取实时信息)」——这是默认且不可关闭的合规要求,确保用户知情。

勿扰时段

控制台「工单」标签页底部可设置勿扰时段(开始/结束时间+周一至周日勾选)。生效期间:用户端显示"非开发者工作时间"提示,用户仍可留言(工单正常创建),但邮件通知会在你设定的结束时间后自动补发。

工单与转人工

内容拦截双层说明(v2.4 起)

被处罚记录(v2.4 起)

用户与开发者可在「我的中心」查看被处罚记录(处罚原因、处罚详情、处罚结果、预计解除时间,精确到秒)。账号处罚(举报属实自动处理)默认 15 天,到期登录时自动解除;应用下架需邮件申诉复核。开发者也可在控制台「应用管理」查看每个应用的处罚详情。

平台处置(状态标记、下架、封禁、申诉复核)由平台的风控系统按预设规则在服务器侧自动执行:命中风险规则(内容违规、密钥爆破、异常扫描、关联违规等)且风险分达到阈值即自动处置——关联应用下架、关联账号封禁(含不定长期限),处置依据、结果与解除时间会写入你的处罚记录并邮件通知你。开发者侧不提供任何管理接口,也没有可被冒用的管理口令;你只需要关注自己应用的状态与处罚记录。对处置有异议的,请通过工单或邮件申诉,复核时限 3 个工作日,复核成立会解除处置并恢复服务。

举报接口(双向,v2.3 起)

用户举报应用:POST /ask/report,参数 id(对话ID)、reason(违法违规/色情低俗/诈骗/侵权/辱骂攻击/其他)、detail(补充说明,选填)、email(联系邮箱,选填——接收处理结果)。系统自动核查对话记录后处理,结果邮件回复。

开发者举报用户:控制台「工单处理」里每个工单有"举报用户"按钮;程序调用加 mode=dev、app、token(需登录态)。系统核查对话后,属实则暂停该用户账号,结果邮件回复开发者。

工单系统(v2.12 状态机版,参照 Zendesk/阿里云模型)

状态流转:待处理 → 处理中 → 待确认 → 已解决 / 已关闭。开发者回复工单后自动进入"处理中";标记解决后进入"待确认",用户可点"确认已解决"或直接回复(回复即自动重开);优先级 P1-P3 可调;类型标签(使用咨询/问题反馈/功能建议/其他)随建单生成。

独立对话页:控制台「工单处理」点"对话"进入独立工单对话页(/ticket-view.html),完整对话流、状态徽章、操作按钮、双方回复都在一个页面。用户在"我的工单"里点"查看对话"进入同一页面(用户视角,含确认解决按钮)。

接口参数说明
POST /ask/ticket/setnum, app, token, act状态操作。开发者:start/waiting/solve/close/reopen/P1/P2/P3;用户:confirm(确认解决)
POST /ask/ticket/msgnum, app, token|key|cid读工单对话流(含状态/标题/类型/优先级)

工单提交接口(也可程序调用)

curl -X POST https://3w.chat/ask/ticket \\
  -H "Content-Type: application/json" \\
  -d '{"id":"对话ID","title":"问题标题","body":"详细描述",
       "contact":"用户联系方式(选填)","imgs":[]}'

六、私有技能(Function Calling · v1.4 已上线)

是什么

技能 = 你自己的接口。用户提问命中技能关键词时,应答台会向你的回调地址发一个签名 POST 请求,你的系统返回结果文本,AI 把结果纳入上下文一起作答——即 function calling 的"只读自动执行"档。

第一步:登记

在控制台「私有技能登记」填写:

第二步:接收回调请求

应答台向你 POST 一个 JSON(UTF-8):

{
  "app":   "BX你的编号",
  "skill": "技能名称",
  "q":     "用户原话(最多300字)",
  "ts":    1792050355
}

请求头两个自定义字段:

第三步:验签(必须做)

签名 = sha256( 技能名 + 请求原始body字符串 + csec ) 的十六进制,取前32位
最容易踩的坑:签名用的是收到的原始 body 字符串(一字不改)。不要 json.loads 后重新 dumps——空格、转义、字段顺序变了都会验签失败。

第四步:返回结果

HTTP 200 + 纯文本或 JSON 皆可,1500 字以内,超时上限 8 秒(超时或非 200 = 本次跳过该技能,不影响正常问答)。返回内容会以"技能执行结果"注入 AI 上下文。请返回面向用户的陈述句(如"您的快递已到成都转运中心,预计明天送达"),不要返回原始 JSON。

完整示例(Python Flask 最小回调服务)

from flask import Flask, request, abort
import hashlib, json

CSEC = "你登记时填的签名密钥"
SKILL = "查快递"

app = Flask(__name__)

@app.post("/skill")
def skill():
    raw = request.get_data(as_text=True)      # 原始body,一字不改
    d = json.loads(raw)
    name = d.get("skill") or ""               # 用body里的原文技能名
    sign = hashlib.sha256((name + raw + CSEC).encode()).hexdigest()[:32]
    if sign != request.headers.get("X-BX-Sign", ""):
        abort(401)                            # 验签失败拒绝
    q = d.get("q", "")
    # ==== 你的业务逻辑:解析q里的单号、查你自己的库 ====
    return "您的快递已到成都转运中心,预计明天送达"

app.run(port=9000)

安全与最佳实践

客服设置与联系方式(v2.11 起)

控制台「客服设置」标签,或程序调用:

接口参数说明
POST /ask/console/bot-settoken, app, opening(≤50字), fallback(≤50字), vertical(≤200字)自定义开场白(留空用默认)、答不上来时的回复、垂直领域(注入 AI 角色设定,API 与网页模式通用)
GET /ask/console/contactsapp, token回显联系方式与设置
POST /ask/console/contactstoken, app, pub, contacts[], imgs{序号:dataURL}保存联系方式(最多6条;预设:微信二维码/QQ二维码/手机号/邮箱/QQ账号;或自定义名称+内容,URL 自动可点击;二维码需 PNG/JPG ≤300KB 并填写图片用途说明——供读屏用户理解)。pub=true 时在应用广场与客服页公开展示,并提供一键复制

用户侧:GET /ask/app-info 新增 contacts(公开时返回)与 has_contacts;二维码图片地址 /ask/contact-img?app=编号&i=序号(PNG,5分钟缓存)。

技能调用通道(v2.7 说明)

技能网页模式与 API 模式通用:用户问题命中技能关键词时,无论来自内置客服链接还是 API 调用,系统都会自动签名调用你配置的回调地址取数,并在回答中声明。技能登记本身也支持两种方式:控制台「技能登记」标签,或程序调用 POST /ask/console/skill(带 app+key)。

多轮澄清(v2.8):反问 → 补充 → 自动续查

查询类技能的标准流程(与主流客服系统一致):用户问"查会员"→ 你的回调返回"请提供需要查询的对应账号"→ AI 转述给用户 → 用户直接回复"13800138000"→ 系统识别到这是本技能的补充信息,自动把上一句问题 + 本句补充(如"查会员 13800138000")再次发给你的回调 → 你返回查询结果 → AI 答复用户。无需任何额外配置。

资金操作红线(行业惯例):涉及支付、扣费、退款等资金敏感操作,请让回调返回支付链接或办理入口,由用户本人自行完成。机器人只递链接,不代执行资金操作。

触发规则说明

用户问题包含技能名称,或描述前 20 字内的任一空格分隔关键词(≥2字)即触发。示例:技能"查快递"、描述"快递 物流 单号 查询"——用户问"帮我查快递,单号SF123"即命中。一个应用可登记多个技能,按登记顺序匹配第一个命中的。

技能函数调用通道(AI 可调用层 · 注册制)

技能函数调用通道是平台面向开发者的核心开放能力:不依赖服务器出口IP,不受IP与机房拦截约束,机房环境可正常使用。

面对机房/服务器IP命中平台拦截规则的场景,技能函数调用通道是最优先的替代接入方式——通道不依赖出口IP,详情见下方「九、服务器IP与机房触发拦截时的替代接入方法」。

技能调用计费(v2.15 起)

技能调用(用户问题命中你配置的回调地址并取回结果)按 token 独立计费,不再占用套餐次数,与 API 调用共享预充值余额:

七、额度与计费

内置客服套餐(网页模式)

档位价格额度超额行为
体验版0 元每天 20 问当日超额自动降级为原文模式(仅返回知识库原文片段),次日恢复
基础版9.9 元/月500 问/月当月超额降级原文模式,次月1日恢复
专业版29.9 元/月2000 问/月同上

套餐由站长人工开通(付款后报 12 位 APP 编号),开通即刻生效并邮件确认。额度系统自动强制执行,超额不会中断服务。仅约束网页模式内置客服;API 程序调用不受此限制,按 token 计费(见下)。

API 调用计费(程序调用模式,充值制 · v2.16 起不再受套餐次数限制)

按 token 计费,用多少扣多少,预充值(¥10 / ¥50 / ¥100 三档)。余额扣完自动停机(RC-2501),充值恢复。价格分高峰/低谷两档(北京时间):

时段(北京时间)输入(每百万 tokens)输出(每百万 tokens)
高峰:工作日 9:00-12:00、14:00-18:00¥4.0¥16.0
低谷:其余时段(含周末与法定节假日全天)¥2.0¥8.0

API 模式的转人工 / 举报 / 评价(与网页模式同规则)

再次强调(v2.16):上面"体验版/基础版/专业版"套餐额度仅约束网页模式内置客服——网页模式额度用尽自动降级为"仅返回知识库原文出处"模式(服务不中断、不额外扣费),每日额度次日凌晨重置、月额度次月重置;API 程序调用完全不受套餐次数限制,只按 token 计费、随余额走。充值/查账均报你的 12 位 APP 编号。

八、常见问题

知识库链接支持哪些格式?
任意网页帖子链接均可(论坛帖、博客、官网公告页);批量粘贴时竖线、换行、逗号、空格分隔都支持。目前由系统每日定时抓取更新。
AI 会编造答案吗?
不会。AI 只依据你知识库内容作答,库里没有的信息会明确回答"没有提到",并建议用户转人工。
怎么换开场白?
开场白根据你申请时填写的应用名称自动生成("您好,我是XX智能客服…")。要自定义请联系 2414137742@qq.com(专业版功能)。
数据能导出删除吗?
可以。知识库和对话数据可随时申请导出或彻底删除(详见隐私政策)。
怎么付费?
网页模式:体验版免费(每天20问);基础版 9.9 元/月、专业版 29.9 元/月,报 APP 编号联系 2414137742@qq.com 开通。API 程序调用:预充值(¥10 / ¥50 / ¥100 三档)后按 token 计费,余额不足自动停机、充值即刻恢复(技能调用同按 token 计费,不占套餐次数)。

九、服务器IP与机房触发拦截时的替代接入方法(方案A)

开发者平台对服务器IP、数据中心机房网络实施安全拦截,用于降低自动化与黑产流量对平台的影响。当您的出口IP命中机房规则或平台拦截规则时,直接访问开发者平台官网或平台API可能受限,此时可以使用以下替代接入方法继续完成接入与维护:

注意事项:上述方法仅解决IP与机房拦截场景下的接入可达性问题。若您的出口设备同时命中设备指纹或行为异常的高风险规则,仍会按平台二级拦截规则处置,请更换常用设备或网络后访问。
v2.32 起:机房识别增加了本地网段兜底与反查,地域查询接口瞬时不可用时同样按机房处置,覆盖常见国内云与机房网段。因此请勿使用任何云服务器/机房出口 IP 直连平台;合规接入请使用上文方法一(技能函数调用通道)。

十、签名与回调地址规范(申请应用时)

申请应用时可同时提交签名密钥与回调地址,用于后续回调验证与安全通信。格式要求:

十一、操作授权与审计(AI 可调用层)

自技能函数调用通道开放起,平台要求所有 AI 实际操作遵循「实时描述 → 确认授权 → 高危二次确认 → 过程不可关闭展示 → 全程审计」的链路:

请开发者按业务最小必要原则配置技能可操作的资源范围,未配置的资源默认不可被 AI 操作。

十二、常见问题(补充)

我的服务器在机房,调用技能函数通道是否受限?
不受限。技能函数调用通道不依赖服务器出口IP,机房环境可以正常使用。
被机房拦截后还能修改应用回调地址吗?
可以。请使用技能函数调用通道或个人常用网络访问开发者中心进行修改。
AI 可以不经我同意操作我的应用吗?
不可以。AI 执行任何实际操作前必须经过您的实时确认授权,高危操作还有二次确认;未经确认的操作不会被执行。
申请应用时的签名和回调地址需要满足什么格式?
签名算法须为平台白名单算法(当前支持 HMAC-SHA256 / SHA256)、密钥长度不低于 12 位、回调地址为合法 HTTPS 地址;提交后平台会向回调地址发起验证请求,请在收到验证请求后正确响应。
删除应用失败怎么办?
删除过程中按钮会显示"删除中"并禁用重复点击;失败时按钮恢复可点击状态并显示失败原因,可重新尝试。