第16讲|Claude + Windsurf:为什么理解意图比执行指令更重要

1 阅读1分钟

金句:最好的 AI 编程工具不是执行你的命令,而是理解你的意图——就像一个好的架构师,听懂了你说的,也听懂了你没说的。


一、两种不同的 AI 编程哲学

在 AI 编程工具领域,存在两种根本不同的设计哲学:

哲学 A:指令执行派

  • "你说什么,我做什么"
  • 精确、可预测、安全
  • 代表:早期 GitHub Copilot

哲学 B:意图理解派

  • "你想要什么,我帮你实现"
  • 灵活、主动、有时会超出预期
  • 代表:Claude(Anthropic)、Windsurf(Codeium)

本讲我们深入分析这两款工具,以及"意图理解"如何改变你的开发工作流。


二、深入 Claude:不只是聊天模型

Claude 在编程领域的独特优势

很多开发者把 Claude 当作"更好的 ChatGPT",但这低估了它的价值。Claude 在编程领域有几个独特的能力:

1. 超长上下文处理(200K tokens)

Claude 3.5 Sonnet 支持 200K token 上下文窗口,相当于约 15 万行代码。这意味着:

  • 可以一次性输入整个中型项目的代码库
  • 可以分析完整的数据库 Schema + 业务逻辑
  • 可以理解跨越多个文件的复杂依赖关系

2. 代码理解深度

Claude 在代码理解方面的表现通常优于同级别模型,特别是:

  • 识别潜在的安全漏洞
  • 理解设计模式的适用场景
  • 分析代码的可维护性问题

3. "诚实"文化

Claude 被训练成更倾向于说"我不确定"而不是给出自信但错误的答案,这在代码领域尤为重要。


Claude API 编程工作流

场景:代码审查助手

import anthropic

client = anthropic.Anthropic(api_key="your-api-key")

def code_review(code: str, language: str, context: str = "") -> str:
    """
    使用 Claude 进行代码审查
    """
    prompt = f"""请对以下 {language} 代码进行专业的代码审查。

审查维度:
1. 正确性:逻辑是否有 Bug?边界情况是否处理?
2. 安全性:是否存在注入风险、数据泄露等安全问题?
3. 性能:是否有明显的性能问题?
4. 可维护性:代码是否清晰易读?命名是否语义化?
5. 最佳实践:是否遵循 {language} 的最佳实践?

项目上下文:
{context}

待审查代码:
```{language}
{code}

请用中文回复,每个维度给出具体的评分(1-5分)和改进建议。"""

message = client.messages.create(
    model="claude-3-5-sonnet-20241022",
    max_tokens=2048,
    messages=[{"role": "user", "content": prompt}]
)

return message.content[0].text

使用示例

code = """ def get_user(user_id): sql = f"SELECT * FROM users WHERE id = {user_id}" return db.execute(sql) """

review = code_review( code=code, language="Python", context="这是一个用户管理系统的查询接口,直接暴露在 REST API 层" ) print(review)


**Claude 的输出会包含**:
- 正确性:3/5  缺少空值检查
- ⚠️ 安全性:1/5  **严重 SQL 注入漏洞**,user_id 直接插入 SQL 字符串
- 改进建议:使用参数化查询 `db.execute("SELECT * FROM users WHERE id = ?", (user_id,))`

---

## 三、深入 Windsurf:Agent 编程的先行者

Windsurf  Codeium 团队推出,它的核心创新是 **Cascade(瀑布流)系统**——一种真正的 Agent 编程模式。

### Windsurf vs Cursor 的关键差异

Cursor Composer 工作方式: 用户发出指令 → AI 规划任务 → 生成代码 → 等待确认 → 下一步

Windsurf Cascade 工作方式: 用户描述目标 → AI 持续执行 → 遇到问题自主决策 → 完成目标 ↑ ↑ 更少干预 更强自主性


### Cascade 的三个核心能力

**能力一:主动探索代码库**

不需要你用 @ 手动引用文件,Windsurf 会自主探索相关文件:

用户:"在用户注册后发送欢迎邮件"

