新闻详情

新闻详情

首页 / 资讯中心 / 详情

如何从零构建智能体工具:Hugging Face Agents Course 完整实战指南

发布时间:2026/9/11 17:42:38来源:尧图网络
如何从零构建智能体工具:Hugging Face Agents Course 完整实战指南
如何从零构建智能体工具Hugging Face Agents Course 完整实战指南【免费下载链接】agents-courseThis repository contains the Hugging Face Agents Course.项目地址: https://gitcode.com/GitHub_Trending/ag/agents-course问模型今天纽约天气如何它没有联网却会自信地编出一个温度——这是大模型在没有工具时的典型翻车。给智能体装上工具后同样的问题它会主动发起一次 API 调用拿到真实数据再作答。本文以 Hugging Face Agents Courseagents-course这门开源课程为素材讲清楚智能体工具从定义、描述、注册到被调用的完整链路并对比 smolagents 与 LangGraph 两条主流落地路线。课程源码可以直接克隆到本地逐章通读git clone https://gitcode.com/GitHub_Trending/ag/agents-course为什么智能体离不开工具一次典型的翻车课程在 units/zh-CN/unit1/what-are-agents.mdx 里给智能体下了一个很直白的定义它是利用 AI 模型与环境交互、以达成用户目标的系统。可以把这个系统拆成两半看——大脑LLM负责推理、规划决定下一步做什么四肢工具决定这个智能体到底能干什么。问题出在大脑只能处理文本。LLM 的输出永远是一段文字它自己既不能查数据库也不能发邮件更不可能知道训练截止之后发生的任何事。直接问它今日天气得到的往往是一段看似合理的幻觉。课程用Alfred 煮咖啡的类比说明这一点理解指令、规划步骤的是大脑真正动手的是咖啡机——也就是工具。所以课程的结论很干脆工具是赋予 LLM 的函数用来扩展模型能力边界。一个合格的智能体工具至少包含四种要素一段说明这个函数干什么的文本描述一个真正执行操作的调用对象带类型声明的输入参数可选的、同样带类型声明的输出声明。常见的工具类型包括网络搜索、信息检索、图像生成、对接外部 APIGitHub、YouTube、Spotify 等但任何用例都可以被封装成工具——这正是units/zh-CN/unit1/tools.mdx开篇强调的工具没有边界边界只取决于你想给智能体配什么四肢。把 Python 函数改造成智能体工具手动描述与 tool 装饰器LLM 无法凭空调用工具前提是它知道工具存在。课程的做法是把工具的元信息写成一段文本注入系统提示system prompt。这段文本本质上是一份说明书工具名、功能、参数类型、输出类型。以课程里的乘法工具为例。手动写法就是拼一句话工具名称calculator描述将两个整数相乘。参数a: int, b: int输出int工具一多这种手工描述既容易漏项又难以保持一致。课程给出的改进方案是借助 Python 的自省能力只要函数本身规范——命名清晰、参数带类型注解、写了 docstring——那么函数名、功能说明、参数类型、返回类型就已经全部在代码里了。加一个tool装饰器框架就能通过inspect模块自动提取这些信息tool def calculator(a: int, b: int) - int: Multiply two integers. return a * b print(calculator.to_string()) # Tool Name: calculator, Description: Multiply two integers., # Arguments: a: int, b: int, Outputs: intto_string()生成的这段文本随后被注入系统提示模型据此学会什么时候该调用 calculator、该传什么参数。smolagents 框架沿用了这个思路units/zh-CN/unit2/smolagents/tools.mdx 里给出了两条工具定义路径tool装饰器简单工具的推荐方式框架直接从函数签名和 docstring 解析接口信息因此命名和注释要写得像给人看的接口文档继承Tool类复杂工具用类封装显式声明name、description、inputs每个参数带类型和说明、output_type和forward执行逻辑。工具接口标准化还有另一层意义。课程在 tools.mdx 末尾专门介绍了MCPModel Context Protocol模型上下文协议它规范了应用向 LLM 提供工具的方式使得任何实现了 MCP 的框架都能复用同一套工具接口不必为每个框架重写一遍。如果你要长期维护一组工具这个协议值得纳入视野。一次完整的智能体工具调用流程思考-行动-观察循环工具描述写好后真正执行调用的其实不是 LLM而是包裹它的智能体框架。units/zh-CN/unit1/agent-steps-and-structure.mdx 用一个天气智能体把整条链路走了一遍思考ThoughtLLM 分析用户问题判断需要外部数据决定调用get_weather行动Action框架解析模型输出生成结构化调用指令并执行工具。模型给出的动作通常长这样{ action: get_weather, action_input: { location: New York } }观察Observation工具返回值比如多云15°C湿度 60%作为一条新消息追加进对话重新发给 LLM更新思考并输出模型基于观察结果组织最终答案若观察显示数据不完整循环会再次迭代。整个过程对用户是透明的——看起来像 LLM 直接用了工具实际是应用代码在循环中代劳。这个 while 式的循环结构课程中对应 ReAct 模式是后面所有框架的共同底座无论你用哪个框架底层跑的几乎都是思考→行动→观察的变体。smolagents 与 LangGraph两种工具集成路线怎么选Unit 2 把工具落地分成三条线各自的取舍很清楚维度smolagentsLangGraphLlamaIndex定位轻量智能体框架状态图式工作流编排面向数据的索引与工作流工具定义tool装饰器或Tool子类普通函数注册为节点/工具以索引、检索组件为主控制风格模型自主决定调用顺序显式定义节点、边与状态流转面向检索增强场景封装适合场景快速搭一个能自主干活的 CodeAgent流程固定、需要审计和分支控制的生产工作流围绕私有数据构建智能体课程入口units/zh-CN/unit2/smolagents/tools.mdxunits/zh-CN/unit2/langgraph/units/zh-CN/unit2/llama-index/两条路线的差异可以概括为自主性和确定性的权衡smolagents 路线把工具交给CodeAgent由模型在循环里自主决定调用哪个工具、何时停止搭得快适合探索性任务。课程里的示例是让 Alfred 在哥谭市查询评分最高的餐饮服务工具本身只是个查字典的小函数但智能体自己完成了调用→读取结果→回答的全过程。LangGraph 路线用状态图把流程画出来每个步骤是图上的一个节点。units/zh-CN/unit2/langgraph/document_analysis_agent.mdx 里的文档分析智能体就是典型图像输入 → 视觉模型提取文本 → 需要时执行计算 → 生成摘要 → 按指令后续处理每一步都被显式建模分支和重试都可控。工具在这里同样以函数形式存在只是被钉在了流程图的固定位置上。如果你要做的是流程明确、需要稳定可控的系统比如批量处理合同、周报LangGraph 更稳如果目标是快速验证模型自己串起几个工具是否可行smolagents 成本最低。两者并不互斥课程在 units/zh-CN/unit2/smolagents/multi_agent_systems.mdx 中还会进一步讲多智能体协作可以按需衔接。智能体工具设计上的三个高频坑把工具跑通只是起点课程里反复出现的几个设计原则更值得记下来实时知识必须外包给工具。模型内部知识止于训练截止日凡是需要此刻信息的任务天气、行情、最新文档都不该指望模型原生能力硬问只会换来幻觉。这也是课程用天气例子开篇的原因。描述即契约。模型调用工具的依据只有你写进系统提示的那段文字——参数名、类型、取值范围。类型注解缺失或 docstring 含糊模型就会传来错误格式的参数。课程里Tool类要求每个输入都带type和description正是为了把这份契约写死。观察结果要能被下一轮直接消化。工具输出会以新消息的形式回到对话中格式越标准化明确的字段、稳定的结构模型的反思和纠错就越可靠。解析失败往往不是模型的错而是返回值写得不够对话友好。接下来可以做什么工具这一环打通后顺着课程目录走即可Unit 2 的 unit2 框架总览 把三个框架的边界讲得更细Unit 3 的 Agentic RAG 案例 演示工具与检索的结合想进一步观察智能体运行轨迹可以看 bonus-unit2 的观测与评估章节。【免费下载链接】agents-courseThis repository contains the Hugging Face Agents Course.项目地址: https://gitcode.com/GitHub_Trending/ag/agents-course创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

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

