Skip to content
Cette page a été générée et traduite avec l'aide de l'IA. Si vous remarquez des inexactitudes, n'hésitez pas à contribuer. Modifier sur GitHub

Reference de la configuration

Cette page documente chaque section et champ de la configuration dans le fichier config.toml de PRX. Les champs marques avec une valeur par defaut peuvent etre omis -- PRX utilisera la valeur par defaut.

Premier niveau (parametres par defaut)

Ces champs apparaissent au niveau racine de config.toml, en dehors de tout en-tete de section.

ChampTypeDefautDescription
default_providerstring"openrouter"ID ou alias du fournisseur (ex. "anthropic", "openai", "ollama")
default_modelstring"anthropic/claude-sonnet-4.6"Identifiant du modele route via le fournisseur selectionne
default_temperaturefloat0.7Temperature d'echantillonnage (0.0--2.0). Plus basse = plus deterministe
api_keystring?nullCle API pour le fournisseur selectionne. Surcharge par les variables d'environnement specifiques au fournisseur
api_urlstring?nullSurcharge de l'URL de base pour l'API du fournisseur (ex. endpoint Ollama distant)
toml
default_provider = "anthropic"
default_model = "anthropic/claude-sonnet-4-6"
default_temperature = 0.7
api_key = "sk-ant-..."

[gateway]

Serveur de passerelle HTTP pour les endpoints webhook, l'appairage et l'API web.

ChampTypeDefautDescription
hoststring"127.0.0.1"Adresse de liaison. Utilisez "0.0.0.0" pour l'acces public
portu1616830Port d'ecoute
require_pairingbooltrueExiger l'appairage d'appareil avant d'accepter les requetes API
allow_public_bindboolfalseAutoriser la liaison a une adresse non-localhost sans tunnel
pair_rate_limit_per_minuteu325Nombre max de requetes d'appairage par minute par client
webhook_rate_limit_per_minuteu3260Nombre max de requetes webhook par minute par client
api_rate_limit_per_minuteu32120Nombre max de requetes API par minute par token authentifie
trust_forwarded_headersboolfalseFaire confiance aux en-tetes X-Forwarded-For / X-Real-IP (activer uniquement derriere un proxy inverse)
request_timeout_secsu64300Delai d'attente du gestionnaire HTTP en secondes
idempotency_ttl_secsu64300TTL pour les cles d'idempotence des webhooks
toml
[gateway]
host = "127.0.0.1"
port = 16830
require_pairing = true
api_rate_limit_per_minute = 120

WARNING

La modification de host ou port necessite un redemarrage complet. Ces valeurs sont liees au demarrage du serveur et ne peuvent pas etre rechargees a chaud.

[channels_config]

Configuration des canaux de premier niveau. Les canaux individuels sont des sous-sections imbriquees.

ChampTypeDefautDescription
clibooltrueActiver le canal CLI interactif
message_timeout_secsu64300Delai de traitement par message (LLM + outils)

[channels_config.telegram]

ChampTypeDefautDescription
bot_tokenstring(requis)Token de l'API Bot Telegram depuis @BotFather
allowed_usersstring[][]ID ou noms d'utilisateur Telegram autorises. Vide = tout refuser
mention_onlyboolfalseDans les groupes, repondre uniquement aux messages qui mentionnent le bot avec @
stream_mode"off" | "partial""off"Mode streaming : off envoie la reponse complete, partial edite un brouillon progressivement
draft_update_interval_msu641000Intervalle minimum entre les editions de brouillon (protection de limite de debit)
interrupt_on_new_messageboolfalseAnnuler la reponse en cours lorsque le meme utilisateur envoie un nouveau message
toml
[channels_config.telegram]
bot_token = "123456:ABC-DEF..."
allowed_users = ["alice", "bob"]
mention_only = true
stream_mode = "partial"

[channels_config.discord]

