一年之间,Agent 从 Workflow 到 While Loop

模型迭代速度超越了框架设计速度

一年前:为什么我们需要 Workflow?

2024年初,当我们想让 GPT-4 完成一个复杂的调研任务时,必须这样做:

  1. 手动拆解任务:定义”搜索”节点、“分析”节点、“总结”节点
  2. 设计状态机:规划节点之间的跳转逻辑、循环条件、退出条件
  3. 编写路由规则:用代码告诉模型”什么时候该做什么”
  4. 维护状态传递:在节点之间显式传递中间结果
# 2024年典型的代码
from langgraph.graph import StateGraph

workflow = StateGraph(AgentState)
workflow.add_node("search", search_node)
workflow.add_node("analyze", analyze_node)
workflow.add_node("summarize", summarize_node)
workflow.add_edge("search", "analyze")
workflow.add_edge("analyze", "summarize")
workflow.add_conditional_edges(
    "summarize",
    should_continue,
    {"continue": "search", "end": END}
)

为什么这么复杂? 因为 2024 年的模型还不够聪明:

现在:Claude Code 只用了一个 while loop

2025年,Claude Code 让我们看到了另一种可能。它的核心代码简化到极致:

# Claude Code 的核心逻辑(简化版)
system_prompt = """你是一个软件工程助手...
[长达 5000+ 字的详细操作手册]
"""

while not task_completed:
    response = claude_3_7.invoke(
        system=system_prompt,
        messages=conversation_history,
        tools=available_tools
    )

    if response.tool_calls:
        results = execute_tools(response.tool_calls)
        conversation_history.append(results)

    if response.says_completed:
        task_completed = True

就这么简单。 没有节点、没有状态机、没有路由规则。模型自己决定:

为什么现在可以? 因为模型迭代太快了:

能力维度 2024年初 2025年中 提升倍数
上下文窗口 128K 1M+ 8x
工具调用准确率 ~60% ~95% 1.6x
多步推理深度 3-5步 20+步 4-6x
Prompt 理解 需要精简 可以写”操作手册” 10x+

深度代理的四个关键构成要素

核心转变:Prompt + 模型 = 一切

以前:框架是核心,模型是工具

开发者设计 → Workflow 编排 → 模型执行
    ↑                              ↓
    └──────── 结果反馈 ←────────────┘

现在:模型是大脑,框架是手

详细 Prompt → 模型自主决策 → 持续执行
                  ↓
            工具 + 记忆

"真正的Agent,就是一个在循环中运行、不断调用工具的 LLM。差异只在于工程细节。“

这句话的深层含义是:当模型足够强时,复杂的框架设计变得不再必要。

理解 Claude Code 发现只需要四个东西:

1. 详细的系统 Prompt(5000+ 字)

Claude Code 的系统提示词包含:

关键发现:Prompt 越详细,模型表现越好。2024年我们还在优化”如何用最少的 token”,现在直接把操作手册塞进去就行。

2. 规划工具(Todo List)

Claude Code 的 Todo List 工具本质上是个 No-Op(不执行任何操作),但它强制模型:

class TodoTool:
    def add_task(self, task: str):
        """强制模型思考下一步"""
        pass  # 实际不执行任何操作

这个”假工具”的作用是让模型的 CoT(思维链)外化,类似于”把想法写下来”。

3. 子代理机制

复杂任务需要拆解。Claude Code 的子代理做法:

# 主代理创建子代理
sub_agent = Agent(
    task="深度调研量子计算的最新进展",
    parent_context=current_context,  # 共享上下文
    max_iterations=50
)

result = sub_agent.run()
main_agent.integrate(result)

4. 文件系统(长期记忆)

无论是 Claude Code、Manus 还是 Deep Research,都把文件系统当作:

# 模型可以随时读写文件
agent.write_file("research_notes.md", "...")
agent.read_file("previous_findings.txt")

这比传统的”把所有东西塞进 messages”要高效得多。

这一年的教训:模型迭代速度 >> 框架设计速度

回顾 2024 到 2025 这一年:

Q1 2024:Workflow 成为 Agent 开发的事实标准
Q2 2024:Claude 3.5 发布,工具调用准确率大幅提升
Q3 2024:GPT-4.5 支持 200K 上下文,开始减少节点数量
Q4 2024:o4-mini 展示深度推理能力,简单任务不再需要状态机
Q1 2025:Claude Code 公开,证明”while 循环 + 详细 Prompt”就够了
Q2 2025:行业开始反思”是否过度工程化了 Agent 框架”

核心教训

  1. 不要为当前模型设计框架——3个月后模型就会升级
  2. Prompt 比代码更重要——5000 字的 Prompt 胜过 5000 行的编排代码
  3. 模型即 Agent——当模型足够强,循环就是最好的架构
  4. 保持简单——复杂的状态机在快速迭代中很难维护

实践建议

如果你现在要开发一个 Agent 系统:

从 while 循环开始

while not done:
    response = model.invoke(messages, tools)
    handle_response(response)

不要一上来就设计复杂的工作流图。先让最简单的循环跑起来,看模型能做到什么程度。

把精力花在 Prompt 上

Claude Code 的系统 Prompt 有 5000+ 字,这不是偶然。

选最新最强的模型

模型能力的提升远超你的想象:

不要用 6 个月前的模型。 那会让你误以为需要复杂的框架。

提供必要的工具和记忆

这些是工程细节,但很重要。

结语:模型就是 Agent

2024 年我们说”Agent = 模型 + 框架 + 工具”。

2025 年我们发现”Agent = 模型”,框架和工具只是辅助。

这不是说 Workflow 没有价值——在需要严格流程控制、人工审核节点、合规检查的场景,显式的工作流依然必要。但对于大多数”让 AI 自主完成任务”的场景,一个写得足够好的 Prompt + 一个足够强的模型 + 一个简单的 while 循环,就够了。

模型迭代太快了。 与其花时间设计完美的框架,不如把精力放在 Prompt 工程和模型选择上。半年后,你精心设计的状态机可能会被新模型的能力提升彻底取代。

不是我们设计得更好了,是模型变得更强了。


相关资源