字数:约4200字 | 阅读时间:9分钟
“最好的AI编程工具不是功能最多的,而是和你工作流融合最深的”


引言

如果你用过 GitHub Copilot,那你一定体验过”AI写代码”的爽感。但 Copilot 有个问题——它主要是个代码补全工具,理解项目全貌的能力有限。腾讯的 WorkBuddy(前身 CodeBuddy)走的是另一条路:从代码补全到 Agent 模式,从单文件到项目级理解,而且对国内开发者零门槛。

上一篇文章我们介绍了 WorkBuddy 的安装和基础用法,这篇文章我们往深处走——聊一聊那些官方文档没细说、但实战中特别好用的进阶玩法。

1. WorkBuddy 的三种模式,你真的用对了吗?

很多人装完 WorkBuddy 就开始用,但其实它有三种工作模式,对应不同的使用场景。

1.1 补全模式(Inline Completion)

最基础的用法,类似 Copilot。你在编辑器里写代码,AI 自动补全剩余部分。

1
2
3
4
5
6
7
8
9
// 你输入:
public List<User> findActiveUsers(int departmentId) {
// WorkBuddy 自动补全:
return userRepository.findByDepartmentId(departmentId)
.stream()
.filter(user -> user.getStatus() == UserStatus.ACTIVE)
.sorted(Comparator.comparing(User::getCreateTime).reversed())
.collect(Collectors.toList());
}

适用场景:写标准化的业务代码、样板代码、重复模式。

技巧:在注释里写意图,比写一半代码等补全效果好得多。比如输入 // 按部门ID查询活跃用户,按创建时间倒序,然后直接回车让 AI 补全整段。

1.2 对话模式(Chat)

侧边栏对话框,可以问任何编程问题。这个大家都用过,但有几个隐藏技巧:

技巧1:@ 引用上下文

在对话中用 @文件名 引用项目中的文件,WorkBuddy 会读取文件内容作为上下文。比如:

1
@UserService.java 这个类里有没有线程安全问题?

技巧2:粘贴错误信息

直接把编译错误或运行时异常粘贴到对话框,WorkBuddy 会分析原因并给出修复建议。比 Stack Overflow 快多了。

技巧3:要求写测试

1
2
给 @OrderService.java 的 createOrder 方法写单元测试,
使用 JUnit 5 + Mockito,覆盖正常流程和异常流程

1.3 Agent 模式(深度理解项目)

这是 WorkBuddy 和 Copilot 的核心差异。Agent 模式下,WorkBuddy 会:

  • 读取项目结构(目录树、配置文件、依赖关系)
  • 理解模块间的调用关系
  • 在修改代码时自动检查关联文件

开启 Agent 模式后,你可以给出更高级的指令:

1
2
帮我重构 OrderController,把支付逻辑抽成独立的 PaymentService,
同时更新相关的单元测试

WorkBuddy 会自己找到所有相关文件,做出修改,并在对话中列出所有改动。

2. 项目级理解:让 AI 真正懂你的项目

Agent 模式的核心是”项目级理解”。但这个能力需要你做一点配置。

2.1 配置项目上下文

在项目根目录创建 .codebuddy/context.md(或通过 IDE 设置):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 项目上下文

## 技术栈
- Java 21 + Spring Boot 3.x
- MyBatis Plus 作为 ORM
- Redis 缓存,Key 前缀为 "biz:"
- 数据库为 MySQL 8.0

## 架构约定
- Controller 层只做参数校验和路由
- 业务逻辑在 Service 层
- 所有数据库操作通过 Repository 层
- 异常使用自定义 BusinessException

## 命名规范
- Service 方法以动词开头:create/update/find/delete
- 常量使用全大写下划线
- DTO 类以 Request/Response 结尾

有了这个文件,WorkBuddy 生成的代码会自动遵循你的项目规范,而不是用一套通用的风格。

2.2 善用 .gitignore 感知

WorkBuddy 会自动读取 .gitignore,忽略不需要分析的文件。如果你有一些生成代码的目录(如 generated/),确保它们在 .gitignore 中,避免 AI 误读。

3. 实战案例一:用 WorkBuddy 做代码审查

代码审查是最消耗时间的环节之一。WorkBuddy 可以充当你的第一道审查线。

3.1 单文件审查

在对话中输入:

1
2
3
4
5
审查 @OrderService.java 的代码质量,关注:
1. 潜在的空指针异常
2. 事务边界是否正确
3. 是否有性能问题(N+1查询等)
4. 异常处理是否完善

3.2 批量审查(Git Diff 模式)

WorkBuddy 支持分析 Git Diff,只审查变更的部分:

1
2
3
4
审查最近的 git diff,关注变更是否引入了:
1. 安全漏洞(SQL注入、XSS等)
2. 破坏性变更
3. 未处理的边界情况

这个功能特别适合在提交 PR 前做自查。

3.3 审查结果处理

WorkBuddy 给出的建议不是所有都需要采纳。我的处理原则:

建议类型 处理方式
安全漏洞 立即修复
性能问题 评估影响后决定
代码风格 批量处理,不逐条纠结
架构建议 记录到技术债务清单

4. 实战案例二:用 WorkBuddy 加速重构

重构是最容易出 bug 的环节,也是最需要 AI 辅助的环节。

4.1 安全重构流程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
场景:把 UserController 中的权限校验逻辑抽到独立的 AuthInterceptor

