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

输入关键词开始搜索。

    文档目录

    ASTER CODE / 01

    Aster Harness 概述

    Aster Code 负责 Aster 的模型调用、工具执行、会话记录和完成检查。

    架构图FIG. 01 · 运行时架构终端与桌面通过 ACP 接入 Core,Rust 应用直接使用 SDK。会话调用模型和受控工具,并把结果写入事实日志。
    Aster 运行时架构终端和桌面通过 ACP 接入 Core,Rust 应用直接创建会话。Core 调用模型和受控工具,并记录事实日志。产品宿主工作环境工作环境Aster Code / CoreAster Code / CoreAster 终端Aster 桌面ACPRust 应用AgentSessionMeta Harness / FactRun模型服务受控工具 / 工作区 / MCP事实日志

    Harness 的职责

    假设 Aster 需要修复一个失败的测试。模型先查找代码,再修改文件并运行测试,然后根据结果决定是否继续。Harness 组织这些步骤:准备模型输入、执行工具调用、检查权限、记录结果,并判断任务能否结束。

    在 Aster 中,这部分由 Aster Code 实现。它的核心库是 aster-core,下文简称 Core。终端和桌面通过 ACP 协议与 aster-acp 进程通信,由该进程调用 Core。Rust 应用也可以直接嵌入 Core。使用这套库的应用称为“宿主”。

    Core 提供 Anthropic、OpenAI、智谱及 OpenAI 兼容接口的模型适配器。

    01

    执行工具

    检查模型请求的调用是否获准,再执行工具。

    02

    保存记录

    记录执行结果,供下一轮使用或中断后恢复。

    03

    检查完成条件

    检查修改是否通过验证,或已获准免除验证。

    事实日志如何支持恢复

    FactRun 是执行任务的核心,底层使用 aster-effect。事实日志按顺序保存用户输入、模型回复和工具结果。执行组件读取这些记录,计算当前状态和下一步可以执行的动作。

    例如,一次工具调用已完成并留下记录,恢复会话时就不需要重新执行这一步。运行时根据日志重建状态,继续处理尚未完成的动作。宿主通过实时事件或运行快照显示进度。子代理采用相同机制,但各自保存日志。

    可以组合的执行组件

    Rust 宿主可以选择和组合执行组件,例如系统指令、工具目录、调用预算、上下文压缩和调度器。这套组合接口称为 Meta Harness。不指定组合时,会话使用默认组件。

    system系统指令
    tools工具目录
    budget执行预算
    compact上下文压缩
    infer调度组件
    默认组件。宿主可以调整组合,权限和完成检查仍由 Core 执行。

    自定义组件也从日志计算状态,由运行时执行动作。无论如何组合,工具权限和完成检查都由 Core 执行。Rust 接口支持自定义组件树;当前 ACP 入口只接受代码中预先列出的几套组合。

    具体配方、自定义组件、工具接入和恢复接口,见 Meta Harness 使用指南。

    默认包含哪些能力

    Core 默认使用 local-code 构建,包含本地编码所需的执行循环、工作区工具和词法索引。高级工作流、研究与评估、浏览器搜索、S3 和遥测需要额外的构建开关。持久记忆和长期目标还需要宿主提供相应配置或服务。

    构建模块已编译

    相应的 Cargo feature 已启用。

    接入会话已配置

    宿主已提供这项能力需要的配置。

    验证运行已检查

    在目标环境中检查过实际行为。

    例如,编译了记忆模块,并不意味着会话已经开始保存和召回长期记忆。宿主还需要指定存储、访问范围和激活规则。具体接入方法见“宿主接入”。

    文档入口

    设计原则说明执行边界。RSI 与 Meta Harness说明候选执行策略的实验方法。

    终端编码智能体教程使用同一个 Rust 工程,依次实现只读会话、确认、验证、恢复和长期任务。

    实现依据

    本文根据 Aster 仓库中的 aster-core 9.1.5 编写,代码核对日期为 2026-10-26。