新闻详情

新闻详情

首页 / 资讯中心 / 详情

新手小白 Agent 开发第4课:让 AI 学会用工具,Tool Calling 第一步

发布时间:2026/11/15 10:39:01来源:尧图网络
新手小白 Agent 开发第4课:让 AI 学会用工具,Tool Calling 第一步
前面三课我们的程序会聊天、有记忆但它始终只会「动嘴」——不能查、不能算、不能替你做任何实际操作。这一课我们给它装上第一件工具计算器。做完之后你的程序就不再只是聊天机器人而是迈出了 Agent 的第一步。一、先建立项目结构现在的项目应该长这样my-agent/ │ ├── .venv/ │ ├── main.py │ └── tools.py其中main.py负责Agent 的「大脑」调用模型、协调流程tools.py负责Agent 的「工具」真正干活的函数这种「大脑」和「手」分离的结构是 Agent 后面能不断扩展工具的基础。二、先写一个计算器打开tools.pydef calculator(a, b, operation): if operation add: return a b elif operation subtract: return a - b elif operation multiply: return a * b elif operation divide: return a / b else: return 不支持的运算先单独测一下。在tools.py末尾加两行print(calculator(10, 20, add)) print(calculator(10, 20, multiply))运行python tools.py看到30 200说明工具本身没问题。然后把这两行测试代码删掉。三、让 DeepSeek「认识」这个工具现在是关键我们不是写if 用户输入里带乘号就调用计算器而是把工具描述给模型让它自己决定用不用。在main.py里这样告诉模型tools [ { type: function, function: { name: calculator, description: 进行数学计算, parameters: { type: object, properties: { a: {type: number, description: 第一个数字}, b: {type: number, description: 第二个数字}, operation: { type: string, enum: [add, subtract, multiply, divide], description: 要执行的运算 } }, required: [a, b, operation] } } } ]这段看着复杂但不用背。你只要理解我们是在给模型写一份「说明书」我有一个工具名字叫 calculator 作用是数学计算 需要三个参数a、b、operation 其中 operation 只能是 add / subtract / multiply / divide。于是当用户问「100 × 200 等于多少」时模型就可能输出{ name: calculator, arguments: {a: 100, b: 200, operation: multiply} }这就叫Tool Calling工具调用。四、让模型做决定然后真正执行接着把请求发出去并检查模型是否要求调用工具messages [ {role: user, content: 12345 × 6789 等于多少} ] response client.chat.completions.create( modeldeepseek-chat, messagesmessages, toolstools ) message response.choices[0].message if message.tool_calls: tool_call message.tool_calls[0] function_name tool_call.function.name arguments json.loads(tool_call.function.arguments) if function_name calculator: result calculator( arguments[a], arguments[b], arguments[operation] ) print(计算结果, result) else: print(message.content)运行后你会看到计算结果 83810205五、一个必须理解的分工模型思考Python 执行这里有一个特别容易误解的点DeepSeek 并没有真正执行 Python 计算。它只是告诉我们「我想使用这个工具参数是这些。」真正去调用calculator的是我们写的 Python 代码。┌─────────────┐ │ DeepSeek │ 负责思考、选择工具 └──────┬──────┘ │ Tool Call我要用 calculator ↓ ┌─────────────┐ │ Python │ 真正执行工具 └─────────────┘一句话概括模型负责「想」代码负责「做」两者各司其职。六、对比一下你就懂差在哪了维度聊天机器人会 Tool Calling 的程序能做的事只会生成文字能计算、查询、调用 API谁决定用不用工具无没工具模型自己决定判断逻辑无由模型生成非硬编码本质文本生成向 Agent 靠近一句话概括给模型一件工具它就从「回答者」变成了「行动者」。总结这一课的核心模型负责决策Python 负责执行。我们用一个计算器跑通了 Agent 最关键的机制——Tool Calling。但现在还有个问题我们的代码只会执行一次工具就结束。如果任务需要「先搜索、再计算」一次根本不够。下一课我们就来手搓整个系列最重要的东西——Agent Loop。下一课预告第5课手搓 Agent Loop让 AI 自己循环执行工具。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/15 4:54:16

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/15 2:04:12

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/14 10:11:15

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/14 17:14:38

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/14 16:35:50

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/15 4:06:36

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