Skip to content

2.6 Agent 时代 — 我们现在在这里

2025 年 2 月 24 日,Anthropic 发布了 Claude 3.7 Sonnet,同时推出了 Claude Code——一个命令行 AI 编程工具 [1]。这标志着 AI 编程从「辅助」进入了「自主执行」时代。

text
┌─────────────────────────────────────────────────────────────────────┐
│  2025: Agent 时代 — AI 从「回答问题」到「执行任务」                     │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│    【2021: Copilot 时代】                                            │
│    人类写代码 → AI 补全几行 → 人类继续                                │
│                                                                     │
│    【2022: ChatGPT 时代】                                            │
│    人类提问 → AI 回答 → 人类复制粘贴 → 人类修改                        │
│                                                                     │
│    【2024: Cursor 时代】                                             │
│    人类描述 → AI 生成多文件 → 人类审核 Diff → 人类 Accept/Reject       │
│                                                                     │
│    【2025: Agent 时代】                                              │
│    人类定目标 → AI 规划 → AI 读文件 → AI 写代码 → AI 运行测试          │
│         ↑                                                    │      │
│         └────────────── AI 自我纠错 ◄────────────────────────┘      │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

这一节会详细解释 Agent 时代的核心概念。每个概念都很重要,因为它们构成了 Claude Code 这类工具的工作原理。


2.6.1 Agent:从「问答」到「自主执行」

什么是 Agent?

「Agent 是一个具有推理和规划能力、能够自主采取行动的智能实体。」[2]

简单说:传统 LLM 优化的是「生成最有说服力的下一句话」,而 Agent 优化的是「执行最有效的下一个动作」

text
┌─────────────────────────────────────────────────────────────────────┐
│  传统 LLM vs Agent                                                   │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│    【传统 LLM】—— 语言系统 (System of Language)                       │
│                                                                     │
│    ┌──────────┐                           ┌──────────┐             │
│    │   输入    │ ──────────────────────▶  │   输出    │             │
│    │  (问题)   │      生成文本             │  (回答)   │             │
│    └──────────┘                           └──────────┘             │
│                                                                     │
│    · 单次交互                                                        │
│    · 只能生成文字                                                    │
│    · 不能执行动作                                                    │
│    · 不能访问外部信息                                                │
│                                                                     │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│    【Agent】—— 行为系统 (System of Behavior)                         │
│                                                                     │
│    ┌──────────┐     ┌─────────────────┐     ┌──────────┐           │
│    │   目标    │ ──▶ │      LLM        │ ──▶ │   动作    │           │
│    └──────────┘     │   (大脑)        │     └────┬─────┘           │
│                     └────────┬────────┘          │                 │
│                              │                   ▼                 │
│                              │          ┌──────────────┐           │
│                              │          │  工具/环境    │           │
│                              │          │  · 读文件     │           │
│                              │          │  · 写文件     │           │
│                              │          │  · 运行命令   │           │
│                              │          │  · 搜索代码   │           │
│                              │          └──────┬───────┘           │
│                              │                 │                   │
│                              │          ┌──────▼───────┐           │
│                              │          │   观察结果    │           │
│                              │          └──────┬───────┘           │
│                              │                 │                   │
│                              ◄─────────────────┘                   │
│                           (循环直到任务完成)                         │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

Agent 的核心组件(来自 Lilian Weng 的经典文章 [3]):

组件英文作用Claude Code 中的体现
规划Planning把大任务拆成小步骤自动分解「实现登录功能」为多个子任务
记忆Memory记住之前的操作和结果对话历史、项目 context
工具使用Tool Use调用外部能力读文件、写文件、运行命令、搜索
反思Reflection从错误中学习运行测试失败后自动修复

ReAct 模式:Agent 的工作循环

大多数 Agent(包括 Claude Code)都采用 ReAct(Reasoning + Acting)模式 [4]

text
┌─────────────────────────────────────────────────────────────────────┐
│  ReAct 循环:Thought → Action → Observation                          │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│    用户: 「帮我修复 login.py 中的 bug」                                │
│                                                                     │
│    ┌─────────────────────────────────────────────────────────────┐  │
│    │ 循环 1                                                       │  │
│    │                                                             │  │
│    │ Thought: 我需要先看看 login.py 的内容,了解有什么 bug          │  │
│    │                                                             │  │
│    │ Action:  read_file("login.py")                              │  │
│    │                                                             │  │
│    │ Observation: [文件内容显示第 42 行有一个未处理的异常]          │  │
│    └─────────────────────────────────────────────────────────────┘  │
│                              │                                      │
│                              ▼                                      │
│    ┌─────────────────────────────────────────────────────────────┐  │
│    │ 循环 2                                                       │  │
│    │                                                             │  │
│    │ Thought: 第 42 行缺少 try-catch,我需要添加异常处理           │  │
│    │                                                             │  │
│    │ Action:  edit_file("login.py", ...)                         │  │
│    │                                                             │  │
│    │ Observation: [文件已修改]                                    │  │
│    └─────────────────────────────────────────────────────────────┘  │
│                              │                                      │
│                              ▼                                      │
│    ┌─────────────────────────────────────────────────────────────┐  │
│    │ 循环 3                                                       │  │
│    │                                                             │  │
│    │ Thought: 修改完成,我应该运行测试确认 bug 已修复              │  │
│    │                                                             │  │
│    │ Action:  run_command("pytest test_login.py")                │  │
│    │                                                             │  │
│    │ Observation: [所有测试通过]                                  │  │
│    └─────────────────────────────────────────────────────────────┘  │
│                              │                                      │
│                              ▼                                      │
│    最终回答: 「已修复 login.py 第 42 行的 bug,添加了异常处理,       │
│              测试全部通过。」                                        │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

