Skip to content
Эта страница создана и переведена с помощью ИИ. Если вы заметили неточности, помогите нам улучшить её. Редактировать на GitHub

Справочник конфигурации

На этой странице описан каждый раздел и поле конфигурации PRX в config.toml. Поля, для которых указано значение по умолчанию, можно не указывать — PRX будет использовать значение по умолчанию.

Верхний уровень (настройки по умолчанию)

Эти поля располагаются на корневом уровне config.toml, вне каких-либо заголовков секций.

ПолеТипПо умолчаниюОписание
default_providerstring"openrouter"ID или псевдоним провайдера (например, "anthropic", "openai", "ollama")
default_modelstring"anthropic/claude-sonnet-4.6"Идентификатор модели, маршрутизируемый через выбранного провайдера
default_temperaturefloat0.7Температура сэмплирования (0.0--2.0). Ниже = более детерминированный
api_keystring?nullAPI-ключ для выбранного провайдера. Переопределяется провайдер-специфичными переменными окружения
api_urlstring?nullПереопределение базового URL API провайдера (например, удалённый эндпоинт Ollama)
toml
default_provider = "anthropic"
default_model = "anthropic/claude-sonnet-4-6"
default_temperature = 0.7
api_key = "sk-ant-..."

[gateway]

HTTP-шлюзовой сервер для эндпоинтов вебхуков, сопряжения и веб-API.

ПолеТипПо умолчаниюОписание
hoststring"127.0.0.1"Адрес привязки. Используйте "0.0.0.0" для публичного доступа
portu1616830Порт прослушивания
require_pairingbooltrueТребовать сопряжение устройства перед приёмом API-запросов
allow_public_bindboolfalseРазрешить привязку к нелокальному адресу без туннеля
pair_rate_limit_per_minuteu325Макс. запросов сопряжения в минуту от клиента
webhook_rate_limit_per_minuteu3260Макс. запросов вебхуков в минуту от клиента
api_rate_limit_per_minuteu32120Макс. API-запросов в минуту на аутентифицированный токен
trust_forwarded_headersboolfalseДоверять заголовкам X-Forwarded-For / X-Real-IP (включать только за обратным прокси)
request_timeout_secsu64300Таймаут обработчика HTTP в секундах
idempotency_ttl_secsu64300TTL для ключей идемпотентности вебхуков
toml
[gateway]
host = "127.0.0.1"
port = 16830
require_pairing = true
api_rate_limit_per_minute = 120

WARNING

Изменение host или port требует полного перезапуска. Эти значения привязываются при запуске сервера и не могут быть перезагружены на лету.

[channels_config]

Конфигурация каналов верхнего уровня. Отдельные каналы — вложенные подсекции.

ПолеТипПо умолчаниюОписание
clibooltrueВключить интерактивный CLI-канал
message_timeout_secsu64300Таймаут обработки одного сообщения (LLM + инструменты)

[channels_config.telegram]

ПолеТипПо умолчаниюОписание
bot_tokenstring(обязательный)Токен Telegram Bot API от @BotFather
allowed_usersstring[][]Разрешённые Telegram user ID или имена пользователей. Пусто = запрещено всем
mention_onlyboolfalseВ группах отвечать только на сообщения с @-упоминанием бота
stream_mode"off" | "partial""off"Режим потоковой передачи: off — полный ответ, partial — прогрессивное редактирование черновика
draft_update_interval_msu641000Минимальный интервал между редактированиями черновика (защита от ограничений частоты)
interrupt_on_new_messageboolfalseОтменить текущий ответ, когда тот же пользователь отправляет новое сообщение
toml
[channels_config.telegram]
bot_token = "123456:ABC-DEF..."
allowed_users = ["alice", "bob"]
mention_only = true
stream_mode = "partial"

[channels_config.discord]

ПолеТипПо умолчаниюОписание
bot_tokenstring(обязательный)Токен Discord-бота из Developer Portal
guild_idstring?nullОграничить одним сервером (гильдией)
allowed_usersstring[][]Разрешённые Discord user ID. Пусто = запрещено всем
listen_to_botsboolfalseОбрабатывать сообщения от других ботов (собственные сообщения всегда игнорируются)
mention_onlyboolfalseОтвечать только на @-упоминания
toml
[channels_config.discord]
bot_token = "MTIz..."
guild_id = "987654321"
allowed_users = ["111222333"]
mention_only = true

