写在前面:为什么你需要了解智能体
如果你用过ChatGPT、豆包或者deepseek这类大模型,你可能会发现一个现象:它们很聪明,但有时候也很"笨"。
比如你问它"今天北京适合出门吗",它可能会告诉你北京的天气特点,但给不出今天实时的天气预报。再比如你让它"帮我把这份合同里的甲方、乙方和金额提取出来",它说"请上传文件"------但你上传之后,它真的能准确提取吗?不一定。
这就是大模型的天然局限:它只有"大脑",没有"手和脚"。它知道怎么做,但没法自己去查实时数据、读本地文件、调用外部接口。
智能体(Agent)就是来解决这个问题的。
一句话理解智能体:大模型的思考能力 + 工具的执行能力。
本文基于Coze平台,带你完整走一遍智能体开发的流程。读完你会明白:
-
智能体和普通聊天有什么区别
-
工作流是什么、节点怎么用
-
怎么让AI联网搜索、理解图片、读取文档
-
搭建一个能用的智能体需要几步
-
出了问题怎么调试
第一部分:先搞清楚几个核心概念
1.1 智能体 = 大脑 + 手脚
把智能体拆开看,就两部分:
| 组成部分 | 作用 | 类比 |
|---|---|---|
| 大模型 | 理解问题、分析目标、规划步骤、生成回答 | 大脑 |
| 工具 | 执行具体动作:搜索、查天气、读文件、调接口 | 手和脚 |
一个智能体典型的工作流程是这样的:
-
用户说:"帮我规划一个三天两夜的成都旅游方案"
-
大模型理解:这是一个旅游规划需求
-
智能体判断:需要查成都的景点、天气、美食信息
-
调用搜索工具:获取实时信息
-
大模型整理:把搜索结果组织成行程表
-
输出给用户:清晰的路线、住宿建议、注意事项
你看,整个过程不是简单的一问一答,而是有目标、有计划、有执行、有输出的完整闭环。
1.2 Coze是什么?为什么学它?
Coze(扣子)是字节跳动推出的AI智能体开发平台,低代码、可视化、上手快。
学Coze的三个理由:
第一,快速出成果。 不用写代码,拖拽节点、配置参数,半小时就能跑通一个能联网搜索、能读文档的智能体。
第二,理解通用思路。 即使以后公司不用Coze,换Dify、LangChain或者自己写代码,底层的逻辑是一样的:输入→理解→调用工具→整理→输出。
第三,培养产品思维。 做一个AI功能,不是"写一句提示词"就完了。你要考虑输入格式、异常情况、分支判断、输出质量、用户体验------这些都是实际项目绕不开的。
1.3 平台核心概念速览
| 概念 | 一句话解释 | 小白的理解方式 |
|---|---|---|
| 空间 | 业务隔离区,不同业务分开管理 | 像公司里的不同部门 |
| 项目 | 围绕一个目标组织的资源集合 | 像一个"求职助手"项目 |
| 资源库 | 存放插件、知识库、工作流的公共仓库 | 像工具箱,拿过来就能用 |
| 工作流 | 任务流水线,节点按顺序执行 | 像工厂的装配线 |
| 插件 | 封装好的外部能力,如搜索、天气 | 像手机里的App |
| 知识库 | 存放文档资料,帮模型补充专业知识 | 像参考资料书架 |
一个容易混淆的点:工作流 ≠ 智能体
-
工作流是一个工具,就像一把螺丝刀
-
智能体是一个能干活的人,它可以拿螺丝刀干活
一个智能体可以挂载多个工作流,比如旅游规划工作流、简历解析工作流、天气查询工作流。用户说不同的话,智能体决定调用哪个工具。
第二部分:工作流详解------从零搭一条任务流水线
2.1 工作流长什么样
工作流就是一张有方向的流程图。数据从开始节点流入,经过各种处理节点,最后从结束节点流出。
三个基本节点:
-
开始节点:接收用户输入
-
中间节点:处理任务(大模型节点、插件节点、判断节点等)
-
结束节点:输出最终结果
一个重要的规则:工作流必须是有向无环图(DAG)
-
有向:数据只能往前走,不能倒流
-
无环:不能绕回自己,否则会死循环
2.2 开始节点------入口
开始节点是工作流的唯一入口。它定义用户需要传入什么信息。
常见场景:
python
# 纯文本输入
输入变量: user_input
类型: string
说明: 用户的问题或需求
# 需要处理图片
输入变量: uploaded_image
类型: image
说明: 用户上传的图片
# 需要处理文档
输入变量: document
类型: file
说明: 用户上传的PDF或Word文件
小白最容易犯的错:处理图片任务时,开始节点仍然只设置了字符串类型的输入。结果图片传不进去,插件收不到图片,整个流程卡住。
正确做法:根据任务需要,选择正确的输入类型------文本用string,图片用image,文档用file。
2.3 大模型节点------大脑
大模型节点是工作流的核心,负责理解、判断、生成。
需要配置的内容:
python
系统提示词(System Prompt):
你是一个专业的旅游规划助手。用户会告诉你想去的地方和时间,你需要给出详细的行程安排。
用户提示词(User Prompt):
用户需求:{{user_input}}
目的地城市:{{city}}(如果已提供)
请按以下格式输出:
1. 每日行程安排
2. 当地美食推荐
3. 实用注意事项
变量引用是关键 :你在左侧添加了变量,必须在提示词里用{``{变量名}}的方式引用,否则模型感知不到。
输出字段选择 :大模型节点通常会产生多个输出字段,比如output(正式回答)、reasoning_content(推理过程)、usage(token消耗)。结束节点应该选output,不要选reasoning_content,否则用户会看到一堆模型自己的思考过程。
2.4 选择器节点------明确条件的判断
选择器节点就是if/else,适合处理明确的、规则性的条件判断。
适合用选择器的场景:
| 判断条件 | 走A分支 | 走B分支 |
|---|---|---|
| 用户输入是否为空 | 提示"请告诉我具体需求" | 继续处理 |
| 城市参数是否已提供 | 追问"请告诉我城市" | 直接查询 |
| 文件是否上传成功 | 提示"请重新上传" | 提取文件内容 |
不适合用选择器的场景:判断用户意图是"旅游规划""闲聊"还是"查资料"。这种语义理解的任务,要用专门的"意图识别节点"。
2.5 意图识别节点------语义分类
意图识别节点本质是让大模型做分类。它不是判断字符串是否相等,而是理解这句话属于哪一类需求。
举个例子:
用户说:
-
"帮我安排一个三天两晚的杭州旅游"
-
"我想去西安玩,有没有路线推荐"
-
"端午节去长沙怎么安排"
这三句话文字完全不同,但意图都可以归为travel_plan。
意图识别节点的典型输出:
python
{
"classification_id": 1,
"classification_name": "旅游规划",
"confidence": 0.95
}
一个致命错误 :有人会把classification_id(比如数字1)直接传给后面的大模型节点,让模型围绕数字"1"生成内容。结果是模型完全不知道用户到底想干什么。
正确做法:
-
classification_id只用来决定走哪条分支 -
真正给大模型生成答案时,还是传用户的原始输入
2.6 输入节点------中途补充信息
输入节点用于在工作流中间向用户追问信息。
典型场景:用户说"帮我规划旅游",但没说去哪里。
流程应该是:
-
大模型判断:缺少目的地信息
-
输入节点:向用户提问"请问你想去哪个城市?"
-
用户回复"成都"
-
工作流继续,用"成都"作为城市参数
配置要点:
python
# 输入节点设置
提问内容: 请问您想去哪个城市?
输出变量名称: city
输出变量类型: string
常见错误:
-
新变量还叫
input,和开始节点的输入冲突 → 改个清晰的名字如city -
输入节点收集了
city,后面的大模型节点没有添加city变量 → 必须添加并在提示词中引用
2.7 结束节点------输出
结束节点决定用户最终看到什么。
好输出的标准:
-
结构清晰(用列表、分段而不是一大坨文字)
-
语言自然,像人在说话
-
和用户问题直接相关
-
必要时说明信息来源
错误示范:直接把插件的原始JSON输出给用户
python
{"items":[{"title":"成都旅游攻略","url":"..."}]}
用户看到这个会懵。
正确示范:先让大模型整理成易读的文本
python
根据搜索结果,我为您整理了成都三日游的建议:
第一天:上午参观武侯祠,下午逛锦里古街...
第二天:...
第三天:...
美食推荐:火锅、串串、担担面...
注意事项:...
第三部分:插件------给AI装上手和脚
插件就是别人封装好的功能模块,拖进工作流就能用。它解决了大模型的几个天然短板:
| 大模型做不到的事 | 对应的插件 |
|---|---|
| 查不到今天的天气 | 天气查询插件 |
| 不知道昨晚的球赛比分 | 联网搜索插件 |
| 看不懂图片里的文字 | 图片理解插件 |
| 读不了PDF和Word | 文档提取插件 |
3.1 联网搜索插件------获取实时信息
使用场景:新闻、天气、政策、活动、产品信息等实时或模型不确定的内容。
基础配置(以搜索插件为例):
python
节点名称: bing_search
参数:
query: "{{user_input}}" # 用用户输入作为搜索词
count: 5 # 返回5条结果
输出字段:
- text # 搜索结果的文本内容
- title # 每条结果的标题
- url # 来源链接
一个完整的搜索工作流:
-
开始节点接收用户输入
-
搜索插件用用户输入作为关键词查询
-
大模型节点对搜索结果进行整理(不是直接输出原始结果)
-
结束节点输出整理后的内容
为什么不能直接输出搜索结果? 因为搜索结果可能是原始网页片段、广告、无关内容。必须让大模型做一次"筛选+归纳+组织",才能给用户高质量的回答。
3.2 图片理解插件------识别图片内容
使用场景:商品识别、截图信息提取、海报分析、手写文字识别。
配置要点:
-
开始节点必须增加图片类型的输入变量
-
插件接收图片变量
-
可以配合提示词告诉模型"重点分析什么"
示例:分析餐厅菜单
python
提示词:请从这张菜单图片中,提取出所有菜品名称和价格,按价格从低到高排序输出。
一个备选方案:如果插件效果不好,可以直接用支持多模态的大模型节点(如GPT-4V、Claude 3)处理图片,跳过插件节点。
3.3 文档提取插件------把文件变成文字
使用场景:简历解析、合同摘要、论文阅读、课程资料整理。
核心逻辑:文档(PDF/Word/PPT)→ 提取成纯文本 → 大模型处理文本
安全提醒:真实工作中,不要把包含个人隐私(真实简历、身份证)或公司机密(合同、财务数据)的文件上传到公开的云平台。课堂练习或演示时,请使用脱敏的样例数据。
第四部分:从零搭建一个旅游规划智能体
我们用旅游规划作为第一个完整案例。它包含完整链路:接收输入 → 联网搜索 → 大模型整理 → 输出结果。
4.1 基础版本(5步完成)
第1步:创建工作流
名称:travel_planner_basic
描述:根据用户的需求生成旅游规划方案
第2步:开始节点
python
输入变量: user_input
类型: string
说明: 用户想去的城市和天数,如"成都三天两晚"
第3步:联网搜索节点
选择搜索插件(如必应搜索、百度搜索),配置:
python
query: {{user_input}}
结果数量: 5
第4步:大模型节点
python
系统提示词:
你是专业旅游规划师。根据搜索结果,为用户生成旅游方案。
用户提示词:
用户需求:{{user_input}}
搜索结果:{{search_results}}
输出格式:
## 行程安排
- 第1天:xxx
- 第2天:xxx
## 美食推荐
- xxx
## 注意事项
- xxx
第5步:结束节点
输出选择大模型节点的output字段。
测试一下:输入"西安三天两晚旅游" → 应该看到完整的行程规划。
4.2 升级版本(增加健壮性)
基础版本跑通后,可以逐步增加节点处理边界情况:
增加1:判断输入是否为空
在选择器节点中判断:如果user_input为空,直接输出"请告诉我你想去哪里、玩几天"。
增加2:追问缺失信息
如果用户只说了"旅游规划"没说城市,用输入节点追问"你想去哪个城市"。
增加3:意图识别
把用户需求分成三类:旅游规划、闲聊、其他。不同意图走不同分支。
增加的重要原则:每加一个节点就测试一次。不要等全部搭完再测试,否则十几个节点同时出问题,调试会非常痛苦。
第五部分:从工作流到智能体------让AI会用工具
工作流做好了,它只是一个"工具"。智能体才是那个"会选工具的人"。
5.1 搭建一个智能体
第1步:创建智能体
选择"单Agent模式",命名如"我的旅游助手"。
第2步:写人设和任务说明
python
你是一个智能旅游助手。
你的能力:
1. 当用户需要旅游规划时,调用travel_planner工作流
2. 当用户闲聊时,直接友好回复
3. 当用户问天气时,调用天气查询工作流
规则:
- 必须判断用户意图后再决定用哪个工具
- 如果工作流返回结果,直接输出给用户
- 如果工作流失败,提示用户稍后重试
第3步:添加工具
把已经发布的工作流添加到智能体的工具列表。
⚠️ 关键提醒:工作流必须先发布,智能体才能正常调用。如果工作流显示"草稿"状态,在智能体里是找不到的。
第4步:配置开场白
python
你好!我是旅游助手。你可以告诉我:
- "帮我规划一个成都三天两晚的行程"
- "北京两日游有什么推荐"
- "西安旅游要注意什么"
第5步:预览调试
分别测试几个场景:
-
完整的旅游规划请求 → 应该调用工作流
-
单纯的问候"你好" → 应该直接回复,不调用工具
-
信息不完整的请求 → 应该追问
5.2 为什么智能体没有调用我的工作流?
这是最常见的问题。可能原因及解决方案:
| 现象 | 可能原因 | 解决办法 |
|---|---|---|
| 智能体完全不理会,直接自己回答 | 人设说明里没写清楚什么情况下用哪个工具 | 补充"当用户提到旅游规划时,必须调用xxx工作流" |
| 智能体说"我没有这个能力" | 工作流没有添加到工具列表,或者没有发布 | 确认工作流已发布并添加到智能体 |
| 调用时参数传错了 | 工作流的开始节点变量名和智能体传的不一致 | 检查变量名是否匹配 |
| 有时候调用有时候不调 | 工具描述不够清晰,模型不确定该不该用 | 优化工作流的名称和描述,见名知意 |
第六部分:调试指南------学会看日志
AI开发的调试和传统软件开发不一样。传统代码调试可以打断点、看变量,AI开发的核心调试方式是看运行日志。
6.1 日志里看什么
运行一次后,在日志详情里逐个检查每个节点:
开始节点:用户输入有没有正确传入?
python
✅ 正常:user_input = "成都三天两晚旅游"
❌ 异常:user_input = "" 或 user_input = undefined
插件节点:插件有没有被调用?参数对不对?返回了什么?
python
✅ 正常:搜索插件返回了5条结果,有标题和内容
❌ 异常:报错"缺少必填参数query"
大模型节点:提示词里的变量有没有被替换?
python
✅ 正常:提示词中的{{city}}被替换成了"成都"
❌ 异常:提示词里还显示{{city}},模型看到了原样文本
结束节点:选择了正确的输出字段吗?
python
✅ 正常:选择了大模型节点的output字段
❌ 异常:选了reasoning_content,输出一堆推理过程
6.2 常见问题速查表
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 页面提示"变量xxx未定义" | 变量添加了但没连线,或连线断了 | 检查节点之间的连线 |
| 输出内容为空 | 结束节点选错了输出字段 | 确认选的是output而不是别的 |
| 大模型回答和用户问题没关系 | 提示词里没引用用户输入的变量 | 在提示词中用{{变量名}}引用 |
| 插件没返回结果 | 参数填错了,或API Key失效 | 检查插件配置,查看日志中的错误信息 |
| 工作流执行超时 | 节点太多、搜索返回太多、模型太慢 | 简化流程、减少搜索条数、换更快模型 |
| 输入节点问完问题就结束了 | 输入节点后面的连线断了 | 把输入节点的输出连到后续节点 |
| 智能体不调用工具,自己硬答 | 人设说明不够明确 | 在提示词里写"必须使用工具,不要自己猜测答案" |
6.3 一个小习惯:逐步测试
不要等到所有节点都连好了再点"运行"。正确的做法是:
-
先搭开始节点→结束节点,测试能通
-
加第一个插件节点,测试插件能返回数据
-
加大模型节点,测试模型能正确整理
-
加分支节点,测试不同分支都能走到
-
最后加异常处理节点
每一步都测试通过,再继续下一步。这样问题出现时,你肯定知道是刚加的那个节点的问题。
第七部分:学完Coze之后------通往真实项目
今天的Coze课程,表面上是在学一个具体平台的操作,实际上是在理解AI应用开发的通用骨架。
7.1 这个骨架是什么
所有AI应用都逃不过这条链路:
python
用户输入
→ 智能体理解目标
→ 判断意图/需求类型
→ 调用需要的工具(搜索/知识库/数据库/API)
→ 整理多个工具的返回结果
→ 输出用户能看懂的回答
学会Coze,就是先把这条链路可视化地跑通一遍。
7.2 迁移到其他平台
| Coze的概念 | Dify的概念 | 代码自研的对应 |
|---|---|---|
| 工作流 | 工作流 | 用LangChain的Chain |
| 插件 | 工具 | 调用API的函数 |
| 知识库 | 知识库 | 向量数据库+RAG |
| 意图识别 | 意图分类节点 | 分类模型或LLM分类 |
| 输入节点 | 用户输入 | 等待用户输入的代码逻辑 |
底层思路完全相同,只是实现工具变了。
7.3 真实项目中的常见需求
学完今天的内容,你已经可以做这些事情了:
求职助手:用户上传简历PDF → 文档提取插件读内容 → 大模型提取姓名、技能、项目 → 匹配岗位要求 → 生成面试题
商品推荐助手:用户说"推荐2000元以内的手机" → 联网搜索获取商品信息 → 大模型筛选、对比、排序 → 输出推荐列表
学习助教:用户上传课程PPT → 提取文字 → 大模型生成摘要、重点、自测题
客服机器人:用户问"怎么退货" → 意图识别 → 查询知识库 → 输出退货流程 → 解决不了转人工
这些项目你都能用今天学到的知识点搭建出原型。
7.4 几点提醒
-
注意隐私:不要在生产环境把真实用户数据、公司机密、个人敏感信息上传到公开云平台。课堂演示用脱敏数据。
-
插件要测试:官方插件也不一定100%稳定。不同插件对同一任务的返回格式可能不一样,提前测试、看日志、确认字段。
-
命名要认真 :
test_workflow和resume_extractor_workflow,一个月后再看,后者你还能想起来是干什么的。智能体也是靠名称和描述来判断什么时候调用哪个工具的,命名随意会影响调用准确率。 -
先跑通再优化:第一版能跑通就行,不要追求完美。跑通之后,你会更清楚哪些地方真正需要优化。
最后:今天的知识点速查表
| 知识点 | 一句话记住 |
|---|---|
| 智能体是什么 | 大模型(大脑)+ 工具(手脚) |
| 工作流是什么 | 按顺序执行的任务流水线 |
| 开始节点 | 定义输入,注意类型要匹配 |
| 大模型节点 | 核心大脑,要配置提示词和变量引用 |
| 选择器节点 | 处理明确条件判断(if/else) |
| 意图识别节点 | 处理语义分类,输出分类ID只用来分支 |
| 输入节点 | 中途追问,新变量要给清晰名称 |
| 结束节点 | 选对输出字段,不要选推理过程 |
| 插件 | 封装好的外部能力,拖进来就能用 |
| 工作流 vs 智能体 | 工作流是工具,智能体是会选工具的人 |
| 调试 | 看日志、逐步测试、从简到繁 |