Sessions

Session 总览

理解 Session 在 Agent SDK 中的核心地位和常见使用顺序

Session 总览

在 SDK 里,真正承载执行的是 session。

当前推荐的本地交互模式

本地 Agent

const session = await agent.createSession();
await session.set({ model });

const turn = await session.prompt({ query: "继续" });

const unsubscribe = session.subscribe((event) => {
  console.log(event);
});

await turn.finished;

如果你已经在 new Agent({ model }) 里提供了默认模型,也可以不再单独调用 session.set({ model })

RemoteAgent

const session = await remoteAgent.createSession();
const turn = await session.prompt({ query: "继续" });
await turn.finished;

你最常会用到的方法

  • set
  • getInfo
  • prompt
  • subscribe
  • history
  • system
  • fork

如果你只能记住一个事实,那就是:SDK 真正的工作对象不是 Agent 本身,而是 session

一个重要区别

  • 本地 session 需要确保有模型
  • 远程 session 当前不支持远程传模型实例

所以本地和远程的最大差异,不在交互形态,而在“模型是在哪里被持有和配置的”。

再补一个边界

如果你是在正常的 Downcity Agent 项目里工作,模型通常来自:

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

这时 session.set({ model }) 不应被当成默认路径。

使用建议

  • prompt() 追加新的用户输入
  • subscribe() 观察后续 turn 事件
  • 需要等待某一轮最终结果时,使用 turn.finished

继续阅读