1. 为什么我要认真写这篇 WorkBuddy 实战指南
第一次听说 WorkBuddy 是在一个技术群里,有人甩了张截图,说腾讯出了个 AI 工作台,能把日常那些重复性的活儿全接过去。当时我的反应跟大多数人一样:又一个套壳产品吧?直到我自己装了一遍、配了一遍、踩了一遍坑,才发现这东西跟市面上那些“对话式 AI 助手”完全不是一个物种。
WorkBuddy 的核心定位是AI Agent 工作台,不是聊天机器人。它通过Skill(技能)机制让 AI 真正“下地干活”——读写文件、执行脚本、调用 API、处理数据、生成报告,这些操作它都能在本地环境里完成。你可以把它理解成一个“AI 调度中心”,你告诉它要做什么,它自己规划步骤、调用工具、执行任务、返回结果。跟 CodeBuddy 那种偏代码补全的工具不同,WorkBuddy 的覆盖面更广,从文档处理到数据分析到自动化流程都能插一脚。
这篇文章适合哪些人看?如果你是开发者,想搞清楚 AI Agent 到底怎么落地,WorkBuddy 是个很好的切入点;如果你是普通办公用户,想用 AI 替自己干掉那些枯燥的重复劳动,这篇也能帮你少走弯路;如果你已经在用类似产品但总觉得“差点意思”,那大概率是 Skill 配置和 models.json 没调对。我会从安装部署讲到 Skill 开发,从 models.json 配置讲到常见坑的排查,尽量把每个环节的“为什么”都说清楚。
注意:本文基于 WorkBuddy 国内版的实际使用经验撰写,国际版在部分功能入口和模型选择上有差异,但核心逻辑相通。
2. WorkBuddy 安装部署:从零到能跑起来
2.1 安装前的环境准备与版本选择
WorkBuddy 的安装本身不复杂,但环境准备阶段有几个容易忽略的点。首先说操作系统,Windows 10 以上、macOS 12 以上都能跑,Linux 桌面版支持也在逐步完善。我的建议是优先用 macOS 或 Windows,Linux 下某些 Skill 的兼容性还不够稳定,尤其是涉及系统级文件操作的场景。
硬件方面,官方给的最低配置是 8GB 内存,但实测下来,如果你打算同时跑多个 Skill 或者处理大文件,16GB 内存是起步线。CPU 倒不是瓶颈,因为大部分计算负载都在云端模型侧,本地主要跑的是调度和文件 IO。硬盘空间留够 5GB 就行,主要是缓存和日志。
安装包获取渠道这里不展开,只说一点:认准官方渠道。网上有些第三方打包的版本夹带了修改过的 models.json,用着用着发现请求被转发到不明地址,这种事不是没发生过。
安装过程中有一个选项值得注意:是否更改默认缓存目录。默认情况下 WorkBuddy 会把缓存放在系统盘的用户目录下,Windows 是C:\Users\你的用户名\.workbuddy,macOS 是~/.workbuddy。如果你系统盘空间紧张,或者想让缓存和项目文件放在一起方便管理,这一步就要改。具体怎么改后面会讲。
2.2 首次启动与基础配置流程
装完之后第一次启动,WorkBuddy 会引导你走一个初始化流程。这个流程里最关键的一步是模型接入配置。WorkBuddy 本身不绑定特定模型,它通过 models.json 来管理模型接入信息。你可以用官方推荐的模型,也可以接自己的 API。
初始化界面会让你选择“快速开始”还是“手动配置”。强烈建议选手动配置,因为快速开始会帮你填一堆默认值,后面改起来反而麻烦。手动配置里你需要填:
- 模型提供方的 API 地址
- API Key
- 模型名称(比如某个具体的模型标识)
- 可选的代理设置(如果你在公司内网环境)
填完之后点测试连接,能通就说明配置没问题。这里有个小细节:API 地址末尾不要多加斜杠,有些模型服务对 URL 格式很敏感,多一个斜杠就报 404。我在这上面浪费了半小时,后来看日志才发现。
初始化完成后,WorkBuddy 会问你“是否导入示例 Skill”。建议选是,因为示例 Skill 能帮你快速理解 Skill 的结构和运行方式,后面自己写的时候有参照。
2.3 更改缓存目录与数据迁移的正确姿势
缓存目录这事值得单独说,因为问的人太多了。WorkBuddy 的缓存分三类:模型响应缓存、Skill 运行日志、临时文件。默认都在系统盘,时间一长可能占几个 GB。
改缓存目录的方法:
- 完全退出 WorkBuddy(不是最小化到托盘,是彻底退出)
- 找到配置文件,Windows 在
%APPDATA%\WorkBuddy\config.json,macOS 在~/Library/Application Support/WorkBuddy/config.json - 编辑
cacheDir字段,改成你想要的路径,比如D:\WorkBuddyCache或/Users/你的用户名/workbuddy-cache - 把原缓存目录下的内容手动复制到新目录
- 重新启动 WorkBuddy
注意:改完路径后如果启动报错,大概率是权限问题。Windows 下确保新目录不在需要管理员权限的位置,macOS 下确保当前用户有读写权限。另外,路径中不要包含中文或特殊字符,虽然理论上支持,但实测偶尔出问题。
数据迁移这块,如果你之前已经用了一段时间,缓存里有历史对话和 Skill 运行记录,直接复制过去就行。但有一种情况例外:如果你换了模型提供方,建议清空模型响应缓存,因为不同模型的响应格式可能有差异,旧缓存可能导致解析错误。
3. models.json 深度解析:WorkBuddy 的模型调度中枢
3.1 models.json 的结构与字段含义
models.json 是 WorkBuddy 最核心的配置文件,没有之一。它决定了 WorkBuddy 能用哪些模型、怎么调用、优先级如何。很多人装完 WorkBuddy 觉得“不好用”,十有八九是 models.json 没配对。
一个典型的 models.json 结构长这样:
{ "models": [ { "name": "主力模型", "provider": "custom", "apiBase": "https://api.example.com/v1", "apiKey": "sk-xxxxxxxx", "model": "model-name-here", "maxTokens": 4096, "temperature": 0.7, "priority": 1, "capabilities": ["chat", "function_call"] } ], "defaultModel": "主力模型", "fallbackModel": "备用模型" }逐个字段解释:
- name:模型在 WorkBuddy 界面里显示的名字,随便起,但建议起个能看懂的
- provider:提供方类型,一般填
custom就行,除非你用官方预置的 - apiBase:API 地址,注意要包含版本路径(比如
/v1) - apiKey:你的密钥
- model:模型的实际标识符,这个必须跟提供方文档一致
- maxTokens:单次响应的最大 token 数,根据模型能力填
- temperature:温度参数,0 到 1 之间,越低越确定,越高越随机
- priority:优先级,数字越小越优先,多个模型时 WorkBuddy 会按这个顺序尝试
- capabilities:模型支持的能力列表,比如
chat、function_call、vision等
defaultModel是默认使用的模型,fallbackModel是默认模型调用失败时的备选。这两个字段在稳定性要求高的场景下很重要。
3.2 多模型配置与优先级策略
WorkBuddy 支持同时配置多个模型,这在实战中非常有用。比如你可以配一个“快模型”处理简单任务,一个“强模型”处理复杂推理,一个“便宜模型”做批量处理。
多模型配置的关键是priority 和 capabilities 的配合。举个例子:
{ "models": [ { "name": "快速模型", "priority": 1, "capabilities": ["chat"], "model": "fast-model" }, { "name": "推理模型", "priority": 2, "capabilities": ["chat", "function_call"], "model": "reasoning-model" }, { "name": "备用模型", "priority": 3, "capabilities": ["chat"], "model": "backup-model" } ] }当 WorkBuddy 需要执行一个需要 function_call 能力的 Skill 时,它会跳过“快速模型”(因为不支持 function_call),直接选“推理模型”。如果推理模型调用失败,再降级到备用模型。
这个机制的好处是:你不需要手动切换模型,WorkBuddy 会根据任务需求自动选择。但前提是你的 capabilities 字段填对了。我见过有人把所有模型的 capabilities 都写成["chat"],结果 Skill 死活跑不起来,排查半天才发现是这里的问题。
3.3 常见配置错误与修复方法
models.json 的配置错误五花八门,我整理了几个高频问题:
| 错误现象 | 可能原因 | 修复方法 |
|---|---|---|
| 启动报 JSON 解析错误 | 文件格式不对,比如多了逗号、少了引号 | 用 JSON 校验工具检查 |
| 模型列表为空 | models 数组为空或字段名拼错 | 检查models拼写,确保是数组 |
| 调用返回 401 | apiKey 错误或过期 | 重新生成密钥并更新 |
| 调用返回 404 | apiBase 路径不对 | 确认是否包含/v1等版本路径 |
| Skill 无法执行 | capabilities 缺少 function_call | 补充 capabilities 字段 |
| 响应超时 | maxTokens 设置过大或网络问题 | 降低 maxTokens,检查网络 |
还有一个隐蔽的坑:JSON 文件编码。如果你在 Windows 上用记事本编辑 models.json,保存时可能变成 GBK 编码,WorkBuddy 读的时候按 UTF-8 解析就会乱码。务必用 VS Code 或 Notepad++ 这类编辑器,保存时选 UTF-8。
实操心得:改完 models.json 后,不要急着重启 WorkBuddy。先在界面里点“重新加载配置”,如果加载成功再重启。这样能快速定位是配置问题还是其他问题。
4. Skill 机制全解:让 AI 真正“下地干活”
4.1 Skill 是什么:从概念到实际作用
Skill 是 WorkBuddy 的灵魂。没有 Skill 的 WorkBuddy 就是个普通聊天窗口,有了 Skill 它才能读写文件、执行命令、调用接口、处理数据。
用大白话说,Skill 就是一段告诉 WorkBuddy“遇到什么情况该怎么做”的指令集。它包含三部分:
- 触发条件:什么情况下用这个 Skill
- 执行逻辑:具体做什么,分几步
- 输出格式:结果怎么返回给用户
举个例子,一个“整理桌面文件”的 Skill,触发条件是用户说“帮我整理桌面”,执行逻辑是“扫描桌面目录 → 按文件类型分类 → 创建对应文件夹 → 移动文件”,输出格式是“已整理 X 个文件,分类如下...”。
Skill 的本质是一段结构化文本,WorkBuddy 把它注入到模型的上下文里,模型根据 Skill 的描述来决定调用哪些工具、按什么顺序执行。所以Skill 写得好不好,直接决定了 AI 干活的质量。
4.2 Skill 的编写规范与最佳实践
写 Skill 有几个核心原则:
第一,触发条件要明确。不要写“当用户需要处理文件时”,太模糊了。要写“当用户输入包含‘整理’、‘分类’、‘归档’且涉及文件路径时”。越具体,模型判断越准。
第二,执行步骤要可操作。每一步都应该是模型能理解并执行的动作。比如“读取文件内容”可以,“理解文件含义”就不行,因为后者太抽象。
第三,输出格式要固定。模型返回结果时,格式固定能让后续处理更顺畅。比如统一用 JSON 返回,或者统一用 Markdown 表格。
一个 Skill 的基本结构:
# Skill: 文件整理 ## 触发条件 用户要求整理指定目录下的文件 ## 执行步骤 1. 确认目标目录路径 2. 扫描目录下所有文件 3. 按扩展名分类 4. 创建分类文件夹 5. 移动文件到对应文件夹 6. 返回整理结果 ## 输出格式 已整理 [数量] 个文件: - 文档类:[数量] 个 - 图片类:[数量] 个 - 其他:[数量] 个这个结构看起来简单,但实际写的时候有很多细节要注意。比如“扫描目录”这一步,要说明是否包含子目录;“移动文件”要说明是否覆盖同名文件。这些细节不写清楚,模型就会按自己的理解来,结果往往不是你想要的。
4.3 热门 Skill 类型与适用场景盘点
根据我的使用经验,WorkBuddy 上最实用的 Skill 大概分这几类:
文件处理类:批量重命名、格式转换、内容提取、目录整理。这类 Skill 门槛低、见效快,适合刚上手的人。
数据类:CSV 解析、Excel 处理、数据清洗、报表生成。这类 Skill 对格式要求高,写的时候要把输入输出格式定死。
网络类:API 调用、网页内容抓取、数据同步。这类 Skill 要注意错误处理和超时设置。
开发辅助类:代码格式化、日志分析、配置生成。这类 Skill 适合开发者,能省不少重复劳动。
办公自动化类:邮件草稿生成、会议纪要整理、文档模板填充。这类 Skill 对文本处理能力要求高。
有个热词叫“book to skill”,意思是把一本书的内容转化成 Skill。这个思路挺有意思,比如你把一本写作指南转化成 Skill,WorkBuddy 就能按指南里的方法帮你改文章。但实际操作中,一本书的内容太多,直接塞进 Skill 会超出上下文限制,需要做摘要和结构化处理。
4.4 Skill 调试与迭代的实战技巧
Skill 写完不是终点,调试才是重头戏。我的调试流程一般是:
- 先用简单输入测试:比如文件整理 Skill,先拿一个只有三五个文件的目录试
- 看日志:WorkBuddy 的 Skill 运行日志会记录每一步的执行情况,哪里卡住了一目了然
- 逐步增加复杂度:简单场景跑通了,再试复杂场景,比如嵌套目录、特殊文件名
- 记录失败案例:每次失败都记下来,分析是 Skill 描述问题还是模型理解问题
有个技巧很管用:在 Skill 里加“如果...则...”的分支逻辑。比如“如果目录为空,则返回‘目录为空,无需整理’”。这样能避免模型在边界情况下瞎猜。
还有一点,Skill 不是越详细越好。太详细会占用大量上下文,反而影响模型对其他信息的处理。一般来说,一个 Skill 控制在 500 到 1500 字之间比较合适。超过这个范围,就要考虑拆成多个 Skill。
5. 实操全流程:从零搭建一个文件整理工作台
5.1 需求分析与方案设计
假设你每天都要处理大量下载文件,桌面乱成一锅粥。你想让 WorkBuddy 帮你自动整理,按文件类型分到不同文件夹。
需求拆解:
- 输入:一个目录路径
- 处理:扫描文件 → 识别类型 → 创建分类文件夹 → 移动文件
- 输出:整理结果摘要
方案设计时考虑几个问题:
- 文件类型怎么判断?按扩展名最靠谱
- 分类粒度多细?太细了文件夹太多,太粗了没意义。建议按“文档、图片、视频、音频、压缩包、其他”六类
- 同名文件怎么处理?加时间戳后缀
- 子目录要不要处理?默认不处理,避免误操作
5.2 Skill 编写与配置落地
根据上面的设计,Skill 可以这样写:
# Skill: 下载目录整理 ## 触发条件 用户要求整理下载目录或指定目录下的文件 ## 执行步骤 1. 获取用户指定的目录路径,如果未指定则使用默认下载目录 2. 列出目录下所有文件(不包含子目录) 3. 按扩展名分类: - 文档:doc, docx, pdf, txt, md, xlsx, pptx - 图片:jpg, jpeg, png, gif, webp, svg - 视频:mp4, avi, mkv, mov - 音频:mp3, wav, flac, aac - 压缩包:zip, rar, 7z, tar, gz - 其他:不在上述范围内的 4. 在目标目录下创建对应分类文件夹(如果不存在) 5. 移动文件到对应文件夹,同名文件加时间戳后缀 6. 返回整理结果 ## 输出格式 整理完成,共处理 [总数] 个文件: - 文档:[数量] 个 - 图片:[数量] 个 - 视频:[数量] 个 - 音频:[数量] 个 - 压缩包:[数量] 个 - 其他:[数量] 个把这个 Skill 保存为organize-downloads.md,放到 WorkBuddy 的 Skill 目录下。Skill 目录的位置在设置里能看到,一般是~/.workbuddy/skills/。
然后在 WorkBuddy 界面里刷新 Skill 列表,应该就能看到这个新 Skill 了。
5.3 运行验证与效果调优
第一次运行,我建议拿一个测试目录试,别直接上真实下载目录。测试目录里放几个不同类型的文件,然后对 WorkBuddy 说“帮我整理测试目录”。
观察运行日志,看每一步是否按预期执行。常见问题:
- 文件没被移动:可能是路径不对,或者权限不够
- 分类不对:检查扩展名列表是否覆盖了实际文件类型
- 同名文件被覆盖:Skill 里要明确写“加时间戳后缀”
跑通之后,可以逐步增加复杂度。比如加入“跳过隐藏文件”、“跳过正在使用的文件”等逻辑。每次修改 Skill 后,都要重新测试,确保没有引入新问题。
实操心得:Skill 的迭代不要一次改太多。每次只改一个点,测试通过后再改下一个。这样出问题时容易定位。
6. 常见问题与排查技巧实录
6.1 安装与启动类问题
问题:安装后启动闪退
排查思路:先看日志。WorkBuddy 的日志在缓存目录下的logs文件夹里。常见原因是 models.json 格式错误导致启动时解析失败。把 models.json 临时改名,如果启动正常,就说明是配置问题。
问题:界面显示“无可用模型”
检查 models.json 里的models数组是否为空,以及defaultModel是否指向了一个存在的模型名称。另外确认 API Key 没有过期。
问题:更改缓存目录后启动报错
大概率是权限问题。Windows 下试试把目录设在用户目录下,macOS 下用chmod确保权限。路径中不要有中文。
6.2 Skill 运行类问题
问题:Skill 不触发
检查触发条件是否太窄或太宽。太窄了模型匹配不到,太宽了会误触发。建议在触发条件里加入具体的动词和名词组合。
问题:Skill 执行到一半卡住
看日志里最后执行到哪一步。常见原因是某一步需要调用的工具不可用,比如文件路径不存在、API 超时。在 Skill 里加入错误处理逻辑,比如“如果文件不存在,则跳过并记录”。
问题:Skill 输出格式不对
模型有时候会“自由发挥”,不按你定义的格式返回。解决办法是在 Skill 里强调“必须严格按照以下格式输出”,并在输出格式部分给出具体示例。
6.3 模型调用类问题
问题:调用返回 429(请求过多)
说明触发了速率限制。解决办法:降低并发,或者在 models.json 里配置多个模型做负载均衡。
问题:响应内容被截断
检查 maxTokens 设置。如果任务需要长输出,把 maxTokens 调大。但注意不要超过模型本身的上限。
问题:模型不理解中文指令
有些模型对中文支持不好。解决办法:在 Skill 里用中英双语写关键指令,或者在 models.json 里优先选择中文能力强的模型。
6.4 性能与稳定性优化建议
- 缓存策略:WorkBuddy 默认会缓存模型响应。如果任务对实时性要求高,可以在配置里关闭缓存。
- 并发控制:同时跑多个 Skill 时,注意模型 API 的并发限制。建议在 models.json 里设置合理的超时和重试参数。
- 日志管理:日志文件会越来越大,建议定期清理。可以在配置里设置日志保留天数。
- Skill 加载优化:Skill 太多会影响启动速度。不常用的 Skill 可以移到备份目录,需要时再放回来。
7. 关于 WorkBuddy 和 CodeBuddy 的选择,以及一些个人体会
经常有人问 WorkBuddy 和 CodeBuddy 到底啥区别,该用哪个。我的理解是:CodeBuddy 偏代码场景,WorkBuddy 偏通用办公场景。如果你主要写代码,CodeBuddy 的代码补全和重构能力更顺手;如果你要处理文档、数据、自动化流程,WorkBuddy 的 Skill 机制更灵活。两者不是替代关系,是互补关系。我自己的做法是两个都装,按任务类型切换。
关于“AI Agent 怎么扛并发”这个问题,我的经验是:别指望单个 Agent 扛高并发。正确的做法是把任务拆解,用多个 Agent 实例并行处理,每个实例负责一部分。WorkBuddy 支持多模型配置,本质上就是为了做负载分流。如果你的场景真的需要高并发,建议在 WorkBuddy 外面再套一层任务队列,把任务分发到多个 WorkBuddy 实例上。
最后说个我踩过的坑:不要把所有任务都交给一个 Skill。我一开始图省事,写了个“万能 Skill”,结果模型经常搞混步骤,该整理文件的时候去调 API,该调 API 的时候去读文件。后来拆成五个独立 Skill,每个只干一件事,稳定性立马就上来了。Skill 的设计哲学跟微服务有点像——单一职责,组合使用。
还有一个体会是,WorkBuddy 的 Skill 生态还在早期,很多场景需要自己动手写。但这恰恰是它的价值所在——你写的每一个 Skill 都是在积累自己的自动化资产。今天写个文件整理,明天写个数据清洗,攒上二三十个 Skill,你的工作台就真的成型了。到那时候,WorkBuddy 才真正成为你的“工作伙伴”,而不是一个“聊天工具”。