ChampTypeDefautDescription
bot_tokenstring(requis)Token du bot Discord depuis le portail developpeur
guild_idstring?nullRestreindre a un seul serveur (guild)
allowed_usersstring[][]ID d'utilisateurs Discord autorises. Vide = tout refuser
listen_to_botsboolfalseTraiter les messages d'autres bots (les propres messages sont toujours ignores)
mention_onlyboolfalseRepondre uniquement aux @-mentions
toml
[channels_config.discord]
bot_token = "MTIz..."
guild_id = "987654321"
allowed_users = ["111222333"]
mention_only = true

[channels_config.slack]

ChampTypeDefautDescription
bot_tokenstring(requis)Token OAuth du bot Slack (xoxb-...)
app_tokenstring?nullToken au niveau de l'application pour le mode Socket (xapp-...)
channel_idstring?nullRestreindre a un seul canal
allowed_usersstring[][]ID d'utilisateurs Slack autorises. Vide = tout refuser
mention_onlyboolfalseRepondre uniquement aux @-mentions dans les groupes

[channels_config.lark]

ChampTypeDefautDescription
app_idstring(requis)ID de l'application Lark/Feishu
app_secretstring(requis)Secret de l'application Lark/Feishu
encrypt_keystring?nullCle de chiffrement des evenements
verification_tokenstring?nullToken de verification des evenements
allowed_usersstring[][]ID d'utilisateurs autorises. Vide = tout refuser
use_feishuboolfalseUtiliser les endpoints API Feishu (Chine) au lieu de Lark (international)
receive_mode"websocket" | "webhook""websocket"Mode de reception des messages
portu16?nullPort d'ecoute webhook (uniquement pour le mode webhook)
mention_onlyboolfalseRepondre uniquement aux @-mentions

PRX prend egalement en charge ces canaux supplementaires (configures sous [channels_config.*]) :

  • Matrix -- homeserver, access_token, listes d'autorisation de salons
  • Signal -- via l'API REST signal-cli
  • WhatsApp -- API Cloud ou mode Web
  • iMessage -- macOS uniquement, listes d'autorisation de contacts
  • DingTalk -- Mode Stream avec client_id / client_secret
  • QQ -- SDK Bot officiel avec app_id / app_secret
  • Email -- IMAP/SMTP
  • IRC -- Serveur, canal, pseudo
  • Mattermost -- URL + token de bot
  • Nextcloud Talk -- URL de base + token d'application
  • Webhook -- Webhooks entrants generiques

[memory]

Backend memoire pour l'historique de conversation, les connaissances et les embeddings.

ChampTypeDefautDescription
backendstring"sqlite"Type de backend : "sqlite", "lucid", "postgres", "markdown", "none"
auto_savebooltrueSauvegarder automatiquement les entrees de conversation de l'utilisateur en memoire
acl_enabledboolfalseActiver les listes de controle d'acces memoire
hygiene_enabledbooltrueExecuter l'archivage periodique et le nettoyage de retention
archive_after_daysu327Archiver les fichiers quotidiens/de session plus anciens que cette valeur
purge_after_daysu3230Purger les fichiers archives plus anciens que cette valeur
conversation_retention_daysu323SQLite : elaguer les lignes de conversation plus anciennes que cette valeur
daily_retention_daysu327SQLite : elaguer les lignes quotidiennes plus anciennes que cette valeur
embedding_providerstring"none"Fournisseur d'embeddings : "none", "openai", "custom:<URL>"
embedding_modelstring"text-embedding-3-small"Nom du modele d'embedding
embedding_dimensionsusize1536Dimensions du vecteur d'embedding
vector_weightf640.7Poids de la similarite vectorielle dans la recherche hybride (0.0--1.0)
keyword_weightf640.3Poids de la recherche par mots-cles BM25 (0.0--1.0)
min_relevance_scoref640.4Score hybride minimum pour inclure la memoire dans le contexte
embedding_cache_sizeusize10000Nombre max d'entrees de cache d'embeddings avant eviction LRU
snapshot_enabledboolfalseExporter les memoires centrales vers MEMORY_SNAPSHOT.md
snapshot_on_hygieneboolfalseExecuter le snapshot pendant les passes d'hygiene
auto_hydratebooltrueCharger automatiquement depuis le snapshot quand brain.db est absent
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]

