ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

IronClaw Kernel 权威边界解析:九阶段安全外围的架构设计与源码实现

IronClaw Kernel 权威边界解析:九阶段安全外围的架构设计与源码实现 人工智能AI 应用交互助手AI Agent【免费下载链接】ironclawIronClaw is an Agent OS focused on privacy, security and extensibility项目地址https://gitcode.com/gh_mirrors/iro/ironclaw点击查看免费下载本文以 docs/internal/reborn/target-architecture/families/kernel.md 为骨架结合 crates/kernel 家族源码、crates/kernel/AGENTS.md 与 docs/internal/reborn/contracts/kernel-boundary.md 契约文档系统讲解 IronClaw 中内核kernel作为安全外围security perimeter的设计为什么它不是单一 crate、九个 crate 各自拥有哪一段特权效应管线、每段阶段的 fail-closed 规则如何在源码与架构测试中被机械地固定。读完本文你将能够回答一个特权效应在 IronClaw 中要跨过哪些关口某个能力调用应该落在哪个 crate新增内核 crate 需要满足什么边界测试这些实战问题。内核是什么安全外围而不是一个 crateIronClaw 的 kernel 家族位于 crates/kernel 目录是七层依赖阶梯contracts substrates runtimes kernel loops products app中承上启下的关键一层。它的定位与直觉相反内核是一个安全外围security perimeter不是代码库中的一个 crate。它由它调解了什么来定义而不是由它执行了多少行为来定义——凡是能够影响权威authority、隔离isolation、持久化控制面状态durable control-plane state或敏感数据的操作都必须穿越一个内核调解的端口kernel-mediated port无论该端口由哪个 crate 实现。项目中不存在、也不应该存在一个ironclaw_kernelcrate。把外围坍缩进单一 crate 会掩盖一个事实这个外围由多个可独立验证的阶段组成每个阶段都有自己的 fail-closed 规则和密封的公开表面。crates/kernel/将这个外围物化为9 个 crate每个 crate 恰好拥有特权效应管线的一个阶段crates/kernel/ ├── ironclaw_trust trust ceilings (sealed) ├── ironclaw_authorization default-deny grants capability leases ├── ironclaw_approvals exact-invocation consent ├── ironclaw_resources reservation quota accounting ├── ironclaw_runtime_policy pure policy resolution lane planning ├── ironclaw_capabilities the CapabilityHost membrane ├── ironclaw_processes lifecycle authority: journal supervisor ├── ironclaw_turns turn admission exit validation └── ironclaw_host_runtime mediated services the lane executor调用方——loop、扩展extension、产品面product surface——永远不直接触碰这些阶段它调用的是膜membrane即ironclaw_capabilities由膜去调用其余部分。内核不需要调解的一切都留在内核之外agent-loop 策略、prompt 组装、任务编排、技能选择、渠道呈现都运行在内核之上在内核发放的 grants、mounts、leases 和 budget 之下运行。这一边界的合同语义早在 docs/internal/reborn/contracts/kernel-boundary.md 中被冻结内核调解的操作包括能力调用/恢复/派生、授权与 grant 匹配、信任类策略求值、义务准备/完成/中止、审批请求与精确调用exact-invocationlease 协调、run 状态协调、每线程单活跃 run 协调、文件系统挂载/作用域路径权威、网络策略求值与加固 egress、密钥元数据与一次性消费、资源预留/对账/释放与配额、脱敏与泄漏检测义务、进程生命周期/结果/输出权威面等而 agent-loop 策略、prompt 组装策略、routine 引擎、技能选择、渠道 UX 等则明确属于 userland。边界什么让这个家族与众不同内核家族的边界划分是理解整个 IronClaw 架构的关键。它与相邻家族的区别如下vssubstrates/基底——基底文件系统、密钥、网络、安全是机制与后端无关、与策略无关的机器。内核 crate 决定是否以及如何触碰某个基底然后调用它基底永远不决定权威。对应源码见 crates/substratesironclaw_filesystem、ironclaw_secrets、ironclaw_network、ironclaw_safety。vsdomains/领域——领域拥有某个持久化事物的记录文法内核拥有关于做某件事的决策。领域回答这是什么记录、它是否合法内核回答这件事是否被允许发生、它是否安全地发生了。参见 crates/domains。vslanes/执行道——lanes 执行已被授权的工作接收密封的 witness 和调解后的服务它们自己从不授权任何东西。内核是唯一能铸造 witness 的地方。vsloop/循环层——loop 层是可替换的 userland 策略本身没有内在权威它只能通过类型化端口触达内核内核从不依赖 loop 代码。vsapp/组装层——composition 为一次部署装配具体的 kernel 服务自身不持有任何权威逻辑内核做决策app/组装决策者。为什么是九个 crate 而不是一个。每个阶段都是一个可独立消费的契约有自己独立的 fail-closed 规则和自己的密封/多实现形态。把它们折叠进一个 crate等于把一个编译器可证明的依赖边界——策略引擎的私有 mutator 在自己的 crate 之外不可见、预留治理者的平台相关依赖永远不会触达调用膜——换成一种仅靠 review 来维持的纪律。特权效应管线与阶段归属每个特权效应都依序通过同样的阶段。两个 crate 作为持久的准入与生命周期权威把管线夹在两端admission 与 claimed execution其余 crate 组成膜本身StageWhat happensOwning crateAdmission请求变成持久的、被准入的工作带每线程单活跃 run 与幂等保证ironclaw_turnsClaimed execution已准入的工作被认领、租赁、心跳跟踪直至终态ironclaw_processesTrust ceiling请求的信任解析为主机验证的有效上限ironclaw_trustAuthorization上限与调用方的 grants 解析为 allow / deny / require-approvalironclaw_authorizationApprovalrequire-approval 裁决解析为有作用域、带指纹的 lease 或拒绝ironclaw_approvalsReservation工作开始前预留估算成本与容量完成后对账ironclaw_resourcesPolicy planning部署与组织策略选择运行 lane 与执行姿态ironclaw_runtime_policyThe membrane前述每一阶段折叠进一个决策密封成只有膜能铸造的 witnessironclaw_capabilitiesMediated executionwitness 授权恰好一次 lane 调用受限挂载视图、分阶段密钥、有作用域 egressironclaw_host_runtimeironclaw_turns与ironclaw_processes是两个准入/生命周期权威turns 决定工作是否被持久准入processes 决定已准入的工作如何被认领、跟踪并带至终态——无论是前台 turn 还是后台调用。在源码中这一管线被 crates/kernel/ironclaw_capabilities/src/host/mod.rs 的模块章程直接落实invoke、approval_resume、auth_resume、spawn_resume、spawn各自是私有的工作流模块authorize是它们共同汇入的单一折叠fold。文件头部注释明确三条规则工作流模块只拥有自己的前奏preamble两个以上工作流共享的步骤归resume_supportauthorize做决策工作流只映射裁决本文件只持有状态与词汇不持有行为。什么属于这里 / 什么永远不属于这里属于决策、leases、预留、调解、生命周期权威、调度组装——一个决策值、一个能力 lease、一个资源预留、一个义务处理器、一个进程或 turn 的转移、密封的 witness 本身。永远不属于产品 UX、loop 策略、厂商特定行为、lane 执行机制、存储后端实现。这个家族没有任何 crate 会渲染 prompt、选择投递目标、按厂商协议分支、直接派生容器或在其任何输出中持久化原始密钥、主机路径或后端错误细节。crates/kernel/AGENTS.md 的从不属于这里清单更进一步并给出归宿内核阶段被 product/loop/extension crate 持有去crates/loop/、crates/product/、crates/extensions/向上依赖通过内核定义的端口反向实现如ProcessExecutor由ironclaw_turn_runner/ironclaw_host_runtime注册在任何其他地方铸造密封证据prompt 组装/任务编排/技能选择/渠道呈现userland厂商特定行为crates/extensions/packages/*、ironclaw_llmproviderslane 执行机制crates/lanes/存储后端实现crates/substrates/ironclaw_filesystem、ironclaw_libsql_runtime、crates/events/ironclaw_event_store以及内核 crate 输出中的原始载荷无密钥、主机路径、后端错误细节或未脱敏的用户内容。依赖方向内核 crate 依赖各层共享的中性权威词汇标识符、作用域、能力与决策类型、基底家族调解后的存储/凭证/egress 机制、事件家族持久审计、lane 家族封闭执行器需要构造 lane 适配器以及沿阶段顺序互相依赖。内核 crate 从不依赖loop/、product/或app/只有一处刻意的反转一个定义在内核内部、由更高层实现的端口——进程种类process-kind执行在这里定义由拥有该类工作的 crate 注册。调度端口是中性契约词汇host_api膜是它的生产实现。其他每个家族都依赖这个家族——直接依赖或通过类型化端口这个家族没有任何东西反向依赖回去。在机械执行层面crates/kernel/AGENTS.md 记录了几套可运行的 enforcement层矩阵layer matrix九个 manifest 全部声明[package.metadata.ironclaw] layer kernel由reborn_dependency_boundaries.rs检查七层阶梯异常注册表为空LAYER_MATRIX_EXCEPTIONS []kernel→loops 或 kernel→products 的边无法落地。每 crate 禁边BoundaryRule七个 cratetrust、authorization、approvals、resources、processes、turns、capabilities钉死阶段顺序例如authorization不得命名approvalscapabilities不得命名host_runtime。同层边被清点而非放任reborn_same_layer_edge_inventory.rs以等式形式钉死全部 21 条 kernel→kernel 边——新边会失败删除的边必须在同一 PR 中同步从清单移除。witness 密封reborn_authorized_seal_ratchet.rs::capability_authorizer_is_implemented_only_by_the_kernel保证CapabilityAuthorizer全工作区仅由ironclaw_capabilities实现。证据铸造密封reborn_sealed_evidence_mint_ratchet.rs对铸造授权 trait 做唯一实现者普查并钉死已退役的host-auth-mintfeature 在所有 manifest/脚本/工作流中缺席。驱动托管reborn_persistence_driver_boundary.rs按 crate 白名单化 DB 驱动只减不增。九大 crate 逐个拆解ironclaw_trust——信任上限trust ceiling目的把 manifest 请求的信任解析为主机验证的有效上限供每个授权决策消费。管线阶段trust ceiling。拥有在分层主机策略下评估包身份、来源与请求权威的策略引擎同步失效synchronous invalidation——信任降级会在任何后续副作用发生之前使受影响的 grants 失效。绝不包含能力注册、grant 发放、调度、密钥托管、运行时执行——这个 crate 只回答这个包被允许被信任什么从不回答它现在可以做什么。公开表面一个密封的有效信任类型其特权变体只能由本 crate 自身的策略求值构造——不能从 wire 类型反序列化任何调用方无论多特权都不能构造。源码上EffectiveTrustClass的特权变体没有公开构造器、没有Deserialize见 crates/kernel/ironclaw_trust/src/decision.rshost_api侧的#[serde(skip_deserializing)]守卫 wire 半边变更只能通过mutate_withcrates/kernel/ironclaw_trust/src/policy.rs按来源的 mutator 为pub(crate)crates/kernel/ironclaw_trust/src/sources.rs。依赖仅中性权威词汇从不依赖任何其他内核 crate、任何基底、任何 lane。安全与权威角色权威上限之门。用户安装的包无法以任何可用手段伪造特权上限且上限本身不授予任何东西——运行在抬高上限下的 loop 或扩展仍然需要后续每一阶段的显式授权与其他调用方完全一样。为什么独立成 crate密封是 crate 作用域可见性的性质。如果策略求值是某个更大 crate 内的模块它的私有 mutator 会被该 crate 内所有其他模块触达独立 crate 让只有这段代码可以改变信任状态成为事实而非期望 agent 遵守的约定。ironclaw_authorization——默认拒绝的授权决策目的把调用方的 grants 与活跃 leases 匹配到请求的效果默认拒绝default-deny。管线阶段authorization decision。拥有在有效信任上限下的 grant 匹配能力 lease 生命周期包括单赢家认领single-winner claim——让一个恢复的、先前已批准调用可以安全地重新进入而不会同时授予第二次调度。源码上CapabilityLease、其状态机、CapabilityLeaseStorePort、具体 store 与过期检查都住在这里crates/kernel/ironclaw_authorization/src/lib.rs指纹 leases 是单赢家先认领后消费claim-then-consume且永远不会变成环境性 grants。绝不包含审批解析、运行时调度、义务执行、或超出grant 对上下文匹配的任何策略内容——只回答是否存在覆盖此效果的 grant从不回答是否应该创建一个。公开表面密封的能力 lease 携带调用指纹invocation fingerprint——为一个精确输入发放的 lease 永远无法授权另一个输入lease 的状态转移本身是公开表面的一部分因为调用方通过它们协调恢复尝试。依赖ironclaw_trust每个 grant 必须满足的有效上限从不依赖 approvals、capabilities、processes、resources 或内核以上任何东西——审批解析依赖这个 crate而不是反过来。为什么独立成 crate授权是一个与同意解析consent resolution不同的、可独立测试的决策——匹配静态 grant 与解析一次性人类决策是不同的问题、有不同的失败模式且只有其中一方应该能够铸造 lease。ironclaw_approvals——精确调用同意exact-invocation consent目的把 require-approval 裁决解析为有作用域、带指纹的 lease 或持久的拒绝——把人类或策略决策变成膜可以行动的东西的 crate。管线阶段approval resolution。拥有持久的审批请求与 gate 记录fail-closed 的解析顺序——在发放 lease 之前先持久记录决策对 manifest 显式允许复用的能力提供持久、作用域受限的 always allow 策略。绝不包含UI 渲染、通知投递目标选择、或在匹配指纹的 lease 被验证并认领之前的调度。选择通知谁、如何通知是调用进这个 crate 的产品关注点而不是反过来。公开表面approve/deny 决策类型把带指纹的 lease 交给膜一个与一次性 lease 不同的可复用审批记录形态让 manifest 标记为可复用的能力不必每次调用都重新提示。依赖ironclaw_authorization它发放 lease 的存储从不依赖 capabilities、host_runtime、processes、turns——膜依赖这个 crate从不反过来。安全与权威角色人类/策略同意权威——唯一让待决决策变成有作用域 lease或终态拒绝的地方。拒绝对该请求是持久且终态的调用方必须提出新请求而非重试被拒的请求。这个 crate 的 resolver 是受认可的 lease 铸造者——该章程由阶段的 forbidden-edge 规则持有发放端口本身是公开的每个带指纹 lease 的构造与通过 authorization crate 的 lease-store 端口发放都在这里lease 的存储、匹配与过期留在ironclaw_authorization。为什么独立成 crate同意解析是与 grant 匹配不同的权威有自己的持久性与排序保证把它并进 authorization 会模糊这个 grant 是否适用与人类是否同意了这个。ironclaw_resources——预留与配额核算目的通过 reserve → execute → reconcile-or-release 协议治理成本、配额与稀缺运行时容量。管线阶段reservation——调度时一次完成时再一次。拥有预留协议及其在部署关心的每个预算维度上的核算——成本、token、墙钟时间、字节、egress、进程数、并发对跨越操作员配置上限的预留设置暂停阈值审批门pause-threshold approval gate与能力审批保持为不同的机器。绝不包含运行时或进程执行逻辑或任何契约要求 fail-closed 拒绝处的尽力核算——预留失败永远被当作拒绝而不是先继续、之后再补。公开表面由不止一个backing store 实现的预留治理器——同一协议在内存、磁盘或持久后端上运行而调用方无需知道一个 receipt 类型闭合估算与实际消费之间的回路。依赖仅中性权威词汇从不依赖任何调用它的 crate——resources被膜、进程生命周期和调解执行调用它从不反向触达。安全与权威角色没有活跃预留任何有成本或配额限制的工作都不执行存储失败与配额拒绝以同样方式拒绝。为什么独立成 crate它是唯一在一个协议背后有多个生产 backing 实现的阶段其平台相关问题绝不能泄漏进任何其他内核 crate 的构建。测试侧crates/kernel/ironclaw_resources/tests/resource_governor_contract.rs 的用例如filesystem_resource_governor_fails_closed_then_recovers_after_delta_append_error、reserve_denies_when_usd_limit_would_be_exceeded直接验证预留失败即拒绝。ironclaw_runtime_policy——纯策略解析与 lane 规划目的把部署模式、运行时 profile 与组织策略解析为每次调度都强制执行的有效运行时策略。管线阶段policy planning——折进膜自身的决策而非独立调用。拥有单调策略解析——部署与组织策略只允许减少请求的权威绝不增加按能力的 lane 规划选择给定调用被允许使用的执行 lane任何放宽默认安全姿态的 profile 都要求显式 opt-in让放宽的执行永远是深思熟虑、有记录的抉择而非静默默认。源码上无效的(deployment, profile)组合返回ResolveError而非静默降级crates/kernel/ironclaw_runtime_policy/src/resolver.rs放宽的*Yolo*profile 需要显式披露确认对ProcessBackendKind::None的进程效果返回PlannerErrorcrates/kernel/ironclaw_runtime_policy/src/planner.rs。绝不包含进程启动、调度、或超出 profile 解析的任何产品面策略——回答哪个 lane 与姿态从不回答运行它。公开表面一个有效运行时策略类型恰好一个受认可的 producer以任何其他方式构造的值按契约不可信下游阶段无需重新推导或质疑收到的策略。依赖仅中性权威词汇从不依赖任何其他 crate——这个阶段是零副作用的纯计算。安全与权威角色喂给膜的策略数学之门确定性与可复现性让审计记录能指名门控某次调用的确切策略。为什么独立成 crate它是唯一无依赖的阶段——纯策略数学运行于中性词汇之上——保持其为叶子意味着策略解析无需膜的完整服务锥也能被消费和测试。ironclaw_capabilities——膜the membrane目的面向调用方的调用服务——每个特权效应必须跨越的唯一大门。管线阶段the membrane——把 trust、authorization、approval、reservation 折进一个密封决策然后路由调度。拥有六个工作流——invoke、resume、resume-after-auth、decline-auth、resume-spawn、spawn——每个在任何副作用之前运行相同的折叠义务接缝obligation seam把受限挂载视图与准备好的预留交给调解执行运行时调度器把密封 witness 路由到其绑定 lane并拒绝 witness 密封 lane 与解析绑定之间的任何不匹配。READMEcrates/kernel/ironclaw_capabilities/README.md明确CapabilityHost的工作流住在src/host/的私有模块中authorize拥有它们共同汇入的单一折叠折叠输出是只有本 crate 能铸造的密封Authorizedwitness。绝不包含进程生命周期或结果存储、并行调度路径、或任何未按授权 → 审批 → 义务准备顺序通过的效果。公开表面密封的授权 witness——证明某个具体效果被授权的唯一工件只能由本 crate 自身的折叠铸造调度恰好消费一次。CapabilityHost实现CapabilityAuthorizercrates/kernel/ironclaw_capabilities/src/host/mod.rs——全工作区唯一实现只有它能构造AuthorizationGrant(())从而密封Authorizedcrates/contracts/ironclaw_host_api/src/authorized.rs。生产调度器是RuntimeDispatchercrates/kernel/ironclaw_capabilities/src/dispatch.rs拒绝 witness/binding lane 不匹配。义务接缝crates/kernel/ironclaw_capabilities/src/obligations.rs的CapabilityObligationHandler由ironclaw_host_runtime实现。依赖其前的阶段 crate——trust、authorization、approvals、resources、runtime_policy——从不依赖调解服务 crate 或 turn 协调器BoundaryRule禁止它命名ironclaw_host_runtime、ironclaw_secrets、ironclaw_network及一切 lane crate——方向严格是host_runtime → capabilities。安全与权威角色膜本身。没有 loop、扩展或产品面能以任何其他方式触达特权效果。授权拒绝或不受支持/失败的义务会在调度、进程启动或审批 lease 认领之前失败审批恢复在调度前验证并认领匹配的带指纹 lease。为什么独立成 crate密封不变量——只有这个 crate 能产生授权 witness——由专门的边界测试强制执行一个 crate 让测试恰好有一件事可检查并让六工作流折叠作为单一单元可审查而不是散落在攻击者首先探测的边界上。ironclaw_processes——持久生命周期权威目的每一件主机跟踪工作的持久生命周期权威前台或后台皆然。管线阶段claimed execution。拥有行原生日志row-native journal记录进程身份、谱系与状态ProcessSupervisor——认领、租赁、心跳、恢复已注册工作容纳 panic 并驱动有序关闭由拥有该类工作的 crate 注册的进程种类——ironclaw_turn_runner注册 agent-turn 种类、ironclaw_host_runtime注册能力调用种类子进程关系作为同一条日志中的边记录而非旁表检查点载荷存为日志行进程输入一旦被接受即不可变。源码上ProcessSupervisorConfig的默认值crates/kernel/ironclaw_processes/src/supervisor.rs——max_concurrent_processes: 4、poll_interval: 5s、lease_recovery_interval: 10s、heartbeat_interval: 30s、max_consecutive_heartbeat_failures: 3——展示了认领/心跳/恢复的具体节奏终态守卫crates/kernel/ironclaw_processes/src/journal_store/state.rs保证终态只写一次、迟到的完成无法覆盖。绝不包含能力授权或审批策略也不对调用方是否允许派生发表意见——只关心派生之后发生什么。公开表面一个进程执行器端口注册 crate 实现它以认领其种类的工作一个进程依赖端口用于记录与查询子关系。依赖ironclaw_resources为跟踪的工作预留容量、中性权威词汇从不依赖 capabilities、host_runtime、turns、authorization、approvals、trust——其上或旁的一切只能通过它定义的端口反向触达。安全与权威角色认领执行权威终态只写一次迟到的完成永远不能覆盖。为什么独立成 crate一条日志回答这件工作此刻在做什么——前台 turn 与后台能力调用同样适用——这正是这个阶段作为单一权威而非多个存在的原因。ironclaw_turns——turn 准入内核目的turn 准入内核——一个会话工作单元的持久入口。管线阶段admission以及退出认领边界——loop 报告的结果在成为持久真相之前先被验证。拥有一个协调器强制每线程单活跃 run与请求幂等——产品面快速路径去重账本之下的持久、内核侧保证退出验证——把 loop 报告的完成、失败或阻塞当作认领claim而非真相直到使用主机铸造的证据检查过它。Turn 与 run 状态不是第二个持久存储它们是ironclaw_processes拥有的进程日志上的类型化投影因此 turn 的生命周期与其底层进程的生命周期永远不会分裂成对是否仍在运行的两种不同回答。源码上TurnCoordinator暴露 accept/resume/cancel 表面且MAX_PREPARED_RUN_IDS: usize 4096等常量crates/kernel/ironclaw_turns/src/coordinator.rs体现了准入窗口的容量纪律。绝不包含原始调度或运行时句柄、原始 prompt 或工具输入内容、密钥、主机路径、渠道身份解析。公开表面协调器的 accept/resume/cancel 表面退出证据端口——loop 的主机适配器在接受退出认领前必须满足它。依赖ironclaw_processes其状态投影的日志、中性权威词汇从不依赖任何调度、运行时或 lane crate——准入与退出验证从不直接触碰执行。安全与权威角色每线程单活跃 run以及结构性保证——loop 无法把自己说服进一个它未被授予的持久状态转移。为什么独立成 crate准入与退出验证回答这个 turn 是否被允许继续运行——一个与这次能力调用是否被允许不同的 fail-closed 权威问题两者有不同的调用方与不同的爆炸半径混淆它们会让 turn 级关注点阻塞能力级关注点反之亦然。ironclaw_host_runtime——调解执行服务目的内核的调解执行服务——已授权 witness 与实际运行 lane 之间的边界。管线阶段mediated execution外加完成膜准备的义务。拥有义务引擎——审计前后、网络策略分阶段、一次性密钥分阶段与消费、挂载限制、资源上限执行、输出脱敏与限制调解的 egress 与密钥分阶段——lane 获得网络访问或凭证材料的唯一路径永远有作用域、永远恰好消费一次封闭 lane 执行器——只调用密封 witness 指名的 lane别无其他调度组装——为给定部署从内核其他服务组装膜通过 provider 中立契约解析内存服务——具体 provider 来自组装这里从不指名。绝不包含厂商特定工具处理器实现、沙箱进程/容器机制、产品工作流、或超出调解本身所需的任何驱动依赖。公开表面膜调用的义务处理器契约每个运行时 lane 的网络访问都流经的调解 egress 端口。依赖内核其余部分组装与驱动膜、基底家族调解的存储/凭证/网络机制、lane 家族构造封闭执行器适配器、事件家族持久审计从不依赖任何 extension、product 或 app crate也不依赖任何 lane 超出其调解所经适配器表面的执行机制。安全与权威角色把一个密封 witness 变成受限挂载、分阶段凭证、有作用域 egress 下的恰好一次 lane 调用然后把 lane 的原始输出变成追加到持久审计日志的脱敏证据。未配置的 lane 会 fail closed凭证只在 HTTPS 或字面loopback 主机上附着测试见 crates/kernel/ironclaw_host_runtime/src/services/tests.rs没有已验证的租户沙箱时进程/能力工具被隐藏并拒绝——绝无宿主 shell。为什么独立成 crate义务完成、lane 执行、证据脱敏这一序列是每个运行 lane 同样依赖的单一原子操作拆成更多 crate 会把一个安全关键的折叠散落到边界上而不增加隔离。家族 AGENTS.md 的要求内核工作的入场规则crates/kernel/AGENTS.md 对每一位在这个家族工作的 agent 规定上文所示的管线图与阶段归属表使哪个 crate 拥有这个效果无需从源码重新推导禁止跳阶段——first-party 是上限不是旁路更高的信任上限仍要求显式 grants、受限挂载、leases、预算与义务处理走与其他调用方相同的膜项目交付的任何东西、运行在提升信任类下的任何东西都不得以其他路径触达特权效果每个 crate 的一行阶段指派让新贡献首次阅读即可正确归位trust→ ceilingauthorization→ decisionapprovals→ consentresources→ reservationruntime_policy→ planningcapabilities→ the membraneprocesses→ lifecycleturns→ admissionhost_runtime→ mediated execution家族的依赖方向重述为一条检查内核 crate 依赖 contracts、substrate、events、closed executor 需要适配器时的 lane 家族以及彼此仅沿阶段顺序——从不依赖loop/、product/、app/它们只通过已定义端口或已注册执行器反向触达新增 crate 必须通过的边界测试说出你的阶段、说出你的 fail-closed 规则或你拥有多个实现的原因——否则你就是九者之一的模块而不是第十个 crate。这一关门规则与四个密封铸造sealed mints相互印证Authorizedwitness 仅由ironclaw_capabilities铸造有效信任上限仅由ironclaw_trust::TrustPolicy::evaluate铸造带指纹审批 lease 由ironclaw_approvals::ApprovalResolver发放进 authorization 的 lease store决策先于 lease 持久化已验证入站证据由ironclaw_extension_host中同置的 ingress verifier 铸造。任何新增的Authorized/EffectiveTrustClass构造器、Default、Deserialize或测试专用逃生口都被视为安全回归而非便利。内核之外如何与之协作跨出这个家族只有几种受约束的方式见 crates/kernel/AGENTS.md 的 Crossing out of this family向下到crates/contracts/ironclaw_host_api、ironclaw_loop_contracts、ironclaw_extension_contracts——共享词汇与内核为更高层定义的端口turn/scope/id 词汇住在host_api::turn绝不在这里。向下到crates/substrates/——内核调解的机制ironclaw_filesystem挂载、ironclaw_secrets加密托管、ironclaw_networkegress 传输、ironclaw_safety。基底从不决定权威。向下到crates/events/ironclaw_event_log——持久审计追加。向下到crates/lanes/——仅从ironclaw_host_runtime用于构造封闭执行器适配器lanes 接收密封工作与调解服务从不授权。向上到crates/loop//crates/product/——永远不作为依赖。loop 层注册进程执行器并满足退出证据端口产品调用ProductSurface→ 膜。如果你需要更高层的行为在这里定义端口让上层实现它。对故障排查同样有用的是 docs/internal/reborn/contracts/kernel-boundary.md 第 7 节的 QA 分流框架行为缺陷先问内核是否未能强制执行某个权威/安全/协调保证——是则内核 bug修调解契约/实现并补调用方级回归loop 是否在 grants 内做出了糟糕的行为选择——则是 loop 实现 bug修或替换 loop 而无需改变内核保证。该契约第 8 节还列出一组内核边界验收测试loop 无法绕过CapabilityHost、信任类本身不授予权威、用户安装代码无法自升至FirstParty/System、升级扩大请求权威需重新审批、每线程单活跃 run 在模型/工具副作用前阻塞并发、prompt 注入文件写入被扫描或 fail closed、脱敏审计记录区分内核失败与 loop 行为失败、租户/用户/项目/agent 作用域流经内核调解调用。小结IronClaw 内核家族的可验证要点可以压缩为一句话loop 选择内核许可lane 运行domains 记忆Loop chooses, kernel permits, lane runs, domains remember。而内核本身是一条九阶段、每阶段一 crate、全程 fail-closed 的特权效应管线turns准入 →processes认领执行 →trust上限 →authorization默认拒绝 →approvals精确调用同意 →resources预留 →runtime_policy策略规划 →capabilities折叠成密封 witness →host_runtime调解执行。密封的 witness、密封的信任上限、带指纹的审批 lease 只能在这个家族内部铸造——loop、extension 或产品面永远无法伪造。想要深入验证可以阅读 docs/internal/reborn/target-architecture/PROPOSAL.md每 crate 契约 §6.5.1–§6.5.10、依赖模型 §8、机械执行 §11.2、docs/internal/reborn/target-architecture/CHECKLIST.md完成定义与 docs/internal/reborn/target-architecture/PLAN.md执行波次在代码侧跑一遍cargo test -p ironclaw_architecture_tests即可让全部依赖边界、witness 密封与证据铸造棘轮可复现地验证这个外围。赞分享人工智能AI 应用交互助手AI Agent【免费下载链接】ironclawIronClaw is an Agent OS focused on privacy, security and extensibility项目地址https://gitcode.com/gh_mirrors/iro/ironclaw点击查看免费下载相关推荐IronClaw 内核权威边界Authority Perimeter九阶段权限管线、密封见证与逐阶段 Fail-Closed 安全设计解析IronClaw 内核权威边界Authority Perimeter九阶段权限管线、密封见证与逐阶段 Fail Closed 安全设计解析 本文以 cra人工智能AI 应用交互助手AI AgentIronClaw 内核安全边界解析九个 crate 分阶段的特权效果管线与密封见证机制IronClaw 内核安全边界解析九个 crate 分阶段的特权效果管线与密封见证机制 crates/kernel/ 是 IronClaw一个以隐私、安全与人工智能AI 应用交互助手AI AgentIronClaw 会话绑定与入站编排ironclaw_conversations 适配器安全边界的架构设计与实现IronClaw 会话绑定与入站编排ironclaw_conversations 适配器安全边界的架构设计与实现 ironclaw_conversations人工智能AI 应用交互助手AI Agent上一篇Sidra Contracts水龙头合约安全代币分发与防重入攻击保护下一篇Local Deep Research的10个核心功能详解从快速总结到报告生成创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表