RemoteAgent 类

远程 Agent 客户端的核心公开接口

RemoteAgent 的核心公开使用面包括:

  • new RemoteAgent({ url })
  • agent.sessions
  • agent.run_power_action(input)

agent.sessions.create() 和 agent.sessions.get() 返回 RemoteAgentSession。

Sessions

agent.sessions 返回一个 AgentSessions,包含以下方法:

  • agent.sessions.create(input?)
  • agent.sessions.get(session_id, origin_type = "work")
  • agent.sessions.list(input?)
  • agent.sessions.archive({ id, origin_type? })
  • agent.sessions.archived(input?)
  • agent.sessions.clean_archive()

run_power_action

当你的客户端 UI 需要调用远程 runtime 上的 Power Action 时,使用 run_power_action()。

await agent.run_power_action({
  power: "example",
  action: "refresh",
  payload: {
    scope: "current-session",
  },
});

Shell 审批属于具体远程 Session,不属于 RemoteAgent 顶层。可以查询后处理:

const interactions = await session.interactions();
await session.respond({
  interaction_id: interactions[0].request.interaction_id,
  response: { type: "approval", outcome: "resolved", payload: { decision: "approved" } },
});

也可以在统一 Mutation 流里处理 pending Interaction:

session.subscribe((mutation) => {
  if (mutation.variant !== "part" || mutation.part.type !== "tool") return;
  const interaction = (mutation.part.interactions ?? []).find(
    (item) => item.status === "pending",
  );
  if (interaction) render_interaction(interaction);
});

url

当前构造参数是:

new RemoteAgent({
  url: "http://127.0.0.1:5314",
});

而不是 baseUrl。

url 当前支持:

  • http://...
  • https://...
  • rpc://...

核心语义

它本身不执行任务,只负责连接远程 session 能力。

如果你把本地 Agent 看成服务端执行壳,那 RemoteAgent 就是与之配对的客户端。

一个重要限制

远程 Session 不提供模型配置方法;模型选择和实例注入由服务端宿主负责。

也就是说:

await session.set({ model });

当前不支持。

模型应该由服务端本地 Agent 或服务端本地 session 持有。