跳转至

术语表

一个概念只有一个名字,文档、代码、dashboard 三处用法一致。某个页面和这张表 不一致时,以这张表为准。

统一词表

术语(EN) 中文 一句话定义 详情
B = f(P, E) 行为 = f(人群, 环境) 运行时实现的恒等式:一步的行为 B_t 是行为函数作用在固定人群与当前环境上的结果,E_{t+1} = g(E_t, B_t) 把循环闭合。 总览
population (P) 人群 每次运行由 PopulationProvider.build(seed) 一次性构建出的 persona 池,每个 persona 带一个永不复用的 agent_id —— 这就是纵向主键。 一个 Study 的解剖
environment (E) 环境 人群行动的世界,由带标签的 EnvironmentLayer 沿两个轴声明(modality ∈ {physical, information} × scope ∈ {macro, local}),再加上排布在这些层上的外生条目。 总览
behaviour function (f) 行为函数 从一个 persona 及其 Observation 到一条类型化 Action 的映射,由研究自己的 DecisionModel.decide_batch 实现 —— LLM、规则或混合(Action.source ∈ {llm, rule, fallback, replay})。 架构分层
study state (σ) 研究状态 一个研究所是的一切 —— σ = (P, E_{0:T}, f, Θ) —— 落到磁盘上就是研究工作区里的那组工件;一次修改把它重写为 σ_{k+1} = h(a_k, σ_k)。 版本与研究循环
step 步 五个阶段外生更新 → 观察 → 决策 → 应用 → 记录的一轮;第 0 步只做物化(P 与 E_0,不做决策),一次运行有 n_steps 步(默认 5)。 一步,五个阶段
panel row 面板行 每个 agent 每步一条 TrajectoryRecord —— (agent_id, step) 是主键 —— 落进 DuckDB 的 panel(agent_id, step, state, action_kind, action_payload)。 一步,五个阶段
intervention 干预 环境包里从外部改变 E 的一条条目 —— 要么是 ScheduledEvent,要么是 Broadcast —— 在它 at_step 的第 1 阶段生效,早于任何 agent 观察,所以整步所有人面对同一个状态。 干预与分支
scheduled event 定时事件 数值型干预:ScheduledEvent(at_step, target_layer, op ∈ {set, add, multiply, add_pct, replace_source}, selector, property_name, value, note),按已声明的层名做校验。 干预与分支
broadcast 广播 信息型干预:Broadcast(message_id, content, channel="news", at_step, ttl=1, audience) —— 可见 ttl 步;audience == "all" 时投递到 macro_information,否则投到命中 agent 的 local_information。 干预与分支
branch 分支 与父版本唯一的差别是 at_step ≥ fork_step 的环境条目、并通过重放继承父版本早期步数的版本节点(versions.json 里 kind: "branch")。 干预与分支
fork step 分叉步 fork_step —— 分支自己计算的第一步(warm_start.resume_from + 1,必须 ≥ 1);在它之前分支就是父版本,从它开始才是反事实。 干预与分支
replay 重放 对继承过来的那些步,重新跑父版本已存下的动作 —— 只走第 1、4、5 阶段,不调模型、不产生花费 —— 所以继承来的历史与父版本完全一致(Action.source == "replay")。 干预与分支
version 版本 从第 0 步冷跑起步的版本节点(kind: "version")—— 除「只改分叉步之后的环境」以外的任何修改都会产生它:改人群 P、改行为函数 f、改运行设置 Θ,或改分叉步之前的 E。 版本与研究循环
fork 派生 只用在 study 层:fork_study() 把一个匹配到的、或标了 reference: true 的研究复制成一个新的 study_id,新研究有自己的版本历史,源研究保持只读。 版本与研究循环
study workspace 研究工作区 studies/<study_id>/ —— 装着一个研究全部工件的目录,因此也就是这个研究的完整状态。 一个 Study 的解剖
artifact 工件 一个阶段写出的那一份经过校验的文档(study.yaml、environment.json、population.json + roster.jsonl、simulation.json、study.duckdb、report.md),统一通过 write_artifact / validate_handoff 写入与回读。 一个 Study 的解剖
stage / skill 阶段 / 技能 流水线上的一步:一个 /sv-* skill,读上游工件、只写自己那一份工件、在闸门处停下 —— sv-init、sv-build-model、sv-build-environment、sv-build-population、sv-run、sv-report,外加改已有研究用的 /sv-iterate(/sv-lit 与 /sv-paper 挂在报告阶段之下)。 架构分层
grounding 真实世界锚定 grounding/grounding.json —— 便于合并的溯源侧车,逐条记录研究所依赖的真实世界事实,带 basis ∈ {sourced, proxy, assumed} 与 source.via ∈ {event_service, web_search, provider, user}。 真实世界锚定与溯源
resource manifest 资源清单 resources.json —— 即 ResourceManifest,按名字声明这个研究实际用过的 mcp_servers / datasets / tools(端点和 key 不进这里)。 外部能力
review gate 待复核 一条规则:某个阶段若是从父版本继承下来、位置在该版本 resume_from_stage 或其之后、且在本版本里没有写过叙述,就被标成 review;在它被重写或被明确确认之前,流水线指针停在这一步。 版本与研究循环
Population service 人群池服务 构建期 MCP(user_pool_survey_mcp):把一次属性请求路由到已注册的 persona 池、报告覆盖度,并按目标分布采样出 P。 外部能力
Event service 事件信号服务 构建期服务(event_tool):返回结构化的宏观 / 新闻 / 市场数据 —— list_sources、get_data、get_source_detail、search_web —— 运行时循环从不调用它。 外部能力

分支 vs. 版本 vs. 派生

这三个词不能互换。区别在于允许改什么、以及哪些步要重跑。

允许改什么 早期步 一次运行的成本 由谁写出
branch 分支 只允许改 at_step ≥ fork_step 的环境条目 通过重放继承自父版本 只跑 fork_step..n_steps create_branch(study_dir, note, fork_step=…)
version 版本 σ 里的任何东西 —— P、f、Θ,或分叉步之前的 E 没有,整个运行是冷跑 每一步都跑 create_version(study_dir, note, …)
fork 派生 一个全新的 study,源研究原封不动 不适用 —— 这是新研究 新研究的每一步都跑 fork_study(studies_root, src_id, new_id)

违约的分支会变成版本

跑批之前 check_branch_invariant() 会重新核对分支契约:人群包与 roster、研究 自己的 *.py 代码、simulation.json 的固定键(seed、decision_ref、 collector_ref、interaction_rounds、store_ref、engine_args 等)、以及 at_step < fork_step 的每一条环境条目,都必须与父版本一致。n_steps 可以不同, 也允许新增环境层。违约是降级、不报错:该条目变成 kind: "version", warm_start 被清空,运行改为冷跑,并由 downgraded_from_branch 记下原因。

已经弃用的说法

不要写 改写成 为什么
warm start / 暖启动 replay / 重放 对研究者的说法是「分支继承父版本已跑的步数」;类名 WarmStartSpec 保留下来,只是为了让早先落盘的工件还能加载。
policy shock、事件注入 intervention / 干预 一次干预恰好就是环境包里的一条 ScheduledEvent 或一条 Broadcast,没有别的东西。
子实验、变体、版本节点层面的「fork」 branch / 分支,或 version / 版本 fork(派生)只保留给 study 层。