Complete snapshot of /opt/microdao-daarion/ from NODE1 (144.76.224.179).
This represents the actual running production code that has diverged
significantly from the previous main branch.
Key changes from old main:
- Gateway (http_api.py): expanded from ~40KB to 164KB with full agent support
- Router: new /v1/agents/{id}/infer endpoint with vision + DeepSeek routing
- Behavior Policy: SOWA v2.2 (3-level: FULL/ACK/SILENT)
- Agent Registry: config/agent_registry.yml as single source of truth
- 13 agents configured (was 3)
- Memory service integration
- CrewAI teams and roles
Excluded from snapshot: venv/, .env, data/, backups, .tgz archives
Co-authored-by: Cursor <cursoragent@cursor.com>
107 lines
2.6 KiB
Markdown
107 lines
2.6 KiB
Markdown
# DAGI Agent Registry
|
||
|
||
## Єдине джерело істини для всіх агентів
|
||
|
||
Файл `agent_registry.yml` — ЄДИНЕ місце для визначення агентів.
|
||
|
||
**НЕ редагуйте вручну:**
|
||
- `gateway-bot/*_prompt.txt` (крім контенту промптів)
|
||
- `services/router/router-config.yml` agents section
|
||
- `services/crewai-service/` agent definitions
|
||
|
||
## Класи агентів
|
||
|
||
| Клас | Опис | Telegram |
|
||
|------|------|----------|
|
||
| `top_level` | Domain orchestrator, user-facing або private | public/whitelist/off |
|
||
| `internal` | Platform service agent | off |
|
||
|
||
## Як додати нового агента
|
||
|
||
1. **Додайте запис в `agent_registry.yml`:**
|
||
|
||
```yaml
|
||
- id: new_agent
|
||
display_name: "New Agent"
|
||
class: top_level
|
||
visibility: public
|
||
scope: global
|
||
telegram_mode: public
|
||
public_channels:
|
||
telegram: true
|
||
canonical_role: "Brief role description"
|
||
mission: |
|
||
Multi-line mission description.
|
||
domains: [domain1, domain2]
|
||
routing:
|
||
priority: 70
|
||
keywords: [keyword1, keyword2]
|
||
llm_profile: reasoning
|
||
prompt_file: new_agent_prompt.txt
|
||
crewai:
|
||
enabled: true
|
||
orchestrator: true
|
||
team:
|
||
- role: "Team Member 1"
|
||
skills: [skill1, skill2]
|
||
handoff_contract:
|
||
accepts_from: [daarwizz]
|
||
can_delegate_to: [new_agent_team]
|
||
```
|
||
|
||
2. **Створіть prompt файл:**
|
||
```bash
|
||
touch gateway-bot/new_agent_prompt.txt
|
||
```
|
||
|
||
3. **Валідуйте:**
|
||
```bash
|
||
python3 tools/agents validate
|
||
```
|
||
|
||
4. **Згенеруйте конфіги:**
|
||
```bash
|
||
python3 tools/agents generate
|
||
```
|
||
|
||
5. **Smoke test:**
|
||
```bash
|
||
python3 tools/agents smoke --id new_agent
|
||
```
|
||
|
||
## CLI команди
|
||
|
||
```bash
|
||
# Список всіх агентів
|
||
python3 tools/agents list
|
||
|
||
# Валідація registry
|
||
python3 tools/agents validate
|
||
|
||
# Генерація конфігів
|
||
python3 tools/agents generate
|
||
|
||
# Smoke test агента
|
||
python3 tools/agents smoke --id <agent_id>
|
||
```
|
||
|
||
## Feature Flags
|
||
|
||
В `agent_registry.yml`:
|
||
|
||
```yaml
|
||
feature_flags:
|
||
registry_enabled: true # Master switch
|
||
generate_prompts: true # Generate gateway/agent_registry.json
|
||
generate_router_config: true # Generate config/router_agents.json
|
||
generate_crewai_config: true # Generate config/crewai_agents.json
|
||
```
|
||
|
||
## Згенеровані файли
|
||
|
||
Не редагуйте напряму:
|
||
|
||
- `gateway-bot/agent_registry.json` - Gateway agent metadata
|
||
- `config/router_agents.json` - Router agent configs
|
||
- `config/crewai_agents.json` - CrewAI orchestrator/worker definitions
|