SuperAPI AI 工具集

invoke-agent

智能体与模型

查看项目

更新于 10-15 10:04

技能介绍

Invoke Agent — 在 herdr 中调用角色

用途

让指定角色的代理在当前 herdr 工作区中可用,并加载好对应的 playbook:如果已有已唤醒的同角色代理则复用,否则新建一个。若要在当前正在运行的会话中加载角色而不操作 herdr,应改用 init-agent。

可用角色

与 init-agent 相同的角色:PM、BA、UX、ARCH、LEAD、TESTER、DEV(见 references/PLAYBOOK-<ROL>.md)。herdr 中的代理命名约定为该角色的小写形式(pm、ba、ux、arch、lead、tester、dev)。

输入

一个角色参数,不区分大小写,例如:/invoke-agent TESTER。

若未指定或未匹配到任何角色,则询问要调用哪个角色并等待回答。不假设默认角色。

工作流程

  1. 确定当前工作区:读取环境变量 HERDR_WORKSPACE_ID(若不可用,则用 herdr pane get $HERDR_PANE_ID 解析)。
  2. 列出当前工作区的 pane:herdr pane list --workspace <workspace_id>。
  3. 列出存活代理:herdr agent list。
  4. 交叉比对两个列表,查找 pane_id 属于当前工作区且名称符合所请求角色命名约定的代理。处于正确角色但在其他工作区的已唤醒代理不算,会被忽略。
  5. 若在当前工作区已存在 → 作为目标,进入第 6 步;若不存在 → 进入第 5 步(新建)。
  6. 在当前工作区新建代理:
    • 若角色名已被其他工作区的存活代理占用,则添加数字后缀选择空闲名称(dev-2、dev-3……)。
    • herdr pane split --current --direction right --focus → 捕获返回的 pane_id。
    • herdr agent start <解析后的名称> --kind <你的代理> --pane <pane_id>,使用你当前运行所用的同类代理(claude、opencode 等),除非用户指定其他类型。
  7. 向代理(新建或复用的)交付角色与工作:
    • herdr agent prompt <target> "/init-agent <ROL>" —— 让其自行加载 playbook,而不是以文本粘贴。
    • 再用第二个 herdr agent prompt <target> "<具体任务>" 给出真实任务:输入在哪里、最小项目上下文以及任何相关待解决点。
    • 若任务需要回传通知(例如 LEAD 等待交付),在任务中包含你自己的代理名称和通知格式:herdr agent prompt <你的名称> "ENTREGA <ROL>: ..."。你的名称可通过 herdr agent list 查找 pane_id 与 $HERDR_PANE_ID 匹配的代理获得。
  8. 用一行向用户确认:是复用了已有代理还是新建了代理,以及其 pane_id/名称。

注意事项

  • 依赖被调用代理所处环境中已安装 init-agent。若未安装,则在第一个 herdr agent prompt 中粘贴对应 playbook 的完整内容作为替代。
  • 绝不复用已在其他工作区唤醒的所请求角色代理,即使其处于空闲状态。
  • 若 herdr agent start 因名称被占用而失败,先用 herdr agent list / herdr agent get 诊断,再盲目用其他名称重试。
  • 不要用 --wait 等待长时间交付:超时并不意味着任务失败。为此应使用第 6.3 步的回传通知。