Routeur LLM heuristique pour les deploiements multi-modeles. Evalue les modeles candidats en utilisant une formule ponderee combinant capacite, score Elo, cout et latence.

ChampTypeDefautDescription
enabledboolfalseActiver le routage heuristique
alphaf320.0Poids du score de similarite
betaf320.5Poids du score de capacite
gammaf320.3Poids du score Elo
deltaf320.1Coefficient de penalite de cout
epsilonf320.1Coefficient de penalite de latence
knn_enabledboolfalseActiver le routage semantique KNN depuis l'historique
knn_min_recordsusize10Nombre minimum d'enregistrements historiques avant que le KNN n'affecte le routage
knn_kusize7Nombre de plus proches voisins pour le vote

[router.automix]

Politique d'escalade adaptative : commencer avec un modele economique, escalader vers le premium quand la confiance diminue.

ChampTypeDefautDescription
enabledboolfalseActiver l'escalade Automix
confidence_thresholdf320.7Escalader quand la confiance tombe en dessous de cette valeur (0.0--1.0)
cheap_model_tiersstring[][]Niveaux de modeles consideres comme "economiques d'abord"
premium_model_idstring""Modele utilise pour l'escalade
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]

Securite au niveau OS : sandboxing, limites de ressources et journalisation d'audit.

[security.sandbox]

ChampTypeDefautDescription
enabledbool?null (auto-detection)Activer l'isolation sandbox
backendstring"auto"Backend : "auto", "landlock", "firejail", "bubblewrap", "docker", "none"
firejail_argsstring[][]Arguments Firejail personnalises

[security.resources]

ChampTypeDefautDescription
max_memory_mbu32512Memoire maximum par commande (Mo)
max_cpu_time_secondsu6460Temps CPU maximum par commande
max_subprocessesu3210Nombre maximum de sous-processus
memory_monitoringbooltrueActiver la surveillance de l'utilisation memoire

[security.audit]

ChampTypeDefautDescription
enabledbooltrueActiver la journalisation d'audit
log_pathstring"audit.log"Chemin du fichier de journal d'audit (relatif au repertoire de configuration)
max_size_mbu32100Taille maximum du journal avant rotation
sign_eventsboolfalseSigner les evenements avec HMAC pour la preuve d'integrite
toml
[security.sandbox]
backend = "landlock"

[security.resources]
max_memory_mb = 1024
max_cpu_time_seconds = 120

[security.audit]
enabled = true
sign_events = true

[observability]

Backend de metriques et de tracing distribue.

ChampTypeDefautDescription
backendstring"none"Backend : "none", "log", "prometheus", "otel"
otel_endpointstring?nullURL du endpoint OTLP (ex. "http://localhost:4318")
otel_service_namestring?nullNom du service pour le collecteur OTel (par defaut "prx")
toml
[observability]
backend = "otel"
otel_endpoint = "http://localhost:4318"
otel_service_name = "prx-production"

[mcp]

Integration du serveur Model Context Protocol. PRX agit en tant que client MCP, se connectant a des serveurs MCP externes pour des outils supplementaires.

ChampTypeDefautDescription
enabledboolfalseActiver l'integration client MCP

[mcp.servers.<name>]

Chaque serveur nomme est une sous-section sous [mcp.servers].

ChampTypeDefautDescription
enabledbooltrueCommutateur d'activation par serveur
transport"stdio" | "http""stdio"Type de transport
commandstring?nullCommande pour le mode stdio
argsstring[][]Arguments de commande pour le mode stdio
urlstring?nullURL pour le transport HTTP
envmap<string, string>{}Variables d'environnement pour le mode stdio
startup_timeout_msu6410000Delai de demarrage
request_timeout_msu6430000Delai par requete
tool_name_prefixstring"mcp"Prefixe pour les noms d'outils exposes
allow_toolsstring[][]Liste blanche d'outils (vide = tous)
deny_toolsstring[][]Liste noire d'outils
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]

Configuration de l'outil d'automatisation du navigateur.

