Довідник з конфігурації YAML
Sinaptic® DROID+ використовує два типи конфігураційних файлів YAML:
- Головна конфігурація (
droid.yaml) — глобальні налаштування сервера, LLM, безпеки та логування - Конфігурації агентів (
configs/agents/*.yaml) — налаштування моделі, особистості, інструментів та поведінки для кожного агента
Усі значення конфігурації підтримують підстановку ${ENV_VAR} — Sinaptic® DROID+ розпізнає змінні оточення під час запуску.
Головна конфігурація (droid.yaml)
edition (видання)
| Значення | Опис |
|---|---|
community | Безкоштовне видання, макс. 2 агенти, безпека тільки на основі RegExp (за замовчуванням) |
pro | Необмежена кількість агентів, повний каскад SinapticAI |
enterprise | Багатокористувацький режим (multi-tenancy), відповідність стандартам, висока доступність (HA) |
server (сервер)
| Поле | Тип | За замовчуванням | Опис |
|---|---|---|---|
openai_port | int | 8080 | Порт для API, сумісного з OpenAI |
management_port | int | 8081 | Порт для Management API |
cors_origins | []string | ["*"] | Дозволені джерела CORS |
api_key | string | — | API-ключ для автентифікації (підтримує ${ENV_VAR}) |
demo_mode | bool | false | Увімкнути демо-режим |
llm
Основна конфігурація постачальника LLM.
| Поле | Тип | За замовчуванням | Опис |
|---|---|---|---|
provider | string | openai | Назва постачальника LLM (openai, anthropic, gemini, grok, ollama, lm_studio, llama_cpp) |
base_url | string | https://api.openai.com/v1 | Базовий URL API |
api_key | string | ${OPENAI_API_KEY} | API-ключ (підтримує ${ENV_VAR}) |
default_model | string | gpt-4o-mini | Назва моделі за замовчуванням |
anthropic
| Поле | Тип | За замовчуванням | Опис |
|---|---|---|---|
base_url | string | https://api.anthropic.com | Базовий URL API Anthropic |
api_key | string | ${ANTHROPIC_API_KEY} | API-ключ |
gemini
| Поле | Тип | За замовчуванням | Опис |
|---|---|---|---|
base_url | string | https://generativelanguage.googleapis.com/v1beta | Базовий URL API Gemini |
api_key | string | ${GEMINI_API_KEY} | API-ключ |
grok
| Поле | Тип | За замовчуванням | Опис |
|---|---|---|---|
base_url | string | https://api.x.ai/v1 | Базовий URL API Grok (xAI) |
api_key | string | ${GROK_API_KEY} | API-ключ |
ollama
| Поле | Тип | За замовчуванням | Опис |
|---|---|---|---|
base_url | string | http://localhost:11434/v1 | Базовий URL API Ollama |
lm_studio
| Поле | Тип | За замовчуванням | Опис |
|---|---|---|---|
base_url | string | http://localhost:1234/v1 | Базовий URL API LM Studio |
llama_cpp
| Поле | Тип | За замовчуванням | Опис |
|---|---|---|---|
base_url | string | http://localhost:8080/v1 | Базовий URL сервера llama.cpp |
embedding (ембеддінг)
| Поле | Тип | За замовчуванням | Опис |
|---|---|---|---|
model | string | text-embedding-3-small | Назва моделі ембеддінгу |
base_url | string | (використовує llm.base_url) | Базовий URL API ембеддінгу |
api_key | string | (використовує llm.api_key) | API-ключ ембеддінгу |
sinaptic
Конфігурація рівня безпеки SinapticAI.
| Поле | Тип | За замовчуванням | Опис |
|---|---|---|---|
enabled | bool | true | Увімкнути сканування безпеки SinapticAI |
mode | string | block | Дія при виявленні загрози: block (блокувати) або log (тільки логувати) |
log_blocked | bool | true | Логувати заблоковані запити |
sinaptic.pii
| Поле | Тип | За замовчуванням | Опис |
|---|---|---|---|
enabled | bool | true | Увімкнути виявлення PII (персональних даних) |
strategy | string | mask | Стратегія обробки PII: mask (маскувати) або block (блокувати) |
mcp
Конфігурація серверів інструментів Model Context Protocol (MCP).
mcp:
servers:
my-server:
command: "npx"
args: ["-y", "@my-org/mcp-server"]
env:
API_KEY: "${MY_API_KEY}"
| Поле | Тип | Опис |
|---|---|---|
servers | map | Іменовані визначення серверів MCP |
Для кожного сервера:
| Поле | Тип | Опис |
|---|---|---|
command | string | Команда для запуску сервера MCP |
args | []string | Аргументи команди |
env | map[string]string | Змінні оточення для процесу сервера |
logging (логування)
| Поле | Тип | За замовчуванням | Опис |
|---|---|---|---|
level | string | info | Рівень логування (debug, info, warn, error) |
format | string | json | Формат логів (json або text) |
audit (аудит)
| Поле | Тип | За замовчуванням | Опис |
|---|---|---|---|
enabled | bool | false | Увімкнути логування аудиту |
log_path | string | ./logs/audit | Шлях до файлів логів аудиту |
retention_days | int | 30 | Скільки днів зберігати логи аудиту |
branding (брендування)
| Поле | Тип | За замовчуванням | Опис |
|---|---|---|---|
show_badge | bool | (авто) | Показувати бейдж "Powered by Sinaptic® DROID+". Авто: true для community, false для pro/enterprise |
Шляхи верхнього рівня
| Поле | Тип | За замовчуванням | Опис |
|---|---|---|---|
data_dir | string | ./data | Директорія для даних (ембеддінги, стан) |
agents_dir | string | ./configs/agents | Директорія з YAML-конфігураціями агентів |
Конфігурація агента (configs/agents/*.yaml)
Поля верхнього рівня
| Поле | Тип | Обов'язкове | За замовчуванням | Опис |
|---|---|---|---|---|
name | string | так | (ім'я файлу) | Унікальний ідентифікатор агента |
description | string | ні | — | Опис у довільній формі |
model | object | так | — | Конфігурація моделі LLM |
personality | string | так | — | Системний промпт для агента |
agent_type | string | ні | plain | Цикл обробки: plain або react |
execution_mode | string | ні | sequential | Виконання інструментів: sequential (послідовно) або parallel (паралельно) |
chain_of_thought | bool | ні | false | Увімкнути міркування Chain-of-thought |
max_iterations | int | ні | 10 | Макс. кількість ітерацій циклу ReAct |
tool_timeout | string | ні | 30s | Тайм-аут за замовчуванням для викликів інструментів |
model
| Поле | Тип | За замовчуванням | Опис |
|---|---|---|---|
name | string | — | Назва моделі (наприклад, gpt-4o, claude-sonnet-4-20250514) |
base_url | string | (з головної конф.) | Перевизначити базовий URL API LLM |
api_key | string | (з головної конф.) | Перевизначити API-ключ |
max_tokens | int | 1024 | Максимальна кількість токенів відповіді |
temperature | float | 0.7 | Температура вибірки (0-2) |
memory.short_term
| Поле | Тип | За замовчуванням | Опис |
|---|---|---|---|
max_messages | int | 50 | Розмір ковзного вікна історії діалогу |
rag
| Поле | Тип | За замовчуванням | Опис |
|---|---|---|---|
enabled | bool | false | Увімкнути генерацію з доповненням пошуком (RAG) |
top_k | int | 3 | Кількість фрагментів для отримання |
min_score | float | 0.7 | Поріг мінімального бала схожості |
tools (інструменти)
Масив конфігурацій інструментів.
| Поле | Тип | Обов'язкове | Опис |
|---|---|---|---|
name | string | так | Ідентифікатор інструменту |
description | string | ні | Опис інструменту (показується LLM) |
type | string | так | Тип інструменту: mcp, rest_api |
url | string | rest_api | URL кінцевої точки |
method | string | rest_api | Метод HTTP (GET, POST, PUT, DELETE) |
headers | map | rest_api | Заголовки HTTP |
timeout | string | rest_api | Тайм-аут запиту (наприклад, 10s) |
pipeline (пайплайн)
Кроки пайплайну з декількома LLM (опціонально). Якщо визначено, запит проходить крізь кожен крок послідовно.
| Поле | Тип | Обов'язкове | Опис |
|---|---|---|---|
name | string | так | Ідентифікатор кроку |
model | object | так | Конфігурація моделі для цього кроку |
personality | string | так | Системний промпт для цього кроку |
spawns
Конфігурація викликів між агентами (A2A).
| Поле | Тип | За замовчуванням | Опис |
|---|---|---|---|
max_spawns | int | 5 | Макс. кількість викликів субагентів на запит (0 = без ліміту) |
max_tokens_per_spawn | int | 4096 | Бюджет токенів на один виклик |
max_depth | int | 3 | Максимальна глибина рекурсії |
allowed_agents | []string | [] (усі) | Білий список агентів, яких можна викликати |
spawn_timeout_secs | int | 60 | Тайм-аут на один виклик субагента у секундах |
rate_limit (обмеження частоти)
| Поле | Тип | За замовчуванням | Опис |
|---|---|---|---|
requests_per_minute | int | 0 (необмежено) | Макс. запитів на хвилину |
sinaptic
Перевизначення SinapticAI для конкретного агента.
| Поле | Тип | За замовчуванням | Опис |
|---|---|---|---|
enabled | bool | (успадковується) | Перевизначити глобальний прапорець увімкнення SinapticAI |
Повний приклад
droid.yaml
edition: community
server:
openai_port: 8080
management_port: 8081
cors_origins: ["*"]
llm:
provider: openai
base_url: https://api.openai.com/v1
api_key: ${OPENAI_API_KEY}
default_model: gpt-4o-mini
anthropic:
api_key: ${ANTHROPIC_API_KEY}
embedding:
model: text-embedding-3-small
sinaptic:
enabled: true
mode: block
pii:
enabled: true
strategy: mask
log_blocked: true
logging:
level: info
format: json
audit:
enabled: false
log_path: ./logs/audit
retention_days: 30
data_dir: ./data
agents_dir: ./configs/agents
configs/agents/support-bot.yaml
name: support-bot
description: Агент підтримки клієнтів з RAG та інструментами
model:
name: gpt-4o
max_tokens: 2048
temperature: 0.5
personality: |
Ви — помічник служби підтримки клієнтів.
Завжди будьте ввічливими, лаконічними та точними.
agent_type: react
execution_mode: parallel
chain_of_thought: true
max_iterations: 5
tool_timeout: 15s
memory:
short_term:
max_messages: 100
rag:
enabled: true
top_k: 5
min_score: 0.6
tools:
- name: lookup-order
type: rest_api
description: Пошук статусу замовлення за ID замовлення
url: https://api.example.com/orders/${order_id}
method: GET
headers:
Authorization: "Bearer ${INTERNAL_API_KEY}"
timeout: 10s
rate_limit:
requests_per_minute: 60
spawns:
max_spawns: 3
max_depth: 2
allowed_agents: ["billing-agent", "shipping-agent"]