-
Notifications
You must be signed in to change notification settings - Fork 2.8k
Description
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:
- The agent logic and sub-agents remain the same
- Only the prompts, tone/persona, and learning data differ per program
- 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:
- Treat each program as configuration + data, not code
- Keep a single ADK learning assistant runtime
- Load program manifests and data dynamically at request time (with caching)
- Use shared prompt templates with program-specific variables
Before locking this in, we’d love to sanity-check this approach with the community.