[channels_config.slack]

ПолеТипПо умолчаниюОписание
bot_tokenstring(обязательный)OAuth-токен Slack-бота (xoxb-...)
app_tokenstring?nullТокен уровня приложения для Socket Mode (xapp-...)
channel_idstring?nullОграничить одним каналом
allowed_usersstring[][]Разрешённые Slack user ID. Пусто = запрещено всем
mention_onlyboolfalseВ группах отвечать только на @-упоминания

[channels_config.lark]

ПолеТипПо умолчаниюОписание
app_idstring(обязательный)App ID Lark/Feishu
app_secretstring(обязательный)App Secret Lark/Feishu
encrypt_keystring?nullКлюч шифрования событий
verification_tokenstring?nullТокен верификации событий
allowed_usersstring[][]Разрешённые user ID. Пусто = запрещено всем
use_feishuboolfalseИспользовать API-эндпоинты Feishu (Китай) вместо Lark (международных)
receive_mode"websocket" | "webhook""websocket"Режим получения сообщений
portu16?nullПорт прослушивания вебхуков (только для режима webhook)
mention_onlyboolfalseОтвечать только на @-упоминания

PRX также поддерживает следующие дополнительные каналы (настраиваемые в [channels_config.*]):

  • Matrixhomeserver, access_token, списки разрешённых комнат
  • Signal — через signal-cli REST API
  • WhatsApp — Cloud API или режим Web
  • iMessage — только macOS, списки разрешённых контактов
  • DingTalk — Stream Mode с client_id / client_secret
  • QQ — Official Bot SDK с app_id / app_secret
  • Email — IMAP/SMTP
  • IRC — сервер, канал, ник
  • Mattermost — URL + токен бота
  • Nextcloud Talk — базовый URL + токен приложения
  • Webhook — общие входящие вебхуки

[memory]

Бэкенд памяти для истории разговоров, знаний и эмбеддингов.

ПолеТипПо умолчаниюОписание
backendstring"sqlite"Тип бэкенда: "sqlite", "lucid", "postgres", "markdown", "none"
auto_savebooltrueАвтоматически сохранять пользовательский ввод разговоров в память
acl_enabledboolfalseВключить списки контроля доступа к памяти
hygiene_enabledbooltrueПериодическое архивирование и очистка по правилам хранения
archive_after_daysu327Архивировать ежедневные/сессионные файлы старше этого срока
purge_after_daysu3230Удалять архивные файлы старше этого срока
conversation_retention_daysu323SQLite: удаление строк разговоров старше этого срока
daily_retention_daysu327SQLite: удаление ежедневных строк старше этого срока
embedding_providerstring"none"Провайдер эмбеддингов: "none", "openai", "custom:<URL>"
embedding_modelstring"text-embedding-3-small"Имя модели эмбеддингов
embedding_dimensionsusize1536Размерность вектора эмбеддингов
vector_weightf640.7Вес векторного сходства в гибридном поиске (0.0--1.0)
keyword_weightf640.3Вес ключевого поиска BM25 (0.0--1.0)
min_relevance_scoref640.4Минимальный гибридный балл для включения памяти в контекст
embedding_cache_sizeusize10000Макс. записей кэша эмбеддингов перед LRU-вытеснением
snapshot_enabledboolfalseЭкспорт ключевых воспоминаний в MEMORY_SNAPSHOT.md
snapshot_on_hygieneboolfalseСнимок при выполнении гигиены
auto_hydratebooltrueАвтозагрузка из снимка при отсутствии brain.db
toml
[memory]
backend = "sqlite"
auto_save = true
embedding_provider = "openai"
embedding_model = "text-embedding-3-small"
embedding_dimensions = 1536
vector_weight = 0.7
keyword_weight = 0.3

[router]

Эвристический маршрутизатор LLM для многомодельных развёртываний. Оценивает кандидатные модели по взвешенной формуле, сочетающей возможности, рейтинг Elo, стоимость и задержку.

