如果你最近在关注 AI 工作流工具,大概率会刷到 WorkBuddy 相关的视频和教程。标题动不动就是“吊打付费”“B站最细最全”“10节付费课完整拆解”,确实抓眼球。但在实际动手之后,很多人的体验不是“工具太强了”,而是“这个报错到底怎么解决”。
这篇文章想聊的,不只是 WorkBuddy 怎么安装、怎么配置,而是更核心的问题:一个看起来很简单的工作流工具,为什么有人能玩出花,有人连环境都跑不起来?
我的判断是:WorkBuddy 的入门门槛确实不高,但它真正考验人的地方不在画流程图,而在 Python 环境管理、依赖处理、API Key 配置和节点排错。市面上很多教程把“画工作流”讲得很细,却很少讲“工作流跑起来之后怎么验证、怎么排错”。这篇文章会结合实操里最容易踩的坑,把一套完整的工作流落地流程拆开讲清楚。读完你可以照着跑通一个真实场景,而不是只会在界面上拖拖拽拽。
1. 这篇文章真正要解决的问题
先说结论:WorkBuddy 这类工具的价值,是把“想法”变成“可执行流程”,而不是停留在概念演示。
如果你只是看别人视频里演示了一遍,觉得“哇好厉害”,自己上手却发现第一步就卡住,这篇文章就是给你准备的。我会从三个层面展开:
第一层,概念。WorkBuddy 和 CodeBuddy 是什么关系?Skill、插件、工作流节点这些词到底在说什么?不把这些概念打通,你看教程会越看越迷糊。
第二层,实操。从环境准备开始,到下载安装、配置 API Key、跑通第一个工作流、处理依赖报错,每一步都给出可复制的命令和排错思路。
第三层,工程习惯。工作流跑通一次不难,难的是长期维护。多项目怎么管理 API Key?Skill 怎么复用?依赖冲突怎么处理?这些我会结合常见实践给出建议。
什么样的人最应该读这篇文章?
- 刚接触 WorkBuddy,安装完但还不知道怎么组织第一个工作流的零基础用户;
- 卡在“请安装缺失的包以使用此工作流”这类报错,看不懂日志的新手;
- 已经在用 Coze、n8n 或 Dify,想了解 WorkBuddy 这类本地部署方案差异的开发者;
- 想用 AI 工作流处理简历筛选、文档整理、信息抓取等重复任务的效率工具爱好者。
如果你只是随手刷到标题,想看看 WorkBuddy 是不是又一款“看着好但用不上”的工具,这篇文章也能给你一个判断依据。
2. WorkBuddy 是什么:被误读最多的“轻量级工作流”
2.1 它不是 CodeBuddy 的改名版
很多人在搜索时会看到 WorkBuddy 和 CodeBuddy 同时出现,第一反应是“这俩是不是同一个东西”。从社区的讨论和工具定位来看,两者有交集,但侧重点不同。
CodeBuddy 更多偏编程助手方向,强调在代码场景下的补全、生成和问答能力。WorkBuddy 则明显是往工作流编排和自动化方向走。它关注的是“把多个 AI 步骤串起来,形成一个可重复执行的流程”。
用一句话概括:CodeBuddy 帮你写代码,WorkBuddy 帮你把“写代码的流程”以及其他 AI 步骤编排起来。
这听起来有点像 Coze 或 Dify,但 WorkBuddy 有一个差异化特点:它强调本地部署和轻量级。不需要把业务流程完全托管到某个云端平台,而是可以在自己的环境里跑,这对注重数据隐私和二次开发的团队更有吸引力。
2.2 工作流到底是什么
工作流这个词在 AI 工具里已经被用得很宽泛了。在 WorkBuddy 的语境下,工作流指的是:
将一个完整的任务拆解为多个步骤,每个步骤由一个节点完成,节点与节点之间通过输入输出衔接,按顺序或条件组合起来,最终输出一个确定结果。
最典型的例子是“简历筛选工作流”:
- 第 1 步:读取多份简历文件;
- 第 2 步:用大模型提取结构化信息;
- 第 3 步:按评分规则筛选候选人;
- 第 4 步:生成汇总表格。
如果手动做,HR 或技术负责人可能要花半天。如果写成固定流程,后续每收到一批简历,只需要把文件丢进去,工作流自动跑完。这就是工作流的实际价值:把重复性专家劳动,变成一次配置、长期复用的自动化流水线。
2.3 节点、Skill、插件到底是什么
阅读 WorkBuddy 教程时,你一定会碰到几个高频词:
- 节点(Node):工作流的最小执行单元。一个节点可以是一次 LLM 调用、一段 Python 脚本、一次文件读取。
- Skill(技能):封装好的可复用能力。比如“Markdown 转 Word”“简历解析”都可以封装为 Skill。这相当于把常用操作沉淀成可插拔模块。
- 插件(Plugin):扩展 WorkBuddy 能力的工具包,比如接入第三方 API、使用特定格式解析库。插件往往是 Skill 的底层支撑。
简单类比:如果把工作流比作一条生产线,节点是工位,Skill 是标准化工序,插件是工位的工具。
很多新手搞不清 Skill 和插件的区别,其实记住一句话就行:插件偏底层能力,Skill 偏业务封装。插件提供“能干什么”,Skill 决定“怎么用比较顺”。实际使用中,你更多接触的是 Skill,因为它是用户直接调用和组合的入口。
2.4 和其他工具的边界
和 Coze、Dify、n8n 相比,WorkBuddy 的定位更轻:
- 它不像 Coze 那样有一整套云端生态,但因此少了很多平台绑定;
- 它不像 n8n 那样是通用自动化平台,但 AI 相关节点的设计更贴合 LLM 应用场景;
- 它和 Dify 一样适合做本地化部署,但 WorkBuddy 更强调个人工作台和轻量流程。
所以,如果你只需要一个“轻量级工作流”工具,并且希望能本地化运行、能自己控制依赖,WorkBuddy 值得认真试试。如果你想做企业级多租户、复杂权限管理和大规模应用,那商业平台或 loT 平台可能更适合。
小结论:WorkBuddy 不是要取代所有工作流平台,而是在“本地优先、轻量编排”这个区间里,提供了一套更顺手的方案。看清这个定位,你就不容易对它产生不切实际的期待。
3. WorkBuddy 环境准备与前置条件
在开始安装之前,先把准备工作做扎实。很多教程让你直接敲命令,结果你环境不对、Python 版本不对、网络受限,一步错步步错。
3.1 操作系统与运行环境
WorkBuddy 支持主流桌面系统,但如果你是在服务器或 Linux 环境里跑,需要注意依赖差异。常见的使用环境包括:
- Windows 10/11,建议使用 PowerShell 或 Windows Terminal;
- macOS,建议使用 zsh 或 bash;
- Linux(Ubuntu/Debian 系),日常开发和服务器部署常见。
如果你用的是 Windows,强烈建议优先把 Python 环境理顺,再考虑 WSL2。后面很多依赖问题在 Linux 环境下会比 Windows 原生环境少一些。
3.2 Python 版本与依赖管理
WorkBuddy 是命令行与本地工作流工具,依赖 Python 环境。安装之前先确认你的 Python 版本。在终端执行:
python --versionpython3 --version如果你的环境里同时存在 Python 2 和 Python 3,注意区分python和python3。更推荐使用python3前缀,避免误用旧版本。
依赖管理方面,建议使用虚拟环境。不要图省事直接把 WorkBuddy 装进全局 Python 环境,不然以后不同项目依赖冲突时你会很痛苦。
创建并激活虚拟环境的命令:
python3 -m venv workbuddy-env source workbuddy-env/bin/activateWindows 下的激活命令是:
workbuddy-env\Scripts\activate激活后,终端提示符前面会出现(workbuddy-env)后缀,说明你当前已经进入虚拟环境。
3.3 API Key 准备
WorkBuddy 的工作流中,LLM 节点需要调用大模型接口,因此你需要准备对应平台的 API Key。这里是很多人卡住的地方。常见情况分几种:
- 如果你使用 OpenAI 兼容接口,需要准备对应的 Key 和接口地址;
- 如果你在国内的云服务平台购买模型服务,需要准备该平台的 Key;
- 如果你使用本地模型,则需要额外配置模型服务和端口地址。
注意:API Key 属于敏感凭证,不要硬编码进工作流文件,更不要提交到公开仓库。推荐通过环境变量或配置文件统一管理。后面最佳实践部分会展开讲。
3.4 验证环境是否就绪
执行下面命令,确认 Python、pip 和虚拟环境都正常:
python3 --version pip3 --versionpython3 -c "import sys; print(sys.executable)"如果第三条命令输出的路径指向你刚创建的虚拟环境目录,说明虚拟环境生效。接下来可以开始安装 WorkBuddy。
4. WorkBuddy 下载安装与基础配置
这一节是实战的开始。请注意,不同版本的安装指令可能略有差异,本文以通用安装思路演示。如果你看到教程里的命令和你当前版本不一致,优先以官方文档为准。
4.1 安装 WorkBuddy
进入虚拟环境后,执行安装命令:
pip install workbuddy如果你的环境有多个 Python 版本,或者需要指定用户安装,可以加参数:
python3 -m pip install workbuddy安装完成后,验证是否安装成功:
workbuddy --version如果提示找不到命令,先检查虚拟环境是否激活,再检查pip show workbuddy是否能查到安装信息。还有一种可能是安装目录不在 PATH 中,需要把 Python 的bin目录加进系统 PATH。
4.2 配置工作目录
WorkBuddy 安装好之后,最好为它创建独立的工作目录。不要把自己所有的项目文件都堆在一个目录里。推荐结构:
workbuddy-projects/ ├── project-1/ ├── project-2/ └── skills/初始化和创建目录的命令:
mkdir -p workbuddy-projects cd workbuddy-projects这样做的好处是:每个项目的工作流、Skill、临时文件都在自己的目录里,互不干扰,排查问题时也更清晰。
4.3 配置 API Key 与基础参数
WorkBuddy 通常会提供一个初始化或配置命令。通用做法是把它提供的配置模板写入配置文件,再填入 Key。
假设配置文件是.env或workbuddy.conf,你只需要关注几个核心变量:
LLM_API_KEY=你的API密钥 LLM_BASE_URL=https://api.example.com/v1 LLM_MODEL=gpt-4o-mini这里必须强调:不要把配置文件和项目一起提交到 Git 仓库。更稳妥的方式是先把模板提交,再把真实配置加入.gitignore:
.env *.local4.4 检查配置是否生效
填写完配置后,可以运行一条简单的命令或写一个最小工作流测试连通性。不同版本的命令不同,但判断逻辑一致:
- 如果返回正常的模型响应,说明 Key 和网络都正常;
- 如果返回鉴权失败,优先检查 Key 是否正确、额度是否充足;
- 如果返回超时,优先检查网络代理和接口地址。
小结论:安装和配置是 WorkBuddy 最容易出问题的环节,但问题并不复杂。绝大多数失败都出在虚拟环境未激活、Python 版本不对、API Key 配置错误这三个原因上。按顺序逐一排查,基本都能解决。
5. 从零跑通一个完整工作流:Markdown 转 Word 实战
这部分是文章的核心。我选择“Markdown 转 Word”作为示例,是因为它足够简单、极其常用,而且能完整展示工作流从输入到输出的全过程。无论你是写技术文档、维护博客稿还是做项目交付,这个工作流一跑通,立刻就能投入使用。
5.1 明确场景与流程设计
假设你有一篇 Markdown 格式的周报或技术文档,希望自动转成排版相对规整的 Word 文档。传统做法是复制粘贴到 Word 里手动调格式,工作流做法是自动处理。
一个最小可用的工作流设计如下:
- 读取 Markdown 文件内容;
- 解析 Markdown 结构(标题、段落、表格、代码块);
- 使用文档转换库生成 Word 文件;
- 输出转换状态和文件路径。
5.2 用 Skill 方式实现
WorkBuddy 支持把这类能力封装为 Skill。如果《markdown转word工作流coze》这类搜索让你觉得转换很复杂,其实在 WorkBuddy 里思路更简洁:借助成熟的开源库完成转换,再让工作流把“输入文件路径、执行转换、输出结果”串起来。
一个 Skill 的目录结构通常是这样的:
markdown-to-word/ ├── SKILL.md ├── requirements.txt └── main.pySKILL.md里描述技能的作用、输入参数和调用方式。requirements.txt声明依赖。main.py是核心逻辑。
5.3 核心代码示例
我们先用一个最小脚本实现 Markdown 转 Word。文件路径:markdown-to-word/main.py。
# 文件路径:markdown-to-word/main.py # 功能:读取 Markdown 文件并转换为 Word 文档 import sys from pathlib import Path # 这里以 pandoc 的 python 绑定为例,具体库取决于你的环境 # 如果没有安装,请先执行 pip install pypandoc import pypandoc def convert_markdown_to_word(md_path: str, output_path: str = None) -> str: md_file = Path(md_path) if not md_file.exists(): raise FileNotFoundError(f"Markdown 文件不存在: {md_path}") if output_path is None: output_path = md_file.with_suffix(".docx").name # 调用 pypandoc 执行转换 pypandoc.convert_file( str(md_file), "docx", outputfile=output_path, extra_args=["--standalone"] ) return output_path if __name__ == "__main__": input_md = sys.argv[1] if len(sys.argv) > 1 else "input.md" out_file = convert_markdown_to_word(input_md) print(f"转换成功,输出文件:{out_file}")这段逻辑本身不难,难点是依赖安装。你需要在当前 Python 环境中执行:
pip install pypandoc如果你的系统没有安装 pandoc,pypandoc 会自动下载,但某些网络环境下会失败。如果下载失败,需要先手动安装 pandoc 本体,再执行上面的命令。
5.4 在工作流中调用 Skill
WorkBuddy 的工作流配置会声明“调用某个 Skill”。不同版本的写法有差异,我们这里用通用的 JSON 结构演示工作流节点的编排思想:
{ "name": "markdown_to_word_workflow", "description": "将 Markdown 文档转换为 Word 文档", "steps": [ { "id": "read_markdown", "type": "file_reader", "params": { "path": "./docs/input.md" } }, { "id": "convert_to_word", "type": "skill", "skill_id": "markdown-to-word", "params": { "input": "{{read_markdown.content}}", "output": "./dist/output.docx" } }, { "id": "notify_result", "type": "log", "params": { "message": "转换完成: {{convert_to_word.output}}" } } ] }这个结构里,{{}}表示步骤间的变量引用。read_markdown的输出会被传入convert_to_word,最终结果由notify_result打印出来。这就是工作流最基本的串联方式:前一个节点的输出,是后一个节点的输入。
5.5 运行工作流
假设 WorkBuddy 提供了命令行运行入口,通用命令形式是:
workbuddy run workflow.json运行后,如果一切正常,你会看到类似输出:
[1/3] 读取 Markdown 文件... 完成 [2/3] 调用 markdown-to-word Skill... 完成 [3/3] 输出提醒... 转换完成: ./dist/output.docx 工作流执行成功,耗时 3.2s5.6 为什么推荐用工作流而不是直接敲命令
有人会问:这个流程我用一条 pandoc 命令就能完成,为什么非要 WorkBuddy?
关键区别在于:工作流把过程变成了可复用、可扩展、可组合的资产。
- 如果你想在转换之前先用大模型校对一遍文档,只需要在工作流里插入一个 LLM 节点;
- 如果你想批量处理一个目录下 50 个 Markdown 文件,只需要增加一个循环节点;
- 如果你想转换完后自动发送到飞书或企业微信群,只需要再加一个通知节点。
这些在命令行里需要一次次手动操作,在工作流里则是一次设计、持续复用。
小结论:Markdown 转 Word 这类简单场景,价值不在于替代一条命令,而在于让一切步骤都可以组合、编排、自动化。这是工作流思维的起点。
6. 运行结果与效果验证
很多新手跑完一个工作流,看到“执行成功”就以为完事了。实际上,“能跑”和“结果正确”是两回事。工作流跑通之后,你还需要从多个维度验证输出。
6.1 验证输出文件是否正确
以 Markdown 转 Word 为例,检查以下内容:
- 文档能正常打开,没有损坏;
- 标题层级是否正确(一级标题、二级标题是否对应);
- 表格是否完整、代码块是否被正确渲染;
- 图片、链接是否正常保留。
如果发现样式问题,优先调整工作流中转换节点的参数,而不是在 Word 里手动改格式。手动改一次,下次运行又会丢失。
6.2 检查日志和指标
工作流运行后,关注这几个指标:
- 执行状态:成功还是失败;
- 耗时:每个节点花了多长时间,哪个节点最慢;
- 输入输出:传给 LLM 的提示词是否拼接正确,返回结果是否被截断。
如果某一个节点静默失败,日志是定位问题的第一线索。建议养成“跑完必看日志”的习惯,哪怕是个人项目,也能帮你尽早发现问题。
6.3 如何判断工作流真的成功了
判断标准不只是“退出码是 0”,而是:
- 输出文件符合预期;
- 同一份输入重复运行,结果稳定;
- 换一组真实数据测试,依然能产出有效结果;
- 异常输入能被正确识别,不会产生脏数据。
以简历筛选工作流为例,声称它跑通,至少要拿 10 份真实简历测试,确认每份简历中的姓名、工作年限、技能关键词都被正确提取。如果 10 份里有 3 份字段是乱的,这个工作流就不算成功。
7. WorkBuddy 常见问题与排查方法
这一部分直接解决你在实操中最可能撞上的坑。下面这个表格建议收藏,遇到问题先来这里查。
| 问题现象 | 可能原因 | 排查方式 | 解决方案 |
|---|---|---|---|
| 运行时报“请安装缺失的包以使用此工作流” | 工作流依赖的 Python 包未安装 | 查看报错日志中缺失包名称,检查当前环境 | 在虚拟环境中执行pip install 缺失包名 |
提示找不到workbuddy命令 | 未激活虚拟环境 | 执行which workbuddy查看命令路径 | 激活虚拟环境,或把安装目录加入 PATH |
| LLM 节点调用失败,提示鉴权错误 | API Key 错误或额度不足 | 检查配置文件中 Key 是否有空格,查看平台控制台 | 重新生成 Key 并更新配置,确认账户余额 |
| 工作流执行超时 | 模型响应过慢或网络问题 | 查看节点耗时,先单独跑一次模型接口 | 换轻量模型,或调整请求超时参数 |
| 输出文档格式混乱 | 转换参数配置不正确 | 对比示例文档和输出文档 | 调整转换节点参数,检查模板文件 |
| Skill 导入失败 | Skill 目录结构不正确 | 检查 SKILL.md 是否存在、依赖是否完整 | 按官方模板重建 Skill 目录 |
| 端口被占用 | 本地服务端口冲突 | 查看端口占用进程 | 换一个端口或关闭冲突进程 |
| 同一个工作流在不同机器上结果不一致 | 依赖版本不一致 | 对比两台机器的依赖版本 | 使用 requirements.txt 或锁文件固定版本 |
7.1 重点拆解:“请安装缺失的包以使用此工作流”
这条报错全网搜得到,说明非常多人都遇到过。从报错文案来看,这是 WorkBuddy 在检测当前 Python 环境时发现,某个工作流依赖的包没有安装。它给出的提示是“要安装缺失的节点,请先在您的 python 环境中运行”相关命令。
遇到这个报错时,按三步处理:
第一步,看日志里的关键信息。报错日志通常会明确指出哪个节点加载失败,哪个包找不到。不要急着乱装包,先定位名字。
第二步,确认当前环境。执行which python3,确认你当前在正确的虚拟环境里。很多时候是你明明在 A 虚拟环境,工作流却在读取 B 环境的包列表。
第三步,安装缺失依赖。在激活正确虚拟环境的前提下执行安装命令:
pip install 缺失的包名然后把工作流重新跑一遍。如果依赖来自requirements.txt,也可以一次性安装:
pip install -r requirements.txt这里一定要提醒的是:不要用sudo pip install往全局环境里强装包。这会造成依赖污染,而且下次换项目时会遇到更多冲突。
8. WorkBuddy 最佳实践与工程建议
工具会用之后,下一个阶段就是“用得好”。以下这些实践,是我观察大量案例后觉得值得写下来的。
8.1 命名规范
工作流、Skill、项目目录都要有明确的命名规范。推荐规则:
- 工作流名称使用小写字母加连字符,例如
resume-filter-workflow; - Skill 名称使用简短动词短语,例如
markdown-to-word、pdf-text-extract; - 输出文件统一放到
dist或output目录,不要和源码混在一起。
命名规范最大的价值不是好看,而是让工作流可以被检索和复用。三个月后你再回来看自己的项目,好名字能省大量回忆成本。
8.2 依赖管理
每个 Skill 最好维护独立的requirements.txt,不要只依赖“我当时装了这些包”。这样换机器、换环境时,可以轻松重建。
更推荐的做法是使用锁文件固定版本。你可以在项目根目录维护一个完整依赖清单,确保 CI 和生产环境与本地一致。
8.3 配置管理
API Key、接口地址、模型名称这类配置,永远不该硬编码在工作流文件里。推荐使用环境变量:
export LLM_API_KEY="sk-xxxx"然后在配置文件中引用:
LLM_API_KEY=${LLM_API_KEY}这样做的两个好处:一是不会把密钥提交到 Git,二是不同环境(本地、测试、生产)可以复用同一套工作流文件,只改环境变量即可。
8.4 异常处理与重试策略
真实项目中,LLM 接口调用不可能每次都成功。工作流设计时要预留异常处理节点:
- 对可重试的错误(如临时超时),配置重试逻辑;
- 对不可重试的错误(如参数错误、鉴权失败),立即报错并记录日志;
- 对需要人工介入的场景,工作流应该输出提示,而不是静默失败。
8.5 日志与可观测性
建议给工作流增加结构化日志。每个节点执行时输出以下信息:
- 时间戳;
- 节点 ID;
- 输入摘要;
- 输出摘要;
- 耗时。
比赛规则是:如果一个工作流报错了,光看日志就能定位到具体节点,不需要靠猜。这样在复杂工作流里能节省大量时间。
8.6 多项目与复用策略
当你有多个项目时,把通用能力封装成 Skill,把项目特有逻辑放在工作流配置里。例如,很多项目都需要“读取 PDF → 提取文本 → 用 LLM 总结”,这个流程可以封装成一个通用 Skill,而不是每个项目复制一遍。
WorkBuddy 的个人工作台理念也在于此:你不需要每次都从零开始画流程图,而是像搭积木一样,把已验证过的 Skill 拼成新流程。
8.7 安全与权限边界
工作流涉及文件读写时,注意路径边界。不要让工作流随意访问系统目录或执行未经校验的外部命令。以下红线要守住:
- 不读取
.env、密钥文件的内容; - 不将 API Key 拼进提示词传给外部模型;
- 不对陌生来源的 Markdown 或 HTML 执行任意命令;
- 在涉及数据库删除、文件覆盖等危险操作时,先备份或加二次确认。
更稳妥的做法是:工作流只访问项目目录内的文件,对外部输入一律视为不可信数据。如果确实需要执行动态代码(比如让 LLM 生成并执行脚本),必须严格限制执行权限,最好在沙箱或隔离环境里运行。
9. 总结与后续学习方向
回到开头那个判断:WorkBuddy 的门槛不在安装,而在工作流的工程化落地。
这篇文章讲清楚了几个关键问题:
一,WorkBuddy 的定位是什么。它是轻量级、本地优先的工作流工具,和 CodeBuddy 有交集但侧重点不同,和 Coze、n8n、Dify 相比,它更强调个人工作台和本地编排。
二,工作流的核心思想是什么。它不是画一张好看的流程图,而是把重复任务拆解为节点、用 Skill 封装复用逻辑、通过输入输出串联成流程。以 Markdown 转 Word 为例,一条命令能做的是“任务”,多次可复用的是“工作流”。
三,最常见的坑在哪里。环境没理顺、依赖没装全、API Key 配置错误是三大起步障碍。运行时报“请安装缺失的包以使用此工作流”时,第一反应应该是看日志定位缺失包、确认虚拟环境、再安装依赖,而不是迷茫地重新安装整个工具。
四,工程化习惯有多重要。命名规范、依赖锁定、配置外置、异常处理、日志可观测,这些看起来会增加工作量,但长期来看是避免工作流“一次性玩具化”的关键。
如果你现在正准备开始学习 WorkBuddy,我给你的建议不是去收藏更多的付费课拆解,而是做一个非常小的真实任务——比如把自己最常做的文档处理变成一个工作流。跑通之后,再逐渐把更多步骤编排进来。
后续值得深入的方向包括:如何封装更复杂的自定义 Skill、如何做多步骤条件分支、如何与外部 API 集成、如何管理团队共享的工作流资产。这些话题每一项都能单独展开讲,但只要把本文的基础打牢,你在后续实践中就不会再被环境问题困住。
最后,收藏这篇文章,遇到“pip install 之后还是找不到包”“日志看了一百行不知道看哪”之类的问题时,回来翻一翻第 7 节。我会在后续继续整理 WorkBuddy 的高阶实战案例。