Hugging Face 推出 Agents.js:让大模型在 JS 环境调用多模态工具
Hugging Face 推出 JavaScript 库 Agents.js,让大语言模型能在浏览器或 Node 环境中调用多模态工具。它开箱即带文生图、图像描述等能力,并支持接入自定义模型与工具。不过目前它通过在环境中执行生成代码运作,官方提醒在不可信环境存在安全风险。

Agents.js 是 Hugging Face 针对 JavaScript 生态推出的智能体库,能直接在浏览器或者 Node.js 环境里,让大语言模型自主调用多模态工具。
以往做智能体开发多半依赖 Python 生态,前端或全栈工程师想在 Web 端调用工具往往要绕一大圈。Agents.js 的核心思路很简单:给模型一个自然语言指令,它会自动写出一段调用各种工具的 JavaScript 异步函数,再交给执行环境去运行。
它开箱能做什么
通过 npm 安装 @huggingface/agents 之后,开发者只要初始化一个 HfAgent 实例,就能用自然语言指挥它做事。
比如输入「画一只戴高顶礼帽的橡皮鸭,然后为这张图配上说明文字」,模型就会自动串联文生图和图生文工具,生成并执行对应的链式调用代码。
它天生支持多模态输入,允许前端直接传入网页里的 FileList 文件对象。例如把一张照片传给它并要求读出描述,它能自动调度图像转文字和文字转语音工具,最后返回文字、图片甚至音频 Blob。
怎么自定义与安全隐患
默认情况下,Agents.js 使用 Hugging Face 托管的开源模型 OpenAssistant/oasst-sft-4-pythia-12b-epoch-3.5。但它并不绑定死某一个模型,只要提供一个接收字符串并返回字符串 Promise 的异步函数,开发者就能把它换成 OpenAI 等任意商用接口。
自定义工具也相当直观。开发者只需定义工具名称、功能描述、几个输入输出示例以及具体的异步执行逻辑,就能直接塞进 Agent 的工具库中。
不过,目前它最大的坑在于执行机制。无论是直接调 run 还是走 evaluateCode,底层都是在浏览器或 Node 环境中动态执行模型生成的任意 JavaScript 代码。Hugging Face 官方特意提醒,不要在不可信的环境下直接用 run,最好先用 generateCode 审查代码再决定是否执行。
如果你想快速体验,Hugging Face 已经上线了一个由 Open Assistant 30B 驱动的在线 Demo,可以直接体验调用 Hub 上各种工具的效果。
为什么重要
对于 Web 开发者和前端工程师来说,Agents.js 提供了一条不碰 Python 就能直接把玩 AI 智能体的捷径。它把模型调度、代码生成与前端常见的 Blob、FileList 数据结构天然打通,适合用来快速做富媒体交互原型。
但动态执行模型生成代码这一设计,在生产环境显然是个明显的安全隐患。我们认为,在缺乏严格沙箱隔离机制之前,它更适合在本地开发、内网工具或者受控实验里试水,想要推到面向大众的客户端还需要多加小心。
来源 (1)
- huggingface.co(在新标签页打开)原文huggingface.co