ПолеТипПо умолчаниюОписание
enabledboolfalseВключить эвристическую маршрутизацию
alphaf320.0Вес оценки сходства
betaf320.5Вес оценки возможностей
gammaf320.3Вес рейтинга Elo
deltaf320.1Коэффициент штрафа за стоимость
epsilonf320.1Коэффициент штрафа за задержку
knn_enabledboolfalseВключить семантическую маршрутизацию KNN из истории
knn_min_recordsusize10Минимальное количество записей истории, чтобы KNN влиял на маршрутизацию
knn_kusize7Количество ближайших соседей для голосования

[router.automix]

Адаптивная политика эскалации: начинаем с дешёвой модели, эскалируем на премиальную при снижении уверенности.

ПолеТипПо умолчаниюОписание
enabledboolfalseВключить эскалацию Automix
confidence_thresholdf320.7Эскалировать при снижении уверенности ниже этого значения (0.0--1.0)
cheap_model_tiersstring[][]Уровни моделей, считающиеся «сначала дешёвые»
premium_model_idstring""Модель, используемая для эскалации
toml
[router]
enabled = true
beta = 0.5
gamma = 0.3
knn_enabled = true

[router.automix]
enabled = true
confidence_threshold = 0.7
premium_model_id = "anthropic/claude-sonnet-4-6"

[security]

Безопасность на уровне ОС: песочница, ограничения ресурсов и журнал аудита.

[security.sandbox]

ПолеТипПо умолчаниюОписание
enabledbool?null (автоопределение)Включить изоляцию в песочнице
backendstring"auto"Бэкенд: "auto", "landlock", "firejail", "bubblewrap", "docker", "none"
firejail_argsstring[][]Пользовательские аргументы Firejail

[security.resources]

ПолеТипПо умолчаниюОписание
max_memory_mbu32512Максимальная память на команду (МБ)
max_cpu_time_secondsu6460Максимальное процессорное время на команду
max_subprocessesu3210Максимальное количество подпроцессов
memory_monitoringbooltrueВключить мониторинг использования памяти

[security.audit]

ПолеТипПо умолчаниюОписание
enabledbooltrueВключить журнал аудита
log_pathstring"audit.log"Путь к файлу журнала аудита (относительно каталога конфигурации)
max_size_mbu32100Максимальный размер журнала перед ротацией
sign_eventsboolfalseПодписывать события HMAC для защиты от подделки
toml
[security.sandbox]
backend = "landlock"

[security.resources]
max_memory_mb = 1024
max_cpu_time_seconds = 120

[security.audit]
enabled = true
sign_events = true

[observability]

Бэкенд метрик и распределённой трассировки.

ПолеТипПо умолчаниюОписание
backendstring"none"Бэкенд: "none", "log", "prometheus", "otel"
otel_endpointstring?nullURL эндпоинта OTLP (например, "http://localhost:4318")
otel_service_namestring?nullИмя сервиса для OTel-коллектора (по умолчанию "prx")
toml
[observability]
backend = "otel"
otel_endpoint = "http://localhost:4318"
otel_service_name = "prx-production"

[mcp]

Интеграция сервера Model Context Protocol. PRX выступает как MCP-клиент, подключаясь к внешним MCP-серверам для получения дополнительных инструментов.

ПолеТипПо умолчаниюОписание
enabledboolfalseВключить интеграцию MCP-клиента

[mcp.servers.<name>]

Каждый именованный сервер — подсекция в [mcp.servers].

ПолеТипПо умолчаниюОписание
enabledbooltrueПереключатель включения для сервера
transport"stdio" | "http""stdio"Тип транспорта
commandstring?nullКоманда для режима stdio
argsstring[][]Аргументы команды для режима stdio
urlstring?nullURL для HTTP-транспорта
envmap<string, string>{}Переменные окружения для режима stdio
startup_timeout_msu6410000Таймаут запуска
request_timeout_msu6430000Таймаут каждого запроса
tool_name_prefixstring"mcp"Префикс для имён предоставляемых инструментов
allow_toolsstring[][]Список разрешённых инструментов (пусто = все)
deny_toolsstring[][]Список запрещённых инструментов
toml
[mcp]
enabled = true

[mcp.servers.filesystem]
transport = "stdio"
command = "npx"
args = ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/docs"]

[mcp.servers.remote-api]
transport = "http"
url = "http://localhost:8090/mcp"
request_timeout_ms = 60000

[browser]

Конфигурация инструмента автоматизации браузера.

