FDE Times 数据在招 FDE 职位 862▼55 近 7 天在招职位数的变化(同口径比较):不计入本周新开始追踪的公司的职位近 7 天新增 70在招公司 180支持远程 24%美国薪资中位数 $200k招聘最多 Palantir 95
ENVI

前线部署工程师(FDE)的专业媒体

书籍与课程

Hugging Face 代码智能体默认在本机执行 LLM 代码

54 分钟的 smolagents 课程讲清代码智能体为何胜过 JSON 工具调用,以及代码该在哪里运行。

Hugging Face 联合创始人 Thomas Wolf 身穿牛仔衬衫坐在台上,在 Slush 2024 上发言。
图片:Slush / CC BY 3.0
分享微博

要点速览

  • 一门 54 分钟的中级短课,由 Hugging Face 的 Thomas Wolf 和 Aymeric Roucher 两人主讲
  • 核心思路:把多次工具调用合并进一段代码,但每个客户任务都要单独测试
  • 对 FDE 来说,最有价值的一课是 Secure Code Execution(安全代码执行),而不是深度研究演示
并排展示两种状态。左侧标注“默认”:智能体编写的代码直接在客户机器上运行,以橙色突出,并注明注入会直接进入系统。右侧标注“部署后”:CodeAgent 仍在客户机器上,但智能体编写的代码在 E2B 或 Docker 等远程沙箱中运行。
默认情况下,smolagents 的 CodeAgent 在你自己的环境中运行 LLM 生成的代码。文档建议采用远程执行以实现真正的隔离。来源:Hugging Face smolagents 文档。

DeepLearning.AI 这门讲代码智能体的课程,围绕一个大胆的主张展开:智能体应该自己写代码,而不是一次调用一个工具。

然而 smolagents 文档自己也写得很明白:默认情况下,CodeAgent 会在你自己的环境里运行 LLM 生成的代码。前线部署工程师(FDE)学这门课,两方面都要弄懂:代码智能体为什么强大,以及它写出的代码到底在哪里运行。

课程全名是 Building Code Agents with Hugging Face smolagents,是 DeepLearning.AI 与 Hugging Face 合作推出的一门中级短课。

如果你正要把智能体接入客户系统,或者在申请应用 AI 方向的 FDE 岗位,这门课能让你很快掌握一种与常见 JSON 工具调用截然不同的智能体设计思路,也能让你知道这套思路里哪些部分还不能安全部署。

向写库的人学这个库

两位讲师是 Hugging Face 联合创始人兼首席科学官(CSO)Thomas Wolf,以及 Hugging Face 项目负责人 Aymeric Roucher。由库的作者亲自讲库,这是优势;但当他们为自己的设计选择辩护时,也要保持一点距离。

课程于 2025 年 4 月上线,此后有过修订。当前版本时长 54 分钟,从代码智能体的概念讲起,经过安全代码执行和智能体评测,最后搭建一个深度研究智能体。

学习门槛只需基础 Python 和对 LLM 的一定了解。平台测试期内课程免费,但评分作业需要 PRO 账户,推荐给同事前请先确认条款。

思路一:把多个步骤合进一段代码

工具调用型智能体是一步一步走的:调用工具,拿到结果,再决定下一步。代码智能体则把这些调用合并进一段代码。smolagents 两种都提供:CodeAgent 用代码表达动作,ToolCallingAgent 沿用 JSON 风格。

设想一家零售客户需要一个智能体,找出 5 家门店中哪一家近 12 个月销售额下滑最严重。JSON 方式要先发出下面这样 5 次调用,每次都要和模型往返一轮,然后才能开始比较:

{"tool": "get_sales", "args": {"branch": "B1", "months": 12}}
{"tool": "get_sales", "args": {"branch": "B2", "months": 12}}
{"tool": "get_sales", "args": {"branch": "B3", "months": 12}}
{"tool": "get_sales", "args": {"branch": "B4", "months": 12}}
{"tool": "get_sales", "args": {"branch": "B5", "months": 12}}

代码智能体一次就能完成整件事:遍历 5 家门店,把结果存进 Python 变量,计算变化百分比,然后返回答案。

changes = {}
for b in ["B1", "B2", "B3", "B4", "B5"]:
    s = get_sales(branch=b, months=12)
    changes[b] = (s[-1] - s[0]) / s[0] * 100
worst = min(changes, key=changes.get)
print(worst)

Hugging Face 认为代码在三方面胜过 JSON:可组合性、更好的对象管理和通用性。它还指出,编程语言本来就是为描述计算机该做什么而设计的。

这个设计立场很有说服力,但并非定论。请在真实的客户任务上把两种智能体都跑一遍,让数据说话。

思路二:模型写的代码是不可信代码

对 FDE 来说,Secure Code Execution 这一课最值得花时间。智能体一旦开始写代码、跑代码,它读到的任何文本,从邮件、网页到内部文档,都可能夹带提示词注入(prompt injection)。smolagents 文档点名的正是这一风险。

如果默认配置直接在客户服务器上运行代码,一条恶意命令就能直接进入客户系统。

文档也坦承,本地 Python 沙箱并不够用。真正可靠的隔离要靠远程执行,例如 E2B 或 Docker。CodeAgent 还支持 Modal、Blaxel 等沙箱。

到了客户现场,第一件事是问安全团队允许使用哪些容器或沙箱服务。这个答案在选模型之前就决定了架构。

思路三:多智能体在 notebook 里简单,进了沙箱就难

最后一课搭建深度研究智能体,并讨论多智能体系统。演示很吸引人,但这里的文档值得细读。简单的沙箱方案只把单段代码发往隔离环境,不支持用托管智能体(managed agents)搭建的多智能体结构。要让它们跑起来,必须把整个智能体系统放进沙箱。

所以,如果客户想要一个多智能体“研究助手”,部署架构会和 notebook 版本大不相同。设计和评测的内容可以沿用,基础设施则要从头重新规划。

Monitoring and Evaluating 一课起到衔接作用:如果无法度量一个智能体,就无法向客户证明再加一个智能体有帮助。

谁适合学,按什么顺序学?

这门课适合已经熟练调用 LLM API、想从架构层面理解智能体的工程师。先看导论,然后在 Secure Code Execution 上多花时间,之后再学评测和深度研究。

学完后,去读 smolagents 官方文档中关于安全代码执行的部分,那里把局限讲得最清楚。

就职业发展而言,建议不要止步于证明自己能搭智能体。招聘经理想看到的,是你懂得如何把智能体安全地带进生产环境。

一个小型代码仓库,在同一任务上对比 CodeAgent 和 ToolCallingAgent,跑在 Docker 里,并附上一张评测结果表,比一张证书更有说服力。

简历上要写你如何隔离和度量智能体,而不只是说自己“搭建过智能体”。

54 分钟的课程足以改变你对智能体的理解。而在客户现场赢得信任的,是你清楚智能体写出的代码会在哪里运行。

这篇文章对你有帮助吗?

5 个信源
路线图上的下一篇 · 阶段 3: AI 应用这门 LangGraph 课讲清了 Agent 为何记不住纠正Harrison Chase 用 84 分钟把记忆分成语义、情景和程序三类,告诉 FDE 重复错误该在哪里修。