Windsurf 自动做的事: → 搜索 UserService.ts,找到注册逻辑 → 搜索现有的邮件发送代码 → 查看 .env 文件中的邮件配置 → 找到测试目录,理解测试规范 → 然后在正确的位置插入代码


**能力二:终端命令执行**

Windsurf 可以直接在终端执行命令:
- 安装依赖(npm install / pip install)
- 运行测试(npm test)
- 启动开发服务器
- 查看运行日志

**能力三:自我修正循环**

代码生成 → 运行测试 → 测试失败 → 分析原因 → 修改代码 → 再次运行


这个自我修正循环可以运行多轮,直到测试通过。

---

### Windsurf 实战:实现完整的认证系统

**提示词**:

使用 FastAPI + SQLAlchemy 实现 JWT 认证系统:

  • POST /register:用户注册(email + password)
  • POST /login:登录,返回 access_token
  • GET /me:获取当前用户信息(需要认证)
  • 密码使用 bcrypt 加密
  • 错误处理要完善
  • 生成对应的单元测试

**Windsurf 执行过程**(实际日志):

[Cascade] 分析项目结构... [Cascade] 未找到现有数据库配置,创建 database.py [Cascade] 创建用户模型 models/user.py [Cascade] 创建认证路由 routers/auth.py [Cascade] 添加 JWT 工具函数 utils/jwt.py [Cascade] 更新 main.py,注册新路由 [Cascade] 运行:pip install python-jose[cryptography] passlib[bcrypt] [Cascade] 创建测试文件 tests/test_auth.py [Cascade] 运行测试:pytest tests/test_auth.py [Cascade] ❌ 测试失败:TokenExpiredError 未处理 [Cascade] 修复 utils/jwt.py 中的异常处理 [Cascade] 再次运行测试... [Cascade] ✅ 所有测试通过(7/7)


整个过程用户只输入了一次提示词。

---

## 四、意图理解的背后:AI 如何猜到你的"言外之意"?

**技术原理**:现代 LLM 通过以下几个层面理解意图:

1. **字面层**:你明确说了什么
2. **语境层**:当前代码库的技术栈和模式
3. **惯例层**:行业最佳实践和常见模式
4. **推断层**:基于上下文推断未说出的需求

**示例**

用户说:"给 User 模型添加 soft delete 功能"

字面:添加软删除 语境:项目用 Django + PostgreSQL 惯例:Django 软删除通常用 is_deleted 字段 + Manager 过滤 推断:

  1. 需要修改所有查询,排除已删除记录
  2. 需要保留 deleted_at 时间戳(审计需要)
  3. 可能需要一个 restore() 方法
  4. Admin 界面可能需要特殊处理

优秀的 AI 工具会把这四个层面都考虑进去,而不只是字面执行。

---

## 五、如何让 AI 更好地理解你的意图

**技巧一:描述目标,而不是步骤**

❌ 低效:"在 User 表添加一个 is_deleted 字段,然后修改查询方法" ✅ 高效:"给 User 模型实现软删除功能,要符合项目现有的编码风格"


**技巧二:提供背景,而不是只说需求**

❌ 低效:"优化这个查询" ✅ 高效:"这个查询在数据量超过 10 万时响应超过 3 秒, 用户访问频率很高(每分钟约 1000 次), 请优化它的性能"


**技巧三:说明约束,而不是假设 AI 知道**

❌ 低效:"实现用户搜索功能" ✅ 高效:"实现用户搜索功能,要求: 1. 不能引入新的搜索依赖(预算限制) 2. 支持中文搜索 3. 响应时间 < 200ms(P99)"


---

## 六、工具选择指南总结

需求场景 推荐工具 ───────────────────────────────────────── 需要精细控制每一步 Cursor 需要快速完成完整功能 Windsurf 需要代码审查和安全分析 Claude API 需要团队规范统一 GitHub Copilot 需要理解复杂业务逻辑 Claude (长上下文) 需要自动化测试驱动开发 Windsurf Cascade


---

**章节小结**:Claude 的超长上下文和深度代码理解让它成为复杂项目分析的利器;Windsurf  Cascade 系统则代表了 Agent 编程的未来——你不需要描述每一步,只需要描述你想要的结果。理解"意图驱动"而非"指令驱动",是 Vibe Coding 进阶的关键一步。