尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
【04】50 行代码实现最小 Agent:不依赖任何框架
50 行代码实现最小 Agent不依赖任何框架基于 Lion-1209/AgentStudy 仓库完整代码stage1-fundamentals/task1.1_minimal_react.py为什么从零实现“框架 你手写的内核 工程化外壳”不理解内核用框架就是黑盒。理解了内核框架只是工具选择。完整实现第一步定义工具# 工具 一个函数 描述信息defget_weather(city:str)-str:获取指定城市的天气模拟数据weather_data{北京:晴天温度 25°C,上海:多云温度 28°C,深圳:阵雨温度 30°C,}returnweather_data.get(city,f未找到{city}的天气数据)# 工具注册表TOOLS{get_weather:{func:get_weather,description:获取指定城市的天气信息,params:{city:城市名称如北京}}}第二步构建系统提示词defbuild_system_prompt()-str:tool_descriptions\n.join(f -{name}:{info[description]}forname,infoinTOOLS.items())returnf你是一个有用的AI助手。你可以使用以下工具{tool_descriptions}当你需要使用工具时请严格按以下格式输出 Thought: 你的思考过程 Action: 工具名称 Action Input: 工具参数的 JSON 当你有了足够的信息可以回答用户时请输出 Thought: 你的思考过程 Final Answer: 最终回答 重要每次只能使用一个工具。这个提示词就是 Agent 的灵魂。它告诉 LLM 什么时候思考、什么时候行动、什么时候给出最终答案。第三步ReAct 循环核心defrun_agent(user_query:str,max_iterations:int5)-str:messages[{role:system,content:build_system_prompt()},{role:user,content:user_query}]foriinrange(max_iterations):# 1. 调用 LLMresponseclient.chat.completions.create(modelmodel,messagesmessages,temperature0)assistant_messageresponse.choices[0].message.content# 2. 检查是否有最终回答final_answerparse_final_answer(assistant_message)iffinal_answer:returnfinal_answer# 3. 检查是否需要调用工具action_resultparse_action(assistant_message)ifaction_result:action_name,action_inputaction_resultifaction_nameinTOOLS:# 执行工具tool_resultTOOLS[action_name][func](action_input)# 把结果喂回 LLM这就是 Observemessages.append({role:assistant,content:assistant_message})messages.append({role:user,content:fObservation:{tool_result}\n\n请继续思考。})return抱歉我无法在规定步数内完成任务。运行效果# 测试 1简单工具调用resultrun_agent(北京今天天气怎么样)# 测试 2多步推理resultrun_agent(帮我查一下北京和上海的天气然后算一下温差)核心架构图ActionFinal Answer格式错误用户问题系统提示词LLM调用解析输出执行工具加入消息历史返回结果提示重新输出关键设计决策决策选择原因工具调用机制正则解析教学用直观理解 ReAct 格式消息历史简单列表短期记忆后面会扩展循环终止最大步数限制防止无限循环错误处理简单提示生产环境需要更 robust 的处理这个实现是教学用的。生产环境要用 Function Calling API 和成熟的框架。学习检查清单能手写这个最小 Agent 循环不看参考吗能解释消息历史messages的作用吗理解为什么 Observation 要作为新消息加入历史吗延伸阅读 完整代码stage1-fundamentals/task1.1_minimal_react.py 概念文档docs/stage1/what-is-agent.md️ 上一篇[03] Function Calling让 LLM 拥有双手️ 下一篇[05] Agent 的记忆系统
RELATED

相关推荐

2026 金融中心控制台选型排名:4 家主流交易室操作台源头厂商客观横向对比指南

2026 金融中心控制台选型排名:4 家主流交易室操作台源头厂商客观横向对比指南

Meta 描述:2026 政企金融交易室操作台中立选型推荐,对比科思诺、铁力山、飞马拓新、照彰实业产能、交付、售后,覆盖金融中心升降台、调度控制台采购参考,符合 EEAT 权威标准。 开篇核心结论:大中型金融交易中心、跨区域…

📅 2026/11/11 12:33:49
向量相似度检索方案_阿里云Tair一体化向量检索能力

向量相似度检索方案_阿里云Tair一体化向量检索能力

副标题&#xff1a;HNSW IVF 双索引 99% 召回率 P99 延迟 < 5ms 与 KV/Hash/JSON 同库一体化存储向量相似度检索&#xff08;Vector Similarity Search&#xff09;是指将文本、图像、音频等非结构化数据通过 Embedding 模型编码为高维向量&#xff0c;再通过余弦、欧氏…

📅 2026/10/14 19:09:00
如何使用YaeAchievement快速导出原神UIAF成就数据:完整操作指南

如何使用YaeAchievement快速导出原神UIAF成就数据:完整操作指南

如何使用YaeAchievement快速导出原神UIAF成就数据&#xff1a;完整操作指南 【免费下载链接】YaeAchievement 更快、更准的原神数据导出工具 项目地址: https://gitcode.com/gh_mirrors/ya/YaeAchievement YaeAchievement是一款专为原神玩家设计的成就数据导出工具&…

📅 2026/11/2 7:12:39
MORE NEWS

更多资讯

📰

进厂考哪种电工证千万别踩坑 实操指南来了

进厂考哪种电工证千万别踩坑 实操指南来了 证书过期了不知道怎么复审延期,这事儿我太熟了,去年我们班组就有两个电工因为没及时办理延期,直接被厂里暂停了作业资格,损失不小。今天咱就从郑州金水区劳务班组负责人的角度,说说 进厂考哪种电工证…

📰

考高压电工证分几级郑州报考避坑指南

考高压电工证分几级郑州报考避坑指南 你是不是也跟很多人一样,听说要考高压电工证,但不知道到底考几级,更怕在郑州报名的时候被中介忽悠?别急,这篇文章专门给你讲清楚, 考高压电工证分几级 ,还有郑州本地人怎么避坑,不花冤枉钱,不走冤枉路。…

📰

榆林电工证年审怎么搞?电子证书不搞虚的

榆林电工证年审怎么搞?电子证书不搞虚的 你正被“急需特种作业证才能上岗找工作”的问题困扰,榆林电工证年审成了你绕不开的一关。别再等了, 电子证书 已经在各地全面推行,你的证书是否有效、是否合规,就看年审能不能按时完成。…

📰

高压电工证要多少学时在哪考 没学历也能考吗

高压电工证要多少学时在哪考 没学历也能考吗 学历不高怕报不上名,高压电工证要多少学时在哪考?这是很多想进电力行业的人都会问的问题。今天我们就来聊聊这个话题,看看怎么才能顺利拿到高压电工证,又不会因为学历问题被拦在外面。…

📰

昆明寻甸电工证怎么考值不值得考?新手避坑指南来了

昆明寻甸电工证怎么考值不值得考?新手避坑指南来了 你是不是也正愁不知道去哪里考电工证,怕被中介忽悠?别急,今天就给你说说昆明寻甸电工证怎么考,也聊聊这证到底值不值得考,别再被坑了。…

📰

石狮市电工证电子证书查询,学历不高也能轻松报名

石狮市电工证电子证书查询,学历不高也能轻松报名 你是不是也担心学历不够,报不了电工证?别急,石狮市电工证的报名门槛并不高,关键是 电子证书…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