ChampTypeDefautDescription
enabledboolfalseActiver l'outil browser_open
allowed_domainsstring[][]Domaines autorises (correspondance exacte ou sous-domaine)
session_namestring?nullSession de navigateur nommee pour l'automatisation
toml
[browser]
enabled = true
allowed_domains = ["docs.rs", "github.com", "*.example.com"]

Configuration des outils de recherche web et de telechargement d'URL.

ChampTypeDefautDescription
enabledboolfalseActiver l'outil web_search
providerstring"duckduckgo"Fournisseur de recherche : "duckduckgo" (gratuit) ou "brave" (cle API requise)
brave_api_keystring?nullCle API Brave Search
max_resultsusize5Nombre maximum de resultats par recherche (1--10)
timeout_secsu6415Delai de la requete
fetch_enabledbooltrueActiver l'outil web_fetch
fetch_max_charsusize10000Nombre max de caracteres retournes par web_fetch
toml
[web_search]
enabled = true
provider = "brave"
brave_api_key = "BSA..."
max_results = 5
fetch_enabled = true

[xin]

Moteur de taches autonomes Xin (coeur/esprit) -- planifie et execute les taches en arriere-plan incluant l'evolution, les verifications de fitness et les operations d'hygiene.

ChampTypeDefautDescription
enabledboolfalseActiver le moteur de taches Xin
interval_minutesu325Intervalle de tick en minutes (minimum 1)
max_concurrentusize4Nombre maximum d'executions de taches concurrentes par tick
max_tasksusize128Nombre maximum total de taches dans le stockage
stale_timeout_minutesu3260Minutes avant qu'une tache en cours soit marquee comme perimee
builtin_tasksbooltrueEnregistrer automatiquement les taches systeme integrees
evolution_integrationboolfalseLaisser Xin gerer la planification de l'evolution/fitness
toml
[xin]
enabled = true
interval_minutes = 10
max_concurrent = 4
builtin_tasks = true
evolution_integration = true

[cost]

Limites de depenses et tarification par modele pour le suivi des couts.

ChampTypeDefautDescription
enabledboolfalseActiver le suivi des couts
daily_limit_usdf6410.0Limite de depenses quotidienne en USD
monthly_limit_usdf64100.0Limite de depenses mensuelle en USD
warn_at_percentu880Avertir quand les depenses atteignent ce pourcentage de la limite
allow_overrideboolfalseAutoriser les requetes a depasser le budget avec le drapeau --override
toml
[cost]
enabled = true
daily_limit_usd = 25.0
monthly_limit_usd = 500.0
warn_at_percent = 80

[reliability]

Configuration de la chaine de reessai et de basculement pour un acces resilient aux fournisseurs.

ChampTypeDefautDescription
max_retriesu323Nombre maximum de tentatives de reessai pour les echecs transitoires
fallback_providersstring[][]Liste ordonnee de noms de fournisseurs de secours
toml
[reliability]
max_retries = 3
fallback_providers = ["openai", "gemini"]

[secrets]

Stockage de secrets chiffres utilisant ChaCha20-Poly1305.

ChampTypeDefautDescription
encryptbooltrueActiver le chiffrement des cles API et tokens dans la configuration

[auth]

Parametres d'import d'identifiants externes.

ChampTypeDefautDescription
codex_auth_json_auto_importbooltrueImporter automatiquement les identifiants OAuth depuis le fichier auth.json de Codex CLI
codex_auth_json_pathstring"~/.codex/auth.json"Chemin vers le fichier auth de Codex CLI

[proxy]

Configuration de proxy sortant HTTP/HTTPS/SOCKS5.

ChampTypeDefautDescription
enabledboolfalseActiver le proxy
http_proxystring?nullURL du proxy HTTP
https_proxystring?nullURL du proxy HTTPS
all_proxystring?nullProxy de secours pour tous les schemas
no_proxystring[][]Liste de contournement (meme format que NO_PROXY)
scopestring"zeroclaw"Portee : "environment", "zeroclaw", "services"
servicesstring[][]Selecteurs de services quand la portee est "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.