Sessions

session.prompt()

向 Session actor 追加一条新的用户输入,并拿回一个可等待的 turn handle

session.prompt()

session.prompt() 现在是本地 AgentRemoteAgent 统一的 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.id
  • turn.finished
  • turn.result

Session 内部会做什么

  • 如果当前 session 空闲,就启动新 turn
  • 如果当前 turn 还来得及吸收新的用户输入,就并入当前 turn
  • 否则把这条输入排到下一 turn

调用方不需要自己维护第二套队列或第二套运行时。