ПолеТипПо умолчаниюОписание
enabledboolfalseВключить инструмент browser_open
allowed_domainsstring[][]Разрешённые домены (точное совпадение или поддомен)
session_namestring?nullИменованная сессия браузера для автоматизации
toml
[browser]
enabled = true
allowed_domains = ["docs.rs", "github.com", "*.example.com"]

Конфигурация инструментов веб-поиска и загрузки URL.

ПолеТипПо умолчаниюОписание
enabledboolfalseВключить инструмент web_search
providerstring"duckduckgo"Провайдер поиска: "duckduckgo" (бесплатный) или "brave" (требуется API-ключ)
brave_api_keystring?nullAPI-ключ Brave Search
max_resultsusize5Максимум результатов на запрос (1--10)
timeout_secsu6415Таймаут запроса
fetch_enabledbooltrueВключить инструмент web_fetch
fetch_max_charsusize10000Макс. символов, возвращаемых web_fetch
toml
[web_search]
enabled = true
provider = "brave"
brave_api_key = "BSA..."
max_results = 5
fetch_enabled = true

[xin]

Xin (сердце/разум) — автономный движок задач, планирующий и выполняющий фоновые задачи, включая эволюцию, проверки пригодности и операции гигиены.

ПолеТипПо умолчаниюОписание
enabledboolfalseВключить движок задач Xin
interval_minutesu325Интервал тика в минутах (минимум 1)
max_concurrentusize4Максимум параллельно выполняемых задач за тик
max_tasksusize128Максимум задач в хранилище
stale_timeout_minutesu3260Минуты до пометки запущенной задачи как устаревшей
builtin_tasksbooltrueАвтоматическая регистрация встроенных системных задач
evolution_integrationboolfalseПозволить Xin управлять планированием эволюции/пригодности
toml
[xin]
enabled = true
interval_minutes = 10
max_concurrent = 4
builtin_tasks = true
evolution_integration = true

[cost]

Лимиты расходов и ценообразование по моделям для отслеживания затрат.

ПолеТипПо умолчаниюОписание
enabledboolfalseВключить отслеживание затрат
daily_limit_usdf6410.0Дневной лимит расходов в USD
monthly_limit_usdf64100.0Месячный лимит расходов в USD
warn_at_percentu880Предупреждать при достижении этого процента от лимита
allow_overrideboolfalseРазрешить запросам превышать бюджет с флагом --override
toml
[cost]
enabled = true
daily_limit_usd = 25.0
monthly_limit_usd = 500.0
warn_at_percent = 80

[reliability]

Конфигурация повторных попыток и цепочки резервных провайдеров для устойчивого доступа.

ПолеТипПо умолчаниюОписание
max_retriesu323Максимум повторных попыток при временных сбоях
fallback_providersstring[][]Упорядоченный список имён резервных провайдеров
toml
[reliability]
max_retries = 3
fallback_providers = ["openai", "gemini"]

[secrets]

Зашифрованное хранилище учётных данных на основе ChaCha20-Poly1305.

ПолеТипПо умолчаниюОписание
encryptbooltrueВключить шифрование API-ключей и токенов в конфигурации

[auth]

Настройки импорта внешних учётных данных.

ПолеТипПо умолчаниюОписание
codex_auth_json_auto_importbooltrueАвтоимпорт OAuth-учётных данных из файла auth.json Codex CLI
codex_auth_json_pathstring"~/.codex/auth.json"Путь к файлу аутентификации Codex CLI

[proxy]

Конфигурация исходящего HTTP/HTTPS/SOCKS5 прокси.

ПолеТипПо умолчаниюОписание
enabledboolfalseВключить прокси
http_proxystring?nullURL HTTP-прокси
https_proxystring?nullURL HTTPS-прокси
all_proxystring?nullРезервный прокси для всех схем
no_proxystring[][]Список обхода (тот же формат, что и NO_PROXY)
scopestring"zeroclaw"Область: "environment", "zeroclaw", "services"
servicesstring[][]Селекторы сервисов для области "services"
toml
[proxy]
enabled = true
https_proxy = "socks5://127.0.0.1:1080"
no_proxy = ["localhost", "127.0.0.1", "*.internal"]
scope = "zeroclaw"

Released under the Apache-2.0 License.