万字Coze工作流教程:从入门到精通打造AI精读专家,复刻10万粉公众号创作力
这篇文章算是把埋在心里很久的一个想法给落地了。说起来挺巧,灵感来源于一个做得非常用心、每天雷打不动更新一篇的英文精读公众号。
那个号叫 LearnAndRecord,每天晚上八点半准时推送一篇英文精读。内容结构很扎实:中文摘要、3道阅读理解题、英文概述、朗读录音,还有逐段的全文精读和词汇盘点。文章质量高,排版也经过精心设计,每篇首发日阅读量轻松过万,粉丝量推测在10万以上。
当时就在想,既然AI Agent这么火,能不能自己动手做一个,提供类似“结构化外文精读”的服务?把日常零碎的学习需求,交给一个定制化的智能体来处理。于是,就有了今天这篇东西。
文章会比较长,建议先收藏,方便的时候慢慢看。
核心看点:
- 通过一个完整案例,手把手演示如何用Coze工作流,打造能稳定输出结构化内容的AI Agent。
- 开源从需求分析到最终落地的全过程思路。
- 覆盖10多项Coze工作流中常见的配置细节、踩坑点和解决方法。
适合人群:
- 玩过AI对话产品的一般用户(没用过的话,可以先找个国内大模型试试手感)。
- 对Coze、Dify这类AI应用开发平台感兴趣,想深入学习工作流配置的爱好者。
注:本文不会详细讲解案例中Prompt的撰写技巧。文末的「其他问题」部分,会附上一些通用入门思路和实用技巧,供大家拓展学习。
引言
AI行业的终极愿景是AGI,期望一句话就能让机器完成任何智力任务。但现实是,当前的大模型在处理多步骤、高复杂度的任务时,局限性依然很明显。
拿“数据分析图表”、“剧情游戏”或者咱们今天要做的“结构化外文精读”来说,即使是最先进的ChatGPT-4o或Claude 3.5 Sonnet,单靠一条Prompt指令就想稳定跑通,基本没戏。
现在的AI Agent,更像一个需要手把手指引的职场新人。你给他一套清晰的SOP,他才能按部就班把事情办好。
这篇文章,就是想帮你理清思路,看看如何把一个模糊的需求,一步步拆解、设计、落地成一个能用的AI Agent。希望能给想自己动手捏Agent的朋友们一些启发。
Step 0:梳理手捏AI Agent的思路
在上篇文章里提到过,Prompt工程的核心能力是:通过逻辑思考,从经验中提炼出关键方法与要求。这个思路,放到Coze里搭建AI Agent,同样适用。
今天我们主要讨论的是工作流驱动的Agent。搭建一个工作流驱动的Agent,大致可以分为3步:
- 规划: 制定任务的关键方法。
- 明确任务目标与最终输出形式。
- 将大任务拆解成一个个可管理的子任务,理清它们的先后顺序和依赖关系。
- 设计每个子任务的具体执行方法。
- 实施: 分步构建并测试Agent功能。
- 在Coze上搭建工作流框架,设置好每个节点的逻辑关系。
- 详细配置每个子任务节点,并逐个验证其可用性。
- 完善: 全面评估并优化Agent表现。
- 整体试运行Agent,找出功能和性能上的卡点。
- 反复测试和迭代,直到输出效果符合预期。
接下来,咱们就以“结构化外文精读专家”这个Agent为案例,一步步拆解。
Step 1:制定任务的关键方法
1.1 总结任务目标与执行形式
动手设计之前,最重要的一步是想清楚你期望AI最终输出什么。这包括:
- 详细描述期望的输出内容: 是文本、图片、音频还是别的?格式和结构是什么?质量标准如何定义?
- 预估任务的可行性。
- 确定任务的执行形式。
拿LearnAndRecord那篇《全球多地遭遇微软蓝屏》的文章来举例,它的精读结构可以拆成下图这样:
这种结构很贴合外语学习者的需求,从预热小作业到全文精读,再到最后的词汇盘点,层层递进。
基于这个框架,假设我们是一个CET-4水平的英语学习者,对结构做了一些微调后,优化后的精读结构(用Markdown语法表示)如下:
# 中文标题
> 中文导语 // 根据全文内容,用中文写出能吸引读者注意力的摘要
## 阅读理解小作业 // 基于全文,出3道CET-4难度的阅读理解题,每道题4个选项,题目和选项都是英文
1)[题目问题]
A. [选项A]
B. [选项B]
C. [选项C]
D. [选项D]
## 阅读导图 // 根据全文内容,生成结构化的英文要点大纲,用思维导图呈现
### 英文音频 // 用TTS技术朗读英文原文
### 英文标题
### 英文原文
### 全文对照精读 // 分段输出:英文原文+中文翻译+ CET-4及以上难度的词汇详解
[一段英文原文]
[一段中文翻译]
- 【原词汇】
- 音标:【音标】
- 中文释义:【释义】
- 英文例句:【例句】
- 例句翻译:【例句翻译】
### 待学词汇盘点
- 待学词汇:音标 中文释义
- ...
## 参考答案 // 给出阅读理解题的答案
这里得补充一点,Coze是支持Markdown格式输出的。Markdown作为轻量级的文本标记语言,能很好地展示文本、图片、链接和表格等内容。
参照这个精读结构,评估一下可行性。我们的输出结果包括三类格式:文字、图片(思维导图)、音频(原文朗读)。前两者用Markdown就能直接输出/内嵌,音频则需要一个URL链接来收听。总的来说,稍微变通一下,基本可以实现。
最后,结合自己的使用习惯,理想情况是:我输入一篇英文原文,AI Agent就能按照模板,直接输出一份完整的精读结果。
所以,大致的执行形式如下:
@user: {{英文原文}}
@AI: {{精读结果}}
1.2 分解子任务,确立逻辑顺序和依赖关系
从精读结构上看,整个模板是由很多子模块拼接起来的。每个模块的格式和用途都不一样,可以理解为一项项独立的子任务。
对于LLM-based的AI Agent工程,在一轮对话里一次性执行多种子任务,对作为“大脑”的大模型来说,要求非常高。(就算是当前最强的ChatGPT-4o和Claude 3.5 Sonnet,单靠一条Prompt,也很难稳定完成这种多步骤任务。)
实操过程中,我先是写了一条Prompt,在Claude和ChatGPT里简单测试了一下文本生成部分。内容基本还行,但输出格式的稳定性很差。
拓展:如何判断自己的任务/Prompt是否需要拆解成工作流?——文末的「其他问题」有答案。
所以,把任务分解成了下面这些可管理的子任务,并确立了逻辑顺序和依赖关系:
每个子任务独立执行,成果完全独立。接下来就是设计每个子任务的具体执行方法。
1.3 设计每个子任务的执行方法
根据项目实际需求,详细规划每个内容模块的输出要求。规划时,可以想象自己正在面对面教一个新同事怎么干活,这样更容易把任务指南写得清晰明白。
本案例中各子任务的内容模块和详细要求如下:
| 模块 | 具体要求 |
|---|---|
| 中文标题 | 根据全文大意,翻译英文标题,20字以内。 |
| 中文导语 | 根据全文内容,用中文写1-3句吸引人的摘要导语,简洁明了。 |
| 英文标题 | 如实输出原文的英文标题,无需修改。 |
| 阅读大纲 | 由于最终要转为思维导图,需严格按照导图输入格式。选择最合适的大纲结构,生成全英文、不超过200词的要点大纲。格式示例: * [英文标题] * [要点1] * [子要点1.1] * [子要点1.2] * [要点2]... |
| 阅读导图 | 根据大纲,生成完全对应的思维导图。 |
| 阅读理解小作业 | 基于原文,出3道CET-4难度的阅读理解题。每道题4个选项(顺序随机),题目和选项均为英文。格式严格。 |
| 参考答案 | 针对3道题目,生成答案。格式严格,需包含原问题。 |
| 英文音频 | 用TTS朗读全文。 |
| 全文对照精读 | 按格式分段输出: [英文原文] [中文翻译] * [待学词汇] * 音标:[音标] * 中文释义:[释义] * 英文例句:[包含该词汇的例句] * 例句翻译:[例句的中文翻译] |
| 待学词汇盘点 | 汇总全文对照精读中的所有待学词汇,按格式列表输出。 |
Step 2:分步构建和测试Agent功能
2.1 在Coze上搭建工作流框架,设定每个节点的逻辑关系
首先进入Coze,点击「个人空间-工作流-创建工作流」。
在弹出的窗口里,自定义工作流信息,点击确认。然后就能看到编辑视图了。左侧的「选择节点」模块里,我们这次主要用到的有:
- 插件: 提供各种能力工具,比如思维导图、TTS语音等,这些LLM干不了的事,就得靠插件。
- 大模型: 调用LLM,负责文本内容的生成,如翻译、大纲、词汇注释等。
- 代码: 支持编写简单的Python或JS脚本,处理一些特定数据。
编辑面板中的“开始节点”和“结束节点”,就对应之前流程图里的“原文输入”和“结果输出”。
接下来,按照流程图,从左侧拖拽对应的LLM、插件、代码节点到编辑面板里,搭建好工作流框架。
附1:关于“分段”、“拼合”代码节点设计的补充解释
实测表明,LLM的上下文长度有限。一次性输入输出的文本越长,生成时间就越长,结果稳定性也越差。特别是对输出格式要求很高时,这个问题会更突出。
对照精读环节本身就是一个段落一个段落生成的,非常适合批处理。所以,先用“分段输入正文”把原文切开,然后用LLM节点批处理每一段,最后再用“拼合精读结果”把处理好的段落拼回去,这样就能输出完整又稳定的结果。
Tips:如果觉得写代码麻烦,在处理纯文本时,也可以先用LLM节点配合合适的Prompt临时验证一下整个工作流的可行性。
附2:如何在插件中心找到需要的插件?
用关键词先搜一搜。根据插件的名称、介绍页、描述、参数和示例,判断它能不能满足需求。如果有多个插件可选,优先选官方出品的、收藏量高的、成功率高的。如果实际用下来效果不行,就换一个,或者自己写一个上架。
本文搜索插件的经过:
- TTS文字转语音: 搜“语音”、“文字转语音”、“TTS”,看到“英文文本转语音”插件,描述符合需求,直接添加。
- 思维导图: 搜“脑图”、“树图”、“导图”、“mindmap”等关键词,看到“TreeMind树图”插件,描述符合需求,直接添加。
2.2 详细配置子任务节点,并验证每个子任务的可用性
搭好框架后,就能按流程顺序,逐个配置子任务节点了。
下面我会快速介绍每个节点的配置要点,并完全开源每个节点的Prompt、代码和I/O信息,方便大家借鉴。
0)开始节点
可以把工作流想象成一条生产线。开始节点就是原料入口,它定义了启动工作流需要哪些输入参数。Coze默认有一个{{BOT_USER_INPUT}}变量,用来接收用户在外层Bot里的输入。
本案例不需要额外配置变量。 用户输入的英文原文会通过{{BOT_USER_INPUT}}直接传入工作流,启动后续环节。
所以,把那条多余的空白变量删掉就行。
1)标题、导语、大纲
配置环节
这部分只涉及文本理解和创作,很明显是LLM的活儿。可能有人会问,为什么不把“标题、导语、大纲”拆成三个独立的子任务?
——因为LLM是按输入输出的字符数来消耗Token的。在满足需求的前提下,减少大模型处理环节,能省下不少Token,降低实际投产时的模型调用成本。
实测下来,豆包·function call 32k模型,已经能在一轮对话里稳定地搞定这三项内容了。
大模型节点的配置项很多,新手主要关注这几个:
# 处理形式
单次/批处理
# 模型
选择节点要调用的具体大模型。
# 输入
设置输入字段,信息只能来自前置节点。
# 提示词
分为“用户提示词”和“人设与回复逻辑”。任务不复杂的话,只写“用户提示词”就行。
# 输出
设置输出字段,可以是文本、Markdown或JSON格式。一般推荐用JSON,因为它也能输出纯文本或带Markdown的文本,而且一次性能结构化地输出多个不同的字段。
在这个节点里,我们希望LLM接收原文后,一次性输出中文标题、中文导语、英文标题和英文阅读大纲。所以设置如下:
另外,为了保证大模型能处理足够长的内容,要根据实际情况调大模型的最大回复长度:
最后,根据1.3节中设计的要求,填入用户提示词:
## 功能
基于{{input}}的英文文章,生成对应的中文标题、中文导语、英文标题、阅读大纲
## 要求
严格遵循以下要求:
### 中文标题
根据全文大意,翻译英文标题,输出20字以内的中文标题。
### 中文导语
根据全文内容,用中文输出1-3句话的摘要导语,简洁明了。
### 英文标题
如实输出原文英文标题,无需修改。
### 阅读大纲
1. 根据全文,选择最合适的大纲结构,生成全英文、不超过200词的结构化大纲。
2. 在输出大纲的开头加上“Directly use the following outline to generate the corresponding mind map in English.”
3. 大纲格式如下,不要输出[]符号:
- [Article Title]
- [Key Point 1]
- [Subpoint 1.1]
- [Subpoint 1.2]
## 输出格式
1. 以string格式,输出中文标题到变量{{cnTitle}}
2. 以string格式,输出中文导语到变量{{cnSummary}}
3. 以string格式,输出英文标题到变量{{enTitle}}
4. 以string格式,输出阅读大纲到变量{{enTreeMind}}
大模型节点配置的入门要点
- 输入输出变量名可以自定义,只要自己能看懂就行。
- 输入:直接引用开始节点里的{{BOT_USER_INPUT}}。
- 在提示词区域,用
{{input}}这样的双花括号引用输入参数。 - 输出:有几项内容就设几个变量。在提示词最后用 ## 输出格式 段落说明。变量名、内容、格式必须前后完全一致,这里非常容易踩坑。
- 关于模型选择:没有绝对最优,得根据自己的习惯、实测速度、质量、费用综合选择。豆包Function Call系列对Coze的插件调用和JSON输出有优化;MiniMax处理文字速度快;GLM对Prompt理解好。具体用哪个,还得自己实测。
测试环节
配置完任何一个节点,都要跑一下测试,验证效果。步骤很简单:点击“测试该节点”,按格式输入测试内容,然后查看运行结果。如果输入输出都符合预期,就可以进入下一个子任务了。
2)阅读导图
上一步已经生成了英文大纲{{enTreeMind}}。接下来用TreeMind插件,把它转成思维导图图片。
配置要点:处理方式选“单次”,输入就引用{{enTreeMind}}变量。输出端有很多字段,根据名称和示例,找到我们需要的图片字段pic。
至此,第一个分支流程的输出字段就集齐了:中文标题、中文导语、英文标题、阅读导图图片。
3)阅读理解小作业
这个分支的目标是生成3道CET-4难度阅读理解题,并根据题目和原文输出答案。所以输入还是{{BOT_USER_INPUT}},输出变量设为{{question}}。
用户提示词里,严格规定了题目格式,并给出了正向示例。
4)参考答案
这里需要同时输入原文和上一环节生成的题目。注意,每个节点的输入信息都要单独引用。
用户提示词里,规定了答案格式,包括必须重复完整问题、用[X]表示正确选项等,还特别要求检查答案正确性。
5)英文音频
很简单,直接把原文输入到“英文文本转语音”插件,输入变量query_text引用{{BOT_USER_INPUT}}。测试一下,运行结果里的URL如果是一个mp3音频链接,就成功了。
6)分段输入正文
用户输入的原文,格式一般是:
原文标题
原文段落1
原文段落2
……
为了区分标题和段落,我们在开场白里提示用户,用#符标记标题句。然后用一段Python脚本,去掉标题行,把剩下的段落按换行符切分成一个数组。
Python代码很简单,用正则表达式匹配所有以#开头的行并删除,然后把剩余的非空行存成数组。
如何用Coze自动生成代码节点的代码? 这段代码就是Coze代码节点自带的AI功能生成的。使用时,把需求描述清楚,试几次就能生成,非常方便。
不写代码能行吗? 可以,用LLM节点配合合适的Prompt也能实现,只是响应速度和Token消耗不如代码节点。开发阶段图快可以用LLM,但工作流跑通后,强烈建议换回代码节点,效率更高、成本更低。
7)全文对照精读
拿到分段后的原文,就进入最核心的环节——生成带注释的全文精读。
这里用大模型节点,并选择“批处理”方式。批处理的好处很多,Coze的一个大模型节点能同时并行处理多项任务,大幅缩短生成时间。而且每段单独处理,输出长度可控,稳定性更高。
需要注意:批处理区域要引用上一节点的output数组,但输入区域的参数要从批处理区域里选,千万别直接引用output数组,这是个很容易踩的坑。
用户提示词里,定义了精读结果的具体格式,并给了正向示例。
8)待学词汇盘点
这一步相对简单,就是把精读环节的所有“待学词汇”提取出来,按照我们想要的格式汇总。由于是全文本处理,用大模型单次处理即可。
注意,“全文对照精读”节点的输出虽然是数组,但JSON数据里已经包含了所有段落的精读内容,所以可以直接用这个数据源进行处理。
9)拼合精读结果
因为精读节点输出的是一段一段的数组数据,最终还需要把它们拼合成一篇文章。这里再配置一个代码节点,写几行Python代码,把数组里的内容用换行符连接起来。
10)输出节点
终于到这一步了,每个子任务节点都配置和验证完毕。现在只需在结束节点里,像搭积木一样,把之前所有节点的输出变量引用进来,按照预期的Markdown格式写好回答模板。
有几个要点:
- 回答模式选择“使用设定的内容直接回答”。
- 勾选“流式输出”,这样精读结果会像打字一样逐步展示,用户体验更好。
- 在“回答内容”栏里,用Markdown语法写好最终模板,把需要的变量(如{{cnTitle}}、{{question}}、{{readingv}}等)引用进去。
最终,工作流就能输出一篇结构完整的精读文章了,在外层Bot中会以Markdown格式完美渲染。
Step 3:全面评估并优化Agent效果
工作流搭好了,得整体跑一遍验证效果。主要关注响应速度和生成质量。如果发现哪里不对,就回到对应节点去调整Prompt或代码,反复测试和迭代,直到满意为止。
接着,在Coze里创建一个Bot,把刚才发布的工作流封装进去。切换到“单Agent(工作流模式)”,因为我们的场景很纯粹:用户输入文章,Agent返回精读结果,不需要其他理解能力。
最后写好开场白,引导用户按要求格式输入文章,然后关闭不需要的预置问题。在“预览与调试”区做最终测试,一切正常的话,就可以发布上架了。
(P.S. 笔者在发布文章时发现,外层Bot偶尔会有些未知bug,同样的输入在工作流编辑面板里跑得稳妥,到了外层Bot就容易报错。遇到这种情况别太焦虑,可以先把工作流里的结果直接拿出来用。)
总结
回顾整个流程,构建AI Agent,就像培养一个职场新人:
- 规划阶段:明确目标。 确定任务,拆解成子任务,设计每个任务的执行方法。
- 实施阶段:实战指导。 搭建工作流,为每个子任务设置清晰的操作指南,手把手引导AI,并及时验证输出质量。
- 优化阶段:持续改进。 通过反复测试和调整,不断优化性能,直到AI能稳定输出高质量结果。
如果你理解了今天的内容,不妨也给自己设定一个小目标,动手构建一个专属的AI Agent吧。
其他问题
- 如何判断自己的任务/Prompt是否需要拆解为工作流?
构建稳定AI Agent是个不断调试和迭代的过程。通常先从最强的LLM开始,用单条Prompt或Prompt Chain测试任务执行质量。然后根据实际效果,逐步拆解子任务,降低单次任务的难度。对于场景多样、结构复杂、输出格式要求严格的任务,基本可以预见需要拆成工作流。另外,只要涉及生成多媒体内容或从网络获取额外信息,就必然需要通过工作流调用插件。 - 只用一段Prompt的Agent,还算AI Agent吗?
算。它的核心依然是通过LLM理解指令、规划步骤、调用工具来完成任务,只是复杂度和层级不同而已。






