发布时间:2026/9/2 13:55:09
从零构建智能体(Agent)工具:Hugging Face Agents-Course 免费实战教程 从零构建智能体Agent工具Hugging Face Agents-Course 免费实战教程【免费下载链接】agents-courseThis repository contains the Hugging Face Agents Course.项目地址: https://gitcode.com/GitHub_Trending/ag/agents-course本教程带你用 Hugging Face Agents-Course 免费课程动手构建智能体Agent工具先写第一个可调用工具再接入智能体跑通「思考—行动—观察」循环最后按任务类型在 smolagents 与 LangGraph 之间做选择。全程跟着代码走不堆理论。1. 搭环境5 分钟写出第一个可调用工具智能体工具Tool说白了就是给大模型配的外设模型只能读文本、写文本真正查数据、调接口、跑计算的活儿都是这些函数替它干的。课程的第一单元专门讲这件事入口文件是 units/zh-CN/unit1/tools.mdx。1.1 把仓库克隆下来课程代码都在 units/ 目录下按英文、中文等语言分目录存放。先克隆仓库只读学习不需要改动它git clone https://gitcode.com/GitHub_Trending/ag/agents-course1.2 用 tool 装饰器定义工具课程给了一个最简工具把两个整数相乘的计算器。你把它换成任何自己想试的功能都一样下面是一个查天气的例子from smolagents import tool tool def get_weather(city: str) - str: 查询指定城市的当前天气。 Args: city: 城市名称例如 北京 return 北京晴15°C # 这里替换成真实的 API 调用关键不在函数体而在三个元信息函数名get_weather就是工具名建议用动词开头、见名知意类型注解city: str、- str告诉模型输入输出格式文档字符串docstring向模型解释工具用途和每个参数的含义。tool装饰器会自动从函数签名和 docstring 提取这些信息生成一段标准工具描述并注入系统提示。你不需要手写任何 JSON——这正是课程反复强调的工具描述必须精准而 Python 函数本身就是一份现成的精准描述。更多细节见 unit 1 小测验。2. 工具如何被智能体调用2.1 模型只下命令框架才执行一个常见的误解是模型自己调用了工具。实际分工是这样的角色干什么大模型决定用不用工具、用哪个输出带参数的调用指令框架智能体停止生成 → 解析指令 → 执行你的函数 → 把结果作为观察发回模型这套停止并解析stop and parse机制保证模型输出结构化的指令后就停下来不会再多说废话解析也就不会跑偏。完整的思考—行动—观察循环在 agent-steps-and-structure.mdx 里有逐步拆解工具执行后的反馈如何作为观察回流可看 observations.mdx。3. 组合成智能体从工具到能跑起来的 Agent3.1 三行代码接入 smolagentssmolagents 是课程主推的轻量框架上面写好的工具可以直接装进去from smolagents import CodeAgent, InferenceClientModel agent CodeAgent( tools[get_weather], # 你的工具列表 modelInferenceClientModel(), # 模型客户端 ) print(agent.run(北京现在适合跑步吗))运行后控制台会按步骤打印思考Thought→ 行动Action调用你的工具→ 观察Observation工具的返回值循环往复直到给出最终答案。这个循环就是智能体的核心结构你写的工具决定了行动能走多远。3.2 验证结果观察每一步验证分两层一是看工具本身直接调用get_weather(北京)检查返回值二是看智能体行为run()打印的每步 Thought/Action/Observation 是否符合预期。课程里的教程 tutorial.mdx 就是一份写工具、组装智能体、部署的完整动手清单照着做能立刻得到反馈。4. 选对框架smolagents 还是 LangGraph工具写好后怎么装取决于任务形态。4.1 开放式任务交给 smolagents让模型自由决定先查什么、再算什么比如帮我规划一次出行用 smolagents 这类框架最省事循环由框架代跑。深入用法见 smolagents 工具章节。4.2 固定流程交给 LangGraph如果流程是固定的——比如文档分析先提取文字再分析最后按指令执行——用 LangGraph 把流程画成图更可控。它的三个基本概念很好记详见 building_blocks.mdx状态State在步骤间流转的数据节点Node一个普通 Python 函数读状态、干活、返回更新边Edge连接节点可以是直连也可以按状态条件分流。from langgraph.graph import StateGraph, START, END builder StateGraph(State) # State定义流程共享的数据 builder.add_node(extract, node_1) # 节点一个 Python 函数 builder.add_node(analyze, node_2) builder.add_edge(START, extract) # 边指定流转顺序 builder.add_edge(extract, analyze) builder.add_edge(analyze, END) app builder.compile() # 编译后即可 invoke 调用一句话选型开放式问答选 smolagents有固定审批/处理流程的选 LangGraph。动手清单按 smolagents 工具章节 的顺序把餐饮评分、派对主题两个工具依次写出来照 LangGraph 文档分析智能体 搭一个读取文档 → 分析 → 执行指令的工作流用 quiz2.mdx 检查自己是否掌握工具描述格式与停止并解析动作循环。【免费下载链接】agents-courseThis repository contains the Hugging Face Agents Course.项目地址: https://gitcode.com/GitHub_Trending/ag/agents-course创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

