小白程序员必看:ChatGPT如何通过工具调用查天气、做计算 本文详细介绍了ChatGPT背后的“工具调用”机制现代AI Agent开发框架如LangChain、AgentScope提供了开箱即用的Agent类通过Reasoning推理 Acting行动循环实现任务执行。文章以天气查询为例展示了如何定义工具、注册到Agent并实现与模型的交互以及协议报文层面的交互细节。对于想要深入了解大模型如何与外部工具交互的小白和程序员来说本文提供了实用的指导和示例代码。你有没有好奇过ChatGPT 是怎么查天气、做计算的背后的秘密就是“工具调用”。本文将带你了解工具调用的过程。原理现代 AI Agent 开发框架如 LangChain、AgentScope通常提供开箱即用的 Agent 类比如ReActAgent。前缀 ReAct 代表 Reasoning Acting即推理与行动推理就是指调用大模型分析问题行动就是指调用外部工具Agent执行某个任务的时候可能进行多次Reasoning Acting这就是Agent loop。这个 Reasoning Acting 循环 是现代 Agent 的核心范式。下图展示了完整的工作流程简化起见图中并未体现 memory、RAG 等组件步骤1、2、3、4组成了Reasoning Acting循环1. Agent收到用户输入后首先调用模型进行推理2. Agent拿到模型推理输出后判断是否需要调用工具如果需要执行步骤3否则输出结果流程结束3. 调用工具4. 收到工具执行结果回到步骤1再次执行推理注意这时的推理输入是[用户输入] [工具执行结果]react_agent工作原理接下来我们通过一个工具调用的例子看下上述各部分是如何协作的。示例Demo下面是用AgentScope-Java写的一个工具调用的例子SimpleWeatherToolDemo[1]首先我们用Tool注解定义一个天气查询工具入参是城市名出参是当地的天气情况数据是mock的/ * WeatherTools - A simple tool class with a get_weather tool. */ public static class WeatherTools { / * Get weather information for a city (mock data). * * param city The city name * return Weather information string */ Tool(name get_weather, description Get current weather information for a city) public String getWeather(ToolParam(name city, description The city name, e.g., Beijing) String city) { // Mock weather data (fixed values) return String.format( Weather in %s:/n- Condition: Sunny/n- Temperature: 25°C/n- Humidity: 60%%, city); } }接下来创建ReActAgent并将工具以toolkit方式注册到ReActAgent上// Create toolkit and register the weather tool ToolkittoolkitnewToolkit(); toolkit.registerTool(newWeatherTools()); // Build the agent with the tool ReActAgentagent ReActAgent.builder() .name(WeatherAssistant) .sysPrompt( You are a helpful weather assistant. When asked about weather, use the get_weather tool.) .model(createModel()) .toolkit(toolkit) .memory(newInMemoryMemory()) .build();现在就可以通过agent查询天气了String cityHangzhou; System.out.println(User: Whats the weather in city ?); MsguserMsg Msg.builder() .role(MsgRole.USER) .content(TextBlock.builder() .text(Whats the weather in city ?) .build()) .build(); Msgresponse agent.call(userMsg).block(); System.out.println(Agent: response中解析出来的结果);执行上述demo如果要自己运行附件SimpleWeatherToolDemo.javacreateModel中需要填入自己的API key等信息输出如下User: Whats the weather in Hangzhou? Agent: The current weather in Hangzhou is sunny with a temperature of 25°C and humidity at 60%. Its a pleasant day!注意Agent 的回复比工具返回的原始数据更自然。这是因为 Agent 收到工具输出后会进行第二轮推理用大模型将原始数据润色成自然语言。下面我们从协议报文的角度看下Agent是怎么和大模型交互的。报文交互不同的模型服务提供商提供的API可能不同这里我们只讨论OpenAI Chat Completions[2]格式的。首先是Agent第一次推理时的请求报文我们关注两点messages部分前面是system提示词大模型的人设接着是用户输入tools部分只包含一个工具即get_weather它的作用、参数信息都在这里了这样大模型就可以根据用户提问来决定是否调用这个工具如果调用的话入参怎么填Agent首次推理时的请求报文接着是大模型的回复tool_calls部分说明要调用哪些工具包括工具名(get_weather)和入参(Hangzhou)等信息大模型的回复中可以包含多个工具调用也可以不包含工具调用具体由大模型根据[用户问题]和[可用工具] 综合推理决定finish_reason为tool_calls说明本次推理结束是因为工具调用暂停这里说的暂停只是供大模型的调用者使用大模型本身不维护这个状态usage部分包含本次推理的token消耗情况大模型的回复Agent框架收到大模型的回复后根据指示调用get_weather函数拿到get_weather的返回值后再次调用大模型进行推理messages部分在第一次推理的基础上又叠加了大模型的回复role为assistant的消息还有工具调用的结果role为tool的消息这是因为大模型是没有记忆的每次推理都是全新的所以要把历史会话记录告诉它函数get_weather还在tools中这是因为我们不知道大模型接下来是否继续调用工具归根结底还是因为大模型没有记忆每次推理的时候都要带上所有的工具信息。Agent再次推理时的请求报文大模型再次推理后的回复如下回复中没有tool_calls字段说明不需要调用工具了finish_reason为stop说明本次请求的推理结束了message中的内容和程序最终的输出一致大模型再次推理后的回复Agent框架收到大模型的回复后发现无需继续调用工具就将结果直接输出给用户了。如何学习大模型 AI 由于新岗位的生产效率要优于被取代岗位的生产效率所以实际上整个社会的生产效率是提升的。但是具体到个人只能说是“最先掌握AI的人将会比较晚掌握AI的人有竞争优势”。这句话放在计算机、互联网、移动互联网的开局时期都是一样的道理。我在一线科技企业深耕十二载见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事早已在效率与薪资上形成代际优势我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。我们整理出这套AI 大模型突围资料包✅ 从零到一的 AI 学习路径图✅ 大模型调优实战手册附医疗/金融等大厂真实案例✅ 百度/阿里专家闭门录播课✅ 大模型当下最新行业报告✅ 真实大厂面试真题✅ 2026 最新岗位需求图谱所有资料 ⚡️ 朋友们如果有需要《AI大模型入门进阶学习资源包》下方扫码获取~① 全套AI大模型应用开发视频教程包含提示工程、RAG、LangChain、Agent、模型微调与部署、DeepSeek等技术点② 大模型系统化学习路线作为学习AI大模型技术的新手方向至关重要。 正确的学习路线可以为你节省时间少走弯路方向不对努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划带你从零基础入门到精通③ 大模型学习书籍文档学习AI大模型离不开书籍文档我精选了一系列大模型技术的书籍和学习文档电子版它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。④ AI大模型最新行业报告2025最新行业报告针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。⑤ 大模型项目实战配套源码学以致用在项目实战中检验和巩固你所学到的知识同时为你找工作就业和职业发展打下坚实的基础。⑥ 大模型大厂面试真题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我精心整理了一份大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。以上资料如何领取为什么大家都在学大模型最近科技巨头英特尔宣布裁员2万人传统岗位不断缩减但AI相关技术岗疯狂扩招有3-5年经验大厂薪资就能给到50K*20薪不出1年“有AI项目经验”将成为投递简历的门槛。风口之下与其像“温水煮青蛙”一样坐等被行业淘汰不如先人一步掌握AI大模型原理应用技术项目实操经验“顺风”翻盘这些资料真的有用吗这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理现任上海殷泊信息科技CEO其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证服务航天科工、国家电网等1000企业以第一作者在IEEE Transactions发表论文50篇获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。资料内容涵盖了从入门到进阶的各类视频教程和实战项目无论你是小白还是有些技术基础的技术人员这份资料都绝对能帮助你提升薪资待遇转行大模型岗位。以上全套大模型资料如何领取