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
- Tool Calling - Using tools in conversations
- Streaming Output - Real-time responses