API Reference

RemoteAgent 类

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

RemoteAgent 类

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

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

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

Sessions

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

  • agent.sessions.create(input?)
  • agent.sessions.get(session_id)
  • agent.sessions.list(input?)
  • agent.sessions.archive({ id })
  • agent.sessions.archived(input?)
  • agent.sessions.clean_archive()

run_plugin_action

当你的客户端 UI 需要调用远程 runtime 上的 plugin action 时,使用 run_plugin_action()

await agent.run_plugin_action({
  plugin: "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: { kind: "approval", decision: "approved" },
});

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

session.subscribe((mutation) => {
  if (
    mutation.variant === "part" &&
    mutation.type === "interaction" &&
    mutation.part.status === "pending"
  ) {
    render_interaction(mutation.part);
  }
});

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 持有。