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,这种模式会很自然。