Remote Agent

RemoteAgent 快速开始

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

RemoteAgent 快速开始

RemoteAgent 是远程 session 客户端。

当前它支持连接:

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

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

方式 1:通过 Downcity 发布 HTTP

downcity agent start

方式 2:服务端启动独立 RPC 或 HTTP

import { Agent } from "@downcity/agent";
import { AgentRPC } from "@downcity/server";

const agent = new Agent({
  id,
  path,
  prepare_session: async (session) => await session.set({ model }),
});
await agent.ready();

const rpc = new AgentRPC(agent);
await rpc.listen({ host: "127.0.0.1", port: 15314 });

客户端连接

连接 HTTP

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

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

const session = await agent.sessions.create();
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 });
await session.set({ modelId: "quality" });

模型 ID、默认值、恢复策略和运行时实例始终由服务端宿主管理。

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

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

  • Agent config execution.modelId
  • 已连接的 Federation AIService

适用场景

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

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