从零搭建Coze工作流:构建简历筛选智能体实战指南

发布时间:2026/8/19 13:36:20
从零搭建Coze工作流:构建简历筛选智能体实战指南 在实际 AI 应用开发中将大模型能力与具体业务流程结合是提升效率和自动化水平的关键。Coze扣子平台提供的工作流Workflow功能允许开发者通过可视化编排的方式将多个 AI 模型、代码节点、条件判断和外部工具连接起来构建复杂的智能体Agent。对于许多开发者而言从零开始设计一个高效、稳定且能处理复杂逻辑的工作流并非易事常常卡在流程设计、节点选择和调试上。本文将以一个实际场景为例带你从零开始在 Coze 平台上搭建一个具备完整逻辑的工作流智能体。我们将聚焦于“简历筛选”这一常见需求构建一个能自动解析简历、评估匹配度并生成结构化报告的智能体。整个过程无需编写复杂代码但会深入解释每个节点的作用、参数配置的逻辑以及排错的关键点确保你能理解其工作机制并能举一反三应用到其他场景中。1. 理解 Coze 工作流与智能体的核心概念在动手搭建之前需要厘清几个核心概念及其关系这是设计出合理工作流的基础。1.1 什么是智能体Agent与工作流Workflow在 Coze 平台中智能体是一个具备特定目标和能力的 AI 实体。你可以把它理解为一个虚拟助手它能够理解用户意图、调用工具、处理信息并给出反馈。一个智能体的核心能力由三部分构成预设指令Prompt、知识库和插件/工作流。工作流则是实现智能体复杂能力的引擎。当智能体需要执行一系列有顺序、有条件分支或需要混合多种能力如调用大模型、执行代码、访问数据库的任务时单纯依靠一个对话大模型是不够的。工作流通过可视化的“节点”和“边”来定义这个执行流程。每个节点代表一个处理步骤例如调用模型、运行 Python 代码、判断条件节点之间的连线定义了数据流动的方向和逻辑顺序。简单来说智能体定义了“做什么”和“对外交互的界面”而工作流定义了“具体怎么做”的详细步骤。一个智能体可以包含多个工作流用于处理不同类型的用户请求。1.2 工作流中的关键节点类型Coze 工作流编辑器提供了多种节点理解其用途是设计流程的关键开始节点工作流的唯一入口接收来自智能体对话或外部触发的输入参数。大语言模型节点核心节点用于调用云端大模型如 GPT-4、DeepSeek 等进行文本理解、生成或分析。你需要配置具体的模型、温度Temperature、最大输出长度等参数。代码节点支持 Python 和 JavaScript。用于执行模型无法直接完成的逻辑计算、数据处理、调用第三方 API需注意网络策略等。这是连接 AI 与传统编程的关键。条件判断节点根据上游节点的输出结果通常是某个变量的值决定流程下一步走向哪个分支。这是实现逻辑智能的核心。变量节点用于定义、赋值或修改变量。工作流中的变量可以存储中间结果并在不同节点间传递。知识库节点从你上传到 Coze 的知识库文件中检索相关信息为模型提供上下文。插件节点调用预置或自定义的插件例如搜索网页、生成图片、查询天气等。1.3 设计工作流的通用思路一个健壮的工作流设计通常遵循以下步骤明确输入与输出首先确定工作流需要用户提供什么如一份简历文本、一个岗位描述最终要输出什么如匹配度分数、评估报告。拆解处理步骤将任务分解为多个原子步骤。例如解析简历文本 - 提取关键信息 - 与岗位要求对比 - 计算匹配度 - 格式化报告。选择节点实现为每个步骤分配合适的节点。文本解析和对比可以用大模型节点计算分数可以用代码节点根据分数高低生成不同评语可以用条件判断节点。定义数据流规划每个步骤产生的数据如何传递给下一个步骤。这决定了节点之间如何连线以及变量如何命名。设置异常处理考虑可能出错的地方如简历格式无法解析、API调用失败并通过条件判断或默认值提供降级方案。2. 环境准备与 Coze 平台配置开始搭建前你需要完成账号和基础的平台配置。2.1 注册与访问访问 Coze 官网并注册账号。目前平台提供免费额度足以完成本教程的学习和测试。登录后进入主控台你会看到“创建 Bot”的入口。2.2 创建智能体Bot点击“创建 Bot”为你的智能体起一个名字例如“简历筛选助手”。预设指令这是智能体的“人格”和核心任务描述。输入清晰指令至关重要。注意预设指令是引导智能体理解何时该调用工作流的关键。例如你可以写“你是一个专业的招聘助手专门帮助 HR 快速筛选简历。当用户提供简历文本和岗位描述时你需要调用内置的‘简历评估工作流’来生成详细的匹配度报告。如果用户只是普通聊天请友好回应。”模型选择在 Bot 设置中选择一个适合的大模型。对于需要复杂理解和文本生成的任务建议选择能力较强的模型如 GPT-4 系列或 DeepSeek 最新版本。模型的选择会直接影响工作流中“大语言模型节点”的默认选项和效果。2.3 理解工作流编辑器界面在智能体编辑页面找到并点击“工作流”标签页然后点击“创建工作流”。你将进入一个画布式的编辑器界面主要区域包括节点面板左侧列出了所有可用的节点类型。画布中间区域用于拖拽和连接节点。配置面板右侧区域当选中某个节点时这里会显示该节点的详细配置项。运行与调试区底部区域可以输入测试参数、运行工作流并查看每一步的输出和最终结果。3. 实战搭建“简历筛选评估”工作流现在我们开始构建一个完整的简历筛选工作流。该工作流的目标是输入一段简历文本和岗位描述JD输出一份包含匹配度评分、技能分析、经验评估和综合建议的报告。3.1 定义输入与输出首先从“节点面板”拖拽一个“开始”节点到画布。这个节点代表工作流的起点。选中开始节点在右侧配置面板点击“添加输入参数”。添加两个参数resume_text(类型字符串)代表简历文本。job_description(类型字符串)代表岗位描述。 这些参数将在测试或从智能体对话调用工作流时传入。接下来拖拽一个“变量”节点将其重命名为“初始化输出”。我们在这里定义最终输出的结构。在变量节点的配置中定义一个名为final_report的变量。将其初始值设为一个空的 JSON 对象例如{ match_score: 0, skill_analysis: , experience_evaluation: , recommendation: }这个变量将随着流程推进被各个节点填充内容。3.2 解析简历信息拖拽一个“大语言模型”节点到画布命名为“解析简历”。连接将“开始”节点的输出连线到该节点。配置模型选择一个你擅长的模型。系统提示词这是指导模型行为的关键。输入如下内容你是一个专业的简历解析器。请从用户提供的简历文本中提取出结构化的信息。只输出一个JSON对象包含以下字段 - name: 姓名 - years_of_experience: 工作年限数字 - skills: 技能列表数组 - education: 最高学历 - key_experiences: 关键工作经历简述字符串100字内 简历文本{{resume_text}}用户消息可以留空或简单写“请解析这份简历”。关键解释系统提示词中使用了{{resume_text}}这是一个变量插值语法。工作流运行时它会自动被替换为从“开始”节点传入的resume_text参数值。这实现了数据在不同节点间的传递。3.3 评估技能匹配度再拖拽一个“大语言模型”节点命名为“评估技能”。连接将“解析简历”节点的输出连线到本节点。配置系统提示词你是一个技能匹配专家。请对比候选人的技能列表和岗位描述评估匹配度。 候选人技能{{解析简历.skills}} 这是一个数组 岗位描述{{job_description}} 请输出一个JSON对象 { matched_skills: [列出与JD明确匹配的技能], missing_skills: [列出JD要求但候选人缺乏的技能], skill_match_score: 一个0-100的整数分数 }用户消息留空。关键解释这里使用了{{解析简历.skills}}来引用上一个“解析简历”节点的输出结果中的skills字段。这种{{节点名.输出字段名}}的语法是工作流中传递数据的核心方式。3.4 计算综合匹配分数并生成报告现在我们需要综合技能匹配度和其他因素如年限、经验相关性生成最终报告。这里引入“代码节点”进行逻辑计算。拖拽一个“代码节点”选择 Python到画布命名为“计算综合分”。连接将“解析简历”和“评估技能”两个节点的输出都连线到本节点。这样代码节点就能接收到两者的数据。配置代码在代码编辑器中编写 Python 逻辑。# 输入参数会自动注入到 input_data 变量中它是一个字典 parsed_resume input_data[解析简历] # 获取“解析简历”节点的输出 skill_assessment input_data[评估技能] # 获取“评估技能”节点的输出 job_desc input_data[job_description] # 获取开始节点的参数 # 从解析结果中提取工作年限 years_exp parsed_resume.get(years_of_experience, 0) # 从技能评估中提取技能分数 skill_score skill_assessment.get(skill_match_score, 0) # 一个简单的综合分数计算逻辑示例可根据业务调整 # 假设技能分权重70%年限分权重30%年限每多一年加5分上限30分 exp_score min(years_exp * 5, 30) final_score int(skill_score * 0.7 exp_score * 0.3) # 准备报告文本 skill_analysis f匹配技能{skill_assessment.get(matched_skills, [])}。缺乏技能{skill_assessment.get(missing_skills, [])}。 exp_eval f候选人拥有{years_exp}年经验关键经历{parsed_resume.get(key_experiences, )} recommendation 建议面试 if final_score 70 else 建议储备 if final_score 50 else 暂不匹配 # 输出结果后续节点可以引用 output { final_score: final_score, skill_analysis: skill_analysis, experience_evaluation: exp_eval, recommendation: recommendation }设置输出在代码节点的“输出变量”配置部分将上面代码中output字典的各个键映射为输出变量。例如添加一个输出变量computed_result其值路径设置为output。3.5 组装最终报告并结束流程再拖拽一个“变量”节点命名为“组装报告”。连接将“计算综合分”节点的输出连线到本节点。配置在这个变量节点中我们要更新之前定义的final_report变量。选择“修改变量”操作变量名为final_report。在值表达式中使用类似 JSON 合并的语法具体取决于平台支持可能是函数或模板{{final_report}} // 先获取原变量 .match_score {{计算综合分.computed_result.final_score}} .skill_analysis {{计算综合分.computed_result.skill_analysis}} .experience_evaluation {{计算综合分.computed_result.experience_evaluation}} .recommendation {{计算综合分.computed_result.recommendation}}或者如果平台支持直接赋值{ match_score: {{计算综合分.computed_result.final_score}}, skill_analysis: {{计算综合分.computed_result.skill_analysis}}, experience_evaluation: {{计算综合分.computed_result.experience_evaluation}}, recommendation: {{计算综合分.computed_result.recommendation}} }最后拖拽一个“结束”节点到画布。连接将“组装报告”节点连线到“结束”节点。配置结束节点在结束节点的输出参数中添加一个参数例如report并将其值设置为{{final_report}}。这样当工作流完成时就会输出这个完整的报告对象。至此一个线性的简历筛选工作流就搭建完成了。流程为开始 - 解析简历 - 评估技能 - 计算综合分 - 组装报告 - 结束。3.6 增加条件判断分支进阶为了让智能体更灵活我们可以增加一个分支如果简历文本明显过短或无效则直接返回错误提示不进行后续分析。在“开始”节点和“解析简历”节点之间插入一个“条件判断”节点。配置条件判断resume_text的长度是否小于 50 个字符示例阈值。条件表达式可能类似len({{resume_text}}) 50创建分支是True分支连线到一个新的“变量”节点可命名为“设置错误信息”在这里将final_report的recommendation字段修改为“简历文本过短无法分析”。然后直接连线到“结束”节点。否False分支连线到原来的“解析简历”节点。同时需要在“结束”节点中配置使其能接收来自不同分支的final_report变量。4. 运行、调试与集成到智能体4.1 在工作流编辑器中测试点击编辑器底部的“运行”区域。在输入框中为resume_text和job_description提供示例内容。{ resume_text: 张三5年Java开发经验精通Spring Boot, MySQL, Redis。本科学历。曾负责某电商系统后端架构设计。, job_description: 招聘高级Java工程师要求3年以上经验熟练掌握Spring Cloud, MySQL有高并发系统设计经验者优先。 }点击“运行”。编辑器会高亮显示执行路径并在每个节点下方显示其输出结果。仔细检查每个节点的输出是否符合预期。特别是“解析简历”节点是否输出了正确的 JSON 结构“评估技能”节点是否正确识别了匹配和缺失的技能“计算综合分”节点的 Python 代码是否有语法错误计算结果是否合理最终“结束”节点的输出是否是一个完整的报告 JSON4.2 将工作流发布并集成到智能体测试无误后保存工作流并点击“发布”。回到智能体Bot的编辑页面。在“技能”或“工作流”配置部分添加你刚刚创建并发布的工作流。关键步骤修改智能体的“预设指令”明确告知智能体在什么情况下调用此工作流。例如 “当用户想要评估简历时他们会提供简历文本和岗位描述。你需要调用‘简历筛选评估工作流’并将用户提供的两部分内容分别作为resume_text和job_description参数传入。然后将工作流返回的结构化报告用友好、易读的格式总结给用户。”保存并发布智能体。4.3 在智能体对话界面验证进入智能体的对话界面尝试发送如下消息 “请帮我评估一下这份简历[粘贴简历文本]岗位要求是[粘贴岗位描述]。” 观察智能体是否会正确调用工作流并返回一份结构化的评估报告。5. 常见问题排查与优化实践即使流程设计正确在实际运行中也可能遇到问题。以下是基于此场景的常见排查点。5.1 工作流运行失败排查表问题现象可能原因检查与解决步骤工作流启动失败开始节点的输入参数未提供或格式错误。1. 检查测试时输入的 JSON 格式是否正确键名是否匹配。2. 检查从智能体调用时参数传递逻辑是否正确。大模型节点报错或输出格式不符1. 提示词指令不清晰。2. 模型上下文长度超限。3. 输入变量插值失败值为空或格式错误。1. 简化并明确系统提示词强调输出格式如“只输出 JSON”。2. 检查输入的文本是否过长尝试截断。3. 在节点配置中检查变量引用{{xxx}}的拼写是否正确上游节点是否有对应输出。代码节点执行错误1. Python 语法错误。2. 引用了不存在的输入变量。3. 第三方库未安装Coze 代码节点有预装环境但非标准库可能缺失。1. 仔细阅读代码节点的错误信息定位行号。2. 使用print(input_data)调试输入数据结构。3. 确认代码中使用的库在 Coze 沙箱环境中可用。条件判断未按预期分支条件表达式逻辑错误或变量值类型不符。1. 在条件节点前添加一个“变量”节点打印出要判断的变量值。2. 检查表达式语法例如字符串比较是否用了数字比较是否用了。最终输出为空或部分缺失变量赋值错误或未正确传递到结束节点。1. 检查“组装报告”变量节点是否正确修改了目标变量。2. 检查“结束”节点配置的输出参数是否引用了正确的变量名{{final_report}}。3. 确保所有可能的分支路径最终都汇聚到“结束”节点并设置了输出。从智能体无法触发工作流1. 工作流未发布。2. 智能体预设指令未明确调用条件。3. 用户提问方式不符合预设指令中的模式。1. 确认工作流已发布最新版本。2. 优化智能体预设指令使用更明确的触发关键词。3. 在智能体配置中检查工作流是否已被成功添加。5.2 性能与稳定性优化建议提示词工程大模型节点的效果极度依赖提示词。务必清晰、具体并给出输出格式示例。将复杂的任务拆解到多个提示词清晰的节点中比用一个复杂提示词效果更好、更稳定。错误处理与降级在关键节点后加入“条件判断”检查输出是否有效。例如在“解析简历”节点后判断输出是否为合法 JSON如果不是则跳转到错误处理分支而不是让流程崩溃。变量管理与命名使用有意义的变量名和节点名如parse_resume,calc_score避免使用a,b,node1等这在调试复杂工作流时至关重要。复杂度控制单个工作流不宜过于庞大。如果逻辑过于复杂考虑拆分成多个子工作流通过“工作流调用”节点进行组合。这有助于维护和调试。成本与延迟考虑每个大模型节点都会产生 Token 消耗并增加延迟。评估是否每个节点都必要能否合并一些步骤。对于简单的计算和判断优先使用代码节点而非大模型节点。6. 扩展方向与生产环境考量掌握了基础工作流搭建后你可以向更深入、更实用的方向扩展。6.1 功能扩展接入知识库在“评估技能”节点前加入“知识库检索”节点上传公司技术栈文档、岗位职级说明书等让评估依据更精准。多轮交互工作流可以设计为交互式。例如先输出初步评估然后根据用户的进一步提问“为什么这项技能不匹配”再触发另一个分支进行详细解释。连接外部 API在“代码节点”中使用requests库调用外部系统。例如解析简历后自动在内部人才库中查询是否存在重复记录或调用邮件服务发送评估报告。注意调用外部 API 需确保网络可达并妥善处理鉴权如使用环境变量存储密钥和超时异常。复杂决策树利用多个“条件判断”节点构建基于多项指标经验、技能、学历、薪资期望的复杂决策树实现更精细化的分类。6.2 生产环境部署要点将此类智能体用于实际业务前需考虑以下方面输入验证与清洗在“开始”节点后立即添加“代码节点”对输入的resume_text和job_description进行清洗去除特殊字符、截断长度、验证是否非空防止恶意输入或无效数据导致后续节点失败。敏感信息处理如果处理真实简历需注意隐私保护。不要在提示词中明文传递个人信息考虑在本地或安全环境中进行匿名化处理后再传入工作流。日志与监控充分利用 Coze 平台提供的运行日志监控工作流的触发频率、成功率和各节点耗时。对于关键业务可以在代码节点中加入日志记录将关键结果和错误信息输出到外部监控系统。版本管理Coze 平台支持工作流版本。每次重大修改前先保存一个版本。生产环境使用稳定的已发布版本在新版本测试充分后再进行切换。成本控制估算每个工作流运行一次消耗的 Token 数量尤其是大模型节点并设置预算或使用量告警。优化提示词减少不必要的上下文长度。工作流的价值在于将确定性的流程自动化而将需要智能判断的部分交给大模型。通过本教程的“简历筛选”案例你应该已经掌握了从需求分析、节点选型、流程设计、调试排错到集成的完整路径。接下来最好的学习方式就是选择一个你日常工作中的重复性高、有明确规则但又需要一些灵活判断的任务尝试用工作流将其自动化。从简单流程开始逐步增加复杂度你会逐渐体会到用可视化方式编排 AI 能力的强大与便捷。