agentLoopContinue function
AgentEventStream
agentLoopContinue({
- required Context context,
- required AgentLoopConfig config,
- required StreamFunction streamFunction,
- required ToolExecutor toolExecutor,
- CancelToken? cancelToken,
Continues an agent loop from context without adding a new message.
Used for retries — the context already ends with a user or tool-result
message the model can respond to. Throws ConfigException synchronously
if context has no messages or ends with an assistant message (pi
validation).
Implementation
AgentEventStream agentLoopContinue({
required Context context,
required AgentLoopConfig config,
required StreamFunction streamFunction,
required ToolExecutor toolExecutor,
CancelToken? cancelToken,
}) {
if (context.messages.isEmpty) {
throw const ConfigException('Cannot continue: no messages in context');
}
if (context.messages.last.role == 'assistant') {
throw const ConfigException('Cannot continue from message role: assistant');
}
final stream = AgentEventStream();
_drive(
stream,
runAgentLoopContinue(
context: context,
config: config,
emit: stream.push,
streamFunction: streamFunction,
toolExecutor: toolExecutor,
cancelToken: cancelToken,
),
);
return stream;
}