跳转到内容

发明、使用与技术传播

本教程借助技术模拟扩展 canwu-technology,跟踪一项技术从工坊试验到本地采用和传授的全过程。你会了解它用哪些记录取代全局科技树,通用评估器如何依据数据判定试验和用途,以及可选的历史研究插件放在哪里。完整的记录模型和校验规则见技术系统。

打开 technology_diffusion.rs

浏览技术扩展

在仓库根目录运行:

Terminal window
cargo run -p canwu-technology --example technology_diffusion
adoption=Committed, scale=10, learner_knowledge=0 (opportunity is not automatic learning)
snapshot restore and exact replay match

工坊的采用记录以规模 10 正式提交。学徒的知识数为 0:开放师徒传授只是创造了学习机会,学习本身需要另外的记录。第二行确认恢复的快照和精确重放都与实际运行一致。

canwu-technology 把技术变化的每个阶段存为独立的记录,这些记录可以保存、质疑和重放:

阶段 记录 确立的事实
设计 TechniqueSpec、TechniqueRevision 技术的功能、条件组,以及一份不可变的配方或设计。修改会产生新修订,并写明其前序修订。
工作 TechnicalProgram 某个持有人在某地进行的研究、改良或培训。
试验 ExperimentAttempt、ProductionRun、AttemptObservation 由获授权的提供方返回的、在给定条件下的一次结果。
技能 CapabilityQualification 某个持有人能在某地执行某项操作,并有满足该技术资格规则的证据支持。
安装 ImplementationRecord 某地已安装的设备,含产能和可靠度。
用途 ApplicationSpec、AdoptionRecord 某地经过可行性检查后,为一种用途采用该技术。
传播 TransmissionOpportunity 通过文献、示范、师徒、器物检查、人员转移或独立研究获得的学习机会。

资源、人物、经济、信息载体和叙事由你的游戏负责;扩展负责有界、确定、经过校验的技术状态。劳动力、资本、燃料、制度阻力和政治支持都属于你的内容和游戏规则。

技术示例:研究项目、获授权的试验、资格、安装、采用和师徒传授. 查看图表源码.
查看图表源码
flowchart LR
  Program["TechnicalProgram"] --> Intent["TechnologyExecutionIntent<br/>授权试验"]
  Intent --> Attempt["ExperimentAttempt<br/>提供方结果"]
  Attempt --> Qual["CapabilityQualification"]
  Qual --> Impl["ImplementationRecord"]
  Impl --> Adopt["AdoptionRecord<br/>一种用途"]
  Impl --> Teach["TransmissionOpportunity<br/>师徒传授"]
  Teach --> Learner["学徒的<br/>TechnicalProgram"]

technology_diffusion.rs 中的 main 按顺序线性展开,每一步都清晰可见。

  1. 目录。 scenario() 把目录作为初始场景记录载入:两个 MetricSchema(以千分比计的可靠度,以及燃料成本);一个要求可靠度至少 700 的 TechniqueSpec;一个由 REFERENCE_EVALUATOR_V1 评估的 TechniqueRevision;以及一个 ApplicationSpec“为深井排水”(drain a deep working),燃料成本不超过 500 时可行。
  2. 项目。 操作者通过带请求标识的命令 apply_technology_operation_v1 启动 TechnicalProgram。辅助函数 apply_command 提交命令后结算两个边界:第一个准入命令,第二个应用变化。
  3. 试验。 操作者为提供方 reference-lab 授权一个 TechnologyExecutionIntent。提供方通过 technology_result_v1 输入返回针对这个执行意图的 ExperimentAttempt,可靠度为 820。另一个提供方 meter-reader 为同一次试验记录一条 AttemptObservation,燃料成本为 400。
  4. 资格与安装。 一条命令引用这次试验创建 CapabilityQualification,下一条命令引用该资格创建 ImplementationRecord。
  5. 采用。 evaluate_application 用该用途的可行性规则检查燃料成本。随后创建 AdoptionRecord,状态为 Committed、规模为 10,并引用安装记录和燃料观察。
  6. 传授。 学徒在另一处地点开启培训项目;操作者开放一个师徒类 TransmissionOpportunity,以安装记录作为 source_capability,并关联学徒的项目。
  7. 恢复与重放。 from_technology_snapshot_json 和 replay_technology_from_journal 重建运行时,示例断言两者都与实际运行一致。
  • 试验必须先获授权。项目对提供方的要求在结果到达时检查,因此不合要求的提供方可能先持有一个待处理的执行意图,随后结果被拒绝。
  • 每项资格都必须引用互不重复的试验,这些试验要与它的技术修订、操作和地点一致,且持有人参与过其中至少一次。资格记录的可靠度必须等于这些试验中通过的比例。处于有效状态的资格还必须达到所配置 QualificationRule 的最低要求;已停用的资格则不必。
  • 新安装必须引用当前有效的资格及其资产;试用、正式采用或重新提交采用必须引用当前有效的安装。旧的精确版本只作为历史保留,不再授予新的权利。
  • 新的实践传播必须引用在该边界中已经生效且为当前版本的精确资格或安装。之后停用来源会阻止新的传播,已有的机会保持原样。已有机会只能关闭;要恢复传授,需基于当时有效的来源新开一个机会。
  • 模拟世界之外的师傅可以作为外部传播来源(ExternalTransmissionSourceV1)被引用:它是初始场景中一条归属 canwu.technology 以外的内容记录,并附有声明的可靠度。示范、师徒和人员转移机会必须在 source_capability 与 external_source 中恰好引用一项。外部来源在模拟中没有持有人和地点,所以由目的地开启机会。
  • 行动者通过观察、技术主张或传播了解新的 TechniqueRevision;创建修订本身不改变任何人的知识。