为什么 ReAct 比直接回答更好?

  • 减少幻觉:决策基于真实的工具调用结果,而不是「猜测」
  • 可追溯:每一步都有 Thought,方便 debug
  • 自我纠错:如果某步失败,Agent 可以调整策略
概念英文解释为什么重要
AgentAI Agent [2:1]能自主规划、执行任务的 AI 系统理解 Claude Code 的本质
ReActReasoning + Acting [4:1]Thought-Action-Observation 循环Agent 的核心工作模式
工具使用Tool UseAgent 调用外部功能的能力没有工具,Agent 只是聊天机器人

2.6.2 Cursor / Aider:IDE 级 Agent 的先驱

在 Claude Code 之前,CursorAider 是 AI 编程工具的两个重要里程碑。

Cursor(2023 年发布)[5]

Cursor 是一个基于 VS Code 的 AI-native IDE,由 Anysphere 公司开发。它的核心创新是 Composer——可以同时编辑多个文件。

text
┌─────────────────────────────────────────────────────────────────────┐
│  Cursor 的工作流程                                                    │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│    ┌───────────────────────────────────────────────────────────┐   │
│    │                      Cursor IDE                            │   │
│    │  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐        │   │
│    │  │   编辑器     │  │   Chat      │  │  Composer   │        │   │
│    │  │  (VS Code)  │  │  (单文件)   │  │  (多文件)   │        │   │
│    │  └─────────────┘  └─────────────┘  └─────────────┘        │   │
│    │         │                │                │                │   │
│    │         ▼                ▼                ▼                │   │
│    │  ┌─────────────────────────────────────────────────────┐  │   │
│    │  │              Context 收集                            │  │   │
│    │  │  · 当前文件  · 选中代码  · @引用的文件  · 项目结构    │  │   │
│    │  └─────────────────────────────────────────────────────┘  │   │
│    │                          │                                 │   │
│    │                          ▼                                 │   │
│    │  ┌─────────────────────────────────────────────────────┐  │   │
│    │  │                   LLM 调用                           │  │   │
│    │  │      (Claude / GPT-4 / Gemini / 自定义模型)          │  │   │
│    │  └─────────────────────────────────────────────────────┘  │   │
│    │                          │                                 │   │
│    │                          ▼                                 │   │
│    │  ┌─────────────────────────────────────────────────────┐  │   │
│    │  │                 Diff 预览                            │  │   │
│    │  │     用户可以逐个 Accept / Reject 每处修改             │  │   │
│    │  └─────────────────────────────────────────────────────┘  │   │
│    └───────────────────────────────────────────────────────────┘   │
│                                                                     │
│    🆕 多文件编辑 (Composer)    🆕 Diff 预览 UI                       │
│    🆕 代码库理解               🆕 Tab 预测编辑                       │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

Aider(开源命令行工具)[6]

Aider 是一个终端里的 AI 编程助手,特点是深度 Git 集成——每次 AI 修改都会自动提交。

text
┌─────────────────────────────────────────────────────────────────────┐
│  Aider 的工作流程                                                    │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│    Terminal                                                         │
│    ┌───────────────────────────────────────────────────────────┐   │
│    │ $ aider                                                    │   │
│    │                                                            │   │
│    │ Aider v0.50.0                                              │   │
│    │ Model: claude-3-5-sonnet                                   │   │
│    │ Git repo: /path/to/project                                 │   │
│    │                                                            │   │
│    │ > Add authentication to the API endpoints                  │   │
│    │                                                            │   │
│    │ [Aider 开始工作...]                                         │   │
│    │ · 读取 api/routes.py                                       │   │
│    │ · 读取 api/auth.py                                         │   │
│    │ · 修改 api/routes.py (+45 lines)                           │   │
│    │ · 创建 api/middleware.py                                   │   │
│    │                                                            │   │
│    │ Commit: feat: add JWT authentication to API endpoints      │   │
│    │                                              ▲              │   │
│    │                                              │              │   │
│    │                               自动 Git 提交 ──┘              │   │
│    └───────────────────────────────────────────────────────────┘   │
│                                                                     │
│    🆕 终端原生                  🆕 自动 Git 提交                     │
│    🆕 支持多种 LLM              🆕 语音输入支持                       │
│    🆕 开源可自部署              🆕 多文件编辑                         │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

