Day 33 / 共 68 天 · 阶段 6 Agent 核心

Agent 到底是什么

昨天(Day 32)你已经写出了"循环 + 工具 + 会看结果再想"的骨架——其实那就是 Agent 的心脏,只是还没给它起名。今天正式回答这个转行路上被问最多的问题:Agent 到底是什么?它和 ChatGPT 那种"一问一答"差在哪?我们用一个贯穿的类比讲透"主循环",拆开它的四大零件,还会去 Claude Code 源码里瞄一眼真实 Agent 的主循环。学完你能对面试官清楚说出 Agent 的定义;明天(Day 34)深入它最经典的思考套路 ReAct。

📍 你在阶段 6(Agent 核心 D33-38)的位置
D33 Agent 是什么 D34 ReAct D35 规划 D36 记忆 D37 状态&断点 D38 手写最小 Agent
💡 用一个类比兜住今天(今天全程沿用「雇了一位能干的助理」的世界观) 普通聊天机器人像问路人:你问一句,他答一句,答完转身就走,不帮你落地。Agent 像你雇的一位助理:给他一个目标("把这周报销整理好交上去"),他会自己想步骤、自己动手用工具(打开系统、填表)、看结果不对就返工、直到把事办成。今天的关键词都能挂到这位助理身上——主循环=他"想→做→看"的工作节奏;大脑=LLM;手脚=工具;记事本=记忆;老板给的岗位说明=系统提示。你今天要看清:Agent = 给大模型装上了手脚和一个"不达目的不罢休"的循环。
L01

一问一答的天花板:问路人帮不了你搬家

🤔 痛点你直接问 ChatGPT:"帮我把这个文件夹里所有 PDF 改成大写文件名。"它只会告诉你怎么做(给段代码/步骤),但它做不了——它看不到你的文件、按不了你的键盘。遇到多步、要动手、要看中间结果的任务,纯"一问一答"就撞了天花板。
💡 本质纯聊天模型有两条根本限制:①只会输出文字,不能动手(没有工具就够不着现实世界);②一次成型,不会看结果再修正(答完就结束,不会"咦不对我再改改")。问路人告诉你路线很在行,但没法替你把家搬过去。要办成事,得让它能动手 + 能循环
📝 举个例子:同一个需求,两种反应 需求:"看看服务器还有多少磁盘,不够就清理日志。"
聊天机器人:"你可以运行 df -h 查看,再用 rm 删除旧日志……"(教你,但没做)。
Agent:真的调工具跑 df -h → 看到只剩 3% → 判断不够 → 调工具删掉上月日志 → 再跑 df -h 确认变成 40% → 回复"已清理,当前 40% 可用"。一个给建议,一个交结果
L02

Agent 一句话定义

🤔 痛点"Agent"被讲得神乎其神,又是智能体又是自主体。到底能不能用一句人话说清?
💡 本质能。Agent = 一个大模型(大脑) + 一组工具(手脚) + 一个循环(想→动手→看结果→再想,直到目标达成)。核心区别只在两个字:循环。聊天是"一锤子",Agent 是"不达目的不罢休地转圈"。你昨天(Day 32)写的那个带上限的 while,配上工具,就已经是个最朴素的 Agent 了。
👶 那"智能体""自主体""AI Agent"是不同东西吗?基本是同一个东西的不同译名/说法,别被术语吓到。面试时你只要能说出上面那句定义(大脑+手脚+循环),再补一句"关键是它能自主决定下一步、并根据结果修正",就已经比很多人清楚了。概念不玄,玄的是名字。
🔗 想看工业级 Agent 的主循环怎么写?去《Claude Code 源码精讲》· Agent 主循环深潜 →
Claude Code 本身就是一个成熟的编程 Agent。它的主循环(怎么把用户消息、工具、结果一圈圈喂给模型,何时停)是本课"Agent 核心"最好的真实教材——今天先建立概念,想看真代码点进去,看完回来继续 Day 34
L03

主循环:想 → 动手 → 看 → 再想

🤔 痛点"循环"具体循环个啥?每一圈里发生什么?
💡 本质一圈四拍,就是助理干活的节奏:想(Reason)——现在该干嘛?→ 动手(Act)——调一个工具→ 看(Observe)——工具返回了什么?→ 拿着新情况回到"想",开始下一圈。转到"想"这一步得出"目标已达成"时,就停下交付。这正是明天要展开的 ReAct(Reason+Act)。
Agent 主循环:想 → 动手 → 看 → 再想 该干嘛? 动手调工具 拿到结果 想通了→交付✅
图注:和 Day 32 的"工具调用循环"是同一个循环,只是这里强调每圈开头的"想"——Agent 的智能,就长在这个"看完再想"的反馈里。
L04

四大零件:大脑 / 手脚 / 记事本 / 岗位说明

🤔 痛点要"雇"一个 Agent 助理,得给它配齐哪些东西?少一样会怎样?
💡 本质四大零件,缺一不可,全能挂到"助理"身上:
零件助理类比作用本课对应
LLM(大脑)助理的脑子理解、推理、决定下一步阶段 2-3
Tools(手脚)他会用的工具/系统真正对现实世界动手阶段 5(Day 29-32)
Memory(记事本)随身笔记本记住聊过啥、查到啥,别转身就忘Day 36
系统提示(岗位说明)老板给的职责说明定角色、目标、边界、可用工具阶段 3(Day 16-20)
📝 举个例子:缺零件会怎样 · 没手脚 → 退化成聊天机器人,只会说不会做(L01 的问路人)。
· 没记事本 → 每圈都"失忆",第 3 步忘了第 1 步查到啥,原地打转(Day 36 解决)。
· 没岗位说明 → 不知道自己该干嘛、能碰哪些工具,乱来。
四件配齐,才是一位靠谱助理
L05

