Sessions
session.prompt()
向 Session actor 追加一条新的用户输入,并拿回一个可等待的 turn handle
session.prompt()
session.prompt() 现在是本地 Agent 和 RemoteAgent 统一的 Session 输入 API。
调用方不需要判断这条输入到底是:
- 第一轮输入
- 运行中纠偏
- 还是下一轮排队输入
统一都这样调用:
const turn = await session.prompt({
query: "分析这个仓库",
});
await turn.finished;例子
const session = await agent.getSession("repo-analysis");
const turn = await session.prompt({
query: "分析这个仓库",
});
await session.prompt({
query: "只看 Downcity 这一条链路",
});
await turn.finished;它会返回什么
prompt() 只有在这条新输入已经被绑定到某个确定 turn 之后才会返回。
返回的 handle 里最重要的是:
turn.idturn.finishedturn.result
Session 内部会做什么
- 如果当前 session 空闲,就启动新 turn
- 如果当前 turn 还来得及吸收新的用户输入,就并入当前 turn
- 否则把这条输入排到下一 turn
调用方不需要自己维护第二套队列或第二套运行时。