2026/9/2 13:50:09

基于Python与MediaPipe实现引体向上自动计数:从姿态估计到状态机逻辑

简介:本资源是一套基于Python的引体向上动作自动计数算法实现方案,面向计算机科学、电子工程及应用数学等相关专业本科生与研究生,解决健身动作识别与运动次数量化中的姿态检测与轨迹分析问题,适用于课程实践、学期项目或毕业设计…

2026/9/2 13:50:09

ESP32模组手工焊接实战:从工具选择到烧录测试的完整指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/2 14:10:11

15分钟搭起个人游戏串流服务器:Sunshine从零开始实战指南

15分钟搭起个人游戏串流服务器:Sunshine从零开始实战指南 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine Sunshine 是一个开源自托管的游戏串流服务器(stre…

2026/9/2 14:10:11

SimpleBGC32 无刷云台控制全解析:从硬件原理到PID调参实战

简介:SimpleBGC32是一套基于32位微控制器的步进电机控制固件完整解析资源,适合嵌入式开发者、自动化设备及机器人项目人员用于理解步进电机精确控制原理与实现。资源共429个文件,压缩包约10.78MB,以C源代码(89个&#…

2026/9/2 14:10:11

AI模型生产化部署实战:从FastAPI到TorchServe的工程化解决方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/2 14:10:11

AionUi 提速指南:降低内存占用与响应延迟

AionUi 提速指南:降低内存占用与响应延迟 【免费下载链接】AionUi Open-source 24/7 Cowork app for OpenClaw, Hermes, Claude Code, Codex, OpenCode and 20 more CLI Agent | Customize your assistants | Team them up|Star if you like it! 项目地…

2026/9/2 14:05:10

西圣GC1手柄评测:霍尔悬浮摇杆+原生体感,解决摇杆漂移

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/1 16:02:17

vSound小提琴数字处理器实操指南:从接线到演出的完整配置

电小提琴或者原声小提琴插电演出,第一个绕不开的坎就是声音难听。原声琴的共鸣和空气感一旦进了拾音器,出来的往往是一坨干瘪、发尖、带着奇怪塑料味的信号。我当初第一次把琴接上乐队调音台,直接被主唱吐槽"你这声音像在锯钢丝"。…

2026/9/2 9:00:32

传感器接口IC如何攻克生物化学传感的微弱信号难题?

1. 从电极到比特流:为什么生物化学传感必须依赖专用接口IC 做生物化学传感的人都有过类似的经历:明明传感器本身性能很好,信号输出却一塌糊涂——噪声大、漂移明显、重复性差,怎么调都达不到预期。很多时候问题并不在传感器&#…

2026/9/2 8:41:06

STM32F411CEU6多通道ADC采集:扫描模式+DMA实现详解

1. 多通道 ADC 的用武之地把“Multichannel ADC”和“STM32F411CEU6”这两个关键字放在一起,其实就是嵌入式开发里最常遇到的一类需求:用一块不算贵的 MCU,同时采集多路模拟信号。STM32F411CEU6 是 48 引脚的 Cortex-M4F 主控,主频…

2026/9/2 0:03:41

单片机毕业设计-基于单片机与蓝牙通讯的输液状态监测终端设计与开发 基于 STM32 或 51 单片机的液位‑滴速‑温度多参数输液监护装置设计(024005)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/9/2 0:03:41

DeepSeek字幕翻译实战:从API调用到批量SRT转中文的完整方案

这次我们来看一个很实用的 DeepSeek 落地场景:用 DeepSeek 把英文视频字幕自动翻译成中文。具体案例是《恶魔君》1989 年第 28 集的英转中字幕任务,标题写得很直白,但背后其实是一整套可以复用的技术流程:字幕解析、模型调用、批量…

2026/9/2 0:03:41

用Python搭建搞笑语音助手:从语音识别到语音合成全教程

当你家里摆着一台天猫精灵,却总希望语音助手偶尔“不正经”一点,不用官方腔回答问题,而是张口就接几句搞笑段子,会是什么体验?我最近动手验证了一下这个想法——没有去改装任何市面上现有的智能音箱,而是直…

2026/9/2 1:15:22

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/2 1:15:22

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/2 1:15:20

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…