智能体式 AI 代码工具
AI 编码助手已经从简单的自动补全,进化成可以自主规划、修改多个文件、运行测试并创建 Pull Request 的智能体。本教程涵盖三大主流工具:Claude Code、Cursor 和 GitHub Copilot。
1) 什么算"智能体式"工具?
传统的 AI 代码补全只能建议接下来的几行代码。智能体式工具走得更远:
| 能力 | 自动补全 | 智能体式 |
|---|---|---|
| 范围 | 当前行/函数 | 整个代码库 |
| 规划 | 无 | 多步推理 |
| 执行 | 仅建议 | 可修改文件、运行命令 |
| 上下文 | 当前文件 | 全仓库理解 |
| 工作流 | 被动响应 | 自主完成任务 |
智能体式工具能理解你整个项目的结构,规划跨多个文件的改动,执行这些改动,运行测试,反复迭代,直到任务完成。
2) 快速对比:Claude Code vs Cursor vs Copilot
| 特性 | Claude Code | Cursor | GitHub Copilot |
|---|---|---|---|
| 界面 | CLI、网页、IDE 插件 | 完整 IDE(VS Code 分支) | IDE 扩展 |
| 上下文窗口 | 约 20 万 token | 全仓库索引 | 较小,正在改进 |
| 多文件编辑 | 强 | 出色 | 改进中 |
| 规划模式 | 有 | 有 | 有(较新) |
| 定价 | Pro/Max 等级 | 积分 + 订阅 | 订阅 |
| 最适合 | 架构、大型重构 | 交互式开发 | 行内编码 |
3) Claude Code 基础
Claude Code 运行在 Opus 4.5 上,拥有超大上下文窗口。安装并登录:
bash
# 安装 Claude Code CLI
npm install -g @anthropic/claude-code
# 登录认证
claude login
# 在你的项目里启动
cd your-project
claude基本命令
bash
# 询问代码库相关问题
claude "这里的认证是怎么实现的?"
# 生成代码
claude "加一个限流中间件"
# 多文件重构
claude "把整个代码库中的 UserService 重命名为 AuthService"
# 创建 PR
claude "创建一个 PR,为所有 API 端点加上输入校验"项目配置
创建 .claude/config.json 来设置默认值:
json
{
"style": {
"language": "typescript",
"formatting": "prettier",
"testFramework": "vitest"
},
"context": {
"include": ["src/**/*", "tests/**/*"],
"exclude": ["node_modules", "dist"]
},
"safety": {
"requireApproval": ["delete", "git push"],
"dryRun": false
}
}记忆与上下文
Claude Code 会跨会话保留记忆。善用这一点:
bash
# 添加项目上下文
claude "记住:这个项目是 monorepo,packages/ 放共享代码"
# 引用之前的工作
claude "继续昨天开始的重构"
# 切换项目时清空记忆
claude --clear-memory4) Cursor IDE 的智能体能力
Cursor 围绕智能体工作流构建。关键特性:
Agent 模式
按 Cmd+Shift+I(Mac)或 Ctrl+Shift+I(Windows/Linux)打开 Agent 模式下的 Composer:
Agent 模式工作流:
1. 描述任务
2. Agent 生成计划
3. 你批准或修改
4. Agent 执行改动
5. 复审、迭代Plan 模式
对于复杂任务,明确使用 Plan 模式:
@plan 加入用户认证,包含:
- JWT token
- Refresh token 轮换
- 用 bcrypt 做密码哈希
- 登录尝试限流Agent 会:
- 研究你已有的代码
- 创建详细的实施计划
- 等你批准
- 一步步执行
上下文注入
用 @ 添加特定上下文:
@file src/api/auth.ts
@folder src/middleware
@docs https://jwt.io/introduction
按这些模式实现 JWT 校验中间件并行 Agent
在不同分支上同时运行多个 Agent:
# 在 Cursor 里:
1. 打开命令面板
2. "Cursor: New Agent in Worktree"
3. 每个 Agent 在隔离环境工作
4. 并排比较结果用规则保持一致性
创建 .cursor/rules/project.mdc:
markdown
# 项目规则
## 代码风格
- 使用 TypeScript 严格模式
- 优先使用函数组件
- 使用命名导出,不要默认导出
## 测试
- 每个功能都要有测试
- 使用 describe/it 块
- 模拟外部服务
## 安全
- 永远不要提交密钥
- 校验所有用户输入
- 使用参数化查询5) GitHub Copilot 的智能体能力
Copilot 已经远不止自动补全:
Copilot Chat
打开对话面板,使用斜杠命令:
/explain - 解释所选代码
/fix - 修复所选代码中的问题
/tests - 生成测试
/doc - 添加文档Agent 模式(Copilot Workspace)
# 在装有 Copilot 的 VS Code 中:
1. 打开 GitHub issue
2. 点击 "Open in Workspace"
3. Copilot 分析 issue
4. 生成实施计划
5. 生成代码改动
6. 以 PR 草稿形式打开带上下文的行内建议
Copilot 会读你的代码库。用注释帮它:
typescript
// 认证中间件,功能:
// - 从 Authorization header 提取 JWT
// - 验证 token 签名
// - 把 user 挂到 request 上
// - 无效时返回 401
export function authMiddleware(req, res, next) {
// Copilot 会生成实现
}6) 所有工具通用的最佳实践
写清晰的提示词
❌ 差:"修一下 bug"
✅ 好:"修复 UserService.getById 在用户不存在时的
空指针异常。改为返回 null 而不是抛错。"
❌ 差:"加点测试"
✅ 好:"为 CartService 添加单元测试,覆盖:
- 向空购物车添加商品
- 移除商品
- 带折扣的总价计算
- 边界情况:数量为负"复杂任务使用 Plan 模式
对任何涉及 3 个以上文件的任务,始终:
1. 先要一个计划
2. 复审计划
3. 批准或修改
4. 让 Agent 执行
5. 提交前复审改动提供架构上下文
重要工作开始前,给 Agent 介绍背景:
"这是微服务架构:
- api-gateway:请求路由
- auth-service:JWT、会话
- user-service:用户 CRUD
- notification-service:邮件、推送
服务之间通过 Redis pub/sub 通信。
数据库是 PostgreSQL,ORM 用 Prisma。"与 Agent 配合的测试驱动开发
1. 先写失败的测试:
"为用户注册写一个测试,要求校验邮箱"
2. 让 Agent 看到失败的测试:
"实现注册功能让这个测试通过"
3. 反复迭代直到全绿:
"修掉剩下的测试失败"7) 安全考量
智能体工具真有实权。要划清边界:
审批关卡
json
// .claude/config.json
{
"safety": {
"requireApproval": [
"rm",
"git push",
"npm publish",
"database migrations",
"env file changes"
]
}
}沙箱
bash
# 在隔离环境里运行 Agent
docker run -v $(pwd):/workspace -it claude-sandbox
# 或者用 git worktree 做隔离
git worktree add ../feature-branch feature-branch敏感文件
# .cursorignore / .claudeignore
.env
.env.*
secrets/
credentials/
*.pem
*.key复审所有改动
bash
# 接受 Agent 改动之前:
git diff --stat
git diff
# 使用交互式 staging
git add -p
# 不要不审查就自动合并8) 行之有效的工作流模式
模式 1:探索、规划、执行
会话 1:"支付系统是怎么工作的?"
→ Agent 探索,你学习
会话 2:"要加 Stripe 大概要做什么?"
→ Agent 生成计划
会话 3:"实现 Stripe 集成"
→ Agent 执行计划模式 2:并行探索
# 在 Cursor 中使用并行 Agent:
Agent 1:"用 Redis 实现缓存"
Agent 2:"用 Memcached 实现缓存"
Agent 3:"用内存 LRU 实现缓存"
→ 比较各种实现,挑出最优方案模式 3:增量迁移
第 1 步:"找出所有使用废弃 API 的地方"
第 2 步:"为新 API 创建适配器"
第 3 步:"把模块 A 迁移到使用适配器"
第 4 步:"迁移模块 B……"
...
第 N 步:"移除适配器,直接使用新 API"模式 4:测试先行的功能开发
1. "为用户资料编辑写验收测试"
2. "为资料校验写单元测试"
3. "实现代码让测试通过"
4. "加上集成测试"
5. "为可读性做重构"9) 什么时候用哪个工具
| 场景 | 推荐工具 |
|---|---|
| 实时编码、行内帮助 | GitHub Copilot |
| 大型重构、架构 | Claude Code |
| 完整的开发会话 | Cursor |
| 关于代码的快速提问 | 任何对话界面 |
| 从 issue 创建 PR | Copilot Workspace |
| 复杂的多文件改动 | Cursor Agent |
| API 设计、文档 | Claude Code |
| 学习新代码库 | Cursor 或 Claude Code |
10) 衡量效果
跟踪这些指标来评估智能体工具:
javascript
const metrics = {
// 生产力
suggestionsAccepted: '你保留的建议占比',
timeToFeature: '从开始到合并 PR 的小时数',
linesPerHour: '代码速度(要谨慎使用)',
// 质量
bugsIntroduced: '可追溯到 AI 生成代码的缺陷数',
testCoverage: 'AI 生成代码的测试覆盖率',
reviewChanges: '你对 AI 建议的修改程度',
// 成本
apiCosts: 'AI 工具的月支出',
creditsUsed: 'Cursor 消耗的积分',
// 学习
newPatternsLearned: '你从 AI 学到的新技巧',
codebaseUnderstanding: 'AI 在帮你了解代码库方面做得多好',
}11) 常见陷阱
过度信任 Agent
❌ 不审查就接受大段改动
❌ 让 Agent 执行破坏性命令
❌ 没搞懂代码就上线
✅ 复审每一处改动
✅ 弄懂你交付的代码
✅ 把 Agent 当协作者,不是替身上下文污染
❌ 巨长但与任务无关的提示词
❌ 在切换不相关任务时不清理上下文
❌ 把生成出来的文件包含到上下文里
✅ 提示词保持聚焦
✅ 用具体的 @file 引用
✅ 排除构建产物提示词含糊
❌ "让它更好"
❌ "修一下问题"
❌ "加些测试"
✅ "把时间复杂度从 O(n²) 降到 O(n log n)"
✅ "对第 45 行的 null 情况提前返回"
✅ "加上边界情况测试:空输入、最大长度、unicode"12) 上手清单
markdown
## 配置清单
### Claude Code
- [ ] 安装 CLI:`npm install -g @anthropic/claude-code`
- [ ] 登录:`claude login`
- [ ] 创建 `.claude/config.json`
- [ ] 为敏感文件添加 `.claudeignore`
### Cursor
- [ ] 从 cursor.com 下载
- [ ] 导入 VS Code 设置
- [ ] 配置 `.cursor/rules/`
- [ ] 学会 `Cmd+Shift+I` 进入 Agent 模式
### GitHub Copilot
- [ ] 在你的 IDE 装好扩展
- [ ] 启用 Copilot Chat
- [ ] 试试用 Copilot Workspace 处理 issue
- [ ] 配置 `.github/copilot-instructions.md`
### 所有工具
- [ ] 为破坏性操作设置审批关卡
- [ ] 创建 ignore 文件保护密钥
- [ ] 建立复审流程
- [ ] 从第一天起就跟踪指标相关阅读
- 让网页游戏快速加载
- 用 Web Worker 跑游戏逻辑
- Game Jam 与黑客松 —— AI 编码工具正在改变 48 小时 jam 中能做到的事
- 网页游戏引擎对比 —— 挑一个与 AI 辅助工作流契合的引擎