
https://github.com/datawhalechina/hello-agents目录1什么是AgentAgent的五个组成第一Brain大脑第二Memory记忆第三Tool工具第四Planning规划第五Action行动Agent与Workflow的区别2Agent为什么会思考为什么 ReAct 这么重要Agent 的每一次循环叫什么那这些 Thought 是不是一定会显示给用户一个完整的 Agent 流程3手写人生第一个 AgentTool 长什么样Agent真正的作用4Function Calling函数调用5手写一个 Mini Agent第一步建立项目第二步先写 Tool第三步写 Agent第四步启动程序我们把 Tool 注册起来为什么要注册总结1什么是AgentAgent 一个能够自主完成任务的大模型系统。Agent不仅回答问题而是为了完成任务。Agent的五个组成第一Brain大脑第二Memory记忆第三Tool工具第四Planning规划第五Action行动Agent与Workflow的区别WorkflowAgent固定流程动态决策每次执行一样每次可能不同规则明确需要推理自动化流程智能体2Agent为什么会思考为什么 ReAct 这么重要LLM 不需要一次就想明白所有事情。ReAct通过“思考 → 行动 → 观察”循环推进任务。Agent 的每一次循环叫什么一个 Step一步那这些 Thought 是不是一定会显示给用户不一定。实际上大多数商业 Agent包括 ChatGPT不会把完整内部推理展示给用户。模型会进行内部推理但最终只输出结果或必要的执行过程。这既是为了安全也是为了避免暴露冗长的内部思考。因此我们学习 ReAct 时更重要的是理解这种工作机制而不是认为所有 Agent 都会把每一步 Thought 原样打印出来。一个完整的 Agent 流程用户提出任务 │ ▼ LLM 理解任务 │ ▼ 判断是否需要工具 │ ┌────┴────┐ │ │ 不需要 需要 │ │ 直接回答 调用工具 │ ▼ 获取工具结果 │ ▼ 判断任务是否完成 │ ┌────┴────┐ │ │ 否 是 │ │ 继续思考 输出答案3手写人生第一个 Agent其实最简单的Agent只有四步。用户输入 ↓ LLM思考 ↓ 调用工具如果需要 ↓ 返回答案Tool 长什么样Agent Tool 本质就是 Python 函数。Tool本质上就是可被调用的能力很多时候就是 Python 函数。Agent真正的作用LLM 负责决策Tool 负责执行。4Function Calling函数调用把 Tool 的信息告诉 LLM让 LLM 自己决定调用哪个 Tool。LLM 输出我要调用哪个函数。现代 Agent 就是LLM 不断调用 Tool。Function CallingLLM 根据工具描述决定调用哪个工具并给出参数真正执行工具的是程序而不是 LLM 本身。5手写一个 Mini Agent用户输入 │ ▼ Agent │ ▼ 判断调用哪个 Tool │ ▼ 执行 Tool │ ▼ 返回结果第一步建立项目新建一个文件夹hello_agent/ │ ├── main.py(程序入口负责启动) ├── tools.py(所有工具放到这里) └── agent.py(agent自己来判断调用哪个tool)第二步先写 ToolTool Python Functiondefcalculator(a,b):加法计算器returnabdefget_time():获取当前时间fromdatetimeimportdatetimereturndatetime.now().strftime(%Y-%m-%d %H:%M:%S)第三步写 Agentfromtoolsimportcalculator,get_timeclassAgent:defrun(self,question):if几点inquestion:returnget_time()elifinquestion:numsquestion.split()aint(nums[0])bint(nums[1])returncalculator(a,b)else:return我不会。第四步启动程序fromagentimportAgent agentAgent()whileTrue:questioninput(请输入)answeragent.run(question)print(answer)我们把 Tool 注册起来Tool Registry工具注册表TOOLS{calculator:calculator,time:get_time}为什么要注册以后增加weather()你不用改 Agent。只需要TOOLS[weather]weatherAgent 自动就有了。这就是开放封闭原则Open/Closed Principle。总结main.py │ ▼ Agent.run() │ ▼ 判断需要哪个 Tool │ ┌────────────┴────────────┐ ▼ ▼ Calculator Tool Time Tool ▼ ▼ └────────────┬────────────┘ ▼ 返回结果