Show HN:Strot – 一次编译 LLM 意图,本地永久执行决策

Hacker News Top 工具

摘要

Show HN:STROT,一个开源「决策编译器」,用 LLM 编译一次意图,之后在本地以 144M 小模型零成本执行分类、评分与路由决策,附带校准与置信度门控保证。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/10/19 05:00

strot-ai/Project-STROT 来源: https://github.com/strot-ai/Project-STROT

⬢ STROT

开放式决策编译器

用 LLM 只编译一次你的意图,然后永远对每条记录做决策——分类、打分、路由——输出类型安全、带概率与置信度的 JSON,运行在你自己的硬件上,边际成本为零。

PyPI License Tests Python

Website (https://strot.ai) · 文档 · 基准测试 · PyPI

Agent 留在编译期,永不出现在运行期。

pip install strot-ai
import strot

result = strot.run(
    tickets,
    query="将收到的支持工单分流到正确的工作流。",
    action_registry={
        "billing_dispute": "退款、发票更正、重复扣费",
        "technical_defect": "崩溃、故障、功能异常",
    },
    llm="anthropic/claude-opus-4-8",  # 仅在首次编译时使用一次
)

for o in result.outcomes:
    print(o["action"], round(o["confidence"], 2))
# billing_dispute 0.97
# technical_defect 0.94

LLM 只在编译期运行一次。生产环境是一个冻结的、自包含的 Python 产物:一个轻量的本地决策模型仲裁每条记录,运行时不生成任何内容,所有输出都有边界,低置信度的记录会弃权而不是瞎猜。

STROT = Agentic Schema 意图 + 编译器 & 状态 + 代码 + 执行 + NLU ⟹ JSON 决策(分类 · 打分 · 路由 · 类型化回答)

工作原理

编译(每个意图 + schema 仅一次)
意图 + 样本 ─▶ 合成 ─▶ 黄金门槛 ─▶ 教师标注 ─▶ 校准(标注、
(你的已知    (标注一个   (拟合投影,  阈值)   置信度处理器)
答案必须通过) 样本,一次)    阈值)
                │
                ▼
          冻结产物(.py)

运行期(每条记录,永远如此)
记录 ─▶ 投影 ─▶ 决策模型 ─▶ 置信度门槛 ─▶ 类型化 JSON
(已编译)   (144M,CPU,  (决定或    (约 60 ms)              弃权)

两个接口

run() —— 将每条记录路由到某个 action,并执行对应的编译后处理函数。

decide() —— 针对每条记录回答类型化问题(选择 / 打分 / 布尔):

result = strot.decide(records, questions={
    "is_bug_report": {"type": "boolean", "instructions": "是否提到崩溃/错误?"},
    "customer_sentiment": {"type": "score", "min": 1, "max": 5, "instructions": "1 愤怒,5 满意"},
    "routing_bucket": {"type": "choice", "options": ["billing", "engineering", "spam"]},
})
# → {"booleans": {...}, "scores": {...}, "choices": {...}}
#   附带概率 + 置信度

实测数据

真实模型(SupersonicLabs/Julia-1,144M,CPU)、真实数据集、干净的 Docker 容器:

结果
有据可依的路由准确率(398 条记录)编译后 92.5% vs 原始 74.8% —— 在同一个模型上编译器带来 +18pp
语义文本(AG News,未见标签)编译后 86.7% vs 原始 72.7%(+14pp)
类型化决策 vs 主流托管决策 API 官方示例几乎一致(情感 1.79 vs 1.8)
延迟 / 边际成本 / 每条记录的 LLM 调用数~60 ms · $0 · 0

复现全部结果:benchmarks/ —— 失败案例同样一并公开。

与众不同之处

  • 一次编译,永远决策 —— 内容寻址的产物缓存;schema 漂移只会触发恰好一次重新编译。
  • 黄金记录准入 —— 产物必须先通过你已知的答案,才能投入服务。
  • 拟合的保证 —— 温度缩放 + 分裂共形预测,内建开箱即用:已派发的决策在全部记录中出错比例 ≤ α(边际);其余记录弃权。
  • 实测而非猜测 —— 编译器会评估标签方案的质量,并可训练一个蒸馏头,只保留在留出数据上胜过基线的部分。
  • 0% 结构性幻觉 —— 输出是对你注册表的选择与计算;运行期不生成任何内容。
  • 与模型无关 —— 决策模型是一个可插拔槽位(nlu=):默认使用本地 Julia-1,也可接入托管 API,或任何可直接替换的专用模型。

安装

pip install strot-ai           # 核心:纯标准库
pip install strot-ai[local]    # + 本地决策模型(torch/transformers)
pip install strot-ai[hosted]   # + openai,用于托管决策运行时
pip install strot-ai[anthropic] # + anthropic,用于合成器

将本地模型烘焙进你的镜像,实现离线生产部署:

RUN pip install strot-ai[local] \
    && python -c "import strot; strot.prefetch_nlu(local_dir='/opt/julia-1', install=True)"
ENV STROT_NLU_CHECKPOINT=/opt/julia-1

(切勿执行 pip install julia —— 那是无关的包。)

文档

DEVELOPERS.md —— 架构、编译生命周期、校准语义与注意事项、部署、模型替换、完整 API 参考。

许可证

MIT。默认决策模型:Apache-2.0(SupersonicLabs/Julia-1)。实现了源自 STROT(arXiv:2505.01636)的思路。

相似文章

LEV:用循环决策模型实现快速与深度兼备的思考

Hugging Face Daily Papers

LEV 是一种“系统1.5”决策模型,通过循环运行主干网络并在每轮后对选项打分来延长思考,而无需生成思维链,单一检查点即可在任意推理深度作答。实验显示 Lev-2.6B 在 JevBench 上从单轮 63.2% 提升至四轮 76.2%,且一个轻量停止器可在几乎无精度损失的情况下节省 15-24% 的计算。

我们自己的 Jev:单次前向传播中的类型化决策,从内部评判模型到开放 LoRA 模型

arXiv cs.CL

这篇论文介绍了一种“类型化决策”的系统 1 接口:通过一次前向传播,直接从模型的 logits 或小型分类头输出固定选项的概率,用于替代昂贵的前沿大语言模型评判器。作者部署了一个自托管的秩为 16 的 LoRA 评判器,对 14.8 万条智能体编码会话记录进行分流,成本仅为前沿模型评判器的约 1%;并在 JevBench 上使用 350 亿参数的开源模型达到 79.3%,与商业参考系统(73.0%)无显著差异。