snapshot: NODE1 production state 2026-02-09
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>
This commit is contained in:
257
gateway-bot/agents_registry.yaml
Normal file
257
gateway-bot/agents_registry.yaml
Normal file
@@ -0,0 +1,257 @@
|
||||
# ================================================
|
||||
# DAARION Platform - Agent Registry v1.0
|
||||
# ================================================
|
||||
|
||||
platform:
|
||||
name: "MicroDAO Daarion"
|
||||
version: "1.0.0"
|
||||
default_agent: "helion"
|
||||
fallback_agent: "helion"
|
||||
|
||||
# ================================================
|
||||
# REGISTERED AGENTS
|
||||
# ================================================
|
||||
agents:
|
||||
helion:
|
||||
display_name: "Helion"
|
||||
description: "Energy Union AI - енергетика, інфраструктура, DePIN"
|
||||
domain_tags:
|
||||
- energy
|
||||
- power
|
||||
- grid
|
||||
- depin
|
||||
- infrastructure
|
||||
- sensors
|
||||
- tariffs
|
||||
- dao
|
||||
capabilities:
|
||||
- chat
|
||||
- stt
|
||||
- tts
|
||||
- vision
|
||||
- image_gen
|
||||
- web_search
|
||||
- web_scrape
|
||||
- document
|
||||
entrypoint:
|
||||
type: "nats"
|
||||
subject: "agent.helion.invoke"
|
||||
memory_policy:
|
||||
qdrant_collections:
|
||||
read: ["helion_messages", "helion_docs", "helion_artifacts", "helion_memory_items"]
|
||||
write: ["helion_messages", "helion_docs", "helion_artifacts", "helion_memory_items"]
|
||||
neo4j_labels: ["HelionUser", "HelionTopic", "HelionProject", "HelionChannel"]
|
||||
neo4j_filter: "agent_id = 'helion'"
|
||||
redis_prefix: "helion:"
|
||||
data_policy:
|
||||
handoff_allow: ["nutra", "greenfood"] # Can share context with these agents
|
||||
handoff_fields: ["user_intent", "context_summary", "language"]
|
||||
sensitive_fields_block: ["api_keys", "internal_metrics", "wallet_addresses"]
|
||||
sla:
|
||||
priority: "high"
|
||||
rate_limit_rpm: 60
|
||||
max_tokens_per_request: 8000
|
||||
prompt_file: "/app/prompts/helion_prompt.txt"
|
||||
telegram_token_env: "HELION_BOT_TOKEN"
|
||||
active: true
|
||||
|
||||
nutra:
|
||||
display_name: "Nutra"
|
||||
description: "AI Nutrition Agent - харчування, здоров'я, дієти"
|
||||
domain_tags:
|
||||
- nutrition
|
||||
- food
|
||||
- diet
|
||||
- health
|
||||
- wellness
|
||||
- recipes
|
||||
- allergens
|
||||
- nutrients
|
||||
- calories
|
||||
capabilities:
|
||||
- chat
|
||||
- vision
|
||||
- document
|
||||
entrypoint:
|
||||
type: "nats"
|
||||
subject: "agent.nutra.invoke"
|
||||
memory_policy:
|
||||
qdrant_collections:
|
||||
read: ["nutra_messages", "nutra_docs", "nutra_food_knowledge", "nutra_memory_items"]
|
||||
write: ["nutra_messages", "nutra_docs", "nutra_food_knowledge", "nutra_memory_items"]
|
||||
neo4j_labels: ["NutraUser", "NutraGoal", "NutraProduct", "NutraRecipe", "NutraRestriction"]
|
||||
neo4j_filter: "agent_id = 'nutra'"
|
||||
redis_prefix: "nutra:"
|
||||
data_policy:
|
||||
handoff_allow: ["helion"]
|
||||
handoff_fields: ["user_intent", "context_summary", "language", "dietary_preferences"]
|
||||
sensitive_fields_block: ["medical_history", "health_conditions"]
|
||||
sla:
|
||||
priority: "medium"
|
||||
rate_limit_rpm: 30
|
||||
max_tokens_per_request: 4000
|
||||
prompt_file: "/app/prompts/nutra_prompt.txt"
|
||||
telegram_token_env: "NUTRA_BOT_TOKEN"
|
||||
active: true
|
||||
|
||||
greenfood:
|
||||
display_name: "GreenFood"
|
||||
description: "GreenFood DAO Agent - органічні продукти, ферми"
|
||||
domain_tags:
|
||||
- organic
|
||||
- farming
|
||||
- sustainable
|
||||
- local_food
|
||||
- farmers_market
|
||||
capabilities:
|
||||
- chat
|
||||
entrypoint:
|
||||
type: "nats"
|
||||
subject: "agent.greenfood.invoke"
|
||||
memory_policy:
|
||||
qdrant_collections:
|
||||
read: ["greenfood_messages", "greenfood_docs"]
|
||||
write: ["greenfood_messages", "greenfood_docs"]
|
||||
neo4j_labels: ["GreenFoodUser", "GreenFoodFarm", "GreenFoodProduct"]
|
||||
neo4j_filter: "agent_id = 'greenfood'"
|
||||
redis_prefix: "greenfood:"
|
||||
data_policy:
|
||||
handoff_allow: ["nutra", "helion"]
|
||||
handoff_fields: ["user_intent", "context_summary"]
|
||||
sensitive_fields_block: []
|
||||
sla:
|
||||
priority: "low"
|
||||
rate_limit_rpm: 20
|
||||
max_tokens_per_request: 4000
|
||||
prompt_file: "/app/prompts/greenfood_prompt.txt"
|
||||
telegram_token_env: "GREENFOOD_BOT_TOKEN"
|
||||
active: true
|
||||
|
||||
druid:
|
||||
display_name: "Druid"
|
||||
description: "Legal/Compliance Agent - юридичні питання, регуляція"
|
||||
domain_tags:
|
||||
- legal
|
||||
- compliance
|
||||
- contracts
|
||||
- regulations
|
||||
- kyc
|
||||
capabilities:
|
||||
- chat
|
||||
- document
|
||||
entrypoint:
|
||||
type: "nats"
|
||||
subject: "agent.druid.invoke"
|
||||
memory_policy:
|
||||
qdrant_collections:
|
||||
read: ["druid_messages", "druid_docs", "druid_legal_kb"]
|
||||
write: ["druid_messages", "druid_docs"]
|
||||
neo4j_labels: ["DruidUser", "DruidContract", "DruidRegulation"]
|
||||
neo4j_filter: "agent_id = 'druid'"
|
||||
redis_prefix: "druid:"
|
||||
data_policy:
|
||||
handoff_allow: ["helion"]
|
||||
handoff_fields: ["user_intent", "context_summary", "jurisdiction"]
|
||||
sensitive_fields_block: ["personal_id", "contracts_content"]
|
||||
sla:
|
||||
priority: "medium"
|
||||
rate_limit_rpm: 20
|
||||
max_tokens_per_request: 8000
|
||||
prompt_file: "/app/prompts/druid_prompt.txt"
|
||||
telegram_token_env: "DRUID_BOT_TOKEN"
|
||||
active: false
|
||||
|
||||
daarwizz:
|
||||
display_name: "DaarWizz"
|
||||
description: "Operations/DevOps Agent - інфраструктура, моніторинг"
|
||||
domain_tags:
|
||||
- devops
|
||||
- infrastructure
|
||||
- monitoring
|
||||
- deployment
|
||||
- servers
|
||||
capabilities:
|
||||
- chat
|
||||
- web_scrape
|
||||
entrypoint:
|
||||
type: "nats"
|
||||
subject: "agent.daarwizz.invoke"
|
||||
memory_policy:
|
||||
qdrant_collections:
|
||||
read: ["daarwizz_messages", "daarwizz_docs"]
|
||||
write: ["daarwizz_messages", "daarwizz_docs"]
|
||||
neo4j_labels: ["DaarwizzServer", "DaarwizzService", "DaarwizzAlert"]
|
||||
neo4j_filter: "agent_id = 'daarwizz'"
|
||||
redis_prefix: "daarwizz:"
|
||||
data_policy:
|
||||
handoff_allow: ["helion"]
|
||||
handoff_fields: ["user_intent", "context_summary"]
|
||||
sensitive_fields_block: ["credentials", "ssh_keys", "api_secrets"]
|
||||
sla:
|
||||
priority: "high"
|
||||
rate_limit_rpm: 100
|
||||
max_tokens_per_request: 4000
|
||||
prompt_file: "/app/prompts/daarwizz_prompt.txt"
|
||||
telegram_token_env: "DAARWIZZ_BOT_TOKEN"
|
||||
active: false
|
||||
|
||||
# ================================================
|
||||
# INTENT ROUTING RULES
|
||||
# ================================================
|
||||
routing:
|
||||
# Hard routes (explicit commands/channels)
|
||||
hard_routes:
|
||||
- pattern: "^/nutra"
|
||||
agent: "nutra"
|
||||
- pattern: "^/helion"
|
||||
agent: "helion"
|
||||
- pattern: "^/greenfood"
|
||||
agent: "greenfood"
|
||||
- pattern: "^/legal"
|
||||
agent: "druid"
|
||||
- pattern: "^/ops"
|
||||
agent: "daarwizz"
|
||||
|
||||
# Intent-based routing (keyword matching)
|
||||
intent_routes:
|
||||
- keywords: ["їжа", "продукт", "рецепт", "дієта", "калорі", "харчування", "вітамін",
|
||||
"food", "recipe", "diet", "nutrition", "calorie", "vitamin", "meal"]
|
||||
agent: "nutra"
|
||||
confidence_threshold: 0.7
|
||||
|
||||
- keywords: ["енергія", "електрика", "сонячн", "вітер", "батаре", "тариф", "мережа",
|
||||
"energy", "power", "solar", "wind", "battery", "grid", "tariff", "depin"]
|
||||
agent: "helion"
|
||||
confidence_threshold: 0.7
|
||||
|
||||
- keywords: ["органіч", "ферма", "фермер", "городни", "sustainable", "organic", "farm"]
|
||||
agent: "greenfood"
|
||||
confidence_threshold: 0.6
|
||||
|
||||
- keywords: ["юрист", "договір", "контракт", "legal", "compliance", "contract", "kyc"]
|
||||
agent: "druid"
|
||||
confidence_threshold: 0.8
|
||||
|
||||
# Fallback behavior
|
||||
fallback:
|
||||
agent: "helion"
|
||||
message: "Передаю до основного асистента Helion."
|
||||
|
||||
# ================================================
|
||||
# HANDOFF CONTRACT TEMPLATE
|
||||
# ================================================
|
||||
handoff_contract:
|
||||
required_fields:
|
||||
- user_intent
|
||||
- source_agent
|
||||
- target_agent
|
||||
- timestamp
|
||||
optional_fields:
|
||||
- context_summary
|
||||
- language
|
||||
- user_preferences
|
||||
- references
|
||||
- constraints
|
||||
- reason_for_handoff
|
||||
max_context_tokens: 500
|
||||
strip_sensitive: true
|
||||
Reference in New Issue
Block a user