科学工作流与结果

Scientific Agent 的重点不是让模型连续输出一段很长的文字,而是让每一步研究都留下可检查的依据。一次运行从研究合同开始,以指标、产物和完整谱系结束。

一次研究如何推进

  1. 研究合同固定目标、验收条件、预算、输入和允许使用的能力。
  2. Scientific Reasoner根据当前状态提出下一步,例如运行实验、分析结果或结束研究。
  3. 插件执行明确的能力调用,返回指标、观察和文件产物。
  4. Runtime保存不可变产物和事件,更新预算与验收进度。
  5. 若条件尚未满足且预算仍有余量,Reasoner 根据新证据继续;满足全部条件和产物要求后才成功。

这里的“不可变”意味着旧产物不会被新结果覆盖。改进模型、修订假设或重新评估都会生成新版本,并保留它们之间的父子关系。

实验、指标和观察

插件一次成功调用通常会返回三类内容:

  • 指标:供验收条件比较的数字,例如 balanced_accuracyquality_factor
  • 观察:便于人和 Reasoner 阅读的结构化摘要。
  • 产物:数据集、模型、预测、分析、日志、图表或报告等文件。

指标通过不等于研究必然完整。例如模型准确率已经达标,但合同还要求验证结果和科学报告时,运行会继续等待这些产物。

在控制室中,优先检查:

  • State 中的当前状态和失败原因;
  • Metrics 与 Budget 中的指标来源和剩余预算;
  • Artifacts/Reports 以及 Lineage 中的实际交付物;
  • Jobs 和 Model calls 中的执行与模型调用记录。

分析

scientific.analysis.analyze 可以把数据集、训练模型和评估结果整理为框架无关的分析产物。若还提供公开预测和评估特征,它可以进一步给出阈值扫描、区域表现和空间结果。

分析不会读取评估器私有标签,也不会替代受信任评估。它的用途是解释已经产生的结果,并为后续证据提取提供稳定输入。

通过 API 可查看:

curl -sS "http://127.0.0.1:8000/api/v1/runs/$RUN_ID/analyses" | jq

证据与主张

Scientific Knowledge 插件把“结果文件”提升为可追踪的知识:

  • Evidence(证据)记录观察、来源产物、置信度、适用范围和局限。
  • Claim(主张)必须引用支持它的证据,并保留自己的范围与局限。

例如,“边界区域错误率明显较高”可以是从分析产物提取的证据;“模型在决策边界附近需要更多训练样本”则是有证据支撑、但仍可被验证或推翻的主张。

规则式知识能力不会调用新的 LLM,也不会凭空发明结论。你可以在 Knowledge 检查器或 /evidence/claims 端点中查看来源链。

假设与版本

假设包含陈述、支持主张、置信度以及明确的验证要求。修改假设不会覆盖旧版本,而会形成 supersedes 关系。

一个好的假设应包含:

  • 可以被反驳的陈述;
  • 适用条件和范围;
  • 支持它的主张或证据;
  • 什么观察算支持、什么观察算否定。

可通过 Scientific Command 提交假设,或让启用相应工作流的 Reasoner 安排:

{
  "command_type": "SubmitHypothesis",
  "statement": "Boundary-focused samples improve boundary accuracy",
  "confidence": 0.65,
  "claim_refs": ["ARTIFACT_ID"],
  "conditions": [
    {"metric": "group.boundary.accuracy", "operator": ">=", "value": 0.85}
  ]
}

验证计划与验证结果

验证是一个有审批边界的流程:

  1. 为既有假设创建与具体工具无关的验证计划。
  2. 检查目标、参数、预期观察和成功条件。
  3. 明确批准计划。
  4. 请求一个可用插件执行验证实验。
  5. 把实验产物和逐项条件判断记录为验证结果。
  6. 根据结果更新假设状态,生成新版本。

只有在配置中启用时,普通研究循环才会请求验证动作:

workflow:
  scientific_verification:
    enabled: true

审批不会自动把抽象实验类型映射到任意插件。运行必须已经授权一个能够完成该实验的能力;否则会以清楚的缺失能力状态停止,等待人工调整。

受信任评估

受信任评估器与普通研究插件不同:它可以访问为评估保留的私有目标,但这些私有产物不会进入 Reasoner 上下文、普通产物列表或研究流导出。

当条件写有:

require_trusted: true

普通插件即使报告同名指标,也不能让条件通过。适合模型选择的常见流程是:

  1. 研究插件产生公开评估输入和预测;
  2. 受信任评估器按 evaluation_id 找到匹配的私有目标;
  3. 评估器生成带来源的可信指标与评估产物;
  4. Criteria Engine 使用可信指标决定是否达标。

科学报告

scientific.report.generate 根据产物图生成 Markdown 报告,并可生成独立 SVG 图表。报告引用已有实验、数据、模型、评估和分析产物,不会重新跑模型或评估器。

建议在报告中确认:

  • 目标和验收条件是否与研究合同一致;
  • 每个关键数字能否追溯到产物;
  • 局限和失败尝试是否被保留;
  • 图表是否为独立可打开的文件,而不是只存在于页面截图中。

运行何时算完成

成功需要同时满足:

  • 所有验收指标;
  • 所有要求使用可信来源的限制;
  • 最终预测器合同(若启用);
  • 科学产物完整性合同(若启用)。

Reasoner 提出 DONE 但要求的产物仍缺失时,Runtime 会拒绝提前结束。预算耗尽、能力缺失、暂停、取消和执行失败也都有独立状态,不会被包装成“成功但有警告”。

运行成功后研究状态会冻结。需要继续探索时,应复制配置并创建新运行,而不是修改旧事件。

交付结果

有两种常见交付方式:

  • 科学导出:面向审阅者,包含报告、模型和必要元数据,适合移交一个成功结果。
  • Runtime 备份:面向恢复,包含机器状态和所有运行数据,适合迁移或灾难恢复。

二者用途不同。导出不能代替完整备份;备份也不是为读者整理好的最终报告。

找到 条结果:“

    没有找到匹配结果:“