发明、使用与技术传播
本教程借助技术模拟扩展 canwu-technology,跟踪一项技术从工坊试验到本地采用和传授的全过程。你会了解它用哪些记录取代全局科技树,通用评估器如何依据数据判定试验和用途,以及可选的历史研究插件放在哪里。完整的记录模型和校验规则见技术系统。
打开 technology_diffusion.rs
浏览技术扩展
在仓库根目录运行:
cargo run -p canwu-technology --example technology_diffusionadoption=Committed, scale=10, learner_knowledge=0 (opportunity is not automatic learning)snapshot restore and exact replay match工坊的采用记录以规模 10 正式提交。学徒的知识数为 0:开放师徒传授只是创造了学习机会,学习本身需要另外的记录。第二行确认恢复的快照和精确重放都与实际运行一致。
每一步一种记录
Section titled “每一步一种记录”canwu-technology 把技术变化的每个阶段存为独立的记录,这些记录可以保存、质疑和重放:
| 阶段 | 记录 | 确立的事实 |
|---|---|---|
| 设计 | TechniqueSpec、TechniqueRevision |
技术的功能、条件组,以及一份不可变的配方或设计。修改会产生新修订,并写明其前序修订。 |
| 工作 | TechnicalProgram |
某个持有人在某地进行的研究、改良或培训。 |
| 试验 | ExperimentAttempt、ProductionRun、AttemptObservation |
由获授权的提供方返回的、在给定条件下的一次结果。 |
| 技能 | CapabilityQualification |
某个持有人能在某地执行某项操作,并有满足该技术资格规则的证据支持。 |
| 安装 | ImplementationRecord |
某地已安装的设备,含产能和可靠度。 |
| 用途 | ApplicationSpec、AdoptionRecord |
某地经过可行性检查后,为一种用途采用该技术。 |
| 传播 | TransmissionOpportunity |
通过文献、示范、师徒、器物检查、人员转移或独立研究获得的学习机会。 |
资源、人物、经济、信息载体和叙事由你的游戏负责;扩展负责有界、确定、经过校验的技术状态。劳动力、资本、燃料、制度阻力和政治支持都属于你的内容和游戏规则。
示例如何运行
Section titled “示例如何运行”查看图表源码
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 按顺序线性展开,每一步都清晰可见。
- 目录。
scenario()把目录作为初始场景记录载入:两个MetricSchema(以千分比计的可靠度,以及燃料成本);一个要求可靠度至少 700 的TechniqueSpec;一个由REFERENCE_EVALUATOR_V1评估的TechniqueRevision;以及一个ApplicationSpec“为深井排水”(drain a deep working),燃料成本不超过 500 时可行。 - 项目。 操作者通过带请求标识的命令
apply_technology_operation_v1启动TechnicalProgram。辅助函数apply_command提交命令后结算两个边界:第一个准入命令,第二个应用变化。 - 试验。 操作者为提供方
reference-lab授权一个TechnologyExecutionIntent。提供方通过technology_result_v1输入返回针对这个执行意图的ExperimentAttempt,可靠度为 820。另一个提供方meter-reader为同一次试验记录一条AttemptObservation,燃料成本为 400。 - 资格与安装。 一条命令引用这次试验创建
CapabilityQualification,下一条命令引用该资格创建ImplementationRecord。 - 采用。
evaluate_application用该用途的可行性规则检查燃料成本。随后创建AdoptionRecord,状态为Committed、规模为 10,并引用安装记录和燃料观察。 - 传授。 学徒在另一处地点开启培训项目;操作者开放一个师徒类
TransmissionOpportunity,以安装记录作为source_capability,并关联学徒的项目。 - 恢复与重放。
from_technology_snapshot_json和replay_technology_from_journal重建运行时,示例断言两者都与实际运行一致。
记录执行的规则
Section titled “记录执行的规则”- 试验必须先获授权。项目对提供方的要求在结果到达时检查,因此不合要求的提供方可能先持有一个待处理的执行意图,随后结果被拒绝。
- 每项资格都必须引用互不重复的试验,这些试验要与它的技术修订、操作和地点一致,且持有人参与过其中至少一次。资格记录的可靠度必须等于这些试验中通过的比例。处于有效状态的资格还必须达到所配置
QualificationRule的最低要求;已停用的资格则不必。 - 新安装必须引用当前有效的资格及其资产;试用、正式采用或重新提交采用必须引用当前有效的安装。旧的精确版本只作为历史保留,不再授予新的权利。
- 新的实践传播必须引用在该边界中已经生效且为当前版本的精确资格或安装。之后停用来源会阻止新的传播,已有的机会保持原样。已有机会只能关闭;要恢复传授,需基于当时有效的来源新开一个机会。
- 模拟世界之外的师傅可以作为外部传播来源(
ExternalTransmissionSourceV1)被引用:它是初始场景中一条归属canwu.technology以外的内容记录,并附有声明的可靠度。示范、师徒和人员转移机会必须在source_capability与external_source中恰好引用一项。外部来源在模拟中没有持有人和地点,所以由目的地开启机会。 - 行动者通过观察、技术主张或传播了解新的
TechniqueRevision;创建修订本身不改变任何人的知识。
需要在记录变化后保持原意的关系使用精确领域记录版本。DomainRecordVersionRef 同时固定记录、版本和确立该版本的证据。某项安装后来停用时,既有的采用记录仍按它当初引用的安装版本解释。
一个评估器适用所有技术
Section titled “一个评估器适用所有技术”参考评估器从数据中读取指标和阈值。“造纸”“火药”“蒸汽机”等技术名称只出现在内容里。
let result = evaluate_attempt( &technique_revision, &technique_spec, &metric_schemas, &MetricContext { values: local_measurements, },)?;
if result.passed { // 这只是本次试验的证据;资格、安装和采用各自还需要获授权的操作。}一项技术的所有条件组都必须满足(AND);组内任一阈值满足即可(OR)。每个数值都带单位和整数尺度,因此快照、派生分支和精确重放每次都得到相同结果。
五项技术,一份契约
Section titled “五项技术,一份契约”仓库测试验证同一份契约能得出以下反事实:
| 案例 | 反事实 |
|---|---|
| 造纸术 | 本地纤维和操作者证据各自都能反转同一工艺的结果。 |
| 雕版印刷 | 稳定的长版次通过用途判据,频繁修改的短版次不通过。 |
| 活字印刷 | 字符库存、排版人工、版次规模和文本改动频率能反转它相对雕版的适用性。 |
| 火药 | 同一批弱火药满足可见火焰用途,不满足推进用途。 |
| 蒸汽机 | 燃料便宜时的抽水用途通过;高成本抽水和低扭矩旋转用途不通过。 |
five_technology_profiles_use_one_evaluator_contract 让每项技术依次经过目录载入、授权项目命令、结果输入、边界结算和状态查询;historical_profiles_reverse_outcomes_without_case_specific_solver_code 用 evaluate_attempt() 和 evaluate_application() 验证上述反事实。运行这两个测试:
cargo test -p canwu-technology --test framework可选的历史研究插件
Section titled “可选的历史研究插件”细致的历史解读放在模拟内核之外的 canwu-history-research 中,基础技术记录保持不变。它提供三个可以单独启用的历史研究插件:
| 插件 | 记录的评估对象 |
|---|---|
HistoricalSourcesPlugin |
文献的年代、真伪、可靠性和来源链 |
HistoricalPracticePlugin |
工匠、工坊、实践关系、笔记摘要和负结果 |
ProductionArchaeologyPlugin |
遗存、样品、年代和生产过程假说 |
每个插件只保存评估;评估所讨论的文献本体、基础试验和运行时资产仍由各自的记录保存。每条评估都记录评估者、方法及其版本、截至时间(as-of)、不确定度、摘要哈希,以及在截至时间之前已经存在的引用。反驳和取代只能指向针对同一精确对象的更早评估。引用只能证明来源存在,它是否相关、是否属实仍是评估者的判断。
评估命令属于可信上层应用的输入。如果玩家需要先取得相关信息,请在自己的研究流程插件中校验后再提交命令。HistoricalAnalysis 是上层应用的只读查询。你可以通过 HistoricalResearchSuite 一个都不启用、只启用一个,或同时启用三个。
技术扩展和每个历史研究插件各自有每个边界和总量上限;超出预算的边界会拒绝其中的新操作,后续边界照常运行。全部上限见技术系统。
家用硬件基准记录了该工作负载在较早引擎版本上的表现;请在渲染、资源和其他月度系统同时运行时重新测量。
查看家用硬件基准
浏览历史研究插件