Skip to content

Scaling an ADK Assistant to 100+ Programs #4217

@suryasinghmv

Description

@suryasinghmv

We currently have an ADK-based learning assistant implemented for a single program. The assistant works well, but the current setup assumes a one-to-one relationship between a program and the server/runtime (program-specific prompts and learning data are coupled to the deployment).

We are now looking to scale this learning assistant to support 100+ mastery programs, where:

  1. The agent logic and sub-agents remain the same
  2. Only the prompts, tone/persona, and learning data differ per program
  3. We want to avoid deploying 100 separate services or containers

The key challenge is designing a clean, maintainable way for a single ADK runtime to dynamically load:

program-specific configuration (prompts, persona, rules)

program-specific learning data (lessons, transcripts, precomputed artifacts)

…at runtime, based on a program_id, without introducing brittle branching logic, duplicated code, or performance regressions.

What We’re Considering

Our current thinking is to:

  1. Treat each program as configuration + data, not code
  2. Keep a single ADK learning assistant runtime
  3. Load program manifests and data dynamically at request time (with caching)
  4. Use shared prompt templates with program-specific variables

Before locking this in, we’d love to sanity-check this approach with the community.

Metadata

Metadata

Assignees

Labels

answered[Status] This issue has been answered by the maintainercore[Component] This issue is related to the core interface and implementationquestion[Component] This issue is asking a question or clarification

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions