Aster文档
搜索 Aster 文档
ESC
产品
版本

输入关键词开始搜索。

    文档目录

    ASTER CODE / 功能参考

    权限、沙箱与完成检查

    权限层、沙箱、确认、Hook、预算和完成证据的接线顺序。

    写操作的调用顺序

    修复文件时,先准入 Run 与能力快照,再对每个调用检查参数、权限及所需确认,执行 Hook、预算与沙箱约束,最后记录结果和变化。组件可以安排动作,权限执行器决定动作能否执行。

    教程第四章给出默认拒绝、只读工具允许和确认管理器的接线。生产宿主应分别测试读取、写入、命令、网络和越界路径,不能只测“工具成功返回”。

    权限与沙箱的职责

    权限策略决定调用被允许、拒绝还是需要询问。工作区能力限定后端支持的操作。沙箱限制进程、文件和网络访问。允许一个工具名不会放宽另外两层。

    Rust 宿主可通过 BashSandbox 注入进程隔离实现,使用 with_sandbox_handle 绑定,另有网络模式与 allow 范围。允许 host process sandbox 是显式宿主决定。不要把仅检查字符串的策略当成操作系统隔离,也不能用项目 ACL 启用原本未获准的主机执行。

    租户、用户、工作区和路径身份都应由可信宿主提供。source_review、只读会话和固定快照审阅的更窄约束不能被提示、Hook 或后续工具注册解除。

    Hook 的注册与撤销

    会话公开 register_hook、register_hook_handler、register_hook_registration,各自对应配置、处理器和已绑定注册的接口。按选用类型的公开定义接入,保存精确 hook_id,并通过对应 unregister 方法撤销。

    接入前先回答三个问题:在哪个事件触发,超时或处理器错误怎样返回,是否会影响模型和工具看到的内容。测试应该观察到实际触发和撤销后的不触发,而不只是 hook_count() 增加。不要依赖注册先后推断优先级,按 Hook 类型中的显式规则配置。

    Hook 可以阻止或调整流程,但不能批准被权限拒绝的操作。Hook 要执行命令或 IO 时仍须有授权、期限和清理;在 Hook 里绕到主机直接写文件会破坏受控调用的边界。

    预算与中止

    set_budget_guard 接入宿主额度判断。模型 token、工具成本、时间、工具轮次和续跑上限分别计量。宿主需要决定失败是否可重试;预算不足不应显示成供应商故障,更不能切换一个无额度检查的入口继续运行。

    重试需要继承原授权与已消耗预算。重试不应把重复写入当成新的成功动作。当前结果未知时,核实原操作再决定能否重试。

    验证怎样阻止错误完成

    verify_commands 执行已选验证命令并保留报告;verification_reports、verification_summary 读取结果。命令本身仍需要受控执行权限。进程退出码为零只证明这条检查按其规则成功,不自动证明用户需求全部满足。

    架构图完成门禁与资源收尾先处理不确定结果与未完成事项,再判断 Narrative、Waived 或 Verified;任何可结束状态都还要等待清理。
    结束前必须逐项核对这是门禁的判定顺序。任一前置条件未满足,运行保留缺口。副作用已结清原始回执外部观察已处理当前对象子任务已观察工作区影响修改观察完整完整摘要验证或豁免匹配当前摘要允许结束最终完成状态
    1. 01先处理结果不明的操作

      副作用、外部观察和子任务分别检查。最终答复不会消除未决事项。

      harness_loop.rs L1591 ↗
    2. 02确认观察覆盖全部修改

      部分文件列表不能代表完整的修改摘要。

    3. 03再绑定验证依据

      有修改时,报告或豁免必须匹配当前摘要。无修改也要先通过前置检查。

      harness_loop.rs L1591 ↗

    下载 SVG ↗

    宿主使用 CompletionAttestor 提交独立检查结果时,报告应绑定当前修改摘要和检查身份。修改后旧报告需要失效或重新检查。明确豁免应保留原因,不能把缺失检查改名为通过。

    验证入口见 AgentSession::verify_commands L470 ↗;完成判定见 decide_with_contracts L1591 ↗,它先拒绝未解决事项,再检查当前 effect_digest 的豁免或 Passed 报告。

    资源清理也要有结果

    Turn 资源在单轮结束清理;跨轮使用的监听器、浏览器页面、文档模型引用和租约注册为 Run effect。CapabilityEffect::close 负责释放原资源并返回失败,不能只清空宿主字典。完整接口见验证与资源清理。

    实现资源时从 CapabilityEffect L39 ↗ 的异步 close 合同开始核对。

    验收至少覆盖:权限拒绝时未执行;确认过期时未执行;Hook 出错可定位;预算耗尽停止;取消后资源结算;清理失败不伪装成成功。

    实现依据