Day 001|AI Agent 到底是什么?从“会聊天”到“会做事”的第一步
·
系列专栏:100 天系统学习 AI Agent 开发
当前阶段:Agent 基础与核心概念打底
AI Agent 大模型 Agent开发 Python ReAct
1. 拆解核心:别把大模型等同于 Agent
在真正写代码前,我们要先划清责任边界。新手最容易产生的误解是:“我只要把 Prompt 写得足够长、足够复杂,大模型就能自动帮我把活干了”。
其实不然。在 Agent 的架构里,责任是这样划分的:
- 大模型(LLM)负责“大脑”:理解意图、拆解任务、决定下一步该调用什么工具。
- 代码工程负责“手脚和护栏”:执行工具调用、处理网络请求、进行权限校验、状态流转以及异常兜底。
这就意味着,一个真正的 Agent 必须能跑通下面这个最小闭环:
用户输入 -> 模型思考(决策) -> 调用外部工具 -> 观察工具返回结果 -> 综合判断 -> 输出最终回复。
2. 核心产物:Agent 的最小闭环伪代码
为了不让今天的学习只停留在概念上,我画了一个最小 Agent 闭环的流程,并用伪代码把它具象化。这其实也是经典 ReAct(Reasoning and Acting)模式的缩影。
落地到代码逻辑,大体是这样的:
def simple_agent_loop(user_input, max_iterations=5):
# 1. 初始状态
current_state = f"用户目标: {user_input}"
for _ in range(max_iterations):
# 2. 模型决策 (大脑思考)
# 模型根据当前状态决定是直接回答,还是调用工具
decision = llm.think(current_state)
# 3. 结果判断
if decision.type == "FINAL_ANSWER":
return decision.content # 任务完成,退出循环
elif decision.type == "TOOL_CALL":
# 4. 调用工具与观察 (比如查询 Milvus 向量库或请求外部 API)
try:
tool_result = execute_tool(decision.tool_name, decision.parameters)
except Exception as e:
tool_result = f"工具调用失败: {e}" # 代码必须做异常兜底
# 5. 更新状态,进入下一轮循环
current_state += f"\n调用 {decision.tool_name} 结果: {tool_result}"
return "Agent 运行超时,未能完成任务。"
这段几行代码虽然简单,但它清晰地标出了模型负责决策,而我们的代码逻辑负责循环控制、工具执行和失败兜底。
3. 今日踩坑与复盘
在构思这个闭环时,我意识到一个极易踩的坑:不要一上来就去追逐 Multi-Agent(多智能体)。
很多人单 Agent 的工具边界、上下文状态和失败重试机制都没写明白,就急着引入多 Agent 协同。这只会把单点故障无限放大,最后连 Bug 在哪都找不到。先老老实实把单个 Agent 的“思考-行动-观察”链条跑通,才是正道。
4. 学习存盘
为了让这 100 天的努力留下结构化的痕迹,我决定每天留下一个可复用的学习快照,存进项目的 README 或笔记库中:
{
"day": 1,
"topic": "Agent 最小闭环",
"core_insight": "Agent = LLM + Memory + Planning + Tools。核心是从单次对话转向目标驱动的循环。",
"daily_output": "手写了基于 ReAct 思想的 5 行伪代码核心循环逻辑。",
"pitfall": "单 Agent 的状态和兜底没做好之前,绝对不要碰多 Agent。",
"next_step": "闭环有了,但驱动这个闭环需要模型 API 的支持。明天解决基础建设问题。"
}
更多推荐



所有评论(0)