1️⃣ 为什么我不再看 Agent 教程了

LangChain、AutoGen、CrewAI、LangGraph、MetaGPT……

Agent 框架越来越多,教程也越来越多,但我却越来越困惑

我看过很多 Demo,它们很炫,但我发现自己很难回答几个简单的问题:

  • 为什么会停下来

  • 什么时候算失败

  • 它的下一步到底是谁在决定

我能“用”,但我说不清它在跑什么

作为一个工程师,这开始让我不安。
我逐渐意识到:

我正在使用一堆“我并不真正理解的系统”。


2️⃣ 我给自己设了一个“反直觉的目标”

我没有再去学新的 Agent 框架,而是给自己设了一个看起来有点“反直觉”的目标:

不用任何框架,从零写一个最小可运行的 Agent。

我逼自己先回答 4 个问题:

  1. 我的 Agent 接收什么类型的输入?

  2. 我的 Agent 内部“状态”长什么样?

  3. 我的 Agent 通过哪些步骤完成任务?

  4. 我的 Agent 在什么情况下停止?

这些问题的答案,可能因人、因产品而异,
但我发现:无论怎么变,都很难逃出这个框架。


我的 Agent 接收什么类型的输入?
一个以自然语言描述的“任务请求”,该任务可能需要:
- 拆解为多个步骤
- 调用工具
- 进行多轮思考与评估

当前版本只支持文本输入;
图片、语音等多模态输入,被视为未来扩展能力,而非核心能力。

 我的 Agent 内部“状态”长什么样?
Agent 的状态由两类信息构成:

1)任务状态:
- 任务目标(objective)
- 当前计划(plan)
- 中间结果(scratchpad)
- 历史记录(history)

2)控制状态:
- 当前执行步骤
- 是否完成
- 是否需要继续

Agent 是如何完成任务的?
1)理解用户意图
2)规划执行步骤
3)执行当前步骤
4)评估执行结果
5)反馈结果,并决定是否继续

Agent 在什么时候停止?
1)任务完成
2)达到最大执行轮次
3)触发安全 / 合规策略

3️⃣ 我发现:Agent 的“脊柱”不是模型,而是 State

如果没有 State,Agent 就是一个黑盒

  • 结果对了,你不知道为什么对

  • 结果错了,你也不知道哪里错

我们真正需要的,不是更聪明的模型,
而是类似飞机的**“黑匣子”** ——
能够在事后回放整个决策过程。

而这个能力,只能来自 State,而不是 Prompt。

AgentState ={
    objective,
    plan,
    current_step,
    done,
    history
}

State 是系统的唯一事实源。


4️⃣ 一个 Agent,本质上就是一个 while-loop

当我把 Agent 写成一个 while-loop 时,
我第一次觉得它是可理解的

Agent 并不等于“聪明”。

Agent = 可控的执行循环

Think / Act / Evaluate 的真正意义,并不是“拟人化思考”,
而是:把决策、执行、判断拆成可控的系统阶段。


5️⃣ 我刻意让它“很蠢”

为了避免自欺欺人,我刻意让第一个 Agent 非常“蠢”:

  • plan 是写死的

  • evaluate 只判断 done

  • 没有工具、没有反思、没有优化

但它是完整的

==== Final Output ====
正在执行:理解任务
正在执行:拆解步骤
正在执行:执行任务
正在执行:总结结果

==== History ====
- 生成初始计划
- 执行步骤 0: 理解任务
- 执行步骤 1: 拆解步骤
- 执行步骤 2: 执行任务
- 执行步骤 3: 总结结果
- 任务完成

6️⃣ 第一周,我真正学到的 3 件事

  1. Agent 是系统,不是 Prompt
  2. State 比模型更重要
  3. 失败与停止,必须是系统决策,而不是“运气”

7️⃣ 接下来,我会继续 public build

我会继续往这个 Agent 里加能力:

  • 反思

  • 工具

  • 失败恢复

  • 长期记忆

不卖课,不装专家,只把过程公开。

👉 GitHub 仓库:
https://github.com/kestiany/agent-from-scratch

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