Multi-turn Chat

Build conversations that remember context.

Basic Example

final agent = Agent('openai');
final history = <ChatMessage>[];

// First turn
var result = await agent.send('My name is Alice', history: history);
history.addAll(result.messages);

// Second turn - remembers
result = await agent.send("What's my name?", history: history);
print(result.output); // "Your name is Alice"

Message Flow

final result = await agent.send('Hi', history: history);
history.addAll(result.messages);

// result.messages contains:
// 1. User: "Hi"
// 2. Assistant: response

Multi-Provider Chat

final history = <ChatMessage>[];

// Fast response
final gemini = Agent('google');
var r = await gemini.send('Summarize...', history: history);
history.addAll(r.messages);

// Deep analysis
final claude = Agent('anthropic');
r = await claude.send('Analyze...', history: history);
history.addAll(r.messages);

With Tools

final agent = Agent('openai', tools: [weatherTool]);
final history = <ChatMessage>[];

// Tools persist across turns
var r = await agent.send('Weather in NYC?', history: history);
history.addAll(r.messages);

r = await agent.send('How about LA?', history: history);
history.addAll(r.messages);

Next Steps