aws-samples / aws-samples/sample-autonomous-cloud-coding-agents
agent: Per-step model hints in workflow YAML
- Vorherrschende Sprache
- TypeScript
- Sterne
- 143
- Forks
- 46
- Ø Merge
- 3 T. 9 Std.
- Gemergte PRs (30 T.)
- 20
Beschreibung
## Component
Agent (Python runtime)
## Describe the feature
Allow workflow YAML steps to declare an optional `model` override so different phases of a task can use different Bedrock models without defining separate workflows.
Example (single `run_agent` step permitted today):
```yaml
steps:
- { kind: clone_repo, name: setup }
- { kind: run_agent, name: implement, model: { id: anthropic.claude-sonnet-4-6 } }
- { kind: verify_build, name: build, gate: regression_only }
```
Resolution follows [WORKFLOWS.md model selection](https://github.com/aws-samples/sample-autonomous-cloud-coding-agents/blob/main/docs/design/WORKFLOWS.md#model-selection): Blueprint allow-list bounds all choices; per-task API override remains highest unless `allow_task_override: false`.
## Use case
Model fit is task-phase-specific. Today `agent_config.model` applies workflow-wide. Per-step `model` on the lone `run_agent` step documents intent and prepares the schema for future multi-step agent graphs.
Distinct from #439 (runtime per-turn adaptive router) — this is **declarative workflow data**, not a heuristic.
## Proposed solution
1. Add optional `model: { id, allow_task_override? }` to step objects in workflow JSON Schema (`run_agent` only initially).
2. Validator: step `model.id` must be on platform/Blueprint allow-list.
3. Runner: merge step-level model over `workflow.agent_config.model` over Blueprint default in `_handle_run_agent`.
4. Telemetry: record resolved model per step on TaskEvents / OTEL spans.
5. Tests and WORKFLOWS.md update.
## Other information
- Related: #439 (per-turn router — complementary), ADR-014 / #248 workflows.
## Acknowledgements
- [ ] I may be able to implement this feature
- [x] This might be a breaking change (schema addition only — backward compatible if optional)
Beitragsleitfaden
Rechercherichtung
Beginne mit dem JSON Schema des Workflows, dem Abschnitt zur Modellauswahl in WORKFLOWS.md und dem Einstiegspunkt _handle_run_agent des Runners. Verfolge, wie workflow.agent_config.model und der Standardwert von Blueprint aufgelöst werden, und untersuche anschließend TaskEvents und die Tests für OTEL-Spans. Als abgeschlossen gilt die Aufgabe, wenn Modelle für optionale run_agent-Schritte gegen die Allowlist validiert, in der angegebenen Reihenfolge aufgelöst, das aufgelöste Modell ausgegeben und mit Tests dokumentiert werden.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- aws, python, yaml
- Bereich
- backend, observability
- Issue-Typ
- Feature
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Ruhig
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 52/100