aws-samples / aws-samples/sample-autonomous-cloud-coding-agents

agent: Per-step model hints in workflow YAML

Ouverte
#562 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
agent-runtime cost-finops enhancement
Langage dominant
TypeScript
Étoiles
143
Forks
46
Merge moyen
3 j 9 h
PR mergées (30 j)
20

Description

## 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)

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par le JSON Schema du workflow, la section de sélection du modèle de WORKFLOWS.md et le point d’entrée _handle_run_agent du runner. Suivez la résolution de workflow.agent_config.model et de la valeur par défaut de Blueprint, puis examinez TaskEvents et les tests de spans OTEL. Le travail est considéré comme terminé lorsque les modèles des étapes run_agent facultatives sont validés par rapport à l’allow-list, résolus dans l’ordre indiqué, que le modèle résolu est émis et que le tout est documenté avec des tests.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
aws, python, yaml
Domaine
backend, observability
Type d'issue
Fonctionnalité
Difficulté
4/5
Temps estimé
3-5 jours
Activité
Calme
Clarté
Plutôt claire
Accessibilité débutants
52/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.