4课 理解Agent不是魔法,而是一个可以拆解和组装的循环
从身边的AI助手开始,理解 Agent = LLM + 上下文 + 工具。
LLM(大脑)+ 上下文(记忆)+ 工具(手)cd /root/course/module-1/lesson-1/demo/
python agent_intro.py
你会看到一段对话模拟,展示 Agent "收到→思考→执行→回复" 的完整流程,以及Token消耗统计。
Agent 的核心是一个循环:想→做→看。ReAct 模式。
用户问"保康县面积多少?"
→ 💭 需要查数据库
→ 🔧 search_database("保康县", "面积")
→ 👀 {"area": "3225平方公里"}
→ 💬 保康县总面积约3225平方公里
cd /root/course/module-1/lesson-2/demo/
python react_loop.py
写第一个真正的Agent——15行代码调DeepSeek API。
from openai import OpenAI
import os
client = OpenAI(api_key=os.getenv("DEEPSEEK_API_KEY"),
base_url="https://api.deepseek.com")
system = "你是一个保康县统计助手"
messages = [{"role": "system", "content": system}]
while True:
user = input("\n你: ")
messages.append({"role": "user", "content": user})
r = client.chat.completions.create(model="deepseek-chat", messages=messages)
reply = r.choices[0].message.content
print(f"助手: {reply}")
messages.append({"role": "assistant", "content": reply})
同时提供一个 cold_agent.py(无system prompt),对比有/无角色定位的效果差异。
上下文消融实验:验证"Agent = LLM + 上下文 + 工具"。
| 配置 | 结果 |
|---|---|
| ✅ 完整Agent | 成功执行 |
| ❌ 无工具 | Agent无法执行具体操作 |
| ❌ 无历史 | 效率下降5倍以上 |
| ❌ 无角色 | 回答偏离统计专业 |
| 📄 纯LLM | 只能聊天,无法行动 |
亲眼看到缺任何一环,Agent就"残了"。
6课 从读文件到上网搜索,再到MCP协议和自定义工具
给Agent装第一个工具:read_file。支持分页、错误处理。
用 DeepSeek Function Calling 让Agent自主决定调用工具。
三个搜索工具:search_files(按文件名)、grep_content(搜内容)、list_directory(列目录)。
Agent链式调用:先搜文件→再读内容→回答。
两个网络工具:web_search(DuckDuckGo,免费)和 web_fetch(抓取网页)。
让Agent搜索最新新闻并抓取内容回答。
MCP = Model Context Protocol。所有工具统一注册到一个"工具箱"。
核心方法:register()、list_tools()、call_tool()。
为打造专属工具 baokang_stats_query。
Agent自主调用:baokang_stats_query("GDP", "2025", "全县") → 返回结果。
三层次安全:🟢 白名单(只能运行允许的命令)🔴 黑名单(禁止危险操作)🟡 审批(高风险操作需确认)。
演示 Agent 尝试 rm -rf / 被拒绝、sudo apt install 被拦截。
6课 知识库、多Agent协作、自我进化、并行加速
用 sentence-transformers 把保康县的农产品数据做成向量知识库。三步:切块→向量化→搜索。
效果:用户问"保康茶叶怎么样?"→ 语义搜索→ 找到最相关的段落。
用户问:保康县的茶叶怎么样?
结果:[相似度:0.67] 保康县是湖北省茶叶种植重点县,全县茶园面积达15.6万亩...
Orchestrator 拆解任务 → Workers 并行执行 → Orchestrator 合并。模拟版+真实LLM版。
用"对比保康县各乡镇经济数据"做演示。
多方辩论 → 裁判裁决。乐观派 vs 保守派 → 得出平衡结论。
辩题示例:"AI Agent 应该更自主还是更可控?"
Trading 模式:串行传递,上一步输出是下一步输入。需求分析 → 数据采集 → 报告撰写。
模拟版+真实LLM版,两版对比学。
自我进化 = 不改模型权重,通过积累经验变好。
经验库 → 每次完成任务后提取经验 → 下次类似问题直接复用。
用 concurrent.futures.ThreadPoolExecutor 让多个任务同时执行。
串行 6.5秒 vs 并行 3.0秒,实测加速比 2.2×。
4课 从运维到企微部署,整合成一个完整的保康统计AI助手
成本控制(缓存+预算)、错误恢复(指数退避)、Token管理(截断)。
一个coding-agent任务约$0.0057,缓存命中后零成本。
关键词匹配 → 自动选择模式:
| 用户说 | 匹配模式 |
|---|---|
| "GDP多少?" | 📊 单次查询 |
| "对比一季度和三季度" | 🏗️ OW对比 |
| "这个数据怎么看?" | 🗣️ Debate |
| "生成月报" | 🔗 Trading接力 |
Agent从终端走向企微。Hermes Agent作为企微网关,Agent脚本作为工具被调用。
支持命令行调用和管道输入两种方式。
整合全部技能:
理解Agent概念,学会基本工具调用
MCP协议、多Agent协作、知识库
运维、部署、整合成可用产品