关键要点
1.AI 代理:
实现超越僵化、预定义工作流的自主决策。
利用迭代推理、自适应执行和持续学习。
2. Smolagents:
轻量级 Python 库(约 1,000 行代码),简化 AI 代理的创建。
直接输出可执行的 Python 代码片段,并在沙盒环境中安全执行。
支持多种模型、模态(文本、图像、音频、视频)以及外部工具集成。
3. Novita AI 支持:
与 Smolagents 兼容,支持 DeepSeek R1 Turbo 等强大模型,性能更优、成本更低。
人工智能已从模式识别发展到生成式内容创作。下一个重大飞跃是 代理型 AI(agentic AI)的出现——系统能够自主决策并采取行动,解决复杂的多步骤问题。本文探讨 AI 代理的概念,深入介绍代码代理的细节,概述如何构建一个代理,讨论不同底层模型的性能,并解答关于这一变革性技术的常见问题。
什么是 AI 代理?
代理型 AI 解决了传统刚性工作流难以有效处理的任务所带来的挑战。许多真实场景涉及复杂、微妙的流程,静态的预定义 if-else 结构无法完全捕捉。代理型 AI 为工作流引入了灵活性和适应性,使系统能够根据不断变化的上下文动态确定并执行最优的动作序列。
它是如何工作的?
代理型 AI 通过一个迭代、动态的循环来运作:感知、推理、行动和学习。其核心是,AI 代理利用大语言模型(LLMs)作为推理引擎来分析情境、规划响应、协调专用模型并执行任务。工作流通常包括以下步骤:
- 数据摄入与感知: 代理从多个来源收集和处理数据,获取上下文感知能力,以辅助决策过程。
- 推理与规划: 使用 LLMs,代理解读数据、推理可能的解决方案、生成战略计划,并确定实现目标所需的行动。
- 行动与执行: 代理与外部工具和预定义函数集成,根据推理输出执行任务。它们会迭代地执行动作、观察结果并相应调整,直到达到期望结果。
- 持续学习: 通过反馈循环和检索增强生成(RAG)等技术,代理能够访问专有数据源,持续改进其理解、性能和准确性,保持相关性。
通过结合这些能力——自主决策、迭代推理、外部工具集成和持续改进——代理型 AI 有效地将基于 LLM 的推理与现实世界的执行和适应连接起来。

来源:Nvidia
什么是 smolagents?
Smolagents 是一个轻量级 Python 库,旨在简化构建强大 AI 代理的过程。它采用极简方法,核心逻辑仅约 1,000 行代码,提供最小的抽象层,为开发者提供更大的直接控制权。Smolagents 被定位为 transformers.agents 的继任者(后者最终将被弃用)。更多细节请访问 GitHub!

关键特性 与核心机制
✨ 简洁性
- Smolagents 以约 1,000 行代码实现了强大的 AI 代理逻辑,将抽象层保持在最小,为开发者提供了更大的灵活性(参见
agents.py)。
🧑💻 一流的代码代理支持
- Smolagents 的 CodeAgent 直接将代理动作输出为 Python 代码片段,而非 JSON 或文本,从而提高了效率和性能。它在沙盒环境(E2B、Docker)中安全执行代码,并保持对传统 JSON/文本代理的支持。
🤗 Hub 集成
- Smolagents 允许通过 Hugging Face Hub 轻松共享和加载可复用的 Python 工具,简化了协作和工具复用。
🌐 模型无关性
- Smolagents 支持几乎所有的大语言模型(LLM)——本地 transformers 或 ollama 模型、Hugging Face 托管的模型,以及通过 LiteLLM 提供的外部提供商(如 OpenAI 或 Anthropic)。
👁️ 模态无关性
- 使用 Smolagents 创建的代理可以无缝处理多种输入模态,包括文本、图像、视频和音频。
🛠️ 工具无关性
- Smolagents 灵活地集成了来自不同生态系统的工具,例如 LangChain、Anthropic 的 MCP 或 Hugging Face Hub Spaces。