较早相关资讯

最新相关资讯

Python解析百度迁徙指数数据:从Excel XML到人口流动分析 2026/9/11 17:42:27

Python解析百度迁徙指数数据:从Excel XML到人口流动分析

简介:这份数据包提供百度迁徙指数数据,覆盖2022年1月1日至5月13日,并含2021年全年及2019、2020年部分时段,可用于人口流动态势、节假日出行、疫情防控效果等研究场景,适合研究人员、政策分析者及数据分析学习者。压缩包…

阅读更多 →
YOLOv5旋转目标检测实战:角度头设计、损失与旋转NMS全解析 2026/9/11 17:42:27

YOLOv5旋转目标检测实战:角度头设计、损失与旋转NMS全解析

简介:基于YOLOv5的旋转目标检测系统完整源码与预训练模型,面向计算机视觉开发者、算法工程师及目标检测方向初学者,适用于车牌识别、文字检测、细胞分析等任意角度目标的定位任务。压缩包共177个文件、整体约103.66MB,以Python脚本…

阅读更多 →
如何从 Avalonia 源码构建本地 NuGet 包并写入本机 NuGet 缓存? 2026/9/11 17:42:27

如何从 Avalonia 源码构建本地 NuGet 包并写入本机 NuGet 缓存?

如何从 Avalonia 源码构建本地 NuGet 包并写入本机 NuGet 缓存? 【免费下载链接】Avalonia Develop Desktop, Embedded, Mobile and WebAssembly apps with C# and XAML. The future of .NET UI 项目地址: https://gitcode.com/GitHub_Trending/ava/Avalonia …

阅读更多 →
Python 零基础入门第十三章:开源技术库(标准库  第三方库 2026/9/11 17:42:27

Python 零基础入门第十三章:开源技术库(标准库 第三方库

专栏:Python 零基础全套入门教程 🎯 本章定位:Python 真正强大的核心就是开源生态。学完基础语法之后,绝大多数业务能力都来自各类开源库。本章讲解标准库、pip 包管理、虚拟环境、主流第三方开源库,打通从基础语法到实…

阅读更多 →
STM32F103R6在Proteus中实现高精度PWM与正弦波生成 2026/9/11 17:42:27

STM32F103R6在Proteus中实现高精度PWM与正弦波生成

简介:本资源是一套基于Proteus平台的STM32F103R6微控制器PWM与正弦波输出仿真工程,面向嵌入式初学者、课程设计学生及单片机实验教学者,解决硬件资源受限时无法实测PWM波形生成与DAC正弦波合成的问题。压缩包共88个文件,涵盖30个头…

阅读更多 →
为什么射频系统偏爱50Ω?从物理博弈到工程生态的深度解析 2026/9/11 17:39:26

为什么射频系统偏爱50Ω?从物理博弈到工程生态的深度解析

做射频这些年,SMA头、贴片天线、功放端口、测试电缆,随手一抓全是50Ω。新人来了问一句“为什么是50Ω”,大多数时候我都是随口答“行业标准呗”。直到有一次被反问“那为什么不是75Ω,不是30Ω,不是60Ω”&#xff0c…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

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

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