Rna Agent
Rna SDK

决策内核

JEV 判断的传输、阈值、缓存、账本,以及问题模板应该放在哪里。

决策内核是 Rna 调用 JEV 的唯一通道。代码分布在四个位置:

位置内容
packages/sdk/src/decision-kernel.mjs传输、缓存、账本
packages/sdk/src/decision-templates.mjs阈值、问题模板,以及把概率合成为结论的函数
packages/sdk/src/decision-state.mjs状态构建
prototypes/control-center/decision-service.mjs宿主的调用点

模式与后端

  • 模式:off、shadow(只记录,不影响行为)、active。
  • 后端:typesafe(JEV)或 llm(由语言模型担任判断)。
  • 每个结果都标明 source:judge 表示来自判断,fallback 表示判断不可用时的规则兜底,rule 表示宿主的确定性规则。
  • 在 Rna 应用里,判断点都内置,默认 active,只有少数几个处于 off 或 shadow;模式和后端只能用环境变量 RNA_JEV_MODE、RNA_JEV_MODES、RNA_JEV_BACKEND 做诊断覆盖。后端按 JEV 密钥、快速模型的顺序自动选择,用快速模型(llm)时所有阈值加 0.1。

阈值

阈值按后果轻重分档,常量是 decision-templates.mjs 中的 DECISION_THRESHOLDS。是非题的置信度取 max(p, 1 - p):

档位阈值
low0.60
medium0.75
high0.85

常量里另有下限 floor 0.5、快速模型的偏移 llmOffset 0.1,以及按判断点单独设定的数字阈值(例如有的点用 {act, ask} 两个阈值)。先在带标注的样本上看真实分布,再为每个问题选档位。不要从别的问题或别的题型照搬。

新增一个判断点

  1. 在 decision-templates.mjs 写问题模板和合成函数。问题写成字面可观察的情况,一个问题只判断一件事。
  2. 把模板连同每个问题 ID 登记到 TEMPLATE_SPECS。漏登记时内核会以 invalid_assessment_plan 拒绝整个计划,packages/sdk/test/decision-templates-valid.test.mjs 负责守住这一点。
  3. 在宿主的 decision-service.mjs 里登记这个点(标题、风险档、作用),它才会出现在设置的“判断”记录里。
  4. 在 decision-state.mjs 构建状态:只放判断需要的文本,长度、数量、日期在代码里算好再分档。
  5. 用探针在带标注的样本上跑一遍,把分布记在实测报告旁边,再选阈值。

探针

POST /api/v2/decision-kernel/probe
Content-Type: application/json

{ "state": "…", "questions": { "…": { "type": "noul", "instructions": "…", "criteria": "…" } } }

探针用应用里已配置的密钥发一次原始调用,不经过阈值、缓存和账本。可复用的实验脚本是 prototypes/control-center/benchmark/jev-capability-probe.mjs;设置 RNA_STATE 指向主检出的 .state/state.json 可以读取真实规则正文。

本页内容