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;你最常会用到的方法
setgetInfopromptsubscribehistorysystemfork
如果你只能记住一个事实,那就是:SDK 真正的工作对象不是 Agent 本身,而是 session。
一个重要区别
- 本地 session 需要确保有模型
- 远程 session 当前不支持远程传模型实例
所以本地和远程的最大差异,不在交互形态,而在“模型是在哪里被持有和配置的”。
再补一个边界
如果你是在正常的 Downcity Agent 项目里工作,模型通常来自:
downcity.json.execution.modelId- 已连接的
City AIService
这时 session.set({ model }) 不应被当成默认路径。
使用建议
- 用
prompt()追加新的用户输入 - 用
subscribe()观察后续 turn 事件 - 需要等待某一轮最终结果时,使用
turn.finished