Exemples d'Agents de Codage

Trois exemples de crates exécutables dans examples/, chacun un véritable agent (sans maquettes) qui effectue le travail puis vérifie indépendamment le résultat en exécutant le code produit. Tous utilisent par défaut un modèle Gemini 3 ; définissez une clé d'abord :

export GOOGLE_API_KEY=…          # or GEMINI_API_KEY
# or: CODING_PROVIDER=openai OPENAI_API_KEY=…

coding_agent

Le harnais en action, avec quatre modes :

# Multi-language demo (Rust, Python, JavaScript) in a temp workspace:
cargo run --manifest-path examples/coding_agent/Cargo.toml

# Build a medium program over a persistent multi-turn session:
cargo run --manifest-path examples/coding_agent/Cargo.toml -- multiturn

# Scenario tour — increasing complexity, each independently verified:
cargo run --manifest-path examples/coding_agent/Cargo.toml -- tour

# A single task in your own directory:
cargo run --manifest-path examples/coding_agent/Cargo.toml -- ./some/dir "make tests pass"
  • demo — tâches uniques dans plusieurs langages (écrit et exécute rustc/python3/node).
  • tour — cinq scénarios de complexité croissante (hello → multifile → fixtest → debug → refactor), chacun auto-vérifié avec un résumé RÉUSSITE/ÉCHEC.
  • multiturn — un agent/runner/session développe une interface CLI Python todo en cinq tours (ajouter/lister → terminé → supprimer → erreurs robustes → tests), s'appuyant sur son propre travail antérieur ; vérifié en exécutant sa suite de tests.

À lire pour : le harnais CodingAgent, la boucle planifier→agir→observer, la rétention de contexte multi-tours.


coding_graph

Le workflow d'ultra-révision comme un adk-graph StateGraph : implémenter → réviseurs parallèles de correction/cas limites/style → synthétiser (fan-in différé) → boucle de révision → finaliser.

cargo run --manifest-path examples/coding_graph/Cargo.toml

À lire pour : des agents parallèles en une seule super-étape, le fan-in add_deferred_node_fn, le routage cyclique conditionnel. Vérifie en important la fonction produite et en affirmant les spécifications + les cas limites.


coding_goal

Autonome /goal mode avec point de contrôle durable : initialise un module bogué + un test échoué, boucle planifier→agir→vérifier jusqu'à ce que python3 test_stats.py réussisse, affiche le point de contrôle persisté, puis démontre la reprise (un objectif achevé est une no-op).

cargo run --manifest-path examples/coding_goal/Cargo.toml

Lisez-le pour : la boucle d'objectif validée par le vérificateur, le point de contrôle atomique de l'état de l'objectif, et la reprise après redémarrage.


streaming_bash

Une interface utilisateur web (Axum + WebSocket) qui affiche l'activité des Tool d'un LlmAgent en direct à partir d'une seule EventStream : diffusion en continu du stdout/stderr de bash plus des résultats ponctuels de read_file / grep / glob, chacun comme sa propre carte.

cargo run --manifest-path examples/streaming_bash/Cargo.toml      # web UI
cargo run --manifest-path examples/streaming_bash/Cargo.toml -- cli

Lisez-le pour : la diffusion en continu de ToolContext::emit_progress, et les accesseurs de première classe de Event::tool_calls() / Event::tool_results() / event.tool_progress_stream() qui permettent à une interface utilisateur de rendre la sortie de n'importe quel Tool de manière générique. Voir Streaming Tool Progress.


Un chemin suggéré

  1. coding_agent (tour) — voir le harnais résoudre des tâches de complexité croissante.
  2. coding_agent (multiturn) — le regarder construire un programme au cours d'une Session.
  3. coding_goal — mode objectif autonome, validé par le vérificateur et durable.
  4. coding_graph — orchestration parallèle d'ultra-révision.

Le CLI (code / goal / ultracode) intègre ces modèles en tant que commandes de première classe.

← Retour à la Vue d'ensemble de Coding Agent