需要在记录变化后保持原意的关系使用精确领域记录版本。DomainRecordVersionRef 同时固定记录、版本和确立该版本的证据。某项安装后来停用时,既有的采用记录仍按它当初引用的安装版本解释。

参考评估器从数据中读取指标和阈值。“造纸”“火药”“蒸汽机”等技术名称只出现在内容里。

let result = evaluate_attempt(
&technique_revision,
&technique_spec,
&metric_schemas,
&MetricContext {
values: local_measurements,
},
)?;
if result.passed {
// 这只是本次试验的证据;资格、安装和采用各自还需要获授权的操作。
}

一项技术的所有条件组都必须满足(AND);组内任一阈值满足即可(OR)。每个数值都带单位和整数尺度,因此快照、派生分支和精确重放每次都得到相同结果。

仓库测试验证同一份契约能得出以下反事实:

案例 反事实
造纸术 本地纤维和操作者证据各自都能反转同一工艺的结果。
雕版印刷 稳定的长版次通过用途判据,频繁修改的短版次不通过。
活字印刷 字符库存、排版人工、版次规模和文本改动频率能反转它相对雕版的适用性。
火药 同一批弱火药满足可见火焰用途,不满足推进用途。
蒸汽机 燃料便宜时的抽水用途通过;高成本抽水和低扭矩旋转用途不通过。

five_technology_profiles_use_one_evaluator_contract 让每项技术依次经过目录载入、授权项目命令、结果输入、边界结算和状态查询;historical_profiles_reverse_outcomes_without_case_specific_solver_code 用 evaluate_attempt() 和 evaluate_application() 验证上述反事实。运行这两个测试:

Terminal window
cargo test -p canwu-technology --test framework

细致的历史解读放在模拟内核之外的 canwu-history-research 中,基础技术记录保持不变。它提供三个可以单独启用的历史研究插件:

插件 记录的评估对象
HistoricalSourcesPlugin 文献的年代、真伪、可靠性和来源链
HistoricalPracticePlugin 工匠、工坊、实践关系、笔记摘要和负结果
ProductionArchaeologyPlugin 遗存、样品、年代和生产过程假说

每个插件只保存评估;评估所讨论的文献本体、基础试验和运行时资产仍由各自的记录保存。每条评估都记录评估者、方法及其版本、截至时间(as-of)、不确定度、摘要哈希,以及在截至时间之前已经存在的引用。反驳和取代只能指向针对同一精确对象的更早评估。引用只能证明来源存在,它是否相关、是否属实仍是评估者的判断。

评估命令属于可信上层应用的输入。如果玩家需要先取得相关信息,请在自己的研究流程插件中校验后再提交命令。HistoricalAnalysis 是上层应用的只读查询。你可以通过 HistoricalResearchSuite 一个都不启用、只启用一个,或同时启用三个。

技术扩展和每个历史研究插件各自有每个边界和总量上限;超出预算的边界会拒绝其中的新操作,后续边界照常运行。全部上限见技术系统。

家用硬件基准记录了该工作负载在较早引擎版本上的表现;请在渲染、资源和其他月度系统同时运行时重新测量。

查看家用硬件基准

浏览历史研究插件