ASTER CODE / Meta Harness
Meta Harness 使用指南
查找组件组合、宿主扩展、上下文、目录加载、恢复和验证所用的接口。
Meta Harness 是 Aster Code 的执行组合接口。宿主可以选择默认组件、注册组件或提供完整组件树。选定的组件进入同一个会话执行过程,并使用事实日志记录结果。
接口索引
| 需求 | 接口 | 文档 |
|---|---|---|
| 调整提示、调用次数和压缩阈值 | HarnessComposeOptions + with_harness | 组件、预算与压缩 |
| 挂载自己的执行组件 | HostHarnessRegistry + host:<id> | 自定义组件与调度 |
| 替换整棵组件树 | HostHarnessAssembler + admit_component_tree | 自定义组件与调度 |
| 接入项目资料、Skills、MCP 或生命周期钩子 | SessionOptions 的上下文、工具和 Hook 接口 | 上下文、工具与 Hooks |
| 从一个目录加载指令、脚本和定时提示 | DirectoryProjection | Agent 目录与定时提示 |
| 保存会话,或从检查点继续执行 | save / resume_session_async / resume_run | 保存、中断与恢复 |
| 把宿主检查结果交给完成检查 | CompletionAttestor | 验证报告与资源清理 |
| 让监听器或租约跨工具轮次使用 | register_run_capability_effect | 验证报告与资源清理 |
| 给长期任务绑定工作要求、计划和等待条件 | WorkPolicyV1 + goal 接口 | 工作策略与长期目标 |
接入方式
示例接收一个能正常发送请求的 Rust Agent。模型配置与异步运行环境见宿主接入。示例不会另建模型连接。组件示例还使用工作区内的 aster-effect,无需为这些接口启用 advanced-harness。
多数嵌入场景使用 SessionOptions::with_harness 选择默认组件并调整参数。补充一个组件时使用 HostHarnessRegistry。需要完整组件树时使用 HostHarnessAssembler。
自定义组件和完整组件树是 Rust 宿主接口。ACP 客户端不能提交任意 Rust 组件。当前入口只接受三套预先列出的组合,具体列表见“组件、预算与压缩”。
能力协作
一个每日检查项目的 Agent 可以从目录读取指令和 Skills。宿主定时提交任务,Agent 使用 MCP 获取外部信息,并在结束前提交测试报告。中断后可以从保存的会话或检查点恢复。
目录负责组织文件,宿主负责时钟与外部服务,Meta Harness 负责装配执行组件。目录中的定时声明不会自行启动后台服务。
上下文、工具、持久记忆和目标控制通过会话接入。它们不是五个默认组件之外随意添加的组件名称,也不都需要 advanced-harness。构建开关与会话配置需要分别核对。
组件不能改掉的规则
每次工具调用仍要检查权限;修改后的完成状态仍要对应验证结果或明确豁免。组件名称、系统提示和 Hook 的返回值都不能代替这两项检查。
事实日志可以帮助恢复执行状态,但结果不明的外部操作仍需核实。一次运行的完成也不等于长期目标完成;目标需要另外检查所有步骤和等待条件。