基于 Coze 构建专属 AI 应用:从智能体开发到 Web 部署
Coze 简介与核心概念
Coze 是字节跳动开发的 AI Agent 平台,支持通过低代码甚至零代码的方式快速构建应用程序。它提供了丰富的 API 和 SDK,方便将 AI 能力集成到现有的业务系统中。
核心概念
- 智能体 (Agent):用户以对话方式与 AI 交互,AI 根据输入利用大模型自动调用工具或流程完成任务,例如构建智能客服。
- 应用 (App):在智能体基础上封装前端界面(Web 或移动端),提供更友好的交互体验。
- 大模型:基于海量数据训练的'超级大脑',是智能体和应用的底层支撑。
大模型的局限与 Coze 的价值
原始大模型存在明显短板:缺乏实时数据(如天气、路况)、容易产生'幻觉'(虚构事实)、复杂推理能力不稳定。此外,提示词的质量直接决定输出效果。
Coze 的核心价值在于为大模型装备了'外骨骼'与'操作系统'。通过工具扩展、流程固化、知识增强等手段,引导大模型解决特定领域问题,将通用能力转化为可靠的生产力。
智能体开发基础
开发一个智能体通常遵循创建、开发、调试、发布、优化的流程。
模式选择
Coze 提供三种主要模式:
- 单 Agent(自主规划):独立完成任务,架构简单,适合逻辑单一场景。
- 单 Agent(对话流):预设多轮对话流程,引导用户提供信息,类似语音客服脚本。
- 多 Agents:多个智能体协同工作,从不同角度评估问题,适合复杂任务。
提示词与配置
- 系统提示词:定义智能体的角色、技能和规则。
- 用户提示词:用户的实际输入,需在系统规则范围内处理。
设置好开场白后,即可进行发布测试。在实际操作中,建议先在小范围验证提示词的准确性,再大规模推广。
资源集成:插件、知识库与数据库
插件 (Plugins)
插件是扩展智能体功能的模块化工具,赋予 AI'手和脚'的能力,使其能连接外部世界执行具体任务。
- 数据查询类:获取实时数据,如墨迹天气、微博热点。
- 业务工具类:执行生成视频、图片等特定功能。
*注意:部分高级插件可能需要付费或在第三方平台申请权限。
扣子知识库 (Knowledge Base)
针对私有数据(如公司制度、个人笔记),大模型无法直接获取。Coze 内置 RAG(检索增强生成)能力,允许导入私有文档。
应用场景示例:新员工入职咨询。将 Wi-Fi 密码、报销流程等问题整理成文档导入知识库,智能体即可准确回答重复性问题,无需人工干预。
数据库资源
Coze 数据库采用类 NoSQL 文档模型,作为智能体的'长期记忆'。智能体自带的上下文记忆有限(通常 100 轮且消耗积分),而数据库可持久化存储用户交互数据和业务状态。
案例:健身教练智能体。记录用户的运动历史和身体状态,以便制定长期的健身规划。此外,数据库还可用于缓存问答对,减少重复计算成本。
工作流开发与发布
工作流是一系列结构化、自动化的步骤集合,节点包括开始、结束、大模型、插件及工作流节点。你可以将其理解为编程中的函数调用,支持嵌套。
- Workflow:面向数据自动化处理,适合标准化任务。
- Chatflow:基于对话场景,动态调整流程逻辑。
创建工作流时,需合理连接节点并设置参数。测试通过后,即可在智能体中调用该工作流,实现复杂逻辑的编排。
应用开发与发布
相比智能体,应用开发增加了前端页面,主要依赖工作流驱动。操作相对简单,只需将工作流封装为应用组件,设置业务逻辑和展示样式即可。
API 与 SDK 集成
Coze 支持将智能体发布为 API 服务,通过 HTTP 交互。所有请求需在 Header 中携带 Access Token。
- Bot 调用接口:支持流式输出,适用于实时反馈场景。
- 管理 API:查询 Bot 信息、管理会话历史等。
- SDK 支持:目前主要提供 Python SDK,简化了客户端初始化、消息发送和响应处理流程。
*注意:Access Token 仅首次生成时显示,务必妥善保存。
实战案例:视频生成器
下面通过一个实战案例,演示如何结合阿里云 OSS 插件、工作流以及 Python Flask 后端,构建一个完整的 Web 应用。
工作流逻辑
在工作流中,我们需要提取 URL 并处理结果。以下是关键代码片段:
async def main(args: Args) -> Output:
params = args.params
ret: Output = {"key0": params['input'][0]["url"]}
return ret
主流程中整理最终结果时,需注意清理空白字符:
async def main(args: Args) -> Output:
params = args.params
result = ''
if not params.get('db') and not params.get('input'):
result = '比特就业课'
elif not params.get('db'):
result = params['input']
elif not params.get('input'):
result = params['db'][0].get('video_url')
# 核心修复:移除所有空白字符(空格、制表符、换行等)
result = result.replace(" ", "")
ret: Output = {"key0": result}
return ret
*说明:阿里云 OSS 生成的 URL 可能包含换行符,因此代码中增加了清洗逻辑。
后端集成 (Python + Flask)
首先配置环境变量 .env:
COZE_API_TOKEN="填入用户令牌信息"
WORKFLOW_ID="填入需要使用的工作流 id"
USER_ID="填入用户 id"
接着编写 Flask 服务封装 SDK:
import os
import json
from dotenv import load_dotenv
from cozepy import Coze, TokenAuth, COZE_CN_BASE_URL
from flask import Flask, request, jsonify, send_file
from flask_cors import CORS
load_dotenv()
app = Flask(__name__)
CORS(app)
def create_video(animal_description):
try:
api_token = os.getenv('COZE_API_TOKEN')
workflow_id = os.getenv('WORKFLOW_ID')
coze = Coze(auth=TokenAuth(token=api_token), base_url=COZE_CN_BASE_URL)
workflow = coze.workflows.runs.create(
workflow_id=workflow_id,
parameters={"input": animal_description}
)
video_url = json.loads(workflow.data)['output']
return video_url
except Exception as e:
return None
@app.route("/generate-video", methods=['POST'])
def generate_video():
data = request.get_json()
animal_description = data.get('input', '').strip()
video_url = create_video(animal_description)
return jsonify({'success': True, 'video_url': video_url, 'description': animal_description})
@app.route('/')
def index():
return send_file('index.html')
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0', port=5000)
前端页面
使用 AI 辅助生成 index.html,实现美观的交互界面。运行 Python 程序后,即可访问本地服务。前端负责接收用户描述,调用后端接口,并展示生成的视频链接。
通过这种方式,我们将 Coze 的 AI 能力成功封装为独立的 Web 服务,实现了从智能体到实际产品的闭环。


