diff --git a/agent.md b/agent.md index 274ba50..76db354 100644 --- a/agent.md +++ b/agent.md @@ -1,4 +1,98 @@ # Architektura agenta + +Poniżej Mermaid dla architektury **hub-and-spoke** z obrazka — wersja bez `
`, żeby uniknąć błędu `splitLineToFitWidth does not support newlines in the line`. + +```mermaid +flowchart LR + Coordinator["Coordinator - routes and handles errors"] + + Research["Research agent"] + Writer["Writer agent"] + Coder["Coder agent"] + Reviewer["Reviewer agent"] + Summariser["Summariser agent"] + Data["Data agent"] + Planner["Planner agent"] + + Coordinator <--> Research + Coordinator <--> Writer + Coordinator <--> Coder + Coordinator <--> Reviewer + Coordinator <--> Summariser + Coordinator <--> Data + Coordinator <--> Planner + + classDef coordinator fill:#eeeaff,stroke:#8b7bd8,stroke-width:1.5px,color:#3f3a73; + classDef agent fill:#ddf7f0,stroke:#7bb8a6,stroke-width:1.5px,color:#18584c; + + class Coordinator coordinator; + class Research,Writer,Coder,Reviewer,Summariser,Data,Planner agent; +``` + +Wersja z opisem zasad z lewej strony jako osobne węzły: + +```mermaid +flowchart LR + Rules["Hub-and-spoke architecture - one coordinator at the center; subagents talk only to coordinator"] + Ownership["Coordinator owns routing, context sharing, and error handling"] + + Coordinator["Coordinator - routes and handles errors"] + + Research["Research agent"] + Writer["Writer agent"] + Coder["Coder agent"] + Reviewer["Reviewer agent"] + Summariser["Summariser agent"] + Data["Data agent"] + Planner["Planner agent"] + + Rules --> Coordinator + Ownership --> Coordinator + + Coordinator <--> Research + Coordinator <--> Writer + Coordinator <--> Coder + Coordinator <--> Reviewer + Coordinator <--> Summariser + Coordinator <--> Data + Coordinator <--> Planner + + classDef coordinator fill:#eeeaff,stroke:#8b7bd8,stroke-width:1.5px,color:#3f3a73; + classDef agent fill:#ddf7f0,stroke:#7bb8a6,stroke-width:1.5px,color:#18584c; + classDef note fill:#ffffff,stroke:#cccccc,stroke-width:1px,color:#222222; + + class Coordinator coordinator; + class Research,Writer,Coder,Reviewer,Summariser,Data,Planner agent; + class Rules,Ownership note; +``` + +I wersja najbardziej kompaktowa do dokumentacji: + +```mermaid +flowchart TD + Coordinator["Coordinator"] + + Coordinator --> Research["Research agent"] + Coordinator --> Writer["Writer agent"] + Coordinator --> Coder["Coder agent"] + Coordinator --> Reviewer["Reviewer agent"] + Coordinator --> Summariser["Summariser agent"] + Coordinator --> Data["Data agent"] + Coordinator --> Planner["Planner agent"] + + Research --> Coordinator + Writer --> Coordinator + Coder --> Coordinator + Reviewer --> Coordinator + Summariser --> Coordinator + Data --> Coordinator + Planner --> Coordinator +``` + + +Kluczowa zasada z obrazka: **nie rysujemy połączeń bezpośrednio między subagentami** — wszystko idzie przez `Coordinator`. + + ```mermaid flowchart TD Decompose["1. Decompose - Break task into subtasks"]