Coze 智能体只能网页用?Python SDK 三步接入自己的业务系统
关键词:Coze API、Python SDK、TokenAuth、流式对话、文件上传、智能体接入
目录
- 一、为什么要把 Coze 接入自己的系统
- 二、Coze API 简介与调用方式
- 三、环境安装与鉴权
- 3.1 创建个人访问令牌
- 3.2 三种鉴权方式对比
- 3.3 安装 cozepy
- 3.4 测试连通性
- 四、对话 API 的四个核心概念
- 五、实战:上传产品手册并流式问答
- 六、其他常用操作速查
- 常见问题
- 和 AI 大模型开发的关系
- 总结
一、为什么要把 Coze 接入自己的系统
前面几篇都在 Coze 网页端搭工作流、配知识库、跑多模态节点。这些能力很好用,但终究是在 Coze 平台内部。如果要把智能体能力真正交付给业务,往往需要把它接到自己的 App、小程序、企业微信、后台系统里。
Coze API 就是做这件事的:它把你在平台上搭好的 Bot 和工作流,暴露成标准的 HTTP 接口或 SDK,让你的后端可以像调用普通服务一样调用智能体。
20251204165123216.png&pos_id=img-NQohkW78-1786754782963)
常见的接入场景包括:
- 在现有 App 里加一个“AI 客服”入口;
- 把 Coze 工作流嵌入企业审批、报表、运维系统;
- 用 Coze 处理用户上传的文件,再把结果写回业务数据库。
二、Coze API 简介与调用方式
API(Application Programming Interface)本质上是一套“调用规则”。服务提供方把能力封装好,外部程序按规则传参,就能使用这些能力,而无需关心内部实现。
Coze API 提供了两种调用方式:
| 方式 | 特点 | 适用场景 |
|---|---|---|
| HTTP API | 直接发 HTTP 请求,灵活但参数较多 | 非 Python 技术栈,或需要精细控制请求 |
| SDK | 官方封装好的 Python/JS/Java 等客户端 | Python 后端快速接入,推荐用法 |
(上图:Coze API 调用流程,应用发起 HTTP POST 请求,经网关验证后由工作流引擎执行,最终返回 JSON 响应。)
对算法工程师和 Python 后端开发者来说,直接使用cozepy是最省心的选择。
三、环境安装与鉴权
3.1 创建个人访问令牌
调用 API 之前,需要先在 Coze 开放平台创建一个令牌(Personal Access Token,PAT)。路径是:API 管理 → 授权 → 添加新令牌。
需要配置三项:
- 名称:便于识别,如“内部系统调用”;
- 过期时间:个人令牌最长 30 天;
- 工作空间:选择该令牌能访问的空间。
创建完成后,把令牌复制下来,后面初始化 SDK 时会用到。
3.2 三种鉴权方式对比
Coze 支持三种访问令牌,生产环境推荐按安全级别选择:
| 鉴权方式 | 有效期 | 安全性 | 适用场景 |
|---|---|---|---|
| PAT(个人访问令牌) | 最长 30 天 | 中等 | 个人测试、教学、内部小工具 |
| SAT(服务访问令牌) | 可永久 | 中高 | 服务端长期运行 |
| OAuth 访问令牌 | 短 | 高 | 线上生产环境、多用户授权 |
教学阶段先用 PAT,实际项目里尽量迁移到 SAT 或 OAuth。
3.3 安装 cozepy
先准备一个 Python 环境,然后安装官方 SDK:
conda create-ncozepython==3.12.7 conda activate coze pipinstallcozepycozepy同时支持同步和异步调用,也支持 PAT、SAT、OAuth 等多种鉴权方式。
3.4 测试连通性
初始化客户端最简代码如下:
fromcozepyimportCOZE_CN_BASE_URL,Coze,TokenAuth coze=Coze(auth=TokenAuth(token="你的 PAT 令牌"),base_url=COZE_CN_BASE_URL,)# 列出工作空间,验证令牌是否生效workspaces=coze.workspaces.list(user_id="你的用户ID",coze_account_id="你的账户ID")forwsinworkspaces:print(ws.model_dump_json(indent=2))这里不要去死记每个字段,重点是理解“初始化认证对象 → 创建客户端 → 调用资源方法”这套通用模式。面对任何新平台的 SDK,都可以按这个思路快速上手。
四、对话 API 的四个核心概念
在写对话代码前,先理清四个对象:
| 概念 | 说明 |
|---|---|
| 会话(Conversation) | 用户与智能体之间的一段连续交互,包含多条消息,会自动处理上下文截断 |
| 消息(Message) | 用户或智能体产生的单条内容,可以是文本、图片、文件等 |
| 对话(Chat) | 对智能体的一次调用,会触发工作流或模型执行,并产生新消息 |
| 上下文段落(Section) | 会话内的独立上下文单元,清除上下文时会新建 Section,避免历史干扰 |
(上图:Coze 对话对象关系,一个会话包含多个上下文段落,每个段落中包含若干条消息。)
简单记忆:会话是容器,段落是分区,消息是内容,对话是一次调用动作。
五、实战:上传产品手册并流式问答
下面换一个和原文不同的场景:把一份产品手册 PDF 上传到 Coze,让 Bot 基于文档内容回答用户问题。
importosfrompathlibimportPathfromcozepyimport(COZE_CN_BASE_URL,ChatEventType,Coze,Message,MessageObjectString,TokenAuth,)# 1. 初始化客户端coze=Coze(auth=TokenAuth(token="你的 PAT 令牌"),base_url=COZE_CN_BASE_URL,)bot_id="你的机器人ID"user_id="业务用户唯一标识"# 2. 上传文件(单文件最大 512MB)file_path="docs/智能手表X1用户手册.pdf"ifnotos.path.exists(file_path):raiseFileNotFoundError(f"找不到文件:{file_path}")uploaded=coze.files.upload(file=Path(file_path))print(f"文件上传成功,file_id:{uploaded.id}")# 3. 构造包含文件的多模态消息additional_messages=[Message.build_user_question_objects([MessageObjectString.build_file(file_id=uploaded.id),])]# 4. 发起流式对话并处理事件print("----- Bot 回答 -----\n")stream=coze.chat.stream(bot_id=bot_id,user_id=user_id,additional_messages=additional_messages,)foreventinstream:ifevent.event==ChatEventType.CONVERSATION_MESSAGE_DELTA:# 流式输出内容print(event.message.content,end="",flush=True)elifevent.event==ChatEventType.CONVERSATION_CHAT_COMPLETED:print("\n\nToken 用量:",event.chat.usage.token_count)breakelifevent.event==ChatEventType.CONVERSATION_CHAT_FAILED:print("\n对话失败:",event.chat.last_error)break这段代码的流程很清晰:
- 鉴权初始化:用 TokenAuth 把 PAT 包成认证对象,传给 Coze 客户端;
- 文件上传:调用
coze.files.upload,拿到file_id; - 构造消息:用
MessageObjectString.build_file把文件引用放进用户消息; - 流式对话:调用
coze.chat.stream,遍历事件分别处理增量内容、完成事件、失败事件。
如果你的 Bot 配置了知识库或工作流,这段代码同样适用:上传文件后,Coze 会按你预设的流水线处理。
六、其他常用操作速查
Coze Python SDK 的示例仓库coze-py/examples覆盖了绝大多数场景。开发时按模块找对应 demo,再改参数即可:
| 模块 | 示例文件 | 用途 |
|---|---|---|
| 授权 | auth_pat.py/auth_oauth_jwt.py | PAT 或 OAuth 鉴权 |
| 对话 | chat_stream.py/chat_multimodal_stream.py | 流式对话、多模态对话 |
| 工作流 | workflow_stream.py/workflow_async.py | 运行工作流 |
| 会话 | conversation.py | 创建/管理会话与消息 |
| 知识库 | dataset_create.py | 创建知识库、上传文件 |
| 文件 | files_upload.py | 文件上传 |
| 变量 | variable_retrieve.py/variable_update.py | 读取/设置用户变量 |
官方仓库地址:https://github.com/coze-dev/coze-py/tree/main/examples
常见问题
Q1:个人访问令牌(PAT)能不能用于生产环境?
PAT 明文存储、有效期短,适合测试和内部工具。生产环境建议用 SAT 或 OAuth,尤其是涉及多用户、外部用户访问时。
Q2:为什么 SDK 只能看到部分机器人?
coze.workspaces.list返回的是当前令牌有权限的工作空间;coze.chat.stream调用的 Bot 必须已经在对应空间发布为 API 服务。
Q3:文件上传后对话报错“文件类型不支持”?
检查 Bot 配置的工作流或模型是否支持文件输入。不是所有 Bot 都默认开启了文档解析能力。
Q4:流式输出时为什么看不到内容?
确认 Bot 本身开启了流式响应;另外检查事件类型是否正确处理了CONVERSATION_MESSAGE_DELTA,有些事件是元数据或结束标志,不会携带内容。
Q5:遇到新 API 不会用怎么办?
按这套通用路径:读官方文档 → 找相似 demo → 本地跑通 → 让 AI 辅助解读 → 改参数适配业务。不要硬背 API。
和 AI 大模型开发的关系
用 Python 直接调用大模型 API,通常是下面这个样子:
importopenai client=openai.OpenAI(api_key="...")response=client.chat.completions.create(model="gpt-4o",messages=[{"role":"user","content":"你好"}])Coze SDK 的调用模式几乎一致,只是它封装的不只是模型,而是完整的 Agent:
# 普通大模型调用:模型 → 回答coze.chat.stream(bot_id=...,user_id=...,additional_messages=...)# Coze 调用:Bot(模型 + 工作流 + 知识库 + 插件 + 数据库) → 回答对于 AI 应用开发者来说,Coze 的价值在于把 Prompt 工程、RAG、工具调用、多模态、工作流编排这些能力产品化,而 API/SDK 则让你能把它无缝嵌入自己的业务系统。
总结
- Coze API 是把平台上搭好的 Bot/工作流接入自有系统的关键通道;
- Python SDK(cozepy)封装了鉴权、对话、文件上传、工作流等能力,推荐优先使用;
- 调用前先创建令牌,教学/测试用 PAT,生产环境用 SAT 或 OAuth;
- 理解 Conversation、Message、Chat、Section 四个概念,是写对对话代码的前提;
- 流式对话要处理
MESSAGE_DELTA、CHAT_COMPLETED、CHAT_FAILED三种核心事件。
掌握 API 调用之后,Coze 就从“一个在线搭建工具”变成了“可被业务系统集成的智能体服务层”。
#Coze#API#PythonSDK#智能体接入#流式对话