258 lines
4.7 KiB
Markdown
258 lines
4.7 KiB
Markdown
# Architektura agenta
|
|
```mermaid
|
|
flowchart TD
|
|
Decompose["1. Decompose - Break task into subtasks"]
|
|
Assess["2. Assess complexity - Which agents are needed?"]
|
|
|
|
Simple["Single agent"]
|
|
Moderate["2-3 agents in sequence"]
|
|
Complex["Agents in parallel"]
|
|
|
|
Aggregate["3. Aggregate results - Merge, rank, resolve conflicts"]
|
|
Response["Final response"]
|
|
|
|
Decompose --> Assess
|
|
|
|
Assess -->|simple| Simple
|
|
Assess -->|moderate| Moderate
|
|
Assess -->|complex| Complex
|
|
|
|
Simple --> Aggregate
|
|
Moderate --> Aggregate
|
|
Complex --> Aggregate
|
|
|
|
Aggregate --> Response
|
|
```
|
|
|
|
1. You are a coordinator. When given a łask, break ił into subtasks and delegate each one using the available tools. Do not do the work yourself.
|
|
|
|
```mermaid
|
|
flowchart TD
|
|
|
|
A["User Request"]
|
|
|
|
B["1. Analyze Request"]
|
|
C["Identify Goal"]
|
|
D["Identify Constraints"]
|
|
E["Identify Required Knowledge"]
|
|
F["Identify Required Actions"]
|
|
|
|
G["Break Into Subtasks"]
|
|
|
|
H["Research Tasks"]
|
|
I["Data Collection Tasks"]
|
|
J["Analysis Tasks"]
|
|
K["Decision Tasks"]
|
|
L["Execution Tasks"]
|
|
M["Communication Tasks"]
|
|
|
|
N["Subtask List"]
|
|
|
|
A --> B
|
|
B --> C
|
|
B --> D
|
|
B --> E
|
|
B --> F
|
|
|
|
C --> G
|
|
D --> G
|
|
E --> G
|
|
F --> G
|
|
|
|
G --> H
|
|
G --> I
|
|
G --> J
|
|
G --> K
|
|
G --> L
|
|
G --> M
|
|
|
|
H --> N
|
|
I --> N
|
|
J --> N
|
|
K --> N
|
|
L --> N
|
|
M --> N
|
|
```
|
|
|
|
2. Access complexity
|
|
You are a coordinator. Use your judgment:
|
|
- Simple factual questions: use a single agent
|
|
- Multi-step tasks: delegate sequentially, passing results forward
|
|
- Independent subtasks: delegate in parallel
|
|
a. Logika decyzyjna
|
|
```mermaid
|
|
flowchart TD
|
|
|
|
A["Receive Task"]
|
|
|
|
B["Analyze Task"]
|
|
|
|
C{"Task Complexity?"}
|
|
|
|
D["Single Agent"]
|
|
E["Sequential Delegation"]
|
|
F["Parallel Delegation"]
|
|
|
|
G["Simple factual question"]
|
|
|
|
H["Subtask 1"]
|
|
I["Subtask 2"]
|
|
J["Subtask N"]
|
|
|
|
K["Independent Subtask 1"]
|
|
L["Independent Subtask 2"]
|
|
M["Independent Subtask N"]
|
|
|
|
N["Aggregate Results"]
|
|
|
|
O["Final Response"]
|
|
|
|
A --> B
|
|
B --> C
|
|
|
|
C -->|Simple| D
|
|
C -->|Multi-step| E
|
|
C -->|Independent subtasks| F
|
|
|
|
D --> G
|
|
G --> N
|
|
|
|
E --> H
|
|
H --> I
|
|
I --> J
|
|
J --> N
|
|
|
|
F --> K
|
|
F --> L
|
|
F --> M
|
|
|
|
K --> N
|
|
L --> N
|
|
M --> N
|
|
|
|
N --> O
|
|
```
|
|
|
|
Lub też inaczej
|
|
|
|
```mermaid
|
|
flowchart TD
|
|
|
|
A["Task"]
|
|
|
|
B{"Use your judgment"}
|
|
|
|
C["Single Agent"]
|
|
D["Sequential Agents"]
|
|
E["Parallel Agents"]
|
|
|
|
F["Simple factual question"]
|
|
G["Multi-step task"]
|
|
H["Independent subtasks"]
|
|
|
|
I["Pass results forward"]
|
|
J["Aggregate outputs"]
|
|
|
|
K["Final response"]
|
|
|
|
A --> B
|
|
|
|
B --> F
|
|
B --> G
|
|
B --> H
|
|
|
|
F --> C
|
|
G --> D
|
|
H --> E
|
|
|
|
D --> I
|
|
|
|
C --> J
|
|
I --> J
|
|
E --> J
|
|
|
|
J --> K
|
|
```
|
|
3. Aggregate results
|
|
You have received outputs from multiple agents.
|
|
Combine them into a single coherent response.
|
|
Resolve any conflicts by preferring the most specific data.
|
|
Research output: ${results.research}
|
|
Writing output: ${results.writing}
|
|
Review feedback: ${results.review}
|
|
|
|
|
|
Dla etapu **"3. Aggregate results"** można opracować prompt bardziej formalnie i operacyjnie:
|
|
|
|
```text
|
|
You are the Aggregator agent.
|
|
|
|
Your responsibility is to combine outputs from multiple agents into a single coherent response.
|
|
|
|
Instructions:
|
|
|
|
1. Review all agent outputs.
|
|
2. Identify overlapping information.
|
|
3. Remove duplicates and redundancy.
|
|
4. Resolve conflicts:
|
|
- Prefer the most specific information.
|
|
- Prefer data supported by evidence.
|
|
- Prefer newer information when timestamps are available.
|
|
5. Integrate review feedback into the final result.
|
|
6. Preserve important details from every agent.
|
|
7. Produce one unified response.
|
|
8. Do not mention individual agents unless explicitly requested.
|
|
9. Do not perform additional research.
|
|
10. Do not introduce new facts not present in the inputs.
|
|
|
|
Inputs:
|
|
|
|
Research output:
|
|
${results.research}
|
|
|
|
Writing output:
|
|
${results.writing}
|
|
|
|
Review feedback:
|
|
${results.review}
|
|
|
|
Output:
|
|
|
|
A single consolidated response incorporating:
|
|
- validated research findings,
|
|
- improved writing structure,
|
|
- accepted review recommendations.
|
|
```
|
|
|
|
Diagram Mermaid dla tego kroku:
|
|
|
|
```mermaid
|
|
flowchart TD
|
|
|
|
A["Research Output"]
|
|
B["Writing Output"]
|
|
C["Review Feedback"]
|
|
|
|
D["Analyze Inputs"]
|
|
|
|
E["Remove Duplicates"]
|
|
F["Resolve Conflicts"]
|
|
G["Apply Review Feedback"]
|
|
H["Merge Information"]
|
|
|
|
I["Unified Response"]
|
|
|
|
A --> D
|
|
B --> D
|
|
C --> D
|
|
|
|
D --> E
|
|
E --> F
|
|
F --> G
|
|
G --> H
|
|
|
|
H --> I
|
|
```
|
|
|
|
Jeżeli budujesz system typu **Coordinator → Research → Writing → Review → Aggregate**, to Aggregator jest ostatnim agentem przed zwróceniem odpowiedzi do użytkownika.
|