通用模型
设计的权威是 contracts/model.json:第 10 版,11 组 73 个元素,词表轴的实数以生成物为准,另有分类规则、展示规则、格式提案和已定的待定项。本页是摘要。元素的定义、字段和规则以模型为准,用 tools/show-element.ts 读:
node tools/show-element.ts B01 W06 # 元素的定义、字段与规则
node tools/show-element.ts --list # 全部元素
node tools/show-element.ts --vocab partition
node tools/show-element.ts --pending # 待定项与决定
本页与模型不一致时以模型为准。第一个里程碑怎样实现见 Hub r4 架构。
Hub 做什么
Hub 是标准 MCP 服务器(D06):本地 Circle、bot 和其他客户端共用同一组工具。模型的循环、规划、填槽和归因提议都在客户端;Hub 只运行确定性函数,不调用任何模型,不生成内容。需要判断的知识处理在客户端(用 Circle 内核):候选留在 Circle 本地,成为事实后经独立回注运行交 Hub,Hub 用确定性规则核验(路径存在、引文逐字出自原件、不越过声明;已实现)。它分发任务包,锁定运行用到的版本,在边界校验交回的结果,把精确值解析成引用,并把一切记成只追加的记录。共享目标上的效果只由 Hub 经派发边界发出。
三条不变量
- I01 精确值与产物:模型写下的每个精确值都在边界解析成引用;未判定的产出过了判定才成为交付物;能确定性生成的产物不让模型写。
- I02 事实的来源:事实只来自版本化规则和经完整性校验的目标观察,由 Hub 在边界重跑;判定只在有“源 + 确定性逻辑”的地方作出。
- I03 终态不升级:每个条目每层有明确终态,传递中不升级;未知不改写为部分,也不显示为失败。
十一组
| 组 | 元素 | 内容 |
|---|---|---|
| 基本记录 | B01–B08 | 主张、源文件、引用、许可、动作记录、效果记录、请求、调用日志 |
| 主张属性 | A01–A06 | 来源类型、依据等级、来源角色、独立性、覆盖边界与控制区间、未知 |
| 判定与终态 | V01–V08 | 判定、判断、层终态、归责、分区清单、交付规则、重复策略、假设集 |
| 工作结构 | W01–W10 | 条目与条目投影、要求项、工作流、判定形状与判定台账、中间表示与槽位、运行、提交、校验结果、触发、判据变更声明 |
| 管道节点 | P01–P11 | 十步节点:定目标、绑定源文件、定判定形状、填槽位、生成、静态判定、动态判定、分区交付、反例回流、沉淀;加上统一管道与效果前、交付前两道强制边界 |
| 三条不变量 | I01–I03 | 见上 |
| 组件模型 | C01–C08 | 四个家、四类归属、两种形态与两种可执行插件、表、规则、政策表、目录、能力声明 |
| 教与验 | T01–T04 | 任务包、发布记录与发布校验、边界校验、引用解析 |
| 知识 | K01–K05 | 知识树、知识条目、三层写入、知识归类、本地缓存与获取 |
| 对接与协议 | D01–D07 | 对接规范、前提表、效果类与写声明、效果安全机制、调用合约与统一响应、MCP 工具面、执行器资源 |
| 人与权限 | R01–R03 | 权限角色(用户、管理员)、可见性、bot |
十步是节点类型,不是固定顺序(P11)。
内核:七个名字
模型把元素归并成七个内核名字。它们只是归并,不是新对象:
| 内核名 | 英文 | 归并的元素 |
|---|---|---|
| 引用 | reference | B03 |
| 资产 | asset | B02、T01、W03、W04、W05、C04、C05、C06、C07、D01、D07、K01、K02 |
| 任务 | task | W06、W01、W02、W09 |
| 操作 | operation | B05、B06、B04 |
| 请求 | request | B07 |
| 变更集 | change set | T02 |
| 结果 | result | B01、W07、W08、V05、V08、W10 |
运行是任务的一个修订,血缘把追求同一目标的运行串成任务。“变更集”只剩发布记录这一种含义,下架是它的撤回状态;管理员作出的分配、发布权授予、资源配置和分享算操作。B08 调用日志是诊断记录,不进内核;A 组和 V01–V04、V06、V07 是主张与结果的字段和词表;P、I 两组,C01–C03、C08,T03、T04,K03–K05,D02–D06 和 R 组是规则、组件与边界。四个对象就是 C01 的四个家,五要素的用法见对象标准:五要素检查单。
词表
词表的每个轴是一个封闭集合(全部轴用 node tools/show-element.ts --vocab 查看),由 npm run gen:contracts 生成到 contracts/generated/vocabulary.ts:每轴有类型、zod 枚举和中文标签。代码只经 labelOf(轴, 代码) 取标签,不手写枚举,也不自造词。读一份校验结果最常用的几轴如下(取值以生成物为准;文档检查 .github/checks 核对这张表与生成物一致):
| 轴 | 标签 | 取值 |
|---|---|---|
nature |
性质 | 事实、判断、未知 |
basis_rank |
依据等级 | 观察上的规则 > 主张上的规则 > 判断 > 转述 |
provenance_type |
来源类型 | 观察、投影、声明、候选、客户端捕获 |
static_terminal |
静态层终态 | 通过、不通过、判断、未核对、未完成 |
dynamic_terminal |
动态层终态 | 通过、失败、无判定、未运行、未完成 |
requirement_status |
要求满足状态 | 满足、未满足、未决 |
partition |
分区 | 已交付、已拒收、已隔离、未完成 |
acceptance |
回执 | 已受理、未受理 |
task_result |
任务结果 | 已通过、已交付(含未决项)、已交付(含未满足项)、已拒收、未完成、派发结果未确认、等待提交中、已放弃 |
environment_state |
自动化测试环境状态 | 可用、使用中、已冻结、已停用、未知 |
action_kind |
动作种类 | 读取、尝试读取、解析、生成、回读、边界校验、派发、归类、移动当前根、租约 |
取值和轴还可以带界面用语(ui)。控制台只经 uiLabelOf(轴, 代码) 取词,带界面用语的显示界面用语(例如“已隔离”显示为“派发结果未确认”,“未核对”显示为“未检查”),返回给模型的文字仍用标签;一个任务的结果由分区与要求项满足状态推出,未知不显示为通过(显示规则 20)。
每个条目恰好落在一个分区里:分区两两不交,并集等于条目集;跨条目主张单独列出,不计入分区(V05)。要求项只在它声明的判定层上有终态,其余层显示“本层不适用”(V03)。
错误码也有登记,同样生成到 contracts/generated/protocol.ts:协议码 PROTOCOL_CODES 来自模型(例如 QUOTE_MISMATCH、SOURCE_UNAVAILABLE),核心部件的违规码 CORE_VIOLATION_CODES(core.<部件>.<码>)来自 contracts/codes.json;登记表的历史字段 interpreter 表示发出该码的核心部件,不表示可安装的解释器。包校验判断错误处理行是否用得上时:解释器发出的码核对该要求项的检查是否使用对应解释器;回注准入发出的 core.contribution.* 核对 workflow.contribution.requirement 是否指向该要求项。码表不增加字段;任务包的码挂在包名下,例如 case-review.<码>。缺失与无权一律返回 SOURCE_UNAVAILABLE:工具显示“对你不可用”,控制台显示“该内容不存在或无权查看”。引用有四种形式:src:(源文件或片段)、tree:(知识树节点)、entry:(知识条目)、rec:(Hub 记录)。
第一个里程碑用到哪些
各包实现哪些元素见架构文档第 4 节。只用六个工具:list_task_packs、upload_file、start_run、get_nodes、resolve_reference、submit_result。留在合约里、尚未实现的有:假设集(V08)和浏览器执行器(D07 的浏览器部分)。效果写入与租约(B06、D04,D03 的写声明)、处置与请求(B07)、动态层检查(P07)、设备执行器(D07 的执行器部分)和 xlsx 与 zip 解析已随上真实自动化测试环境一轮实现(见进度页);W09 的常设义务以由 Hub 执行的知识同步为先例(见架构文档第 6 节)。D03 的读部分与 D07 的资源部分由 connectors 包实现。候选按决定 25 留在客户端本地,成为事实后通过单独的回注运行交 Hub 核验,不提供写本人候选层的入口。
已定的决定
模型当前有 20 项待定事项:18 项已定,2 项暂缓到第一个需要它们的工作流接入时再定(新增工具与命名;人工接管受管会话的通道、块语言编辑界面);本地工具下发按决定 35 单列在末尾,原条目的编号不移动。用 node tools/show-element.ts --pending 查看。影响这个里程碑的四项和其他决定记在 Hub r4 进度。
本文是 circle-hub 的设计规范之一,按 CC BY 4.0 授权:引用、借鉴须署名 Circle Hub 与 qingshanfeihu 并注明原始出处链接。见设计规范索引。