步骤1:让 WorkBuddy 分析现有代码
"分析 @UserController.java 中所有的权限校验逻辑,
列出每个方法的校验规则和对应的权限要求"

步骤2:生成重构方案
"基于上面的分析,设计一个 AuthInterceptor,
统一处理所有权限校验,保持现有行为不变"

步骤3:逐步实施
"先实现 AuthInterceptor 的框架,不要删除 UserController 中的原有校验"

步骤4:运行测试
"运行所有相关的单元测试,确保没有回归"

步骤5:清理
"确认测试通过后,删除 UserController 中的冗余校验代码"

关键原则:不要一次性让 AI 做大重构。分步走,每步都跑测试,出问题容易回滚。

4.2 数据库迁移辅助

1
2
3
4
5
6
"我需要把 user 表的 phone 字段拆分成 country_code 和 phone_number 两个字段,
帮我生成:
1. SQL 变更脚本(包括数据迁移)
2. 对应的 Java 实体类修改
3. 相关 Service 层的适配代码
4. 回滚脚本"

WorkBuddy 会生成一套完整的迁移方案,包括你可能忽略的细节(索引变更、默认值处理、历史数据迁移)。

5. 测试生成:从覆盖到质量的跨越

自动生成测试是 AI 编程工具的基础能力,但生成的测试质量参差不齐。

5.1 高质量测试生成的技巧

明确测试框架和风格:

1
2
3
4
5
6
给 @PaymentService.java 生成单元测试,要求:
- 使用 JUnit 5 + Mockito
- 采用 Given-When-Then 结构
- 每个@Test方法只测一个场景
- 命名格式:should_预期行为_when_条件
- Mock 外部依赖,不启动 Spring 上下文

要求覆盖边界情况:

1
2
3
4
5
生成 @OrderValidator.java 的测试,特别关注:
1. 空输入和null值
2. 数值边界(0、负数、极大值)
3. 并发场景(重复提交)
4. 异常链路(部分成功部分失败)

5.2 测试金字塔实践

不要只生成单元测试。合理分配测试层级:

1
2
3
4
帮我为用户注册功能设计测试策略:
1. 单元测试(Service 层逻辑验证)
2. 集成测试(API 端到端验证)
3. 给出每个层级的测试用例清单

6. WorkBuddy + CI/CD:工程化集成

个人用 WorkBuddy 写代码很爽,但团队用的话,需要考虑工程化集成。

6.1 提交前自动检查

在项目的 .husky/pre-commit 中加入:

1
2
3
4
5
#!/bin/bash
# AI 代码建议检查(非强制,仅供参考)
echo "🔍 Running WorkBuddy code suggestions..."
# WorkBuddy CLI 可以在命令行模式下分析指定文件
codebuddy check --staged --suggest

6.2 代码规范强制

结合项目的 ESLint / Checkstyle,确保 AI 生成的代码也符合规范:

1
2
3
4
5
6
7
8
9
10
11
12
# .codebuddy/rules.yml
rules:
- name: no-system-out
pattern: System\.out\.print
message: "禁止使用 System.out,请用日志框架"
- name: no-eval
pattern: eval\(
message: "禁止使用 eval()"
- name: transaction-required
pattern: @Transactional
scope: Service
message: "数据库写操作必须加事务注解"

6.3 知识库沉淀

把团队常用的代码模式、架构约定维护在项目上下文文件中。新成员加入时,WorkBuddy 自动按照团队规范生成代码,大幅降低上手成本。

7. WorkBuddy vs Copilot vs Cursor:2026年国内开发者选型

既然聊到深度使用,不妨做个对比:

维度 WorkBuddy GitHub Copilot Cursor
国内访问 ✅ 零障碍 ⚠️ 需要代理 ⚠️ 需要代理
代码补全 ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐
Agent 模式 ⭐⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐
项目理解 ⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐
中文支持 ⭐⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐
IDE 支持 IntelliJ + VS Code 多IDE 自研编辑器
价格 免费额度充足 付费 付费
企业合规 ✅ 数据不出境 ⚠️ 数据过境 ⚠️ 数据过境

结论:对于国内开发者,尤其是企业级项目,WorkBuddy 在访问便利性、数据合规、中文支持方面有明显优势。Agent 模式是它的杀手级特性。

8. 我的日常使用习惯

最后分享下我日常使用 WorkBuddy 的几个习惯:

早晨:用对话模式快速了解新依赖的用法,比翻文档快。

编码时:写注释表达意图,让补全模式生成代码,自己只做微调。

重构前:让 Agent 模式分析影响范围,列出所有需要改动的文件。

提 PR 前:用对话模式做一次自查,重点检查安全和性能。

写测试时:先生成测试骨架,再手动补充边界情况和异常场景。

写在最后

AI 编程工具的选择没有标准答案。Copilot 补全最快,Cursor 编辑器体验最好,WorkBuddy 对国内开发者最友好。

但工具只是手段,关键还是你对项目架构的理解、对代码质量的追求、以及”AI 是助手不是替代品”的心态。最好的工作流,是你和 AI 各自发挥优势、互相补位的工作流。

WorkBuddy 免费额度对个人开发者足够用,建议装上试试。你会发现,一旦习惯了 Agent 模式下的”项目级对话”,很难再回到纯补全模式。