Перейти до основного вмісту

Довідник з конфігурації YAML

Sinaptic® DROID+ використовує два типи конфігураційних файлів YAML:

  1. Головна конфігурація (droid.yaml) — глобальні налаштування сервера, LLM, безпеки та логування
  2. Конфігурації агентів (configs/agents/*.yaml) — налаштування моделі, особистості, інструментів та поведінки для кожного агента

Усі значення конфігурації підтримують підстановку ${ENV_VAR} — Sinaptic® DROID+ розпізнає змінні оточення під час запуску.


Головна конфігурація (droid.yaml)

edition (видання)

ЗначенняОпис
communityБезкоштовне видання, макс. 2 агенти, безпека тільки на основі RegExp (за замовчуванням)
proНеобмежена кількість агентів, повний каскад SinapticAI
enterpriseБагатокористувацький режим (multi-tenancy), відповідність стандартам, висока доступність (HA)

server (сервер)

ПолеТипЗа замовчуваннямОпис
openai_portint8080Порт для API, сумісного з OpenAI
management_portint8081Порт для Management API
cors_origins[]string["*"]Дозволені джерела CORS
api_keystringAPI-ключ для автентифікації (підтримує ${ENV_VAR})
demo_modeboolfalseУвімкнути демо-режим

llm

Основна конфігурація постачальника LLM.

ПолеТипЗа замовчуваннямОпис
providerstringopenaiНазва постачальника LLM (openai, anthropic, gemini, grok, ollama, lm_studio, llama_cpp)
base_urlstringhttps://api.openai.com/v1Базовий URL API
api_keystring${OPENAI_API_KEY}API-ключ (підтримує ${ENV_VAR})
default_modelstringgpt-4o-miniНазва моделі за замовчуванням

anthropic

ПолеТипЗа замовчуваннямОпис
base_urlstringhttps://api.anthropic.comБазовий URL API Anthropic
api_keystring${ANTHROPIC_API_KEY}API-ключ

gemini

ПолеТипЗа замовчуваннямОпис
base_urlstringhttps://generativelanguage.googleapis.com/v1betaБазовий URL API Gemini
api_keystring${GEMINI_API_KEY}API-ключ

grok

ПолеТипЗа замовчуваннямОпис
base_urlstringhttps://api.x.ai/v1Базовий URL API Grok (xAI)
api_keystring${GROK_API_KEY}API-ключ

ollama

ПолеТипЗа замовчуваннямОпис
base_urlstringhttp://localhost:11434/v1Базовий URL API Ollama

lm_studio

ПолеТипЗа замовчуваннямОпис
base_urlstringhttp://localhost:1234/v1Базовий URL API LM Studio

llama_cpp

ПолеТипЗа замовчуваннямОпис
base_urlstringhttp://localhost:8080/v1Базовий URL сервера llama.cpp

embedding (ембеддінг)

ПолеТипЗа замовчуваннямОпис
modelstringtext-embedding-3-smallНазва моделі ембеддінгу
base_urlstring(використовує llm.base_url)Базовий URL API ембеддінгу
api_keystring(використовує llm.api_key)API-ключ ембеддінгу

sinaptic

Конфігурація рівня безпеки SinapticAI.

ПолеТипЗа замовчуваннямОпис
enabledbooltrueУвімкнути сканування безпеки SinapticAI
modestringblockДія при виявленні загрози: block (блокувати) або log (тільки логувати)
log_blockedbooltrueЛогувати заблоковані запити

sinaptic.pii

ПолеТипЗа замовчуваннямОпис
enabledbooltrueУвімкнути виявлення PII (персональних даних)
strategystringmaskСтратегія обробки 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}"
ПолеТипОпис
serversmapІменовані визначення серверів MCP

Для кожного сервера:

ПолеТипОпис
commandstringКоманда для запуску сервера MCP
args[]stringАргументи команди
envmap[string]stringЗмінні оточення для процесу сервера

logging (логування)

ПолеТипЗа замовчуваннямОпис
levelstringinfoРівень логування (debug, info, warn, error)
formatstringjsonФормат логів (json або text)

audit (аудит)

ПолеТипЗа замовчуваннямОпис
enabledboolfalseУвімкнути логування аудиту
log_pathstring./logs/auditШлях до файлів логів аудиту
retention_daysint30Скільки днів зберігати логи аудиту

branding (брендування)

ПолеТипЗа замовчуваннямОпис
show_badgebool(авто)Показувати бейдж "Powered by Sinaptic® DROID+". Авто: true для community, false для pro/enterprise

Шляхи верхнього рівня

ПолеТипЗа замовчуваннямОпис
data_dirstring./dataДиректорія для даних (ембеддінги, стан)
agents_dirstring./configs/agentsДиректорія з YAML-конфігураціями агентів

Конфігурація агента (configs/agents/*.yaml)

Поля верхнього рівня

ПолеТипОбов'язковеЗа замовчуваннямОпис
namestringтак(ім'я файлу)Унікальний ідентифікатор агента
descriptionstringніОпис у довільній формі
modelobjectтакКонфігурація моделі LLM
personalitystringтакСистемний промпт для агента
agent_typestringніplainЦикл обробки: plain або react
execution_modestringніsequentialВиконання інструментів: sequential (послідовно) або parallel (паралельно)
chain_of_thoughtboolніfalseУвімкнути міркування Chain-of-thought
max_iterationsintні10Макс. кількість ітерацій циклу ReAct
tool_timeoutstringні30sТайм-аут за замовчуванням для викликів інструментів

model

ПолеТипЗа замовчуваннямОпис
namestringНазва моделі (наприклад, gpt-4o, claude-sonnet-4-20250514)
base_urlstring(з головної конф.)Перевизначити базовий URL API LLM
api_keystring(з головної конф.)Перевизначити API-ключ
max_tokensint1024Максимальна кількість токенів відповіді
temperaturefloat0.7Температура вибірки (0-2)

memory.short_term

ПолеТипЗа замовчуваннямОпис
max_messagesint50Розмір ковзного вікна історії діалогу

rag

ПолеТипЗа замовчуваннямОпис
enabledboolfalseУвімкнути генерацію з доповненням пошуком (RAG)
top_kint3Кількість фрагментів для отримання
min_scorefloat0.7Поріг мінімального бала схожості

tools (інструменти)

Масив конфігурацій інструментів.

ПолеТипОбов'язковеОпис
namestringтакІдентифікатор інструменту
descriptionstringніОпис інструменту (показується LLM)
typestringтакТип інструменту: mcp, rest_api
urlstringrest_apiURL кінцевої точки
methodstringrest_apiМетод HTTP (GET, POST, PUT, DELETE)
headersmaprest_apiЗаголовки HTTP
timeoutstringrest_apiТайм-аут запиту (наприклад, 10s)

pipeline (пайплайн)

Кроки пайплайну з декількома LLM (опціонально). Якщо визначено, запит проходить крізь кожен крок послідовно.

ПолеТипОбов'язковеОпис
namestringтакІдентифікатор кроку
modelobjectтакКонфігурація моделі для цього кроку
personalitystringтакСистемний промпт для цього кроку

spawns

Конфігурація викликів між агентами (A2A).

ПолеТипЗа замовчуваннямОпис
max_spawnsint5Макс. кількість викликів субагентів на запит (0 = без ліміту)
max_tokens_per_spawnint4096Бюджет токенів на один виклик
max_depthint3Максимальна глибина рекурсії
allowed_agents[]string[] (усі)Білий список агентів, яких можна викликати
spawn_timeout_secsint60Тайм-аут на один виклик субагента у секундах

rate_limit (обмеження частоти)

ПолеТипЗа замовчуваннямОпис
requests_per_minuteint0 (необмежено)Макс. запитів на хвилину

sinaptic

Перевизначення SinapticAI для конкретного агента.

ПолеТипЗа замовчуваннямОпис
enabledbool(успадковується)Перевизначити глобальний прапорець увімкнення 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"]