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

输入关键词开始搜索。

    文档目录

    ASTER CODE / Meta Harness

    任务分轮执行

    保存工作要求、目标、计划和等待条件,并由宿主限制自动续跑。

    工作策略保存什么

    WorkPolicyV1 保存宿主选择的一段工作要求,带有 ID 和版本号。它在会话的事实日志中记录,并进入原有的 guidelines 提示槽。

    use aster_core::{SessionOptions, WorkPolicyV1};
    
    let policy = WorkPolicyV1::new(
        "project-engineering",
        1,
        "先读调用方,修改后运行项目已有的检查。",
    )?;
    let options = SessionOptions::new().with_work_policy(policy);
    

    策略 ID 最多 128 个 UTF-8 字节,版本号必须大于 0,说明文本不能为空且最多 4096 字节。它提供工作要求,不授予工具权限,也不生成验证通过的结果。

    策略跟随原会话保存。重新打开已绑定会话时,不能悄悄换成另一份策略;没有策略的旧会话也不能在恢复时直接补绑。需要不同工作要求时,应按接口规则建立新会话。

    长期目标与一次运行有什么区别

    一个目标可以分成计划中的多个步骤,再分多次 Run 执行。文档和接口把这样的单次执行称为 slice。每次 slice 仍经过原有工具权限、完成检查和资源收尾。

    一次运行通过验证,不代表整个目标已经达成。所有目标步骤都被接受、没有打开的等待条件,并且所有 slice 都处理完后,目标才可以完成。

    目标接口的顺序

    AgentSession 的目标接口
    接口作用是否执行模型
    apply_goal_definition创建或修订目标定义不会仅因修改定义就开始运行
    apply_goal_plan提出计划,再接受对应的计划版本接受计划本身不启动运行
    apply_goal_wait声明或观察提问、确认、资料版本或 UTC 到期等待按等待状态决定能否继续
    preview_goal_tick查看此刻是否具备推进条件预览不授予执行权
    tick_goal / stream_goal_tick重新检查并最多接纳一个原有运行只有判断为 Advance 时推进
    control_goal暂停、恢复或取消,必要时先停止活动运行不把暂停和恢复当作完成
    reconcile_goal_slices核对已失去执行者的 slice不直接重放原操作

    目标命令携带会话、工作区、策略摘要以及预期的目标与计划版本。旧版本命令、其他会话的引用或尚未处理完的 slice 会被拒绝。修改计划时需要处理并发版本,不能只靠一段自然语言覆盖旧计划。

    等待与下一轮

    推进结果可能是 Advance、Wait、NeedsInput、Paused、BudgetExhausted、Reconcile 或 Complete。只有 Advance 表示宿主可以继续提交这一轮执行。

    确认和提问需要对应回答,UTC 到期等待可以由时钟满足。两者不能互换。宿主可以根据结果停下来显示问题、等待资料更新,或让用户决定下一步。

    每次 tick 最多接纳一个 Run。持续推进需要宿主再次调用接口,或使用产品已有的有界推进流程。组件本身不会另开后台调度器。

    自动续跑的限制

    Core/SDK 未设置续跑策略时不自动续跑。ACP 产品在缺少可信声明时提供有限默认值。普通模式最多接纳 8 个 slice,连续 2 轮没有实际修改就停止,期限为主机初始化后的 24 小时。

    --unattended 的默认上限不同:最多 1000 个 slice,连续 3 轮没有实际修改时停止,并受该次运行的截止时间约束。可信 ACL 的显式设置优先于这些默认值。

    “进展”来自实际修改的完整回执。只读工具成功、重复写入相同内容或模型声称完成,不会重新刷新这个计数。暂停和恢复也不会清空已有历史。

    goal_control 声明只接受宿主可信配置或用户配置,工作区文件不能提高它的权限或上限。这个块包含 automatic_enabled、max_slices、max_no_progress_slices 和 deadline_unix_ms,四项都必须提供;后三项使用十进制字符串,期限是绝对 UTC 毫秒时间戳。

    请按当前时钟选择有限期限,不要复制文档中的旧时间戳。配置格式和允许范围见下方宿主控制手册。

    ACP 中怎样使用

    新会话默认选择产品的 engineering-v1 工作策略,Core/SDK 默认则仍是可选。ACP 的 _meta.asterEngineering.policy 可以选择 engineering-v1 或 none,未知值会拒绝。

    显式 /goal <目标> 用于创建并唤醒目标;普通消息不会自行变成长期目标。产品还提供 /goal status、pause、resume 和 clear。取消或完成的目标保留历史,切换到另一项工作时应建立新会话。

    实现依据