diff --git a/README.md b/README.md index 8dc3ce8..e7cf16b 100644 --- a/README.md +++ b/README.md @@ -144,6 +144,11 @@ flowchart TD - [实验路线](docs/experiment-roadmap.md) - [证据规则](docs/evidence-policy.md) - [前人工作与阅读地图](docs/prior-art.md) +- [文献审查协议](docs/literature-review-protocol.md) +- [主要参考文献](docs/references.md) +- [前人工作比较矩阵](docs/prior-art-matrix.md) +- [研究证据追踪](docs/research-evidence-traceability.md) +- [R0 文献门禁记录](docs/r0-literature-gate.md) - [威胁模型与安全不变量](docs/threat-model.md) ## 项目谱系 diff --git a/docs/literature-review-protocol.md b/docs/literature-review-protocol.md new file mode 100644 index 0000000..0e1c190 --- /dev/null +++ b/docs/literature-review-protocol.md @@ -0,0 +1,74 @@ +# 文献审查协议 + +状态:`R0 LITERATURE PROTOCOL · CLOSED 2026-09-03` + +本协议记录 R0 文献基线怎样形成。它是面向架构与实验设计的有界工程审查,不是系统性文献 +综述、穷尽性历史或新颖性意见。 + +## 审查目标 + +审查回答两个问题:已有系统分别掌握哪些机制;FlowKernel 的哪些陈述仍然只是需要反证的 +组合假设。分析单位是职责、权力、动作、状态、验证和失败边界,而不是项目名称。 + +## 时间与检索边界 + +- 截止日期:2026-09-03。 +- 检索面:官方规范、官方项目文档、原始论文/机构报告和维护者拥有的 artifact。 +- 主题族:保护原则、Capability、Agent Harness、工具权限、Agent runtime、runtime assurance、 + shielding、来源与可复现性、Linux cgroup/PSI/BPF/`sched_ext`、Agentic scheduler control plane、 + checkpoint/restore、集群资源管理、学习型调度和许可证边界。 +- 对关键新近方向使用组合检索:`agent harness + resource management`、`agent operating system + + scheduling`、`capability-controlled agent runtime`、`LLM + sched_ext`、`runtime assurance + + untrusted controller`。 +- 引用追踪只用于发现主要来源;二手摘要不进入决策证据。 + +## 纳入与排除 + +来源只有在直接定义、实现或评估至少一个研究问题所需的机制,并可归属于标准组织、项目 +维护者或原作者时纳入。 + +排除无技术依据的营销比较、无法追溯到主要来源的性能数字、复述上游的教程,以及由本项目 +文档自身循环证明的主张。未被纳入不等于无关;它只表示不属于本轮 R0 有界基线。 + +## 证据等级 + +| 类型 | 可用于证明 | 不能自动证明 | +| --- | --- | --- | +| `SPEC` | 采用该规范时必须遵守的语义与边界 | 某实现正确、快速或适合 FlowKernel | +| `DOC` | 官方维护者公开描述的接口和行为 | 未公开失败模式或生产效果 | +| `PAPER` | 作者在给定方法和环境下发表的设计与结果 | 跨 workload、跨平台或跨层外推 | +| `PREPRINT` | 可检查的候选设计、方法与报告结果 | 同行评审已完成或结论已稳定 | +| `REPORT` | 机构报告明确记录的模型、方法或结果 | 超出报告适用域的保证 | +| `ARTIFACT` | 可检查、可尝试复现的实现范围 | 论文结论已复现或实现可生产使用 | + +## 三条证据线必须分开 + +1. **Harness/Agent runtime 线**:Prompt、上下文、记忆、计划、工具调用、Agent 级进程和应用层 + resource policy。它不能替代 OS 权限根和硬资源机制。 +2. **Linux reference lab 线**:cgroup、PSI、BPF、`sched_ext`、容器与恢复机制。它可以执行和 + 测量,但不自动理解业务目标、工作流事实或 FlowKernel target 的自研内核语义。 +3. **FlowKernel target 线**:受限 C、Capability、生命周期、确定性 Guard、有限执行器和独立 + 验收。这是待实现、待验证的研究对象,不得借用前两条线的成功状态。 + +三条线通过版本化 Proposal、Capability、Observation、Acceptance 和 Evidence 合同交接, +不得共享凭据、可变状态、最终 authority 或故障域。分层不要求把每层拆成微服务;进程和 +地址空间边界只由威胁、故障和资源隔离证据决定。 + +## 综合方法 + +1. 在[主要参考文献](references.md)中分配稳定编号和证据类型。 +2. 在[前人工作比较矩阵](prior-art-matrix.md)中逐项记录问题、状态、动作、目标、更新时机、 + authority、验证者、fallback、环境、证据强度和公开限制。 +3. 在[研究证据追踪](research-evidence-traceability.md)中把来源、未决问题和 R 阶段对应。 +4. 正面证据与反证控制同等保留;更简单的现有方案能满足目标时,FlowKernel 必须收缩。 +5. 观察事实、工程推断和未来假设分别标注,不能互相升级。 + +## 版本、链接与更新 + +版本化规范和正式出版页优先。活文档和活动分支只用于发现;进入 ADR 或实验时必须固定版本、 +修订或 commit。外部链接可达性在审查时观察,但不作为确定性 CI 门禁,因为网络可达不等于 +来源质量,网络不可达也不等于仓库结构错误。 + +R0 关闭本轮基线,不冻结未来文献。新机制、上游语义变化或直接反证出现时,只重开受影响的 +研究问题和阶段门禁;新增条目必须包含编号、证据等级、访问日期、归属 RQ 和使用它的决策或 +实验。 diff --git a/docs/prior-art-matrix.md b/docs/prior-art-matrix.md new file mode 100644 index 0000000..ec998b8 --- /dev/null +++ b/docs/prior-art-matrix.md @@ -0,0 +1,56 @@ +# 前人工作比较矩阵 + +状态:`R0 COMPARISON BASELINE · 2026-09-03` + +本矩阵把相似词汇拆回实际职责。来源编号见[主要参考文献](references.md),检索和证据等级见 +[文献审查协议](literature-review-protocol.md)。`—` 表示来源没有公开该语义,不能自行补成 +“默认支持”。 + +| 基线 | 问题 | 状态 | 动作 | 目标 | 策略更新时机 | 最终 authority | 验证者 | fallback | 环境 | 证据强度 | 公开限制 | +| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | +| Microsoft Agent Harness 与 Agent 工程指南 (`HAR-02`, `HAR-03`) | 长任务 Agent 脚手架 | 会话、上下文、待办、模式、文件与工具状态 | 模型/工具循环和审批 | 应用工具与会话 | 每轮或长任务过程中 | 宿主应用/审批策略 | Harness policy 与人工审批 | 停止、拒绝或应用定义 | Python/.NET 等应用 | `DOC` | 不提供 OS Capability 根、调度热路径或硬资源隔离 | +| Progent (`HAR-01`) | Agent 工具最小权限 | 工具调用上下文与策略 | 允许、拒绝并选择 fallback | Agent 可调用工具 | Agent 执行期 | 可编程策略执行器 | 确定性策略检查 | 被拒动作的替代路径 | Agent 工具层 | `PREPRINT` | 不等同内核资源所有权、恢复后授权或独立事实验收 | +| AIOS (`HAR-05`, `HAR-06`) | LLM Agent 的调度和资源服务 | Agent、上下文、记忆、工具等 runtime 状态 | 调度、切换和管理 Agent 资源 | LLM/工具/上下文等应用层资源 | Agent runtime 执行期 | AIOS kernel/runtime | 实现内检查与实验评价 | 实现定义 | 常规宿主 OS 上的 Agent runtime | `PAPER` + `ARTIFACT` | “OS”是 Agent 服务抽象,不是自研硬件机制或 FlowKernel C target | +| AgentRM (`HAR-07`) | Agent 阻塞、僵尸、限流与上下文退化 | Agent turn、lane 与 context tier | MLFQ、reaping、admission 与 compaction | Agent runtime 资源 | 运行时 | 中间件 resource manager | runtime 检查与实验指标 | backoff、reap、hibernate | 常规 Agent 框架中间件 | `PREPRINT` | 预印本;管理 Agent/runtime 资源,不承担 OS 权限根 | +| Agent libOS (`HAR-08`, `HAR-09`) | 长期 Agent 的进程、工具和 Capability | AgentProcess、对象、工具与持久 runtime 状态 | 调度、中断、授权、恢复和工具调停 | Agent runtime 对象与外部工具 | 运行时和显式发布/恢复点 | libOS runtime | capability/policy/持久状态检查 | 拒绝、等待人工、恢复 | 宿主 OS 之上的 library OS | `PREPRINT` + `ARTIFACT` | 明确不是硬件驱动、内核态隔离或 POSIX OS;不能替代 FlowKernel target 证据 | +| Simplex/RTA 与 shielding (`SAFE-01`, `SAFE-02`) | 不可信高级策略的安全执行 | 安全条件、控制器状态或形式化抽象 | 监视、阻断、纠正或切换控制器 | 控制动作 | 每次控制决策 | 可信 monitor/switch/shield | 形式条件或合成 shield | 可信安全控制器/安全动作 | 特定形式模型与控制环境 | `REPORT` + `PAPER` | 保证依赖模型与规范;不能直接继承到 OS 生命周期和 Capability | +| cgroup v2、PSI、BPF (`LIN-04`-`LIN-06`) | Linux 资源包络、压力与可编程机制 | cgroup 层级、资源控制和压力指标 | 限制、分配、观测和执行 BPF 程序 | Linux task/cgroup 与内核 hook | 配置时或运行时机制调用 | Linux 内核与特权控制方 | 内核规则/BPF verifier | 控制器定义或内核拒绝 | Linux | `DOC` | 不理解工作流目标、Agent 计划或外部业务事实 | +| `sched_ext` / `scx` (`LIN-01`-`LIN-03`) | 可替换 Linux CPU 调度策略 | task、CPU、DSQ 与调度器状态 | 选择 CPU、入队、派发 | Linux CPU task | 调度事件与动态加载时 | Linux scheduler core | BPF verifier、watchdog 与错误检测 | 恢复默认调度行为 | 支持 `sched_ext` 的 Linux | `DOC` + `ARTIFACT` | 是 Linux 实验/部署机制,不证明 FlowKernel 自研内核或 Agent governance | +| SchedCP (`AGOS-01`, `AGOS-02`) | Agent 自动分析并优化 Linux scheduler | workload profile、策略库、候选代码/配置 | 选择、生成、验证、部署和监控 scheduler | `sched_ext`/eBPF 调度策略 | 慢控制面与部署阶段 | SchedCP control plane + Linux mechanism | 静态检查、BPF verifier、microVM/执行验证 | token、canary、circuit breaker、旧策略 | Linux + `sched_ext` + Agent control plane | `PREPRINT` + `ARTIFACT` | 预印本/公开 artifact;不证明 C-first target、通用运行时 Proposal 或完整 Capability 动力学 | +| Kgent (`AGOS-03`) | 自然语言生成 eBPF 内核扩展 | 提示、候选程序和验证反馈 | 合成并校验 eBPF | 内核扩展程序 | 生成/验证阶段 | 工具链和部署方 | 程序理解、符号执行、eBPF verifier | 拒绝或继续反馈 | Linux/eBPF 实验 | `PAPER` | 重点是代码合成,不是长期资源 authority、生命周期或独立事实验收 | +| OCI / CRIU (`RUN-01`, `RUN-02`) | workload 隔离接口与检查点恢复 | runtime bundle、进程与可恢复状态 | 创建/执行/停止或 checkpoint/restore | Linux 容器和进程 | 生命周期边界 | runtime/宿主 OS | 规范检查与内核/工具行为 | 操作失败、保留/恢复策略由上层定义 | Linux 用户空间 | `SPEC` + `ARTIFACT` | 不保证任意外部资源可迁移,也不定义 FlowKernel authority | +| Borg、DeepRM、Decima、CPO (`CLUSTER-01`, `LEARN-01`-`LEARN-03`) | 集群放置、学习型调度和约束优化 | 资源、队列、DAG 或策略状态 | admission、placement 或学习策略动作 | 集群 job/task | 调度周期或训练/部署阶段 | 集群控制器或策略执行框架 | 规则、约束或实验评价 | 基线调度/系统定义 | 数据中心、模拟器或 Spark 集群 | `PAPER` | 研究对象与 OS 机制不同;结果不能跨 workload 和环境直接外推 | + +## 三层对照结论 + +```text +Agent Harness / Agent runtime + 负责意图、计划、上下文、工具和应用层资源 + │ typed proposal only + ▼ +Deterministic authority boundary + 负责 Principal、Capability、状态所有权与 Guard + │ bounded command only + ▼ +OS resource mechanism + 负责 CPU、内存、I/O、隔离、调度与恢复动作 +``` + +第一层越狱最多应产生违规 Proposal;如果它可以签发权限、修改 Guard 或直达机制,失败就是跨层 +权限提升。第三层只落实已经授权的有限命令,不解释 Prompt 或业务重要性。中间层是 FlowKernel +计划验证的安全断点,但当前尚未实现,因此这张图是合同假设,不是安全保证。 + +## FlowKernel 尚待反证的组合差异 + +现有工作已经覆盖 Agent loop、工具策略、Agent 级资源管理、Capability-controlled runtime、 +学习型调度、Agentic Linux scheduler control plane、内核扩展生成、runtime assurance 和受监控 +回退。FlowKernel 只能继续检验更窄的组合: + +- 多种策略源在运行时提交同类型、有限、可回放的 Proposal; +- 独立 C-first authority 依据 Capability、生命周期和硬资源不变量裁决; +- 自研 target 与 Linux reference lab 使用同一语义合同但保留不同事实线; +- 授权、执行、Observation、AcceptanceVerdict 与 EpistemicStatus 分别拥有状态; +- Harness 失守不会自然获得 authority 或机制入口。 + +若 Agent libOS、AIOS、SchedCP、直接 Linux 机制或更简单的组合以更低复杂度满足首个实验目标, +FlowKernel 必须缩小研究范围,而不是维持预设差异。 diff --git a/docs/prior-art.md b/docs/prior-art.md index 4ab7d37..1d263a6 100644 --- a/docs/prior-art.md +++ b/docs/prior-art.md @@ -1,8 +1,9 @@ # 前人工作与阅读地图 -本文档是 R0 之前的初始阅读地图,不是系统性文献综述。条目只说明 FlowKernel 应从哪里 -建立基线,不能据此宣称研究问题新颖或方案有效。正式开题前必须补充检索方法、时间范围、 -纳入标准和引用版本。 +本文档是 R0 的叙事阅读地图,不是系统性文献综述。条目只说明 FlowKernel 应从哪里建立 +基线,不能据此宣称研究问题新颖或方案有效。检索方法、时间范围、纳入标准和引用版本已记录在 +[文献审查协议](literature-review-protocol.md),逐项字段见[前人工作比较矩阵](prior-art-matrix.md), +稳定编号见[主要参考文献](references.md),问题级用途见[研究证据追踪](research-evidence-traceability.md)。 ## 保护、能力与可信边界 @@ -16,12 +17,12 @@ - [seL4 Capability Distribution Language](https://docs.sel4.systems/projects/capdl/index.html): capability distribution 会限制系统未来可达状态,可作为静态权限图和最小系统描述的研究 参照。 -- [Progent:Programmable Privilege Control for LLM Agents](https://arxiv.org/abs/2504.11703): +- [Progent: Securing AI Agents with Privilege Control](https://arxiv.org/abs/2504.11703): 以可编程策略在 Agent 执行期对工具调用实施细粒度、确定性的最小权限控制,并定义被拒绝 动作的 fallback。它是 FlowKernel 讨论 Agent Principal、有限动作和 complete mediation 时 必须比较的应用层基线;其工具调用策略不等于内核 Capability,也不覆盖资源所有权、恢复后 权限保持或外部事实验收。 -- [Microsoft Agent Framework:Agent Harness](https://learn.microsoft.com/en-us/agent-framework/get-started/harness): +- [Microsoft Agent Framework:Agent Harness](https://learn.microsoft.com/en-us/agent-framework/concepts/harness): 把规划/执行模式、待办、上下文压缩、文件记忆与访问、工具审批和跨轮会话状态作为 Harness 脚手架。它是 FlowKernel 划定应用层编排责任的直接工程基线:这些能力属于不可信策略域, 不是 C-first 权限边界或资源调度机制,也不能因存在工具审批就推导出系统级最小权限。 @@ -33,6 +34,25 @@ 授权可以被拆分,从而减少单一主体独立滥用系统的风险。FlowKernel 只把它作为未来高风险 governance transition 的候选原则,不在单维护者阶段伪造多人治理。 +## Agent OS 与 Agent runtime + +- [AIOS: LLM Agent Operating System](https://openreview.net/forum?id=L4HHkCDz2x) 及其 + [artifact](https://github.com/agiresearch/AIOS):把 Agent 调度、上下文、记忆、存储、工具和 + 访问管理组织为宿主操作系统之上的 Agent runtime。它是 Agent 级资源抽象的正式发表基线, + 但其“kernel”不等于 FlowKernel 计划中的 freestanding C target,也不替代硬件机制证据。 +- [AgentRM](https://arxiv.org/abs/2603.13110):以 MLFQ、zombie reaping、限流感知 admission 和 + 分层上下文生命周期处理 Agent runtime 的阻塞、僵尸和上下文退化。它直接约束 FlowKernel + 关于“Agent 资源调度”的措辞;当前按预印本使用,不能把报告结果升级为稳定结论。 +- [Agent libOS](https://arxiv.org/abs/2606.03895) 及其 + [artifact](https://github.com/yingqi-z20/Agent-libOS):将长期 Agent 表示为可调度、可中断、 + capability-controlled 的运行时进程,并公开声明其位于常规宿主 OS 之上,不实现硬件驱动、 + 内核态隔离或 POSIX 操作系统。它是 Harness 与 OS 机制之间应用层 runtime 的最直接对照, + 也是 FlowKernel 必须保留三层边界、不能笼统宣称 Capability/恢复创新的反证控制。 + +这些系统说明“Agent 也需要调度、资源、上下文、恢复与权限”已经不是空白。FlowKernel 若继续, +必须证明的是独立 deterministic authority 与 C-first 资源机制边界,而不是重复一个更底层外观的 +Agent runtime。 + ## Runtime assurance 与不可信策略 - [NASA:A Formal Verification Framework for Runtime Assurance](https://ntrs.nasa.gov/citations/20240006522): @@ -138,10 +158,10 @@ SchedCP 已实质覆盖 AI workload 分析、策略选择/合成、控制面与 control-plane 直接基线,逐项比较策略更新时机、动作粒度、authority、验证者、fallback、 运行时开销和公开失败边界。 -R0 开始前,需要建立文献矩阵,逐项记录问题、状态、动作、目标、策略更新时机、authority、 -验证者、fallback、实验环境、证据强度和公开局限。若已有工作覆盖上述差异,应修改研究问题, -而不是维护预设的新颖性。论文、可运行 artifact、工程博客和未验证实现必须分级记录,不能 -因为名称相似或实现可用就赋予相同证据权重。 +R0 文献门禁已经建立比较矩阵,逐项记录问题、状态、动作、目标、策略更新时机、authority、 +验证者、fallback、实验环境、证据强度和公开局限。若后续工作覆盖上述差异,应修改研究问题, +而不是维护预设的新颖性。论文、预印本、可运行 artifact 和官方工程文档分级记录,不能因为 +名称相似或实现可用就赋予相同证据权重。 ## Linux reference lab 的许可证边界 diff --git a/docs/r0-literature-gate.md b/docs/r0-literature-gate.md new file mode 100644 index 0000000..7935d7b --- /dev/null +++ b/docs/r0-literature-gate.md @@ -0,0 +1,50 @@ +# R0 文献门禁记录 + +状态:`LITERATURE BASELINE CLOSED · R0 REMAINS PLANNED` + +关闭日期:2026-09-03 + +本记录关闭的是 R0 开工前的文献信息缺口,不是 R0 实现阶段,也不是安全、性能、可复现性或 +自研内核能力的验收。 + +## 关闭结果 + +- 35 个主要来源已有稳定编号和证据等级; +- 检索边界、纳入/排除、综合方法、活文档版本规则与更新条件已经记录; +- RQ1–RQ11 都有来源、剩余假设和负责阶段; +- 比较矩阵包含问题、状态、动作、目标、策略更新时机、authority、验证者、fallback、环境、 + 证据强度和公开限制; +- Agent Harness、Linux reference lab 与 FlowKernel target 三条证据线已经分开。 + +## 文献结论 + +现有工作已经证明或实现了大量组成部分:Agent loop 与工具审批、应用层 privilege policy、 +Agent 级调度和上下文管理、capability-controlled Agent runtime、Linux 资源控制和可扩展调度、 +Agentic scheduler control plane、eBPF 代码合成、runtime assurance、shielding、来源记录、恢复和 +学习型调度。 + +因此 FlowKernel 不得把这些单项声明为原创。仍待验证的是一个更窄的组合边界:不可信 Harness +只能提出 typed Proposal;独立 authority 层持有 Principal、Capability、状态和 Guard;资源机制 +只执行经过授权的有限命令;三层不共享最终 authority、凭据、可变状态或故障域。 + +## R0 必须据此固定的输入 + +1. 受限 freestanding C 子集、编译器、链接器、模拟器和 warning/sanitizer/static-analysis 门槛; +2. `ActionProposal`、Capability、Observation、AcceptanceVerdict 与 Evidence 的最小版本合同; +3. FlowKernel target 与 Linux reference lab 的同语义 workload 和动作夹具; +4. 传统 Linux、`sched_ext`/`scx` 与 SchedCP 的分级直接基线; +5. Harness 越狱、越权 Proposal、旁路调用、Guard 故障与资源耗尽的失败用例; +6. 干净机器只依靠仓库恢复 R0 的步骤、停止线和证据保存位置; +7. 受宿主硬件限制无法运行的 artifact,明确记录为有界未完成审计,不伪造成复现成功。 + +## 当前边界 + +R0 仍为 `Planned`。当前单机和硬件条件允许文档、合同、工具链与部分 Linux reference lab 工作, +但不能据此声称完成自研操作系统、目标硬件验证、多核/多节点、生产安全或 SchedCP 全量复现。 +未来硬件和环境只追加新证据线,不覆盖今天的限制。 + +外部链接可达性不是 CI 的确定性门禁;本地链接、必需文档、边界语句、研究问题覆盖和证据 +等级标记才进入仓库校验。涉及活文档的具体设计或实验必须另行固定上游版本、修订或 commit。 + +文献基线至此闭环。下一步仍是 R0 的工具链、合同、基线和干净恢复协议,不能越过 R0 去堆 +R1–R7 的实现。 diff --git a/docs/references.md b/docs/references.md new file mode 100644 index 0000000..78e60e0 --- /dev/null +++ b/docs/references.md @@ -0,0 +1,80 @@ +# 主要参考文献 + +状态:`R0 BIBLIOGRAPHY BASELINE · 2026-09-03` + +本页为 FlowKernel 文献基线提供稳定的仓库内编号。编号不代表认可、完整性或新颖性判断。 +证据类型包括:`SPEC`(规范)、`DOC`(官方文档)、`PAPER`(正式发表论文)、`PREPRINT` +(尚不能按同行评审论文使用的预印本)、`REPORT`(机构技术报告)和 `ARTIFACT`(维护者提供的 +可检查实现或复现实物)。 + +## 保护、Capability 与职责边界 + +- **PROT-01 · PAPER** — Saltzer, J. H. 与 Schroeder, M. D. [The Protection of Information in Computer Systems](https://web.mit.edu/Saltzer/www/publications/protection/), 1975. +- **PROT-02 · DOC** — seL4. [Capabilities Tutorial](https://docs.sel4.systems/Tutorials/capabilities.html). +- **PROT-03 · SPEC** — seL4. [Capability Distribution Language](https://docs.sel4.systems/projects/capdl/index.html). + +## Agent Harness、Agent runtime 与应用层权限 + +- **HAR-01 · PREPRINT** — Shi, T. 等. [Progent: Securing AI Agents with Privilege Control](https://arxiv.org/abs/2504.11703), arXiv v3, 2026. +- **HAR-02 · DOC** — Microsoft. [Agent Framework: Agent Harness](https://learn.microsoft.com/en-us/agent-framework/concepts/harness). +- **HAR-03 · DOC** — OpenAI. [A practical guide to building agents](https://openai.com/business/guides-and-resources/a-practical-guide-to-building-ai-agents/). +- **HAR-04 · DOC** — NIST. [Separation of Duty](https://csrc.nist.gov/glossary/term/separation_of_duty). +- **HAR-05 · PAPER** — Mei, K. 等. [AIOS: LLM Agent Operating System](https://openreview.net/forum?id=L4HHkCDz2x), COLM 2025. +- **HAR-06 · ARTIFACT** — AGI Research. [AIOS](https://github.com/agiresearch/AIOS). +- **HAR-07 · PREPRINT** — She, J. [AgentRM: An OS-Inspired Resource Manager for LLM Agent Systems](https://arxiv.org/abs/2603.13110), 2026. +- **HAR-08 · PREPRINT** — Zhang, Y. [Agent libOS: A Runtime Substrate for Capability-Controlled Self-Evolving LLM Agents](https://arxiv.org/abs/2606.03895), arXiv v3, 2026. +- **HAR-09 · ARTIFACT** — Agent libOS maintainers. [Agent libOS](https://github.com/yingqi-z20/Agent-libOS). + +## Runtime assurance 与受约束策略 + +- **SAFE-01 · REPORT** — Slagel, J. T. 等. [A Formal Verification Framework for Runtime Assurance](https://ntrs.nasa.gov/citations/20240006522), NASA/NFM 2024. +- **SAFE-02 · PAPER** — Alshiekh, M. 等. [Safe Reinforcement Learning via Shielding](https://doi.org/10.1609/aaai.v32i1.11797), AAAI 2018. + +## 来源、供应链与可复现性 + +- **EVID-01 · SPEC** — W3C. [PROV-O: The PROV Ontology](https://www.w3.org/TR/prov-o/). +- **EVID-02 · SPEC** — in-toto. [Specifications](https://in-toto.io/docs/specs/). +- **EVID-03 · SPEC** — SLSA. [Provenance, v1.2](https://slsa.dev/spec/v1.2/provenance). +- **EVID-04 · DOC** — Reproducible Builds. [Making plans](https://reproducible-builds.org/docs/plans/). + +## Linux 资源、调度与观测机制 + +- **LIN-01 · DOC** — Linux Kernel. [Extensible Scheduler Class (`sched_ext`)](https://docs.kernel.org/scheduler/sched-ext.html). +- **LIN-02 · ARTIFACT** — sched-ext maintainers. [`scx`: sched_ext schedulers and tools](https://github.com/sched-ext/scx). +- **LIN-03 · DOC** — sched-ext maintainers. [`scx` Overview](https://github.com/sched-ext/scx/blob/main/OVERVIEW.md). +- **LIN-04 · DOC** — Linux Kernel. [Control Group v2](https://docs.kernel.org/admin-guide/cgroup-v2.html). +- **LIN-05 · DOC** — Linux Kernel. [Pressure Stall Information](https://docs.kernel.org/accounting/psi.html). +- **LIN-06 · DOC** — Linux Kernel. [BPF Documentation](https://docs.kernel.org/bpf/). + +## Agentic scheduler control plane 与内核策略生成 + +- **AGOS-01 · PREPRINT** — Zheng, Y. 等. [Towards Agentic OS: An LLM Agent Framework for Linux Schedulers](https://arxiv.org/abs/2509.01245), 2025. +- **AGOS-02 · ARTIFACT** — eunomia-bpf. [SchedCP artifact](https://github.com/eunomia-bpf/schedcp). +- **AGOS-03 · PAPER** — Zheng, Y. 等. [Kgent: Kernel Extensions Large Language Model Agent](https://doi.org/10.1145/3672197.3673434), 2024. + +## workload、恢复与集群基线 + +- **RUN-01 · SPEC** — Open Container Initiative. [Runtime Specification](https://github.com/opencontainers/runtime-spec). +- **RUN-02 · ARTIFACT** — CRIU maintainers. [Checkpoint/Restore In Userspace](https://github.com/checkpoint-restore/criu). +- **CLUSTER-01 · PAPER** — Verma, A. 等. [Large-scale cluster management at Google with Borg](https://research.google/pubs/large-scale-cluster-management-at-google-with-borg/), EuroSys 2015. + +## 学习型调度 + +- **LEARN-01 · PAPER** — Mao, H. 等. [Resource Management with Deep Reinforcement Learning](https://people.csail.mit.edu/alizadeh/papers/deeprm-hotnets16.pdf), HotNets 2016. +- **LEARN-02 · PAPER** — Mao, H. 等. [Learning Scheduling Algorithms for Data Processing Clusters](https://doi.org/10.1145/3341302.3342080), SIGCOMM 2019. +- **LEARN-03 · PAPER** — Achiam, J. 等. [Constrained Policy Optimization](https://proceedings.mlr.press/v70/achiam17a), ICML 2017. + +## 许可证边界 + +- **LIC-01 · DOC** — Linux Kernel. [Kernel licensing rules](https://docs.kernel.org/process/license-rules.html). +- **LIC-02 · DOC** — Apache Software Foundation. [Apache License v2.0 and GPL compatibility](https://www.apache.org/licenses/GPL-compatibility). + +## 使用规则 + +- 这些来源只能支持其明确描述或报告的机制、实验和限制,不能证明 FlowKernel 的组合假设。 +- `PREPRINT` 与 `ARTIFACT` 必须保留其证据等级,不得在文字中升级为已确认的同行评审结论。 +- 使用 `main`、`latest` 等活文档只能作为发现基线;影响设计或实验时必须在 ADR/实验记录中 + 固定实际版本、页面修订或 commit。 +- 二手材料可以帮助发现文献,但不能替代此处要求的主要来源。 +- 具体检索与更新方法见[文献审查协议](literature-review-protocol.md),问题级用途见 + [研究证据追踪](research-evidence-traceability.md)。 diff --git a/docs/research-evidence-traceability.md b/docs/research-evidence-traceability.md new file mode 100644 index 0000000..63a31e2 --- /dev/null +++ b/docs/research-evidence-traceability.md @@ -0,0 +1,33 @@ +# 研究证据追踪 + +状态:`R0 TRACEABILITY BASELINE` + +本表把 RQ1–RQ11 与主要来源、仍未证明的假设和负责阶段连接起来。来源只能说明已有机制和 +报告结果,不能替代 FlowKernel 自己的实验。 + +| 研究问题 | 主要来源 | 已建立的基线 | FlowKernel 仍须回答 | 证据归属 | +| --- | --- | --- | --- | --- | +| RQ1 生命周期表示 | `LIN-05`, `RUN-01`, `RUN-02`, `HAR-05`, `HAR-08` | Linux 压力、容器/进程生命周期、Agent runtime 和恢复已有不同状态模型。 | 哪些状态可由 target 直接观测,哪些只能由探针报告;恶意/过期进度怎样处理。 | R0 合同;R1 状态机;R4 观测实验 | +| RQ2 真实进展 | `LIN-05`, `AGOS-01`, `CLUSTER-01`, `LEARN-01`, `LEARN-02` | 资源压力、workload 语义和调度指标都有既有做法。 | 有效进展、连续价值、停滞和重试成本能否跨 workload 比较。 | R4 观测语料;R5 策略对照 | +| RQ3 状态筛选 | `LIN-05`, `AGOS-01`, `LEARN-01`-`LEARN-03` | 观测、特征和学习策略可缩减或使用系统状态。 | 信息损失、延迟、噪声、推理开销和可解释性怎样共同评价。 | R4 消融与污染测试 | +| RQ4 策略演进 | `AGOS-01`-`AGOS-03`, `LEARN-01`-`LEARN-03`, `SAFE-02` | 代码合成、策略选择、强化学习和约束优化都不是空白。 | 运行时 Proposal 与部署期代码/配置更新何时各自值得;动态性收益能否覆盖 authority 与回滚风险。 | R0 对照定义;R5 同预算实验 | +| RQ5 确定性安全边界 | `PROT-01`-`PROT-03`, `HAR-01`, `SAFE-01`, `SAFE-02`, `LIN-01` | 最小权限、complete mediation、Capability、RTA、shield 和调度回退已有强基线。 | C Guard 崩溃、损坏、资源耗尽或旁路时能否 fail closed,且不把形式保证错误外推。 | R0 威胁/合同;R1-R2 故障注入 | +| RQ6 Linux 对照 | `LIN-01`-`LIN-06`, `AGOS-01`-`AGOS-03` | Linux 已提供资源、观测、BPF 与可替换调度器,SchedCP/Kgent 已覆盖 Agentic 控制和生成。 | target 与 reference lab 如何共享语义而不共享实现或成功状态。 | R0 环境与矩阵;R2 双线对照 | +| RQ7 多节点连续性 | `RUN-01`, `RUN-02`, `CLUSTER-01` | 容器合同、检查点恢复和集群管理提供直接基线。 | 分区、恢复幂等、双重执行、跨节点 ownership 和 Capability 怎样收敛。 | R6-R7,不提前进入 R0/R1 实现 | +| RQ8 评价体系 | `LIN-05`, `AGOS-01`, `HAR-07`, `CLUSTER-01`, `LEARN-01`-`LEARN-03` | 现有工作分别报告时延、吞吐、资源、调度或策略指标。 | 如何同时记录完成率、公平、连续性、控制开销、非法建议与失败成本。 | R0 测量合同;所有阶段通用证据 | +| RQ9 Principal 与 authority | `PROT-01`-`PROT-03`, `HAR-01`, `HAR-04`, `HAR-08`, `AGOS-01` | 工具策略、Capability、职责分离、Agent runtime 授权和部署 token 均有先例。 | Object/预算/时限绑定、委托衰减、撤销、在途动作与 confused deputy 如何统一。 | R0 权责合同;R1 静态能力;R6 动态委托 | +| RQ10 执行事实与世界事实 | `EVID-01`-`EVID-04`, `SAFE-01`, `AGOS-01` | 来源、attestation、构建 provenance、RTA 与部署验证都有明确适用域。 | `ALLOW`、`SUCCEEDED`、Observation、AcceptanceVerdict 和 `VERIFIED` 如何防止状态混轴。 | R0 证据合同;R3 独立读回与故障证据 | +| RQ11 持续存在 | `RUN-01`, `RUN-02`, `EVID-02`-`EVID-04`, `HAR-08`, `LIC-01`, `LIC-02` | bundle、恢复、供应链来源、许可证边界和持久 Agent runtime 有既有实践。 | 换机、凭据轮换、authority root、维护者退出、代码来源和真实多人治理分别需要什么证据。 | R0 恢复/许可证协议;R3 工程恢复;R6-R7 真实治理边界 | + +## 反证与停止条件 + +- Agent Harness、AIOS、AgentRM 或 Agent libOS 满足应用层需求时,不得把它们重写进 C core。 +- cgroup、BPF、`sched_ext` 或 SchedCP 满足实验目标时,FlowKernel target 必须说明自研机制新增的 + 可测问题;“更底层”本身不是贡献。 +- RTA/shielding 的形式保证只在原模型和规范内成立;结构相似不能继承证明。 +- Linux reference lab 的成功不升级为 FlowKernel target 的实现证据。 +- 单维护者角色模拟不升级为真实多人治理证据。 +- 如果自研 C 机制的复杂度、故障面或复现成本抵消收益,研究范围应收缩或停止。 + +没有任何单一来源证明 FlowKernel 的三层组合假设。它仍保持 `Planned`,直到对应 R 阶段给出 +可重复的构建、对照、故障和恢复证据。 diff --git a/scripts/verify-repository.mjs b/scripts/verify-repository.mjs index 0673bf0..b89ee0e 100644 --- a/scripts/verify-repository.mjs +++ b/scripts/verify-repository.mjs @@ -18,6 +18,11 @@ const requiredFiles = [ "docs/experiment-roadmap.md", "docs/evidence-policy.md", "docs/prior-art.md", + "docs/literature-review-protocol.md", + "docs/references.md", + "docs/prior-art-matrix.md", + "docs/research-evidence-traceability.md", + "docs/r0-literature-gate.md", "docs/threat-model.md", ]; @@ -84,11 +89,57 @@ for (const link of [ "docs/execution-os-constitution.md", "docs/c-first-kernel-contract.md", "docs/prior-art.md", + "docs/literature-review-protocol.md", + "docs/references.md", + "docs/prior-art-matrix.md", + "docs/research-evidence-traceability.md", + "docs/r0-literature-gate.md", "docs/threat-model.md", ]) { if (!readme.includes(link)) fail(`README.md: navigation is missing ${link}`); } +const literatureGate = fs.readFileSync(path.join(root, "docs/r0-literature-gate.md"), "utf8"); +for (const statement of [ + "LITERATURE BASELINE CLOSED · R0 REMAINS PLANNED", + "35 个主要来源", + "Agent Harness、Linux reference lab 与 FlowKernel target", +]) { + if (!literatureGate.includes(statement)) fail(`R0 literature gate is missing: ${statement}`); +} + +const literatureMatrix = fs.readFileSync(path.join(root, "docs/prior-art-matrix.md"), "utf8"); +for (const field of [ + "问题", + "状态", + "动作", + "目标", + "策略更新时机", + "最终 authority", + "验证者", + "fallback", + "环境", + "证据强度", + "公开限制", +]) { + if (!literatureMatrix.includes(field)) fail(`Prior-art matrix is missing field: ${field}`); +} + +const researchTraceability = fs.readFileSync( + path.join(root, "docs/research-evidence-traceability.md"), + "utf8", +); +for (let index = 1; index <= 11; index += 1) { + if (!researchTraceability.includes(`RQ${index}`)) { + fail(`Research evidence traceability is missing RQ${index}`); + } +} + +const references = fs.readFileSync(path.join(root, "docs/references.md"), "utf8"); +for (const statement of ["HAR-05", "HAR-08", "AGOS-01", "LIN-01", "PREPRINT"]) { + if (!references.includes(statement)) fail(`Primary references are missing: ${statement}`); +} + const conduct = fs.readFileSync(path.join(root, "CODE_OF_CONDUCT.md"), "utf8"); if (!conduct.includes("FlowKernel")) fail("CODE_OF_CONDUCT.md: repository name is missing"); if (conduct.includes("PlainJournalPro")) fail("CODE_OF_CONDUCT.md: copied repository name remains");