如何使用 Novita AI API 和 smolagents 构建代理?
Novita AI 是一个 AI 云平台,为开发者提供通过简单 API 部署 AI 模型的便捷方式,同时提供经济可靠的 GPU 云用于构建和扩展。
Smolagents 支持多种大语言模型(LLM),包括 Novita AI!接下来我们将以 deepseek r1 turbo 为例,展示 smolagents 和 Novita AI 的强大功能!
值得一提的是,Novita AI 发布了 Turbo 版本,吞吐量提升 3 倍,并限时提供 60% 折扣!
一个示例
输入:
import os
from smolagents import OpenAIServerModel, CodeAgent, DuckDuckGoSearchTool
model = OpenAIServerModel(
model_id="deepseek/deepseek-r1-turbo",
api_base="https://api.novita.ai/v3/openai",
api_key="Your API Key" # 请替换为目标服务器的 API Key
)
agent = CodeAgent(tools=[DuckDuckGoSearchTool()], model=model)
agent.run("请规划一次从上海到北京的周末旅行,包括交通方式、行程安排和必备物品清单")
输出:
transport = web_search(query="上海到北京周末交通 2024")
print("交通方式:", transport)
attractions = web_search(query="北京2日游行程 热门景点 2024")
print("景点推荐:", attractions)
details = web_search(query="北京旅游必备物品 2024")
print("必备物品与提示:", details)
weekend_plan = {
"交通": {
"推荐选项": "周五晚上 G12 次高铁(18:00-22:30)上海虹桥至北京南",
"备选": "周六早班飞机(07:00-09:00+转运时间)"
},
"行程安排": {
"第一天(周六)": [
"08:30 - 天安门广场(免费)",
"10:00 - 故宫(预订门票,游览3-4小时)",
"14:00 - 天坛",
"晚上:后海晚餐 + 胡同探索"
],
"第二天(周日)": [
"07:00 - 出发前往慕田峪长城(预订班车/出租车)",
"09:00-12:00 - 长城游览(建议坐缆车)",
"14:00 - 颐和园",
"18:00 - 返回市区,乘坐 G27 次高铁(19:00-23:18)返回上海"
]
},
"必备物品": [
"预订好的故宫门票(¥60)",
"舒适的步行鞋",
"分层衣物(查看天气预报)",
"便携 WiFi/充电宝",
"微信支付/支付宝余额",
"身份证/护照(用于取火车票)"
]
}
final_answer(weekend_plan)
最终答案
最终答案:{'交通': {'推荐选项': '周五晚上 G12 次高铁(18:00-22:30)上海虹桥至北京南', '备选': '周六早班飞机(07:00-09:00+转运时间)'}, '行程安排': {'第一天(周六)': ['08:30 - 天安门广场(免费)', '10:00 - 故宫(预订门票,游览3-4小时)', '14:00 - 天坛', '晚上:后海晚餐 + 胡同探索'], '第二天(周日)': ['07:00 - 出发前往慕田峪长城(预订班车/出租车)', '09:00-12:00 - 长城游览(建议坐缆车)', '14:00 - 颐和园', '18:00 - 返回市区,乘坐 G27 次高铁(19:00-23:18)返回上海']}, '必备物品': ['预订好的故宫门票(¥60)', '舒适的步行鞋', '分层衣物(查看天气预报)', '便携 WiFi/充电宝', '微信支付/支付宝余额', '身份证/护照(用于取火车票)']}
Smolagents 中模型性能对比

更多详情请查看 Hugging Face
代理型 AI 代表着人工智能的重大进步,赋予系统自主解决问题和执行任务的能力。Smolagents 库提供了一个轻量却强大的框架,专为构建智能代理而设计,强调基于代码的直接操作,并与多种大语言模型(LLM)兼容。随着开源模型的不断快速改进,Smolagents 为开发者提供了一个易用且通用的工具包,用于探索和实现代理型 AI 在各种领域的激动人心的潜力。
常见问题
代理型 AI 和生成式 AI 之间的主要区别是什么?
生成式 AI 专注于创建新内容,如文本和图像;而代理型 AI 则专注于做出决策并自主执行任务以实现目标。
在 smolagents 中执行代码安全吗?
smolagents 提供了安全执行代码的选项,包括使用 E2B 或 Docker 的沙盒环境,从而消除对本地系统的风险。
在哪里可以找到关于 smolagents 的更多信息?
您可以在 smolagents GitHub 仓库以及专为该库设立的 Hugging Face Space 中找到完整的文档、教程和示例。
Novita AI 是一站式云平台,助力您的 AI 抱负。集成 API、无服务器、GPU 实例——您所需的成本高效工具。无需基础设施,免费开始,让您的 AI 愿景成为现实。

