Remote Agent

RemoteAgent 快速开始

连接一个已经由 Town 通过 HTTP 暴露,或由 Agent RPC 暴露出来的 Agent

RemoteAgent 快速开始

RemoteAgent 是远程 session 客户端。

当前它支持连接:

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

服务端先准备好可访问入口

方式 1:通过 Town 发布 HTTP

town agent start

方式 2:服务端启动 RPC

const started = await agent.start({
  rpc: {
    host: "127.0.0.1",
    port: 15314,
  },
});

客户端连接

连接 HTTP

import { RemoteAgent } from "@downcity/agent";

const agent = new RemoteAgent({
  url: "http://127.0.0.1:5314/agents/repo-helper",
});

const session = await agent.createSession();
const turn = await session.prompt({
  query: "总结一下当前仓库结构",
});

const result = await turn.finished;

连接 RPC

import { RemoteAgent } from "@downcity/agent";

const agent = new RemoteAgent({
  url: "rpc://127.0.0.1:15314",
});

一个重要限制

远程 session 当前不支持:

await session.set({ model });

模型应该留在服务端本地持有。

如果你是纯 SDK 模式,应该在服务端本地 Agent 或本地 session 上设置模型。

如果你是 Downcity 集成模式,模型通常来自:

  • downcity.json.execution.modelId
  • 已连接的 City AIService

适用场景

  • 另一个进程已经持有本地 Agent
  • 你只想通过 HTTP 或 RPC 方式消费 agent 能力
  • 你想把调用方和执行方分开

如果你有前后端、本地守护进程加调用端、或者多个消费者共享同一个 agent host,这种模式会很自然。