Llama 4 本地工具调用:模型、运行时与权限边界
Llama 4 Scout 与 Maverick 在 2025 年 4 月已经公开,但“支持工具调用”不能理解为下载权重后就得到一个安全 Agent。模型只生成候选调用;聊天模板和推理运行时把它编码、解析;应用网关验证权限;真正的函数才产生副作用。任何一层都可能失败,本地部署也不会自动消除风险。
先选择能实际运行的模型
官方资料把 Scout 描述为 17B active、16 experts,Maverick 为 17B active、128 experts;总参数、量化方式、KV cache 和上下文长度共同决定显存,而不是只看 active parameters。官方所说的单张 H100 或单台 H100 主机是特定精度与配置下的能力,不代表普通消费显卡可以复现。
部署前测量权重占用、峰值 KV cache、首 token 延迟、吞吐和目标上下文,不要直接把官方最大上下文当生产设置。许可证、访问条款与模型卡也属于交付物。若硬件不足,选择更短上下文、量化或托管端点,但记录其对质量的影响。
四层边界必须分开
第一层是模型与官方 chat template;第二层是支持该模板的运行时;第三层是把结构化输出映射为已注册函数的 harness;第四层是保存凭据和授权规则的执行网关。不要让模型输出直接进入 eval、shell、SQL 或任意 HTTP 客户端。
工具注册表可以只有三个字段:固定名称、严格输入 schema 和本地 handler。解析失败返回结构化错误;未知名称直接拒绝;字符串参数设置长度和格式限制。路径在工作目录下解析后再次校验,URL 只允许受信任 host,数据库操作使用参数化查询。
权限要与模型上下文隔离
模型不需要看到 API token。执行器根据当前用户与任务获得短期、最小权限凭据。读取和写入使用不同工具;删除、发布、购买与权限修改在实际参数生成后等待人工确认。批准记录包含调用 id、工具、参数摘要、批准者和过期时间,修改参数后原批准失效。
检索到的本地文件也可能含提示注入。把文档内容标为不可信数据,不允许其中的“指令”改变工具集合或系统策略。模型建议调用只是建议,网关根据真实身份重新授权。
一个可恢复的本地循环
循环保存模型 id、量化版本、模板版本、prompt hash、每个调用 id 与结果。只读瞬时失败可以有限重试;写操作使用业务幂等键并先查询是否已提交。相同错误重复两次就停止。设置步骤、token、时间和工具调用预算,并提供取消信号。
工具结果只返回完成下一步需要的字段。异常被映射为 invalid_arguments、permission_denied、temporary_failure 或 conflict,让模型能选择询问、修正或结束,而不是看到内部堆栈和密钥。
用轨迹而不是聊天印象验收
离线数据集应包含正常读取、缺少参数、越权对象、路径穿越、提示注入、工具超时、重复写入与取消。断言模型是否选择正确工具固然重要,更要断言网关在错误建议下仍然安全。比较模型或量化方案时固定模板、工具、温度与预算,分别记录任务成功和安全违规。
本地工具调用的价值是数据与运行控制权更接近应用,并非模型天然可信。把 Llama 4、运行时、解析器与权限网关当成四个可替换模块,才能升级其中一层而不悄悄改变其余合同。最重要的成功指标不是模型“会调用工具”,而是系统在它调用错误工具时仍不会越权。