ARTICLE DETAIL

资讯详情

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

Prime Agent 如何向其他活跃 agent 发送消息并选择投递模式?

Prime Agent 如何向其他活跃 agent 发送消息并选择投递模式? Prime Agent 如何向其他活跃 agent 发送消息并选择投递模式【免费下载链接】prime-agentA self-improving RLM agent for coding workflows and long-running autonomous tasks.项目地址: https://gitcode.com/GitHub_Trending/pr/prime-agent当你同时运行多个 Prime Agent 会话——一个在跑迁移、另一个在复核 API、或者父会话派出了若干 RLM 子会话——经常需要把一条指令精确送到某个正在工作的 agent。Prime Agent 通过本地 daemon 在活动会话之间路由直接消息支持从 shell 或从 agent 自己的 Python kernel 发送并提供三种投递模式auto、steer、follow_up控制消息何时进入目标上下文。本文说明如何列出可发消息的目标、按角色发送、选择投递模式以及如何用回执确认消息是被立即处理还是排队等待。前提确认目标 agent 是活跃的 daemon-backed 会话Prime Agent 的普通交互会话运行在由本地 supervisor 管理的常驻 worker 进程中worker 拥有会话、Python kernel、定时任务与 RLM 子会话。关闭终端 UI 只是断开客户端不会停止 worker。发送消息前先用下面命令确认目标 agent 正在运行并重新连接它prime-agent list prime-agent attach agent如果目标不在这份活跃列表里而它是你当前 agent 家族内已完成的子会话直接给它发消息也可以唤醒它见下文边界说明。从 shell 发送prime-agent send在 shell 中向某个 agent 发一条直接消息prime-agent send agent Please verify the latest migrationagent是prime-agent list中显示的 agent 标识。这是自动化脚本中最直接的入口适合在两个独立的终端或任务编排中互相通知。在 Python kernel 里发送先查名册再按角色寻址agent 运行时kernel 预载了agent_observe和agent_message两个 Python skill。所有路由和发件人身份都由 TypeScript daemon 掌握Python 侧只是发起请求。第一步用 agent_observe.list_agents() 拿到名册agent_observe是只读的它列出当前 agent 能触达的整个核心家族父会话、兄弟会话和直接子会话活跃与否都列出roster await agent_observe.list_agents()返回结果包含current和agents。每个成员带有sessionId、可选的sessionName、relationshipparent/sibling/child、status、isSessionActive以及已知的消息预览活跃会话是latestMessage未激活子会话是firstMessage。发消息时需要的两个参数——receiver_role和receiver_name——就分别取成员的relationship和sessionName。没有活跃会话的成员没有activeSessionId仍然可以用relationship加sessionName寻址成员没有名字时用sessionId。第二步按角色发送receipt await agent_message.send( Recheck the endpoint after the latest edit, receiver_rolesibling, receiver_nameapi-reviewer, modeauto, ) print(receipt[deliveryStatus])参数规则receiver_role只能是parent、sibling或child。发往父会话时省略receiver_name父会话是唯一的发往兄弟或子会话时receiver_name必填。不要自己带from字段发件人身份由 daemon 从当前会话推导Python 侧无法伪造。对当前父会话的直接 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, )给子会话发完消息后不要立刻删除它已投递的后续消息可能仍在执行排队回执对应的消息还没运行。等到观察显示子会话空闲且上下文不再需要再调用await rlm.delete_subagent(child)。广播只面向家族名册send不阻塞等待await agent_message.send(all, Status check needed from everyone)选择投递模式long-running-agents.md 定义了三种投递模式auto目标忙碌时以 steering 方式介入目标空闲时立即投递steer有意把消息注入目标当前正在执行的工作中follow_up等目标当前工作结束后再投递。按目标此刻的状态选择希望目标尽快感知、且不打断其工具执行节奏用auto或steer希望指令排在当前这轮工作之后用follow_up。这里有一处文档不一致需要注意agent-message skill 文档 描述send的签名只有message、receiver_role、receiver_name并写明Messages always use steering delivery so a busy target sees them during its active run而 long-running-agents.md 的示例展示了modeauto参数和三种模式。两份文档并存实际以你运行版本中的行为为准如果mode参数不被当前版本接受去掉该参数消息会按 steering 投递忙碌目标在当前工作允许时收到回执为queued。验证投递结果读取回执send返回一个回执判断依据是其中的deliveryStatus字段delivered消息已进入空闲目标的上下文回执带deliveredAtqueued消息已被接受、将在目标当前工作允许时投递回执带queuedAtsend本身不阻塞等待投递完成。广播返回{receipts: [...]}按名册顺序排列成功条目是普通回执失败条目包含目标 id 和简短的error一条投递失败不会拒绝其他成功的投递。发送后还可以用agent_observe的只读接口核对目标状态worker await agent_observe.get_agent(api-reviewer) recent await agent_observe.recent_messages(api-reviewer, limit6)recent_messages的limit必须为 1–50max_chars必须为 80–2000。该 skill 只能列出家族会话、查看单个会话和取有限长度的近期消息预览不能 prompt、steer、清除、终止或重命名其他会话家族以外的目标会被拒绝。边界与限制触达范围仅限父会话、兄弟会话和直接子会话根会话之间互为 sibling。要给孙辈或表亲传话通过中间子会话中转不能直接寻址。限制由 daemon 强制执行消息大小、速率和待处理队列上限在接受投递前生效发件人身份无法伪造。唤醒语义向未激活或已完成空闲的子会话发消息会唤醒它并在原会话与原上下文中启动一个普通后续回合子会话只在父会话关闭前保持可用。更底层的进程与恢复行为见 daemon.md子会话生命周期细节见 rlm.md。【免费下载链接】prime-agentA self-improving RLM agent for coding workflows and long-running autonomous tasks.项目地址: https://gitcode.com/GitHub_Trending/pr/prime-agent创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表