workflow vs agent:剧本 vs 临场发挥

🤔 痛点Day 32 那种"先查库、再判断、可能发邮件"的多步流程,和"Agent"是一回事吗?界线在哪?
💡 本质"下一步谁定":
Workflow(工作流)=你把步骤和分支写死在代码里,模型只在固定卡点帮忙(如判断、生成文字)。像照剧本演出,可控、可预测。
Agent=下一步由模型临场决定,路径不固定。像即兴发挥,灵活、能应对没预设过的情况,但也更难控。
两者没有高下,是光谱:能写死的尽量写死(稳),真正需要灵活判断处才交给 Agent 自主。

👶 小白:那是不是越"Agent"越高级,我该всё都做成 Agent?

👨‍🏫 老师:恰恰相反!成熟工程师的信条是"能用 workflow 别用 agent,能少自主别多自主"。自主度越高,越难预测、越难测试、越容易翻车、越烧钱。真实产品大多是"骨架用 workflow 固定,少数关键环节放 Agent 自主"的混合体。面试时你敢说这句"克制使用自主性",反而显得懂行——这也是后面阶段 7 讲编排框架、阶段 9 讲评测反复强调的。

L06

真实主循环一瞥:去掉花哨就这几行

🤔 痛点工业级 Agent(像 Claude Code)看着很复杂,它的核心是不是也有一堆黑魔法?
💡 本质剥掉工具管理、权限、UI 这些外壳,最核心的主循环朴素得惊人——就是 Day 32 那个循环。看懂下面这十几行,你就看懂了绝大多数 Agent 的"心脏"(Day 38 会亲手把它写全、跑通)。
# Agent 主循环的"去花哨版"——真实框架也是在这上面加料
def run_agent(user_task, tools, system_prompt, max_steps=10):
    # 对话历史 = 岗位说明(系统提示) + 用户任务
    messages = [{"role": "system", "content": system_prompt},
                {"role": "user", "content": user_task}]

    for step in range(max_steps):              # ← 循环 = Agent 的命脉,带硬上限(Day32)
        reply = llm(messages, tools)           # 【想】把历史+工具菜单交给大脑,让它决定
        if reply.wants_tool:                   # 【动手】大脑说要调工具
            result = run_tool(reply.tool, reply.args)     # 真正执行
            messages.append(reply)             # 把"我要调xx"记进历史
            messages.append({"role": "tool",  # 【看】把工具结果回灌历史(Day32 核心)
                             "content": result})
            # 不 return,继续下一圈 —— 让大脑看着新结果"再想"
        else:
            return reply.text                  # 大脑不再要工具 = 任务完成,交付答案
    return "已达步数上限,返回目前的最好结果"   # 兜底(Day32)
对照四大零件看:system_prompt=岗位说明,tools=手脚,messages=记事本(短期记忆),llm(...)=大脑,for 循环=主循环。Claude Code 的真实实现在这之上加了流式输出、权限确认、子任务、上下文压缩等,但骨架就是这个。
L07

今日小结 + 动手 10 分钟

🧠 今天你应该能回答

  • 用一句话定义 Agent(大脑 + 手脚 + 循环)。它和"一问一答"的根本区别是什么?
  • 主循环"想→动手→看→再想"每一拍在做什么?什么时候停?
  • Agent 四大零件是什么?各缺一样会怎样?
  • workflow 和 agent 的界线在哪(下一步谁定)?为什么要"克制使用自主性"?
  • 为什么说"你 Day 32 写的带上限的循环 + 工具"已经是个 Agent 了?

✋ 动手 10 分钟:给三个需求判"聊天 / workflow / agent"

不写代码,练"分辨力"——这正是面试爱考的判断题。把下面每条归类,并说出理由(下一步谁定?要不要动手?要不要看结果再改?):

# 判断题(自己先答,再看参考)
# A. "帮我把这段中文翻译成英文"        → ?
# B. "每天9点抓固定3个网页汇总成日报"  → ?
# C. "帮我排查为什么服务器变慢并修好"  → ?
#
# 参考答案:
# A = 一问一答(一步文字,不用动手/循环)
# B = workflow(步骤固定:抓A→抓B→抓C→汇总,写死即可,最稳)
# C = agent(下一步取决于查到什么,要动手、要看结果反复调整)

再挑一个你工作/生活里真实的重复任务,套今天的框架问自己:它更适合做成 workflow 还是 agent?要配齐哪四大零件?写三行笔记。这种"拿概念套现实"的练习,比背定义有用十倍。

明日预告 · Day 34:今天说主循环里每圈先"想"。明天把这个"想"拆开看它最经典的套路——ReAct(Reason + Act):让 Agent 把"思考(Thought)→行动(Action)→观察(Observation)"明明白白交替写出来。你会看到一条真实的 Agent 轨迹长什么样,也会明白"让它先想再做"为什么能大幅提升可靠性。
← Day 32 · 多步工具链与失败处理 Day 34 · ReAct 模式 →