引入
大模型虽然展现出强大的能力,但仍存在明显的能力边界。例如,直接让大模型给100位好友群发个性化祝福,它就无法独立完成。这需要调用外部工具,并执行多步骤去操作。
为了突破这种限制,我们可以为大模型装备工具包 ,扩展其能力范围,这就是智能体(Agent) 的核心思想。
而Coze 正是一款低代码的AI
应用开发平台,它让开发者能轻松构建基于大模型的智能应用,通过工作流编排、插件集成和知识库配置,将AI
的潜力转化为实际可用的解决方案。在7月26日,Coze
宣布了核心能力开源,降低了开发者的门槛。
1. 初识Coze
Coze是一个智能体 平台。借助Coze
提供的可视化设计、编排工具,可以通过零代码或低代码的方式,快速搭建出基于大模型的各类项目,满足个性化需求、实现商业价值。

不像DeepSeek
那样"问一句答一句",在Coze
可以搭建:
- 有身份的角色(数字人、客服、顾问)
- 多步骤协作(从写脚本、生成封面、发通知)
- 插件接入(微信、飞书、剪映)
- 流程触发(按钮触发、定时执行、关键词自动响应)
2. 工作流
以给100个好友群发祝福为例子来看,如果使用智能体,如何完成这件事?
- 精选出100位好友
- 让大模型给出独一无二的祝福语
- 获取好友信息
- 发送祝福
把复杂任务拆解成标准化节点 ,让数据像流水线上的零件一样被自动加工传递。每一个步骤都是一个节点。节点之间进行信息传递加工,构成了工作流。
3. 使用Coze搭建工作流
3.1 任务场景
期望创建一个能用于塔罗占卜的智能体,当用户输入性别、问题、所在城市、生日之后,将上述信息处理后送入大模型,大模型根据获取到的信息,得到占卜结果。
3.2 任务流程步骤拆解
- 用户输入性别、生日、所在信息、所在城市的信息。
- 获取星盘信息。
- 随机抽取塔罗牌。
- 利用大模型进行占卜分析。
- 输出占卜结果。
3.3 创建工作流
3.3.1 创建智能体
首先进入Coze主页,选择创建智能体。
创建智能体。主要用于定义智能体的名称,用途。这里共有两种方式:
- 标准创建:输入智能体名称、功能介绍等内容,上传图标;

- AI创建:直接输入对智能体的描述,点击生成即可。

这里我们使用AI创建 这种方式创建智能体。点击生成后,AI会默认帮我们生成智能体的名称、描述及图标,点击确认。
确认后会进入到智能体开发界面,这一页面主要包括三部分。
- 人设与回复逻辑:对智能体的人设、回复逻辑、对智能体的要求等进行定义;
- 编排:工具装备库区,可以选择工具增强智能体的能力;
- 预览与调试:预览调试区域,验证定义的智能体是否能达到预期效果。

我们要定义工作流,可选择编排区域的工作流,进行工作流的定义。
3.3.2 定义工作流
点击编排区域的添加工作流,进行工作流的创建。
输入工作流的名称、描述。
点击确认后,进入工作流的定义界面,主要包含:开始节点 、结束节点 。可通过添加节点,自行添加各类节点,如:大模型、插件、代码等。支持输入检索关键词,复用已经创建好的节点。

3.3.2.1 需求梳理
针对上述需求,大概可以将整个流程划分为以下几个节点。明确每个节点的输入、输出是什么。
- 开始节点 :用户输入的信息
- 输入:性别、生日、用户问题、所在城市
- 输出:无
- 获取星盘信息节点 :根据个人出生信息,查询本命星盘信息。
- 输入:出生信息
- 输出:星盘信息
- 抽取塔罗牌节点 :随机抽取塔罗牌
- 输入:塔罗牌张数
- 输出:塔罗牌信息
- 大模型节点 :用于占卜
- 输入:塔罗牌信息、星盘信息
- 输出:占卜结果
- 结束节点 :输出最终结果
- 输出:大模型的输出结果
3.3.2.2 定义开始节点
点击节点,可在右侧编辑栏定义输入的变量,指定对应变量数据类型,还可以设置参数的默认值、参数描述来帮助大模型准确了解参数的作用。

