WorkBuddy 国际版接入 OpenCode:Plan、Build 与 Bug 修复实测
这期我把 WorkBuddy 国际版模型配置接入 OpenCode,再用一个 Python 命令行待办清单走完代码分析、功能新增、测试准备和 Bug 修复。重点不是让 AI 一次写完项目,而是看它能否理解现有代码、给出可检查的改动,并通过具体命令复现问题。
录制时间说明:客户端版本、模型列表和免费倍率以 2026 年 10 月 17 日录屏为准,供应商策略、账号资格和额度可能变化。视频中展示的测试结果是当时终端画面,不代表本文重新运行了测试。
这期演示的项目与流程
示例项目是一个纯 Python 标准库待办清单,使用同目录下的 todos.json 保存数据。原始代码支持新增、列表、完成和删除;后续演示增加了优先级排序,并修复删除编号映射错误。
- 将 WorkBuddy 桌面端模型配置接入 OpenCode;
- 先在 Plan 模式阅读项目结构和函数职责;
- 切换到 Build 模式增加
sort命令; - 并行准备测试文件和项目文档;
- 复现删除错位,审查索引逻辑并修复。
配置思路:让 OpenCode 调用 WorkBuddy 模型
录屏使用开源桥接工具 workbuddy-openai 导入桌面端登录会话,检查可用模型,再将服务商和模型信息写入 OpenCode 配置。具体界面和模型名称可能随软件版本调整,配置前应查看当前工具说明及账号可用状态。
凭证安全:Access Token 和配置文件都属于敏感信息。不要上传到公开仓库、博客附件或公开视频;录屏发布前检查令牌、账号标识以及本机路径是否需要遮挡。
先用 Plan 模式理解代码
第一条任务要求模型用中文分析目录和函数,并明确要求不改文件。模型需要读懂数据读写、命令分发和编号规则,再指出值得检查的边界情况。这样先审阅再改动,也便于开发者判断建议是否符合预期。
本例的关键约定是:命令行列表对用户显示的编号从 1 开始,而 Python 列表下标从 0 开始。编号转换必须处理一致,否则“删除第 1 条”可能指向第 2 个元素。
Build 模式增加优先级排序
接下来要求新增 sort:优先级数字越小越靠前,并且不改变原有命令。修改版使用排序后的副本显示,因此 list 仍保留原存储顺序,sort 只影响这次输出。
python3 todo.py add "写周报" -p 3
python3 todo.py add "买牛奶" -p 1
python3 todo.py add "交电费" -p 2
python3 todo.py sort
预期输出按 P1、P2、P3 排列。建议在临时目录体验,避免覆盖自己的 todos.json。
后台并行:测试和文档分开准备
视频中一个会话生成 test_todo.py,另一个会话撰写中文 README。并行能省等待时间,但也要求最后人工统一版本:测试要针对最终源码,文档里的 Bug 描述要跟修复状态一致。任务同时完成,不代表它们自动共享了同一份最新上下文。
复现并修复删除编号 Bug
原始版本的删除操作写成 del tasks[n]。用户输入的编号从 1 起算,但直接把 n 当列表下标,会造成错删;输入最后一条的编号时还可能越界。
# 原始版本:把用户编号直接当成从 0 开始的索引
del tasks[n]
# 修改版本:将 1 起始的编号转换成 Python 下标
del tasks[n - 1]
演示先创建两条待办,执行 del 1 并重新查看列表,确认原始代码删错;修复后重复相同步骤,检查是否删除第一条。排查这类问题时,也应检查删除中间项、最后一项、空列表和越界输入。
录屏的两个终端片段曾出现 unrecognized arguments。之后重新输入命令继续操作;跟做时请以文中的命令为准。
测试结果与复现边界
视频画面展示了修复后 pytest 输出 25 passed。这是录制当时屏幕上的结果;本文没有把它表述为当前下载文件刚刚通过的独立测试。下载后可以在自己的环境运行:
python3 -m pytest -q
录屏中的模型倍率和免费状态也是当时账号画面,不保证长期可用或对所有账号开放。使用前请检查当前客户端、账号提示和实际调用结果。
下载两个代码版本
桌面版是问题修复前的原始代码;修改版增加了 sort 并将删除索引改为 n - 1。两个文件分开提供,便于对照和复现实验。
内容根据本期 WorkBuddy + OpenCode 录屏和对应的两份 todo.py 整理。配置过程请勿公开分享账号凭证。