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 个切片,停滞上限为 2 个。 默认期限为宿主初始化后 24 小时。

    --unattended 默认最多接纳 1000 个切片,停滞上限为 3 个。 续跑受本次执行的截止时间约束。 可信 ACL 的显式声明覆盖默认值。

    当前新接纳来源使用 turn_progress_delta_v3。 进展依据包含净变化、已接受步骤和原始进展维度。 只读调用成功本身不代表目标取得进展。 重复写入相同内容不会产生新的工作区状态。 历史来源沿用原有语义,暂停与恢复保留累计历史。

    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。取消或完成的目标保留历史,切换到另一项工作时应建立新会话。

    实现依据

    内部机制

    长期任务设计逐项解释 tick 决定、进展版本、停滞和目标完成。 每个源码站点保留本版的准确行号。