feat(ai): multi-agent routing par mention/thread + palette slash (#25 #31) #160

Merged
charles merged 1 commit from feat/25-31-agent-routing-palette into main 2026-04-06 02:29:10 +00:00
Owner

Résumé

  • #25AgentRouter : routing de messages vers les agents dans un salon multi-agent (stratégies : Mention, Thread, Broadcast)
  • #31CommandPaletteViewModel (déjà dans main via feat/18) + MentionParser pour extraire les @user:server d'un corps de message

Changements

  • crates/fractal-ai/src/routing.rsAgentRouter, MentionParser, RoutingDecision, RoutingStrategy

Plan de test

  • cargo test -p fractal-ai passe (tests unitaires route_by_mention, route_by_thread, no_route_for_human)
  • AgentRouter::route("Hey @bot:example.com …", None) → strategy Mention, targets ["@bot:example.com"]
  • AgentRouter::route("follow-up", Some("@bot:example.com")) → strategy Thread
  • AgentRouter::broadcast() → tous les agents enregistrés dans targets

Closes #25, closes #31

## Résumé - **#25** — `AgentRouter` : routing de messages vers les agents dans un salon multi-agent (stratégies : `Mention`, `Thread`, `Broadcast`) - **#31** — `CommandPaletteViewModel` (déjà dans main via feat/18) + `MentionParser` pour extraire les `@user:server` d'un corps de message ## Changements - `crates/fractal-ai/src/routing.rs` — `AgentRouter`, `MentionParser`, `RoutingDecision`, `RoutingStrategy` ## Plan de test - [ ] `cargo test -p fractal-ai` passe (tests unitaires `route_by_mention`, `route_by_thread`, `no_route_for_human`) - [ ] `AgentRouter::route("Hey @bot:example.com …", None)` → strategy `Mention`, targets `["@bot:example.com"]` - [ ] `AgentRouter::route("follow-up", Some("@bot:example.com"))` → strategy `Thread` - [ ] `AgentRouter::broadcast()` → tous les agents enregistrés dans targets Closes #25, closes #31
feat(ai): multi-agent routing + mention parser (#25)
Some checks failed
CI / cargo check (pull_request) Has been cancelled
CI / cargo test (pull_request) Has been cancelled
CI / clippy + rustfmt (pull_request) Has been cancelled
907844d7b3
Sign in to join this conversation.
No description provided.