针对该例子,定义的变量如下:
变量名称 | 变量类型 | 含义 |
---|---|---|
gender | String | 性别 |
birthday | String | 出生日期 |
city | String | 城市 |
question | String | 用户的需要占卜的问题 |
3.3.2.3 定义获取星盘节点
点击添加节点,搜索星盘
,有可复用的星盘节点。直接点击复用即可。
点击后得到星盘节点,可试运行,查看该节点的输入、输出。
该节点的输入中,birthday生日、sex性别、latitude纬度、longitude经度为必填项。输出为text字段,代表星盘信息。

这里存在的一个问题是,在开始节点,我们的输入只有city城市,没有经纬度信息。因此我们需要将城市转成经纬度。搜索对应的节点,试运行查看该节点的输入、输出。

将开始节点指向城市经纬度节点,将城市经纬度节点的输入变量与开始节点的city变量关联。

将城市转经纬度Inglat节点指向获取星盘信息xingpan节点,这里在关联变量时,存在一个问题。Inglat节点的输出是一个数组,数组内容包含经纬度,但对于xingpan节点来说,只能关联整个数组,无法具体关联经纬度的值。这里我们可以通过新增一个代码节点转换。

添加节点,选择代码添加代码节点。可在IDE中编辑,编写相关代码。
进入到IDE编辑页面,可选择代码语言。目前支持JavaScript、Python。这里我们选择Python语言。编写代码后,可试运行测试代码的运行结果是否正确。
详细代码如下:
Python
async def main(args: Args) -> Output:
params = args.params
# 构建输出对象
ret: Output = {
"latitude": params['input'][0], # 数组中第一个元素为纬度,命名为latitude
"longitude": params['input'][1], # 数组中第二个元素为经度,命名为longitude
}
return ret

试运行后,得到期望结果,将上述节点相连。当前工作流定义如下。

3.3.2.4 定义抽取塔罗牌

3.3.2.5 定义大模型节点
定义大模型节点,将星盘信息 、塔罗牌的信息 、用户问题,传入大模型。

编写系统提示词和用户提示词。可通过{{}}
引用定义好的变量。
系统提示词如下:
markdown
# 角色
你是一个专业的塔罗占卜智能体,能够精准运用塔罗牌为用户进行占卜解读。
## 技能
### 技能 1: 开展塔罗占卜
1. 当用户提出进行塔罗占卜需求时,用户想要占卜的问题为{{question}}
2.获取塔罗牌{{tarot}}。
3. 根据抽取的塔罗牌{{tarot}}牌面含义,结合用户占卜事项{{question}},给出详细且合理的解读。解读示例:
=====
- 🃏 抽取的塔罗牌: <牌名>
- 💡 牌面含义: <准确阐述该牌在正位和逆位等不同情况的基础含义>
- 📝 针对本次占卜事项的解读: <结合用户占卜事项,深入分析该牌所代表的意义和启示>
=====
### 技能 2: 讲解塔罗牌知识
1. 当用户询问关于某张塔罗牌的知识时,使用工具搜索相关塔罗牌信息。
2. 若获取信息不全面,继续借助工具打开搜索结果中的相关链接,全面了解塔罗牌详情。
3. 根据搜索和浏览结果,向用户详细介绍该塔罗牌的背景、象征意义、常见解读等知识。
## 限制
- 只围绕塔罗占卜及塔罗牌知识进行交流,拒绝回答与塔罗无关的话题。
- 所输出的内容必须按照给定的格式进行组织,不能偏离框架要求。
- 解读部分应尽量详细但不冗长,避免过于模糊或过于复杂的表述。
- 只会输出塔罗相关知识库中已有内容,不在知识库中的塔罗牌知识,通过工具去了解。
- 请使用 Markdown 的 ^^ 形式说明引用来源(若有)。
用户提示词如下:
{{question}}
3.3.2.6 定义结束节点

3.3.3 试运行

总结
- 搭建之前,先设计再动手。先明确业务需求,再梳理步骤、设计节点。
- 每个节点像一个函数/方法,只做一件事。设计节点要明确每个节点的输入、输出,节点之间哪些参数有关联。
- 就像写代码一样,要善用现成节点、插件,尽量复用。
- 每个节点完成后,最小单位流程测试,看能否得到期望输出,类似于单元测试。如果整个流程定义结束后,试运行报错,这样不方便定位错误。如果每个节点、每个小流程都独立测试,及时修复问题,这样整个流程出问题的几率较小。