前置条件
- 1已注册 Coze(扣子)平台账号
- 2电脑能联网(Coze 国内直连,不用梯子)
- 3方式 B 需安装 Python 3.8+ 或 Node.js 16+
腾讯智能体开发平台 ADP
新客首月专属价,最高直降 880 元,构建/分发/治理企业级 Agent
Coze 智能体创建与 API 发布完整指南
Coze(扣子)是字节跳动推出的 AI Agent(智能体)开发平台,让你无需写一行代码就能搭建出能听会做的智能机器人,再通过 API 接口把它接入到自己的网站、App 或企业系统中。本教程带你从零开始:在 Coze 平台创建一个智能体,配置人设、插件和知识库,最后发布为可调用的 API。
完成本教程后,你将拥有一个可以通过 HTTP 接口对话、调用插件、检索私有知识的 AI 智能体。
两种方式对比
本教程提供两条路径,可根据自身情况选择:
| 对比维度 | 方式 A:平台可视化创建 | 方式 B:API 编程调用 |
|---|---|---|
| 适合人群 | 零基础新手、产品/运营人员 | 开发者、需集成到自有应用 |
| 操作方式 | 网页拖拽配置,所见即所得 | 编写代码调用 SDK |
| 编码量 | 零代码 | Python / Node.js 脚本 |
| 调试方式 | 平台内置测试窗口实时预览 | 命令行运行,查看返回 JSON |
| 典型用途 | 快速搭建客服、问答机器人 | 嵌入业务系统、批量自动化 |
| 学习成本 | ⭐(半小时上手) | ⭐⭐⭐(需基础编程能力) |
提示
💡 小白提示:如果你是第一次接触 Coze,强烈建议先做方式 A,在平台上把智能体跑通、看到效果,建立直观感受后再尝试方式 B 的代码调用。两种方式最终调用的是同一个 Bot,方式 A 做的配置方式 B 直接复用。
为什么选择 Coze
在众多 AI Agent 平台中,Coze 的核心优势在于「低门槛 + 强能力」:
- 零代码创建智能体:通过自然语言编写人设(System Prompt),拖拽配置插件和知识库,无需编程即可产出可用 Agent
- 内置插件生态:平台预置搜索、绘图、代码执行、新闻资讯、天气查询等数十款插件,一键添加即可让 Bot 拥有「动手能力」
- 私有知识库:上传 PDF / Word / 网页链接,Bot 能基于你的专属资料回答问题,不再胡编乱造
- 工作流编排:用可视化画布串联多个步骤(如「搜索 → 总结 → 翻译」),实现复杂业务逻辑
- 多模型可选:内置豆包系列模型(doubao-pro、doubao-lite 等),按场景选择,无需单独申请各家模型 API
- 国内直连:Coze 国内版(coze.cn)服务器在国内,访问快、无需梯子,PAT 认证简单直接
- 免费额度充足:Bot 创建、测试、API 调用目前均免费,适合个人和小团队起步
前置准备
开始前请确认:
- 已注册 Coze(扣子)平台账号,能正常登录 www.coze.cn
- 电脑能正常访问国内网站(Coze 国内版直连,无需梯子)
- 方式 B 需安装 Python 3.8+ 或 Node.js 16+(两者选一即可)
- 准备一份测试用的文档(PDF 或 TXT,用于演示知识库功能,可选)
步骤一:注册并获取 Coze PAT
PAT(Personal Access Token,个人访问令牌)是调用 Coze API 的身份凭证,相当于你的「API 密码」。无论方式 A 还是方式 B,都要先拿到它。
1.1 注册 / 登录 Coze
- 访问 Coze 官方网站
- 点击右上角「登录」,使用抖音 / 手机号 / 飞书账号登录(推荐手机号,最便捷)
- 首次登录会进入工作台首页,显示「我的 Bot」列表(新账号为空)
1.2 生成个人访问令牌
- 点击右上角头像 → 选择「API 令牌管理」(或访问 Coze 个人中心)
- 点击「创建令牌」
- 填写令牌名称(如
my-coze-pat),过期时间建议选 1 年 - 关键步骤:在权限范围中勾选「Bot 访问」和「对话调用」权限(否则后续 API 调用会 403)
- 点击「创建」,系统会生成一串以
pat_开头的令牌
警告
⚠️ 重要警告:令牌只在创建时显示一次,请立即复制保存到安全位置(如密码管理器)。一旦关闭页面将无法再次查看,丢失只能重新生成。切勿把令牌提交到 Git 仓库或截图分享。
1# 保存到环境变量(推荐,避免硬编码到代码里)
2# Windows PowerShell
3setx COZE_PAT "pat_xxxxxxxxxxxxxxxxxxxxxxxx"
4
5# macOS / Linux
6echo 'export COZE_PAT="pat_xxxxxxxxxxxxxxxxxxxxxxxx"' >> ~/.bashrc
7source ~/.bashrc拿到 PAT 后,方式 A 和方式 B 的路径就此分叉。下面先讲对新手更友好的方式 A。
方式 A:在 Coze 平台可视化创建 Bot
适合零基础用户,全程在网页上拖拽配置,无需写代码。
步骤二:创建新 Bot
- 在 Coze 工作台点击左侧「我的 Bot」
- 点击右上角「创建 Bot」按钮
- 填写基本信息:
- Bot 名称:如
智能客服小助手(中英文均可,后续可改) - Bot 功能介绍:一句话描述用途,如「回答产品使用问题,基于知识库给出准确答复」
- Bot 图标:可上传图片或用 AI 生成
- Bot 名称:如
- 选择「空白 Bot」模板(也可选官方模板,但空白模板便于理解全流程)
- 点击「确认创建」,进入 Bot 编辑页
编辑页左侧是配置区(人设、插件、知识库等),右侧是实时测试窗口——你改的每一项配置,都能立刻在右侧试出来。
步骤三:配置人设和开场白
人设(Persona / System Prompt)决定了 Bot「是谁、怎么说话、擅长什么」,是智能体最核心的配置。
- 在左侧「人设与回复逻辑」区域,找到「人设」输入框
- 填写人设描述。一个好的 Prompt 应包含角色定位、能力边界、语气风格、输出格式:
1# 角色
2你是「智能客服小助手」,隶属于 AIToolSchool 教程团队,负责解答用户关于 AI 工具使用的问题。
3
4# 能力范围
5- 回答 AI 教程网站上的工具接入问题
6- 基于知识库提供准确的产品说明
7- 不确定的问题要明确说「我不确定」,不要编造答案
8
9# 回复风格
10- 语气友好、专业,使用中文
11- 答案分点陈述,重要信息加粗
12- 涉及代码时给出完整可运行的示例
13
14# 输出格式
15- 简单问题:直接给答案
16- 复杂操作:分步骤编号说明
17- 代码相关:用 ```代码块``` 包裹- 在「开场白」处设置 Bot 的第一句话,如:
你好!我是智能客服小助手,可以帮你解答 AI 工具的接入和使用问题,请问有什么可以帮你? - 可选:在「预设问题」中添加几个快捷问题按钮,如「如何接入 Coze?」「有哪些免费教程?」
提示
💡 小白提示:人设写得好,Bot 表现就好。初学者常犯的错是 Prompt 写得太短(如「你是一个助手」),导致 Bot 行为发散。建议参考上面的模板结构,把角色、能力、风格、格式四要素写清楚。
步骤四:添加插件和知识库
插件让 Bot 拥有「调用外部能力」的本事,知识库让 Bot 能基于你的私有资料回答。
4.1 添加插件
- 在左侧配置区找到「插件」模块,点击「+ 添加插件」
- 在插件市场搜索并添加(推荐新手先加这几个):
- Botror_Search:联网搜索实时信息(如新闻、天气)
- Link Reader:读取网页链接内容并总结
- Image Generation:根据文字描述生成图片
- 添加后,Bot 在对话中会自动判断是否需要调用插件(你可以在人设里写明何时该用)
4.2 添加知识库
- 在左侧找到「知识库」模块,点击「+ 创建知识库」
- 选择数据源类型:
- 本地文件:上传 PDF / Word / TXT / Excel(单文件 ≤ 100MB)
- 在线网页:粘贴网址,Bot 自动抓取内容
- 飞书文档:授权后直接引用飞书表格 / 文档
- 上传文件后,Coze 会自动分段、向量化处理(约 1-2 分钟,取决于文件大小)
- 处理完成后,回到 Bot 编辑页,把知识库「启用」开关打开
- 在人设中补充一句:
当用户问到产品/教程相关问题时,优先检索知识库回答
警告
⚠️ 重要警告:知识库不是万能的。如果文档内容本身有错或过时,Bot 也会照着错答。上线前务必人工校验几条典型问答,确认 Bot 检索的内容准确。
步骤五:测试并发布为 API
配置完成后,先在平台测试,满意再发布。
5.1 在测试窗口调试
- 在右侧测试窗口输入问题,如
这个网站有哪些 Coze 教程? - 观察 Bot 回答是否准确、是否正确调用了知识库和插件
- 如果不满意,回到左侧调整人设或知识库,再测一轮,反复迭代直到表现稳定
5.2 发布为 Bot API
- 点击右上角「发布」按钮
- 在发布渠道列表中找到「Bot as API」,点击「配置」
- 首次使用会提示「创建 API 渠道」,确认即可
- 系统会生成一个「Bot ID」(形如
74xxxxxxxxxxxxx的数字串),复制保存——这是调用 API 的关键参数 - 勾选「Bot as API」渠道,点击「发布」
- 等待几秒钟,提示「发布成功」即完成
到此,方式 A 已完成。你拥有了一个可通过 API 调用的 Bot,以及两个关键凭证:
1PAT(个人访问令牌):pat_xxxxxxxxxxxxxxxxxxxxxxxx
2Bot ID:74xxxxxxxxxxxxx拿到这两个值后,可以直接跳到本教程的「场景应用示例」章节,或继续看方式 B 学习如何用代码调用。
方式 B:通过 API 编程调用 Bot
适合需要把 Bot 集成到自己应用、实现自动化流程的开发者。前提是已完成方式 A 的步骤二到步骤五(即已有可用的 Bot 和 Bot ID)。
步骤二:获取 Bot ID
Bot ID 是 Bot 的唯一标识,调用 API 时必填。
- 登录 Coze 平台,进入「我的 Bot」
- 点击已发布为 API 的目标 Bot,进入编辑页
- 点击右上角「发布」→ 找到「Bot as API」渠道
- 在配置页可以看到「Bot ID」(一串数字),复制备用
提示
💡 小白提示:如果你已经按方式 A 操作过,这一步可以跳过,直接用之前记录的 Bot ID 即可。
步骤三:安装 Coze SDK
Coze 官方提供了 Python 和 Node.js 两个 SDK,封装好了请求逻辑,比手写 HTTP 更方便。
1# Python(推荐,示例更丰富)
2pip install coze-py
3
4# Node.js
5npm install coze-js如果你不想装 SDK,也可以直接用 HTTP 请求调用,API 地址为 https://api.coze.cn/v1/bot/chat(国内版)。
警告
⚠️ 重要警告:注意区分国内版和国际版。国内版域名是 coze.cn,国际版是 coze.com,两者 PAT 和 Bot ID 不通用。本教程全程使用国内版 coze.cn。
步骤四:编写调用代码
Python 示例
1import os
2from cozepy import Coze, TokenAuth, Message, ChatStatus
3
4# 从环境变量读取凭证(不要硬编码到代码里)
5PAT = os.environ.get("COZE_PAT", "你的_pat_令牌")
6BOT_ID = "你的_bot_id" # 形如 74xxxxxxxxxxxxx
7
8# 初始化 Coze 客户端(国内版 base_url 默认指向 api.coze.cn)
9coze = Coze(auth=TokenAuth(token=PAT))
10
11# 发起一次对话
12chat = coze.chat.create(
13 bot_id=BOT_ID,
14 user_id="user_001", # 自定义用户标识,用于区分不同终端用户
15 additional_messages=[
16 Message.build_user_question_text("你好,请介绍一下你自己")
17 ],
18)
19
20# 轮询等待对话完成
21chat.poll(chat_id=chat.id)
22
23# 读取 Bot 的回复内容
24for message in coze.chat.messages.list(chat_id=chat.id):
25 print(f"[{message.role}] {message.content}")Node.js 示例
1const Coze = require("coze-js");
2
3const PAT = process.env.COZE_PAT || "你的_pat_令牌";
4const BOT_ID = "你的_bot_id"; // 形如 74xxxxxxxxxxxxx
5
6const coze = new Coze({
7 token: PAT,
8 baseURL: "https://api.coze.cn", // 国内版
9});
10
11async function main() {
12 // 发起对话并等待结果
13 const chat = await coze.chat.create({
14 bot_id: BOT_ID,
15 user_id: "user_001",
16 additional_messages: [
17 { role: "user", content: "你好,请介绍一下你自己", content_type: "text" },
18 ],
19 });
20
21 // 轮询直到完成
22 const result = await coze.chat.poll(chat.id, { bot_id: BOT_ID });
23
24 // 输出回复
25 console.log("Bot 回复:", result.content);
26}
27
28main().catch(console.error);直接 HTTP 调用(无 SDK,适合任何语言)
1curl -X POST https://api.coze.cn/v1/bot/chat \
2 -H "Authorization: Bearer pat_xxxxxxxxxxxxxxxx" \
3 -H "Content-Type: application/json" \
4 -d '{
5 "bot_id": "74xxxxxxxxxxxxx",
6 "user_id": "user_001",
7 "stream": false,
8 "additional_messages": [
9 {
10 "role": "user",
11 "content": "你好,请介绍一下你自己",
12 "content_type": "text"
13 }
14 ]
15 }'步骤五:处理响应和错误
Coze 的对话 API 是异步的:先发起拿 chat_id,再轮询状态直到 completed。上面的代码已封装了轮询逻辑,直接调 poll() 即可。
典型的成功响应(节选):
1{
2 "code": 0,
3 "data": {
4 "id": "chat_xxxxxxxxxxxx",
5 "status": "completed",
6 "conversation_id": "conv_xxxxxxxxxxxx"
7 }
8}常见错误及处理:
| HTTP 状态码 | 含义 | 解决方法 |
|---|---|---|
| 400 | 请求参数错误(如 Bot ID 格式不对) | 检查 bot_id 是否为纯数字、user_id 是否为空 |
| 401 | PAT 无效或过期 | 回到 Coze 个人中心重新生成 PAT,确认已勾选 Bot 权限 |
| 403 | 令牌无权调用该 Bot | 在 PAT 权限范围中添加目标 Bot,或确认 Bot 已发布为 API |
| 429 | 请求频率超限 | 降低调用频率,加退避重试逻辑(推荐指数退避) |
| 500 | 服务端异常 | 重试 1-2 次,若持续报错可去 Coze 控制台查看是否在维护 |
健壮调用示例(带重试):
1import time
2from cozepy import Coze, TokenAuth, Message
3
4coze = Coze(auth=TokenAuth(token=PAT))
5
6def call_bot_with_retry(bot_id, question, max_retries=3):
7 for attempt in range(max_retries):
8 try:
9 chat = coze.chat.create(
10 bot_id=bot_id,
11 user_id="user_001",
12 additional_messages=[Message.build_user_question_text(question)],
13 )
14 chat.poll(chat_id=chat.id)
15 return coze.chat.messages.list(chat_id=chat.id)
16 except Exception as e:
17 print(f"第 {attempt + 1} 次失败:{e}")
18 if attempt < max_retries - 1:
19 time.sleep(2 ** attempt) # 指数退避:1s, 2s, 4s
20 else:
21 raise
22
23# 调用
24messages = call_bot_with_retry(BOT_ID, "如何接入 Coze?")
25for msg in messages:
26 if msg.role == "assistant":
27 print(msg.content)场景应用示例
完成 Bot 创建和 API 发布后,以下是三个典型的智能体应用场景,可直接套用到你的业务里。
场景 1:AI 客服机器人
适用场景:电商、SaaS 产品、教程站点的售前售后咨询,7×24 小时自动应答。
Bot 配置要点:
- 人设:明确客服角色和产品边界,标注「不熟悉的问题转人工」
- 知识库:上传产品手册、FAQ 文档、退换货政策
- 插件:加「工单系统」插件,用户咨询无法解决时自动创建工单
调用示例(接入到你的网站后端):
1def handle_customer_question(user_id, question):
2 """网站后端接收用户提问,转给 Coze Bot 处理"""
3 chat = coze.chat.create(
4 bot_id=CS_BOT_ID,
5 user_id=user_id,
6 additional_messages=[Message.build_user_question_text(question)],
7 )
8 chat.poll(chat_id=chat.id)
9 # 提取 assistant 的回复
10 replies = coze.chat.messages.list(chat_id=chat.id)
11 answer = next(m.content for m in replies if m.role == "assistant")
12 return answer预期效果:用户问「这个教程支持哪些 AI 工具?」,Bot 基于知识库给出准确列表;用户问「退款流程」,Bot 调用知识库返回政策,必要时调插件建工单。
场景 2:文档问答助手
适用场景:企业内部知识库查询、合同条款解读、技术文档检索,把分散的文档变成可对话的知识。
Bot 配置要点:
- 人设:定位为「文档分析助手」,要求回答必须引用来源文档
- 知识库:批量上传 PDF(合同、规章、技术手册),开启「引用来源」
- 开场白:引导用户上传或指定文档提问
调用示例(批量处理文档问答):
1import os
2
3# 预设一批要问的问题
4questions = [
5 "合同的违约条款是怎么规定的?",
6 "技术文档里关于 API 鉴权部分怎么写?",
7 "报销流程需要哪些审批?",
8]
9
10for q in questions:
11 chat = coze.chat.create(
12 bot_id=DOC_BOT_ID,
13 user_id="batch_runner",
14 additional_messages=[Message.build_user_question_text(q)],
15 )
16 chat.poll(chat_id=chat.id)
17 msgs = coze.chat.messages.list(chat_id=chat.id)
18 answer = next(m.content for m in msgs if m.role == "assistant")
19 print(f"问题:{q}\n回答:{answer}\n{'-'*40}")预期效果:Bot 基于上传的 PDF 给出准确答案并标注来源页码;问「这份合同的核心义务是什么」时,Bot 能归纳出 3-5 条要点并说明出处。
场景 3:自动化工作流
适用场景:内容运营自动生成摘要、销售自动跟进线索、研发自动整理会议纪要——把多步骤任务交给智能体一次性完成。
Bot 配置要点:
- 人设:定位为「工作流执行员」,明确每个步骤的输入输出
- 工作流:用 Coze 的「工作流」画布编排,例如「抓取网页 → 提取要点 → 翻译成中文 → 生成摘要」
- 插件:Link Reader(读网页)、翻译插件、发送通知插件
工作流编排示例(在 Coze 平台画布配置):
1[输入:网页 URL]
2 ↓
3[Link Reader 插件:抓取网页正文]
4 ↓
5[大模型节点:提取 3 个核心要点]
6 ↓
7[翻译插件:要点翻译为中文]
8 ↓
9[输出:结构化摘要]调用示例(定时触发工作流):
1import schedule
2import time
3
4def daily_summary_job():
5 """每天早上 8 点自动抓取行业资讯并汇总"""
6 chat = coze.chat.create(
7 bot_id=WORKFLOW_BOT_ID,
8 user_id="scheduler",
9 additional_messages=[
10 Message.build_user_question_text(
11 "请抓取 https://example.com/ai-news 今日更新,"
12 "提取 3 条重点并翻译成中文,汇总后发到我的通知群"
13 )
14 ],
15 )
16 chat.poll(chat_id=chat.id)
17 print("每日摘要任务已完成")
18
19# 每天早上 8 点执行
20schedule.every().day.at("08:00").do(daily_summary_job)
21
22while True:
23 schedule.run_pending()
24 time.sleep(60)预期效果:定时触发后,Bot 自动完成抓取、提取、翻译、汇总,把成品发到通知群,全程无需人工介入,每天省下 30 分钟手工整理时间。
最佳实践
人设(Prompt)调优
- 结构化书写:用「角色 / 能力 / 风格 / 格式」四段式,比一段流水话效果好得多
- 明确能力边界:写清「能做什么」「不能做什么」,让 Bot 该拒绝时拒绝,减少幻觉
- 加入示例:在人设里附 1-2 个理想的问答范例,Bot 会模仿风格
- 持续迭代:上线后收集 Bad Case(答得不好的问题),反哺到 Prompt 里优化
知识库管理
- 文档质量优先:再强的模型也救不了错的文档,上线前确保资料准确、最新
- 合理分段:Coze 自动分段,但过于长的文档可手动拆分,提高检索精度
- 定期更新:产品迭代后同步更新知识库,避免 Bot 回答过时信息
- 引用来源:开启回答引用来源,方便用户溯源验证
API 调用工程
- 凭证安全:PAT 用环境变量或密钥管理服务存储,绝不硬编码、不进 Git
- 重试机制:对 429 / 5xx 错误加指数退避重试,避免雪崩
- 用户隔离:不同终端用户用不同
user_id,保证对话上下文隔离 - 成本监控:虽然是免费额度,仍建议监控调用量,异常增长时及时排查
故障排查速查表
| 现象 | 可能原因 | 解决方法 |
|---|---|---|
| 调用返回 401 | PAT 无效或过期 | 重新生成 PAT,确认已勾选 Bot 权限 |
| 调用返回 403 | 令牌无权调用该 Bot | PAT 权限范围添加目标 Bot |
| Bot 不调用知识库 | 人设没引导检索 | Prompt 里加「优先检索知识库」 |
| Bot 回答跑题 | 人设描述太模糊 | 补充能力边界和角色定位 |
| 响应很慢 | 文档过大或插件过多 | 精简知识库,关闭非必要插件 |
| 对话上下文丢失 | user_id 每次都变 | 同一终端用户保持 user_id 一致 |
扩展与进阶
进阶能力探索
- 工作流编排:用画布串联多步骤任务(搜索 → 提取 → 翻译 → 发送),实现复杂业务自动化
- 数据库节点:Bot 内置数据库,可存储用户偏好、订单状态等结构化数据,支持查询和更新
- 定时任务:设置 Bot 定时执行工作流,如每天抓取新闻、每周生成报告,无需人工触发
- 多 Agent 协作:用「多智能体」模式让多个 Bot 分工配合,如「资料员 Bot 收集 → 分析员 Bot 总结」
- Plugin 自定义:如果你的业务有特殊接口,可以在 Coze 创建自定义插件,让 Bot 调用你自己的 API
多渠道发布
Bot as API 只是 Coze 的发布渠道之一,同一个 Bot 还能一键发布到:
- 微信公众号 / 服务号:Bot 变身公众号自动回复
- 飞书 / 钉钉机器人:集成到企业 IM
- 微信客服:接入腾讯客服系统
- Coze Web SDK:嵌入网页,一行代码加载聊天窗口
配置好 Bot 后,在「发布」页勾选对应渠道即可,无需重新开发。详见 Coze 官方文档。
推荐延伸阅读
- Coze 微信机器人教程:把本教程的 Bot 接入微信公众号
- 飞书工作伙伴搭建:在飞书里搭建类似的 AI 助手
- 飞书工作伙伴搭建:在飞书里搭建类似的 AI 助手
- 大模型快速部署:对比其他 Agent 平台的部署方案
提示
提示:Coze 平台迭代较快,本教程基于 2026 年 8 月的界面撰写。如遇按钮位置变化,以 Coze 官方文档 为准。建议关注官方更新日志,及时获取新插件和新模型能力。
常见问题
QCoze 创建 Bot 需要付费吗?
不需要。Coze 平台目前免费提供 Bot 创建、测试和 API 发布功能。调用 API 产生的 Token 消耗也由 Coze 平台免费额度覆盖。
QBot 发布到 API 后可以修改吗?
可以。在 Coze 平台修改 Bot 配置后,重新发布即可更新 API 版本。已运行的 API 调用会自动使用最新版本。
QAPI 调用返回 403 Forbidden?
请检查 PAT 是否有效且已勾选 Bot 调用权限。在 Coze 平台 → 个人中心 → API 令牌管理页面,确认令牌权限包含目标 Bot。
QBot 响应内容不符合预期?
检查 Bot 人设(Prompt)是否描述清晰,插件是否正确配置。建议在 Coze 平台的测试窗口中反复调试,满意后再发布到 API。