Cursor vs Aider vs Claude Code 对比

特性CursorAiderClaude Code
界面GUI (VS Code fork)终端终端
多文件编辑✅ Composer
自动 Git❌ 需手动✅ 自动提交❌ 需手动
模型选择多种多种Claude 系列
开源
Agent 能力✅ Agent Mode基础✅ 完整
运行命令有限
定价$20/月免费 (需 API)$20/月 或 API

2.6.3 Vibe Coding:一种危险的工作方式

2025 年 2 月 2 日,Andrej Karpathy(前 OpenAI 联合创始人、前 Tesla AI 负责人)发了一条推文 [7],定义了一个新词:Vibe Coding

「有一种新的编程方式,我称之为 'vibe coding'——你完全沉浸在氛围中,拥抱指数级增长,忘记代码的存在。」

他描述的工作方式是:

text
┌─────────────────────────────────────────────────────────────────────┐
│  Vibe Coding 工作流                                                  │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│    ┌──────────┐     ┌─────────────────┐     ┌──────────┐           │
│    │  描述需求  │ ──▶ │   AI 生成代码   │ ──▶ │ Accept All│           │
│    │ (语音/文字)│     │                 │     │ (不看 Diff)│          │
│    └──────────┘     └─────────────────┘     └────┬─────┘           │
│                                                   │                 │
│                                                   ▼                 │
│                                          ┌──────────────┐          │
│                                          │    运行      │          │
│                                          └──────┬───────┘          │
│                                                 │                  │
│                              ┌──────────────────┴──────────────┐   │
│                              │                                 │   │
│                              ▼                                 ▼   │
│                       ┌──────────┐                      ┌──────────┐│
│                       │   成功    │                      │   报错   ││
│                       └──────────┘                      └────┬─────┘│
│                              │                               │      │
│                              ▼                               ▼      │
│                        继续下一个功能              复制粘贴报错给 AI   │
│                                                         │          │
│                                                         ▼          │
│                                                   AI 尝试修复       │
│                                                         │          │
│                                                         ▼          │
│                                                  还是报错?          │
│                                                    │    │          │
│                                                    ▼    ▼          │
│                                               「随便改改直到能跑」    │
│                                                                     │
│    ⚠️ 关键问题:                                                     │
│    · 不看 Diff                                                      │
│    · 不理解生成的代码                                                │
│    · 代码增长到「超出理解范围」                                       │
│    · 遇到 bug「绕过它或随机改改直到消失」                             │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

Karpathy 自己说:「这对周末的一次性项目还行,但还是挺有趣的。」

这条推文的影响力

  • 观看量超过 450 万次
  • 一个月后被 Merriam-Webster 收录为「slang & trending」词条
  • 被 Collins Dictionary 评为 2025 年度词汇

Vibe Coding 的风险(Part 5 会详细讲):

风险说明
安全漏洞不审查代码,可能引入 SQL 注入、XSS 等
技术债务「两个工程师能创造五十个人的技术债」
调试困难不理解代码,出 bug 就完全失控
技能退化跳过学习过程,遇到复杂问题无法应对
概念英文解释为什么重要
Vibe CodingVibe Coding [7:1]完全依赖 AI 生成代码,不审查不理解理解风险和边界

[!TODO] 素材准备

  • [ ] Andrej Karpathy Vibe Coding 原推文截图
  • [ ] Cursor vs Aider vs Claude Code 功能对比表

参考资料


  1. 🔬 L1 | Claude 3.7 Sonnet and Claude Code | Anthropic - Anthropic 于 2025 年 2 月 24 日发布 Claude 3.7 Sonnet 和 Claude Code。 ↩︎

  2. 📰 L2 | What Are AI Agents? | IBM - IBM 对 AI Agent 的定义:具有推理和规划能力、能够自主采取行动的智能实体。 ↩︎ ↩︎

  3. 📝 L3 | LLM Powered Autonomous Agents | Lil'Log - Lilian Weng 的经典文章,详解 Agent 的规划、记忆、工具使用等核心组件。 ↩︎

  4. 📝 L3 | ReAct Prompting | Prompt Engineering Guide - ReAct(Reasoning + Acting)模式详解,Agent 的核心工作循环。 ↩︎ ↩︎

  5. 🔬 L1 | Cursor | AI Code Editor - Anysphere 开发的 AI-native IDE,基于 VS Code,核心功能是 Composer 多文件编辑。 ↩︎

  6. 🔬 L1 | Aider | AI pair programming in your terminal - 开源命令行 AI 编程助手,特点是深度 Git 集成。 ↩︎

  7. 📝 L3 | Andrej Karpathy on Vibe Coding | X - 2025 年 2 月 2 日,Karpathy 定义 Vibe Coding,观看量超 450 万,被评为 Collins Dictionary 2025 年度词汇。 ↩︎ ↩︎

基于 VitePress 构建