第一阶段进阶:Agent / 工具型 AI 规划【让模型“能干活”】
在你会用 LLM 提效之后,这一篇帮你规划:怎么让模型调用工具、帮你做事,而不是只会聊天。
1. 不同学习目的下,这一阶段要做到哪里
目的 A:只想用现成的 Agent 提升效率
- 目标:会配置/使用现成的 Agent 工具(如一些“工作流”类产品),能根据自己需求组合步骤。
- 输出物:1~2 个你日常真在用的自动化流程(比如自动整理学习笔记、自动生成日报)。
目的 B:想做自己的小 Agent 工具 / 产品
- 目标:理解 Agent 的基本概念,会用一个简单框架(如 LangChain)实现“模型 + 工具调用”的逻辑。
- 输出物:1 个你自己写的简单 Agent(比如:投资小助手、面试题助手)。
目的 C:以后考虑往 AI 工程/平台方向走
- 目标:熟悉任务规划(Task Planning)、多步执行、错误重试等概念。
- 输出物:一个稍复杂一些的 Agent 流程 Demo。
对你目前的情况,做到 B 就已经非常够用。
2. 核心概念规划:什么是 Agent?
可以把 Agent 理解成三件事的组合:
- 大脑(LLM):负责理解指令、生成计划和解释结果。
- 工具(Tools):API / 数据库 / 文件系统 / 浏览器等能力。
- 执行框架(Framework):负责“反复调用 LLM + 工具”,直到达到目标。
规划时不要一上来就选好几个复杂框架,先挑一个你顺手的(Python/TS 版本都行),只做一个简单用例。
3. 关键概念速记:System Prompt / User Prompt / Tools / Function Calling / MCP
这一节把你最常见、最容易混的几个词一次讲清楚,并给出推荐学习顺序。
3.1 System Prompt vs User Prompt(你到底在“控制”什么)
- System prompt:给模型的“最高优先级规则/角色/边界”。
- 作用:定人设、定目标、定输出格式、定安全边界(例如“必须用中文回答”“不要编造”“输出用 Markdown 三级标题”)。
- User prompt:用户本次输入的具体任务/问题。
- 作用:描述当前要做的事(例如“把这篇笔记总结成 5 点,并给我面试话术”)。
实战建议:
- 把“稳定不变的规则”放进 system prompt;把“每次变化的任务”放进 user prompt。
- 你做自己的小工具/网站时,system prompt 可以固化为“站点写作规范/输出模板”,user prompt 就是用户的具体需求。
3.2 Agent Tools(工具)是什么?
Agent tools 本质是:让模型在必要时能“调用外部能力”。常见工具包括:
- HTTP API:天气/行情/你的业务接口
- 文件系统:读取/写入 Markdown(比如自动生成新页面)
- 数据库/向量库:检索资料(RAG)
- 搜索/浏览器:查最新信息(按需)
记住一句话:LLM 负责“想”,Tools 负责“做”。
3.3 Function Calling(工具调用)是什么?和 Tools 的关系?
Function calling 是一种“让模型以结构化方式选择工具并给出参数”的机制(很多平台/SDK把它叫 tools / functions)。
你可以把它理解为:
- Tools:你提供的一组可调用能力(函数列表/接口列表)
- Function calling:模型输出“我要调用哪个工具 + 参数是什么”的结构化结果
为什么它重要?
- 不靠模型“随便输出一段文字”,而是让它输出可执行的参数
- 方便做权限控制、日志审计、错误重试
- 让 Agent 更稳定(尤其是多步骤任务)
3.4 AI Agent(Agent)到底是什么?
当你把这些拼起来,就得到一个 Agent:
- System prompt:规则与边界(怎么做、怎么输出、什么时候该停)
- User prompt:当前任务
- Function calling:决定调用哪个工具以及参数
- Agent tools:实际执行动作(查数据、写文件、入库)
- 循环与状态:执行 → 观察结果 → 再规划/再执行(直到完成)
3.5 MCP 是什么?解决什么问题?
MCP(Model Context Protocol) 可以理解为:一种把“工具/数据源”标准化接入模型/Agent 的协议。
它要解决的核心痛点是:
- 你不想为每个 Agent 框架/每个模型 SDK 重复写一遍工具接入
- 希望把工具以“服务”的方式统一管理(可复用、可权限控制、可观测)
简单理解:
- 没有 MCP:你的应用里直接接各种工具(HTTP/DB/文件),接入方式五花八门
- 有 MCP:工具以 MCP Server 的形式统一暴露,你的 Agent 通过协议统一调用
你现阶段不需要“先精通 MCP”,但要知道它是把工具工程化、平台化的关键一环。
3.6 推荐学习顺序(从最有产出到最工程化)
- System/User prompt:先把输出变稳定(格式、口吻、边界)。
- 单工具 Tools:先接 1 个工具(HTTP API 或写文件)。
- Function calling:把“调用工具”从自然语言变成结构化参数。
- Agent(多步任务):加上循环、状态、失败重试,做一个能闭环的流程。
- MCP(可选进阶):当你工具多了、服务化需求强了,再把工具统一成 MCP Server。
3.7 最小可落地 Demo(建议直接写进你的项目里)
- Demo 1(Prompt):固定 system prompt(写作规范),user prompt(总结某篇笔记)。
- Demo 2(Tools):提供一个 “write_markdown(path, content)” 工具,让模型生成面试题并落盘到
docs/。 - Demo 3(Function calling):让模型输出结构化参数来调用
write_markdown/search_notes。 - Demo 4(Agent):多步任务:“读取某模块文档 → 生成学习计划 → 生成 10 道题 → 写入新页面”。
- Demo 5(MCP,可选):把 “读写文档/检索” 做成 MCP Server,让不同小工具复用同一套能力。
4. 针对不同目的的学习安排
4.1 只想用现成 Agent(目的 A)
时间:1~3 天,重点在“配置能力”而非“编码能力”。
- 选 1 个可视化/现成的 Agent 平台(如一些工作流自动化工具):
- 能拖拽节点:输入 → 调用 LLM → 调用第三方 API → 输出。
- 结合你现在的学习/面试场景,设计流程:
- 示例 1:每天固定时间,把你当天的学习记录(写在某个文档/表格里),自动总结成复盘。
- 示例 2:根据你文档库里的内容,自动生成第二天的学习计划。
这一块主要是培养你“把工作拆成步骤,再让工具替你执行”的习惯。
4.2 想自己写 Agent(目的 B/C)
时间:约 1~2 周(可以穿插在你现在 Java/面试学习之间)。
步骤建议:
选定语言和框架:
- 熟悉 Python 的,可以用 LangChain。
- 熟悉 TypeScript/Node 的,可以用 LangChain.js 或类似框架。
先做最简单的单工具 Agent:
- 场景:投资/行情查询助手(简版)
- 流程:
- 用户输入:某只股票或币种的名字/代码。
- LLM 分析出需要调用“行情 API”。
- 框架调用 API 获取价格和涨跌数据。
- LLM 根据行情和你的提示词,输出一段“中立分析 + 风险提示”。
再尝试多步骤任务(Task Planning):
- 比如:“帮我安排这周的学习计划”:
- LLM 先根据你的 Java/数据库/框架现状,给出目标拆解(阶段/模块)。
- 再按天生成安排表。
- 最后用另一个 Tool(如写入文件/发邮件)保存结果。
- 比如:“帮我安排这周的学习计划”:
5. 项目建议:和你现有的文档库结合
为了和你现在的 Java 面试文档更贴近,推荐这样设计项目:
- 项目:我的“面试学习 Agent”
- 数据:你当前这个 VitePress 文档库(Java、数据库、Redis、框架…)。
- Agent 能做的事:
- 根据某个模块,自动生成学习计划(如“3 天搞定 Redis 高频题”)。
- 从对应 Markdown 中抽取重点,生成 Quiz 或面试 Q&A。
- 把结果以 Markdown 的形式保存到指定目录,直接变成新页面。
这样一来,你在继续扩展面试库的同时,也在练 Agent 落地,学习目标统一了。
6. 这一阶段的“合格线”
对你来说,可以把这阶段的“完成”定义为:
- 能清楚解释什么是 Agent、模型 + 工具 + 执行框架的关系。
- 至少动手做过:
- 一个简单的单工具 Agent DEMO(如行情助手)。
- 一个与自己学习/面试相关的 Agent 小工具(如面试题生成/学习计划助手)。
当你能自然地向别人描述:“我现在用一个小 Agent,每天帮我基于文档库生成学习计划和面试题”,就说明这一阶段已经很不错了。