ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Prime Agent 长时运行与后台 Agent 完全指南:Daemon 会话、消息路由、定时任务、持久目标与自治模式

Prime Agent 长时运行与后台 Agent 完全指南:Daemon 会话、消息路由、定时任务、持久目标与自治模式 Prime Agent 长时运行与后台 Agent 完全指南Daemon 会话、消息路由、定时任务、持久目标与自治模式【免费下载链接】prime-agentA self-improving RLM agent for coding workflows and long-running autonomous tasks.项目地址: https://gitcode.com/GitHub_Trending/pr/prime-agentPrime Agent 将终端关闭与任务结束彻底解耦所有交互式会话都运行在由本地 daemon supervisor 管理的常驻 worker 进程中客户端可以随时 detach而队列、调度、会话、Python kernel、子 Agent 与持久状态继续由 worker 独占托管。本文基于 long-running-agents.md 展开结合 daemon 架构、RLM 编程模型与核心源码系统讲解后台会话的生命周期管理、Agent 间直接通信、三类调度表面用户 heartbeat / RLM heartbeat / 通用 schedule、持久目标goal与有界自治模式autonomous mode的配置与使用读完即可搭建一套无人值守、可恢复、可自治的长期运行编码工作流。运行时全貌从 TUI 到常驻 worker要理解长时运行特性先看它们共享的会话与 worker 运行时。下面是文档给出的核心运行时流程图关键结论客户端可以在任何时刻 detach常驻 worker 继续独占持有队列prompt queue、调度schedule、会话AgentSession、内核Python kernel、后代RLM children与持久化状态。会话产物落盘为 JSONL transcript 与 session artifacts重启后可以从这些产物恢复会话状态而不是把终端客户端当作工作的所有者。从进程拓扑看详见 daemon.mdsupervisor 只负责公共 socket、客户端 attach、路由、Agent 消息投递、worker 健康、命令日志与协调更新不执行provider、工具、compaction、bash、kernel、调度与 transcript 扫描这些全部由每个常驻 worker 内的根AgentSessionRuntime承担。worker 按根会话树进行进程隔离用于生命周期与故障隔离——注意它不是安全沙箱通常与客户端拥有相同的操作系统权限。Daemon 支撑的会话detach、attach 与生命周期命令正常交互式会话运行在由 supervisor 管理的常驻 worker 进程中。worker 拥有根会话、Python kernel、定时任务与 RLM 后代。关闭 TUI 只会 detach 客户端不会停止 worker。列出并重连活动 Agentprime-agent list prime-agent attach agent其余生命周期命令一览prime-agent agents # 打开 agents 视图 prime-agent rename agent name # 给 Agent 起一个稳定的可读名称 prime-agent stop agent # 停止单个 Agent prime-agent status # 检查后台服务状态 prime-agent doctor [--fix] # 诊断或修复服务状态 prime-agent shutdown [--force] # 停止所有 Agent 与服务其中--force会一并终止无响应的 worker 进程组与被跟踪的子进程doctor适合在异常退出后自检恢复服务。rename尤其重要——后续attach、send、schedule都依赖一个稳定的可寻址名称。从实现层面看daemon.mdsupervisor 为每个活动根会话树启动一个独立的进程组worker 描述符、认证 token、活动会话 ID、会话路径与恢复日志都以仅属主可读写的权限写入 agent 目录worker 监视公共 supervisor socket若其消失一个 worker 会通过原子启动租约拉起替代 supervisor并收养现有 worker 及其活动会话 IDworker 崩溃只影响一个根会话树恢复按 250 ms、1 s、5 s 重试连续三次失败才将该根标记为失败每个持久化会话都由基于规范化 JSONL 路径的进程安全租约保护避免 daemon worker 与一次性客户端并发写同一 transcript并发打开会返回session_already_active。worker 与 supervisor 重启后可以恢复会话状态与调度并重新水合已完成的 RLM 子会话。Agent 与 Agent 之间的直接通信daemon 在活动会话与保留的 daemon-backed 子 Agent 之间路由直接消息。从 shell 发送prime-agent send agent Please verify the latest migration从 Python kernel 中使用预加载的agent_observe与agent_messagePython 技能源码位于 skills/agent-observe 与 skills/agent-messageroster await agent_observe.list_agents() receipt await agent_message.send( Recheck the endpoint after the latest edit, receiver_rolesibling, receiver_nameapi-reviewer, modeauto, ) print(receipt[deliveryStatus])对当前父 Agent 的直接 RLM 子会话优先使用父作用域的注册表children await rlm.list_subagents() child next(item for item in children if item.session_name api-reviewer) await agent_message.send( Continue with the updated diff, receiver_rolechild, receiver_namechild.session_name, )投递模式delivery mode模式行为auto目标忙碌时引导steer目标空闲时立即投递steer有意将消息注入目标当前进行中的工作follow_up等待目标当前工作结束后再投递回执语义delivered消息已进入空闲目标的上下文queued已接受等待稍后投递。agent_message.send(all, message)只在家族花名册family roster内广播。sender 身份由 daemon 推导并强制执行消息大小、速率与待处理队列上限。源码细节印证skills/agent-message/src/agent_message/init.pyreceiver_role只能是parent、sibling、child三者之一发往parent时不允许带receiver_name而发往sibling/child时receiver_name必填所有路由与 sender 身份都位于 TypeScript daemon 侧kernel 内只是rlm.host_request(agent_message.send, payload)的薄封装。这与 rlm.md 的 Host Bridge 设计一致凭证、provider 执行、transcript 写入、worker 路由与调度都不进入 Python。心跳与定时提示三类调度表面Prime Agent 提供三张相关的调度表面表面所有者用途/heartbeat用户当前会话中一条可见的循环指令rlm_heartbeatAgent由程序管理的、会话内部的多条循环指令prime-agent schedule用户或自动化面向某个 Agent 的通用一次性或 cron 提示用户心跳User heartbeat创建与管理当前会话的可见心跳/heartbeat every 10m Check the deployment and report meaningful changes /heartbeat status /heartbeat pause /heartbeat resume /heartbeat clear心跳投递默认会引导正在进行的活动工作若希望循环提示等到当前回合结束再投递加上--follow-up。用/heartbeats复数统一查看和管理用户与 Agent 创建的心跳。Agent 创建的 RLM 心跳Agent 可以在 kernel 内以编程方式创建多个内部心跳技能位于 skills/rlm-heartbeatfirst await rlm_heartbeat.create( check whether the test run finished, interval5m, labeltests, ) second await rlm_heartbeat.create( inspect the deployment status, interval10m, labeldeploy, delivery_modefollow_up, ) await rlm_heartbeat.list() await rlm_heartbeat.update(first[heartbeat][id], statuspause)RLM 心跳与用户的/heartbeat相互独立——Python 技能不能替换或清除用户拥有的心跳权限边界由 TypeScript host 强制。通用调度General schedules为一个可寻址 Agent 调度一次性或循环提示prime-agent schedule add worker in 30m -- Check the benchmark result prime-agent schedule add worker 0 9 * * 1-5 -- Review open work prime-agent schedule list --all prime-agent schedule cancel job-id--之后是实际要发送的提示文本因此消息内容中带空格、--或特殊字符都不会被 CLI 解析干扰。可靠性设计实现见 daemon.md调度任务按会话持久化到session-artifacts/session-id/scheduled-jobs.json不存在全局共享的 cron 文件每个 worker 为其根会话及后代运行一个 scheduler。到期 tick 在投递前先被认领claim因此崩溃不会重放一次不确定的提示错过的 tick 会被合并coalesce而不是累积成无限积压。worker 崩溃恢复时把不确定的认领标记为中断、保留已推进的调度、仅恢复未来的 ticksupervisor 负责路由调度命令并汇总 worker 的调度列表以支持全局schedule list。持久目标Persistent Goals跨回合的持久目标goal 是一个持久的客观目标harness 会在每个回合持续呈现直到它被完成、暂停、预算受限、出错或被清除。创建持久目标必须是用户或宿主host的显式动作Agent 不应从每个任务中自行推断出目标。从 TUI 显式启动/goal Ship the release and verify every published artifact /goal --budget 200000 Complete the repository migration管理其状态/goal status /goal pause /goal resume /goal clear模型侧使用 kernel 内的goal技能skills/goal检查或完成目标state await goal.get() await goal.complete()goal 状态记录 token 用量、已用时间、continuation 计数与可选的显式 token 预算。harness 会在普通 assistant 回合之后持续提示活动目标只有goal.complete()才标记为成功完成——即使预算接近耗尽或准备收尾也不应调用它。源码印证skills/goal/src/goal/init.pygoal.get()返回含goal、remaining_tokens、completion_budget_report的字典其中goal字段携带 objective、status、token budget 与用量goal.create()在仍有 pendingactive/paused/budget-limited目标时失败只有已完成或出错的目标可被替换所有 goal 状态都保存在 TypeScript host 中Python 只是rlm.host_request(goal.get / goal.create / goal.complete)的类型化封装。自治模式Autonomous Mode有界的无人值守运行自治模式是一种有界的宿主策略适用于不预期有人类输入的运行。Prime Agent 会持续追加 follow-up continuation直到配置的质量门gate通过或达到 continuation / turn / token / 墙钟时长上限。交互式会话中开启/autonomous on接受与 CLI 相同的预算参数因此交互式运行可以自定义预算而不必停在默认的三次 continuation/autonomous on --max-continuations 10 --max-turns 40 --max-tokens 500000 /autonomous on --gate npm run check --gate-retries 2 /autonomous status /autonomous off从 CLI 配置一次运行prime-agent \ --autonomous \ --autonomous-gate npm run check \ --autonomous-max-turns 20 \ Implement and verify the requested change预算参数语法细节斜杠命令的旗标--max-continuations、--max-turns、--max-tokens、--timeout-ms、--gate、--gate-retries、--gate-timeout-ms同时接受--flag value与--flagvalue两种写法且 CLI 的完整拼写如--autonomous-max-continuations可作为别名。数字值允许使用,或_作为千位分隔符如--max-tokens 100,000,000,000。四个预算上限还接受unlimited以移除对应上限。没有 gate 时unlimited 的运行只会因错误或手动中止而停止所以把 unlimited 预算与质量 gate 搭配使用。具名预算旗标定义整体预算任何未具名的上限都会变成 unlimited因此/autonomous on --max-tokens 100,000会一直运行到该 token 预算耗尽。完全不指定预算旗标时仍应用配置或默认上限。重复--gate会追加多个 gate。默认值与实现原理从核心实现 src/core/autonomous.ts 可以确认默认值项默认值maxContinuations3maxTurns12maxTokens80,000timeoutMs30 分钟gatemaxRetries3gatetimeoutMs5 分钟gate 输出上限6,000 字符这就是文档所说默认三次 continuation的来源。unlimited在实现中以Number.MAX_SAFE_INTEGER哨兵值表示保证 JSON 可序列化且不参与实际限制判断。gate 命令在会话可能结束前运行失败的 gate 会把有界的输出交还给 Agent 继续尝试同时 Prime Agent 会基于 git worktree 快照status/diff/untracked hash避免在工作区未变化时重跑同一个失败的 gate。goal 与 autonomous 的分工两者互补但本质不同goal跨回合存储目标及其进度状态autonomous mode依据证据、gate 与上限决定是否注入下一次 continuation。压缩与连续性Compaction and Continuity长任务期间上下文会持续增长自动压缩负责处理在溢出或接近配置阈值时Prime Agent 会摘要较旧消息、保留近期上下文并继续。Python kernel 在压缩期间保持存活因此变量、import、辅助函数与任务状态都仍然可用。Agent 可以编程检查或请求压缩技能位于 skills/compactawait compact.status() await compact.run(Preserve the failing tests and remaining migration steps)压缩不是完成信号它不会停止 goal、自治 continuation、心跳或已存在的子会话后续父回合会从压缩后的上下文继续。与 RLM 编程模型的配合长时运行能力并非孤立特性而是 RLMrecursive language model运行时状态设计为跨回合存活这一核心不变量见 rlm.md的自然延伸自动压缩摘要旧上下文、保留近期消息与 kernel 状态daemon-backed worker 在客户端 detach 后继续运行活动会话子注册表与会话产物让子 Agent 可恢复心跳与调度提示在之后重新进入会话持久 goal 一直持续到目标完成或用户改变其状态autonomous mode 提供有界 continuation 与可选质量 gate。所有这些能力goal、agent_message、rlm_heartbeat、compact都通过 kernel 预加载对象上的rlm.host_request(...)调用 TypeScript host由 host 校验请求并持有状态转换的权威权——这正是Python 是模型面的编程面TypeScript host 是状态权威的架构体现。实践建议与安全边界长期任务的首选形态把目标用/goal显式声明用/heartbeat或prime-agent schedule安排检查节奏需要深度工作再配rlm.spawn子 Agent需要无人值守收尾时开启/autonomous on并务必带上 gate 或预算上限。调度可靠性由于到期 tick 先认领再投递、错过的 tick 会合并崩溃或短暂停机不会重放不确定的提示也不会积压成雪崩。安全边界daemon worker 是进程隔离而非安全沙箱Python kernel 以 worker 的操作系统权限运行模型生成的 Python 与项目命令信任模型详见 rlm.md。对不可信仓库与指令请使用外部沙箱或受限环境。延伸阅读Daemon 架构进程拓扑、会话租约、恢复日志、公共协议与更新协调RLM 编程模型rlm.spawn子会话、bash()、Host Bridge 与信任模型RLM Runtime 架构递归子会话生命周期的实现细节Sessions会话存储、/tree、/fork、/clone与分支摘要SkillsPython-backed 技能的结构、发现与创建Autonomous 核心实现自治状态机、预算归一化与 gate 执行【免费下载链接】prime-agentA self-improving RLM agent for coding workflows and long-running autonomous tasks.项目地址: https://gitcode.com/GitHub_Trending/pr/prime-agent创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表