AI 代理生命周期
AI 代理的生命周期从调用 provider.run() 开始,到 AI 代理完成任务、需要用户审核或遇到错误时结束。
生命周期步骤
- 初始化:当您在添加用户消息后调用
provider.run()时,生命周期开始。 - 处理:AI 代理调用 AI 模型。AI 返回一条消息和一个工具调用。
- 工具执行:AI 代理调用工具以读取或修改文档。
- 循环:AI 代理再次调用 AI 并执行下一个工具,直到满足终止条件。
- 完成:当 AI 代理完成任务、需要用户审核或遇到错误时,生命周期结束。
控制生命周期
您可以使用以下方法控制 AI 代理的生命周期:
// 启动生命周期
provider.run()
// 停止当前生命周期
provider.stop()默认情况下,AI 代理在添加用户消息后不会自动运行。您需要显式调用 run():
// 添加消息并运行 AI 代理
provider.addUserMessage('用适当的标题格式化此文档')
provider.run()处理完成
监听 stopRunning 事件以在生命周期完成且 AI 代理停止运行时收到通知。
// 订阅 stopRunning 事件
provider.on('stopRunning', (context) => {
console.log('AI 代理生命周期已完成')
showCompletionNotification('AI 代理已完成任务')
})状态
在其生命周期中,AI 代理会经历不同的状态转换:
idle→loading:调用run()时loading→reviewingToolCall:工具调用需要用户审核时loading→loadingError:发生错误时loading→idle:满足以下任一条件时:- 执行了最终工具调用。最终工具调用是指工具调用处理对象中
isFinal属性设置为true的调用。 - LLM 没有响应工具调用。
- 调用了
provider.stop() - 在当前生命周期结束前,调用
provider.run()启动了另一个生命周期。
- 执行了最终工具调用。最终工具调用是指工具调用处理对象中
并发运行 AI 代理
在当前版本中,AI 代理扩展不支持在同一编辑器中运行多个 AI 代理。如果在调用 provider.run() 时已有生命周期正在进行,当前生命周期将在新生命周期开始前被中断。
若需同时运行多个 AI 代理,请实例化多个编辑器和 AI 代理提供者。