第1课:AI Agent 核心概念
基础⭐⭐⭐⭐⭐ 必问↔ Hermes 参照
一、Agent 到底是什么?
一句话定义:Agent = LLM(大脑) + 工具(手脚) + 循环(自主决策)
传统程序 = 你告诉它怎么做(if-else, switch-case)
AI Agent = 你告诉它要什么(目标),它自己决定怎么做
最形象的类比:
传统 API 是自动售货机——你按哪个按钮,它就吐什么。
Agent 是一个员工——你说"帮我搞定下季度的报表",他自己决定:查数据库 → 跑分析 → 做图表 → 发邮件。
二、四层架构
从底向上,一个完整的 Agent 系统有 4 层:
┌─────────────────────────────────────┐
│ Layer 4: 编排层 (Orchestration) │ 多 Agent 协作、任务编排、路由
├─────────────────────────────────────┤
│ Layer 3: 决策层 (Agent Loop) │ ReAct 循环、规划、反思
├─────────────────────────────────────┤
│ Layer 2: 能力层 (Tool System) │ Function Calling、MCP、RAG
├─────────────────────────────────────┤
│ Layer 1: 基座层 (LLM + Context) │ 模型、System Prompt、上下文窗口
└─────────────────────────────────────┘
Layer 1:基座层
所有的"智能"来源。核心组件:
- LLM:推理引擎(GPT-4, Claude, DeepSeek 等)
- System Prompt:定义 Agent 的角色、行为边界、输出格式
- 上下文窗口:当前对话的所有内容(System Prompt + 用户输入 + 历史 + 工具结果)
和 Hermes 对照:Layer 1 对应你配置中的 provider(模型提供商)和 system_prompt(在 profile 里设)。你在 config.yaml 里写的 model: deepseek-v4-flash 就是 Layer 1 的选择。
Layer 2:能力层
Agent 能"做"什么,取决于这个层:
- 工具注册:每个工具 = 名称 + 描述 + 参数 Schema(JSON Schema)
- Function Calling:LLM 输出 JSON → Agent 解析 → 执行 → 结果传回 LLM
- MCP 协议:标准化工具发现和调用(类似 gRPC 对微服务的意义)
- RAG:从外部知识库检索信息作为上下文的一部分
和 Hermes 对照:你用 hermes tools 看到的就是 Layer 2——terminal, read_file, write_file, web_search 等。每个工具都有自己的 name + description + params。Hermes 的 Tool System 正是 Agent 框架的核心设计。
Layer 3:决策层
这是"智能"的体现——Agent 如何决定下一步做什么:
- ReAct 循环:Reason → Act → Observe → Repeat
- 规划:Task 分解、子目标制定
- 反思:检查自己的输出,纠错,优化
Layer 4:编排层
当系统不止一个 Agent 时:
- 编排器 Agent:主管,分配任务给子 Agent
- 路由:根据输入决定由哪个 Agent 处理
- 工作流:定义 Agent 之间的协作顺序
三、核心概念:工具调用(Function Calling)
这是 Agent 最重要的机制,一定要理解。流程如下:
User: "帮我查一下上海的天气"
Agent → LLM API(带工具列表)
↓
LLM 返回(不是自然语言,而是 JSON):
{
"function": "get_weather",
"arguments": {"city": "上海"}
}
↓
Agent 执行 get_weather("上海") → 返回 {"temp": 28, "humidity": 65%}
↓
第二次调用 LLM API(把工具结果拼回去)
↓
LLM 返回自然语言:"上海现在 28°C,湿度 65%。"
↓
User 收到回复
关键理解:LLM 本身不执行任何代码。LLM 只做一件事——决定调用哪个工具,拼什么参数。实际执行是 Agent 框架做的。这意味着:
→ 工具可以是有副作用的(发邮件、写数据库、下单)
→ LLM 不关心工具的实现——它只根据工具的 name 和 description 决定是否调用
四、打个样:我现在的 Agent 工作流
以 Hermes Agent 为例,你刚刚经历的全部操作就是一个标准的 Agent 循环:
微信消息 → Hermes 服务器
↓
Layer 1:deepseek-v4-flash 加载你的 system prompt + skill
↓
Layer 2:我选择了 terminal + write_file + skill_manage 等工具
↓
Layer 3:我决定先建 workspace → 再写 MISSION.md → 再写 GLOSSARY.md ...
↓
Layer 4:目前单 Agent(你只有我一个),所以编排层很简单
↓
结果返回微信
每一次我调用一个工具(terminal, write_file),本质就是一次 Reason → Act → Observe 的 ReAct 步。这课本身也是我通过工具调用完成的。
五、面试问答
🎯 面试官问:"什么是 AI Agent?和传统程序有什么区别?"
你的回答框架(30 秒版):
"AI Agent 是一个以 LLM 为推理引擎、能自主调用外部工具、通过循环决策来完成复杂任务的软件系统。
和传统程序的区别在于:传统程序是确定性的——if-else 和状态机,输入 A 一定输出 B。Agent 是概率性的——它基于 LLM 的推理,每次可能走不同的路径到达同一个目标。
举个例子:传统程序处理"查天气",写死了调用 get_weather 再输出固定模板。Agent 处理"帮我规划明天的出行",它会自己决定查天气 → 查交通 → 查目的地开放时间 → 综合成一个计划。人只需要给一个目标,不需要给步骤。"
🎯 面试官问:"Agent 的核心组成部分是什么?"
你的框架:"3 + 1 组件"
3 个核心: LLM(推理能力)+ Tool System(执行能力)+ Memory(记忆能力)
1 个粘合剂: Agent Loop(循环决策机制,通常是 ReAct)
可以用一层楼比喻:LLM 是楼里的各个部门,Tool System 是各种工具设备,Memory 是楼里的文件存档,Agent Loop 是协调所有这些的总控台。
六、课后行动
- ✅ 读取本课的 GLOSSARY.md,确保每个术语你能用自己的话解释
- ✅ 打开 Hermes - 观察每一次我调用工具的过程——注意我从"思考"到"调用"到"看结果"切换
- ✅ 准备 30 秒和 2 分钟的"什么是 Agent"回答(上面的面试框架)
- ⏭ 下节课预告:Agent 循环与 ReAct 深入——我们会写最简单的 Agent Loop 代码
📁 0001-core-concepts.html
📁 相关参考:reference/GLOSSARY.md | MISSION.md | CURRICULUM.md
📝 如有问题随时问,我会在后续课中调整。