Strands 发布开源决策模型 Decider 2B:专为快速实验与本地开发设计
Strands Labs 近日宣布推出 Strands Decider 2B,这是一个参数量为 20 亿的小型开源决策模型。该模型旨在支持快速实验、本地开发及创新应用,是继今年早些时候“线程实验室”(Thread Lab)成立后的又一重要进展。

决策模型的技术定位与优势
随着 TypeSafe AI 本月早些时候推出 Jev,一类新型决策模型或系统一模型逐渐受到关注。与传统能够生成任意输出的大语言模型(LLM)不同,决策模型专注于在预设选项中进行选择并分配数值分数。例如,判断某短语是否为英语、祖鲁语或荷兰语,或对文档情感倾向进行 0 到 1 的评分。
这种架构通过牺牲一定的灵活性,换取了更高的效率与可靠性。在相同参数规模下,决策模型运行速度更快,始终从选定选项中产生答案,且具备极低的延迟特性。此外,决策模型能为每个决策提供高质量的可靠性得分,这是传统边界 LLM 推理 API 难以实现的。尽管在处理复杂问题、代码生成、聊天交互及文档摘要等任务上表现不如推理模型,但其高效的多问题并行处理能力使其非常适合驱动基于 Strands Harness SDK 构建的代理工作流程。
模型架构解析
Strands Decider 2B 的核心架构基于预训练模型 Qwen3.5-2B。开发者移除了原有的 LM 头部,剥夺其文本生成能力,转而引入一个指针头(Pointer Head)。该指针头通过对每个选项位置的隐藏状态与
图 1: Strands Decider 2B 架构示意图。
当前发布的版本为 v19,代表了该架构的第二代主要迭代。早期版本曾使用插槽头(Slot Head),但实测性能明显较差。经过多代演进,最终确定的指针头方案显著提升了模型表现。
性能基准测试
团队针对准确性、校准性和延迟性三个维度对模型进行了评估。在公开数据集 JevBench 上,Strands Decider 2B 展现了良好的精度与校准度。具体而言,在同类 2B 规模的 33 个模型中,其准确率排名第 3;在排除略超 2B 参数的模型后,其在 30 个模型中的校准度排名第 1。
图 2: 训练轨迹上的精度和校准(布赖尔分数)变化。随着架构迭代,两项指标在 JevBench 公共集合上均有所提升。
在延迟方面,Strands Decider 2B 可在广泛可用的硬件上实现约 115ms 的中位本地决策时间。测试数据显示,在 Nvidia RTX 3090 显卡上,决策时间与任务大小呈大致线性关系。即便在 M3 MacBook 上,小任务的中位延迟也仅为 153ms 左右。
图 3: 决策延迟作为任务大小的函数(以代币计),基于本地 Nvidia RTX 3090 与模型 v18 版本测量。
为何选择 20 亿参数规模?
选择 20 亿参数主要基于两方面考量:一是降低实验门槛,允许用户在现有硬件上进行训练和测试,从而加速创新迭代;二是平衡性能与资源消耗,该规模足以处理有意义的工作负载。测试表明,Strands Decider 在简单任务上的执行准确率达到 100%,这类任务常映射至代理解决的基础性问题场景。
应用场景与集成示例
该模型适用于模型路由、工具选择、评估、防护栏、记忆管理、上下文管理及政策分类等多种场景。开发者可构建混合代理,利用 LLM 处理高难度决策,同时由 Decider 模型承担默认的低成本、低延迟决策任务。
用户可通过命令行接口快速体验:
pip install strands-decider以下是一个模型选择示例,要求根据状态和问题从 billing、sales、retail 中选择团队:
strands-decider ask StrandsAgents/strands-decider-2B-hobson-v19 \ --state "Help! My payouts have been failing for 3 days! " \ --choice "Which team should handle this?=billing,sales,retail"输出结果展示了最高概率得分的答案及其置信度:
choice_0 -> billing (confidence 0.768) billing 0.845 retail 0.091 sales 0.064代理干预机制示例
GitHub 仓库提供了在 Strands 代理中使用 Decider 模型的示例。在一个演示场景中,代理被配置为在调用 get_weather 工具前,先由本地运行的 Strands Decider 2B 审查对话和拟议的工具调用。Decider 负责回答两个二元问题:参数值是否基于用户实际提供的信息,以及此时调用工具是否为时过早。
QUESTIONS = { "args_grounded": Decider.noul( "Are the tool's argument values grounded in facts the user actually provided?", { "true": "every argument value traces back to something the user said", "false": "an argument value was guessed or invented, not stated by the user", }, ), "premature": Decider.noul( "Is it premature to call this tool now, before clarifying with the user?", { "true": "the assistant should ask a clarifying question before calling the tool", "false": "there is nothing left to clarify; calling now is appropriate", }, ),}该模式通过 InterventionHandler 实现,在 before_tool_call 阶段介入。若检测到参数未接地或调用过早,代理将拒绝执行工具并转向询问用户,而非自信地报告错误信息。这种轻量级决策机制有效弥补了传统 LLM 流程中的逻辑漏洞。
获取方式
Strands Decider 2B 已完全开源,代码托管于 GitHub,最新快照可在 Hugging Face 获取。所有相关数据均已开放,供开发者下载、使用及进一步研究。





