diff --git a/README.md b/README.md index 5f1d849..077732f 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,15 @@ AI 调度、runtime assurance、shielding、Capability 与 agentic scheduler con C-first 确定性执行边界、统一授权语义和独立事实验收”作为待反证的组合差异。精确覆盖关系和 必须复现的直接基线见[前人工作与阅读地图](docs/prior-art.md)。 +FlowKernel 不是通用 Agent Harness。Prompt、上下文、记忆、规划、技能与工具选择属于不可信的 +智能编排域;Harness 只能提交有类型的 `ActionProposal`,不能给自己签发 Capability,也不能 +直接控制调度器。确定性权限边界负责约束行动,资源机制负责落实硬上限: + +> Intelligence proposes. Authority constrains. Mechanism enforces. + +“Harness 越狱不应自动成为权限提升”是需要由隔离、旁路测试和故障证据验证的设计不变量, +不是当前仓库已经实现的安全保证。 + ## 实现契约 > C owns mechanism and enforcement; policy sources may only propose bounded actions. @@ -44,6 +53,8 @@ C-first 确定性执行边界、统一授权语义和独立事实验收”作为 迁移前有效检查点等约束不能交给奖励函数自行领悟。 - **Mechanism and policy stay separated.** 学习系统可以调整策略,但不重写上下文切换、 中断、页分配和锁等底层机制。 +- **Harness, authority and resource mechanism stay separated.** 智能编排、确定性授权与资源 + 落实只共享版本化合同,不共享凭据、执行入口、可变状态或故障域。 - **Execution is not truth.** `ALLOW` 只表示动作获准,`SUCCEEDED` 只表示执行器报告完成; 关于现实的声明仍需独立读回和证据裁决。 - **Every privileged transition has provenance and recovery.** 记录 Principal、授权、目标、前后 @@ -137,11 +148,13 @@ flowchart TD | [PlainJournal](https://github.com/NoctilumeDev/PlainJournal) | 分布式业务系统的可靠性、恢复与资源边界 | | [PlainJournalPro](https://github.com/NoctilumeDev/PlainJournalPro) | 多商户平台、账本结算与异构服务治理 | | [VeriTrail](https://github.com/NoctilumeDev/VeriTrail) | 受控执行、事实读回、失败保留与外部验收 | +| [JPyxis](https://github.com/NoctilumeDev/JPyxis) | 异构计算中控制、定义、运行时与合同的解耦 | | FlowKernel | 概率策略如何在确定性行动、权限、来源和恢复边界内运行 | 前三个应用项目提供所有权、资源、故障与恢复样本;VeriTrail 提供独立验收和事实资格方法; -FlowKernel 研究这些约束如何进入执行底座。集成的是失败后留下的边界思想,不是把现有项目 -代码拼进内核。它们都是问题来源与控制组,不是 FlowKernel 已完成研究的证据。 +JPyxis 研究异构计算能力怎样通过合同挂载而不共享控制权;FlowKernel 研究这些约束如何进入 +执行底座。集成的是失败后留下的边界思想,不是把现有项目代码拼进内核。它们都是问题来源与 +控制组,不是 FlowKernel 已完成研究的证据。 ## 当前不做 diff --git a/docs/architecture-hypotheses.md b/docs/architecture-hypotheses.md index f237f12..f3a4386 100644 --- a/docs/architecture-hypotheses.md +++ b/docs/architecture-hypotheses.md @@ -17,7 +17,12 @@ FlowKernel 的 C 执行器提供有限动作:调整预算或权重、限流、 迁移和放置。Linux reference lab 使用 cgroup、`sched_ext`、eBPF 和确定性控制器表达相同的 对照动作。规则或学习系统只在动作集合内提出建议,不能绕过 Guard 和执行层。 -预期收益是策略可以独立迭代、回放和回滚;需要验证的代价是跨层状态同步与控制延迟。 +Agent Harness 若被接入,只属于不可信策略侧。它可以管理 Prompt、上下文、记忆、规划和工具 +选择,但只能生成版本化 Proposal;权限边界独立完成 Capability 与状态校验,资源机制只接受 +已经授权并截断到资源包络内的命令。三者不得共享可绕过合同的调用路径、凭据或可变控制状态。 + +预期收益是策略可以独立迭代、回放和回滚,Harness 失守也不自然升级为资源控制权;需要验证 +的代价是跨层状态同步、权限衰减、控制延迟和隔离机制自身的复杂度。 ## H2:Fast Path 与 Slow Path 必须分离 diff --git a/docs/execution-os-constitution.md b/docs/execution-os-constitution.md index aa94811..9eb9f6a 100644 --- a/docs/execution-os-constitution.md +++ b/docs/execution-os-constitution.md @@ -88,7 +88,7 @@ AcceptanceVerdict 也不自动映射为认识状态:`PASS` 只能支持本次 `INCONCLUSIVE`、`BOUNDARY` 和 `PENDING` 都不能被升级为成功。资源不足、观测冲突或验收链 不完整时,系统必须保留 `UNKNOWN`、`PARTIAL` 或未验证状态。 -## 4. 八条宪法边界 +## 4. 九条宪法边界 1. **概率智能默认不拥有执行主权或事实权。** 规则、启发式、RL、LLM、Agent 与人工判断都 可以产生候选策略,但都不能仅凭自信把判断写成系统事实。 @@ -106,6 +106,10 @@ AcceptanceVerdict 也不自动映射为认识状态:`PASS` 只能支持本次 变化与 break-glass 必须显式、限域、限时、留痕,并具有撤销或恢复路径。 8. **UNKNOWN 必须得到保护,系统自身也必须可恢复。** 模型缺席、节点失败、维护者换机、 凭据轮换或原托管平台失效,都不能自动抹掉系统事实与工程记忆。 +9. **智能编排、权限调停与资源机制不得合并为单一信任域。** Agent Harness 可以管理 Prompt、 + 上下文、记忆、规划、技能和工具选择,但只能提交有类型的 Proposal,不能自行签发 + Capability、授权自身或直接操作资源机制。权限边界只把通过校验的 Proposal 转换为有界命令; + 调度器与底层机制只认识 workload、预算、优先级、期限和硬上限,不解释模型或业务语义。 这里的“没有绝对控制权”不是声称物理机所有者、固件、编译器或托管平台已经被 FlowKernel 消除。它表示在系统所声明的信任边界内,不给任何日常主体提供未经完整调停的 God Mode; @@ -116,10 +120,12 @@ AcceptanceVerdict 也不自动映射为认识状态:`PASS` 只能支持本次 ```mermaid flowchart TD principal["Human / Agent / Service\nPrincipal"] --> intent["Intent / Request"] - intent --> policy["Policy plane\nRule / Heuristic / RL / LLM"] + intent --> policy["Untrusted policy / Agent Harness\nPrompt / Plan / Rule / RL / LLM"] policy --> proposal["Versioned ActionProposal\nUntrusted"] - proposal --> core["C-first trusted core\nIdentity handles / Capability checks\nLifecycle / Resource / Isolation\nGuard / Bounded executor / Recovery"] - core --> runtime["Runtime / Hardware"] + proposal --> authority["Deterministic authority boundary\nPrincipal / Capability / Object\nLifecycle / Guard / Provenance"] + authority --> command["Authorized bounded command"] + command --> mechanism["OS resource mechanism\nScheduler / Memory / I-O / Network\nProcess / Device / Isolation"] + mechanism --> runtime["Workload / Runtime / Hardware"] runtime --> observation["Result / Observation"] observation --> acceptance["External acceptance\nRuntime / Artifact / DB / Browser / Verifier"] acceptance --> runVerdict["AcceptanceVerdict\nPASS / FAIL / INCONCLUSIVE / BOUNDARY / PENDING"] @@ -129,10 +135,11 @@ flowchart TD epistemic --> policy ``` -这个结构故意保留两条边界: +这个结构故意保留三条不能折叠的边界: -- C-first 可信核心负责“动作能否发生、怎样有界发生、失败怎样回退”,不负责替业务世界宣布 - 最终真值; +- Agent Harness 与其他策略源负责表达意图和候选动作,但不拥有授权、资源或机制入口; +- 确定性权限边界负责“动作能否发生、允许到什么范围”,底层资源机制负责“实际最多能够发生 + 到什么程度”;两层只通过有界命令连接,不共享 Prompt、策略状态、凭据或隐式控制流; - 外部验收负责“行动后的现实究竟是什么”,但不直接修改被验对象、Guard 或历史记录。 VeriTrail、GitHub 门禁、数据库、浏览器和发布物读回可以为 Acceptance 提供方法或事实源, @@ -166,6 +173,10 @@ FlowKernel 不以消除幻觉、误判或 reward hacking 为可交付目标。 Error impact is a subset of the authorized isolation domain. ``` +因此,`Jailbreak != Privilege escalation` 是一项必须验证的系统不变量,而不是对模型对齐能力 +的乐观假设。Harness 策略失守最多只能产生违规 Proposal;若它能够据此签发权限、修改 Guard、 +扩大资源包络或绕过资源机制,就说明分层已经失败。 + 任何策略源都不能因为一次错误判断而自然获得以下能力: - 修改不属于该 Principal 的对象; diff --git a/docs/prior-art.md b/docs/prior-art.md index 93fd009..4ab7d37 100644 --- a/docs/prior-art.md +++ b/docs/prior-art.md @@ -21,6 +21,14 @@ 动作的 fallback。它是 FlowKernel 讨论 Agent Principal、有限动作和 complete mediation 时 必须比较的应用层基线;其工具调用策略不等于内核 Capability,也不覆盖资源所有权、恢复后 权限保持或外部事实验收。 +- [Microsoft Agent Framework:Agent Harness](https://learn.microsoft.com/en-us/agent-framework/get-started/harness): + 把规划/执行模式、待办、上下文压缩、文件记忆与访问、工具审批和跨轮会话状态作为 Harness + 脚手架。它是 FlowKernel 划定应用层编排责任的直接工程基线:这些能力属于不可信策略域, + 不是 C-first 权限边界或资源调度机制,也不能因存在工具审批就推导出系统级最小权限。 +- [OpenAI:A practical guide to building agents](https://openai.com/business/guides-and-resources/a-practical-guide-to-building-ai-agents/): + 将模型、工具与指令/guardrails 作为 Agent 的基础组成,并讨论工具行动与编排。FlowKernel + 不把工具调用或 Agent loop 当作研究创新;它需要额外验证的是 Harness 失守后,Capability、 + 硬资源上限、机制隔离和恢复边界是否仍由独立、确定性的层次保持。 - [NIST Separation of Duty](https://csrc.nist.gov/glossary/term/separation_of_duty):说明职责与访问 授权可以被拆分,从而减少单一主体独立滥用系统的风险。FlowKernel 只把它作为未来高风险 governance transition 的候选原则,不在单维护者阶段伪造多人治理。 diff --git a/docs/threat-model.md b/docs/threat-model.md index a6c337d..466e9e2 100644 --- a/docs/threat-model.md +++ b/docs/threat-model.md @@ -21,6 +21,7 @@ | workload 与应用进度信号 | 不可信 | 可能错误、过期、伪造或被操纵 | | Human / maintainer / administrator | 有权但非 Oracle | 可能误判、定义错误目标、越权或凭据被盗 | | Agent / service principal | 不可信请求方 | 只能在持有的 Capability 范围内请求动作 | +| Agent Harness | 不可信智能编排域 | 可管理 Prompt、上下文、记忆、规划和工具选择;只能提交 Proposal | | FlowKernel C 可信核心 | 可信计算基 | 必须小、可测试、可在无模型时独立运行 | | 最小架构汇编 | 高风险可信边界 | 只提供 C 无法表达的启动、中断和切换接口 | | 内核与硬件计数器 | 有限可信 | 仍可能延迟、丢失、溢出或被错误解释 | @@ -62,6 +63,9 @@ 同时依赖一个无法恢复的组件。 21. **恢复扩权**:checkpoint、灾难恢复或维护者接管路径绕过原 Capability、租户隔离或审计要求。 22. **治理失活**:职责分离或多人批准形成死锁,导致补丁、撤销、恢复或紧急停机无人能够完成。 +23. **Harness 失守与边界混淆**:prompt injection、越狱、恶意上下文、工具返回或规划错误使 + Harness 产生越权 Proposal;共享凭据、直接机制入口或混合状态又把策略错误升级为权限和 + 资源突破。 ## 硬不变量 @@ -70,6 +74,8 @@ - 每个特权动作都必须属于 allowlist,并通过 Principal、Capability、Object、范围、参数、 时限、撤销状态和版本校验; - 作者、管理员、人类审批和模型置信度都不能形成绕过 Guard 的隐藏旁路; +- Harness 不得签发 Capability、授权自身、修改 Guard 或直接调用特权执行器与资源机制; +- 权限边界与资源机制分别校验授权范围和硬资源上限,不能只信任上游的“已批准”字段; - 生命周期转换必须来自当前状态允许的边,并满足唯一所有者与资源后置条件; - 架构汇编不能包含策略分支,C/汇编调用边界必须保存并恢复约定状态; - 任何外部长度、索引、枚举和句柄在使用前完成边界与生命周期校验; @@ -101,6 +107,9 @@ - 非法、越界、重放和高频动作建议; - capability 委托、衰减、过期、撤销、缓存失效与 confused deputy; - 模型超时、崩溃、漂移和不稳定输出; +- Harness 在 prompt injection、越狱或恶意工具输出下请求删除边界外对象、修改 Guard、扩大 + CPU/内存/设备配额和访问未授权网络时,权限层拒绝或截断且资源层硬上限保持; +- 绕过 Harness 或权限层直接调用下一层,以及伪造“已批准”命令时,目标层独立校验并 fail closed; - Guard 与执行器重启、磁盘压力和审计写入失败; - Guard/authority state 损坏、可信核心资源耗尽和 fallback 控制器接管; - 网络分区、租约过期、重复恢复和损坏 checkpoint; diff --git a/docs/vision.md b/docs/vision.md index aab44eb..6fb5c09 100644 --- a/docs/vision.md +++ b/docs/vision.md @@ -63,6 +63,35 @@ Slow Path 不是 RL 专属路径。静态规则、启发式、自适应阈值、 Policy source,并输出同一种有类型、带 Principal、Object、能力范围和有效期的 Proposal。 若简单规则更好,系统应保留简单规则。 +### Agent Harness 与资源机制 + +通用 Agent Harness 通常负责长任务所需的规划与执行循环、待办、上下文压缩、文件记忆、 +工具审批和会话持久化。FlowKernel 不重复实现这些应用层能力,也不把 Harness 纳入可信调度 +核心。若未来接入 Harness,它只是一种不可信 Policy source: + +```text +Agent Harness +Prompt / Context / Memory / Planning / Tool selection + | + | typed ActionProposal; no self-issued authority + v +Deterministic Authority Boundary +Principal / Capability / Object / Lifecycle / Guard / Budget + | + | authorized, clamped and bounded command + v +OS Resource Mechanism +Scheduler / Memory / I/O / Network / Process / Device / Isolation +``` + +三层只共享版本化合同与不可变标识,不共享可变状态、凭据、特权执行入口、恢复所有权或故障域。 +Harness 不理解中断、页分配和调度器内部结构;资源机制不解释 Prompt、模型置信度或“任务很重要” +之类的 AI 语义。适用平台上的候选实现应优先使用不同进程、地址空间、身份和资源包络建立真实 +隔离,但具体 IPC、Capability 表示和部署拓扑仍需由 R0/R1 实验决定。 + +目标不是证明模型不会被越狱,而是验证:即使 Harness 产生恶意或错误 Proposal,它仍不能自行 +扩权、修改 Guard、触碰边界外对象或突破底层硬资源上限。 + ### Authority 与事实边界 - 人、Agent、服务及策略运行时作为 Principal;规则与模型是由 Principal 使用的版本化 policy