Skip to content

Conversation

@tcdent
Copy link
Contributor

@tcdent tcdent commented Dec 1, 2025

  • Implement GoogleADKRunner class extending BaseAgentRunner
  • Add support for Google Agent Development Kit (ADK) integration
  • Include both run() and run_streamed() methods with event forwarding
  • Add conditional imports to make google-adk an optional dependency
  • Create example usage file demonstrating GoogleADKRunner

The runner follows the same pattern as OpenAIRunner and provides:

  • Automatic activity tracking
  • Session management with InMemorySessionService
  • Streaming support with async event forwarding
  • Integration with runner.tools.report_status for progress tracking

- Implement GoogleADKRunner class extending BaseAgentRunner
- Add support for Google Agent Development Kit (ADK) integration
- Include both run() and run_streamed() methods with event forwarding
- Add conditional imports to make google-adk an optional dependency
- Create example usage file demonstrating GoogleADKRunner

The runner follows the same pattern as OpenAIRunner and provides:
- Automatic activity tracking
- Session management with InMemorySessionService
- Streaming support with async event forwarding
- Integration with runner.tools.report_status for progress tracking
Updated implementation to properly use Google ADK's built-in features:
- Replace max_turns with RunConfig (ADK's execution control mechanism)
- Use max_llm_calls parameter (default 500) instead of max_turns
- Remove max_turns_recovery logic (not applicable to ADK)
- Pass run_config parameter through to runner.run_async()
- Defer to ADK's internal execution control
- Update example to demonstrate RunConfig usage
- Simplify API to match ADK conventions

ADK uses RunConfig for runtime behavior control including:
- max_llm_calls: safeguard against runaway loops
- streaming_mode: control streaming behavior
- support_cfc: function calling configuration

This aligns with ADK best practices and reduces unnecessary abstraction layers.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants