Page
Configuration
This document describes the full Myria configuration model.
Myria currently reads JSON configuration.
Top-Level Shape
{
"service": {},
"mcp": {},
"postgres": {},
"llm": {},
"builder": {}
}
service
{
"name": "myria",
"log_level": "info",
"log_file": "./myria.log"
}
nameRequired. Service identity.log_levelOptional in practice. Logging verbosity label used by the service layer.log_fileOptional but recommended. Append-only log file path for internal runtime logs. The current implementation writes JSON lines and callsfsyncafter each write.
mcp
{
"transport": "stdio",
"network": {
"enabled": false,
"listen_addr": ""
}
}
transportRequired. Must be"stdio"in v1.network.enabledMust remainfalsein v1.network.listen_addrCurrently unused in v1 and should be left empty.
postgres
{
"dsn": "postgres://myria:secret@127.0.0.1:5432/myria?sslmode=disable",
"schema": "myria",
"max_open_conns": 20,
"max_idle_conns": 5,
"migrate_on_start": false
}
dsnRequired. PostgreSQL connection string.schemaRequired. Schema name. Must contain only letters, digits, and underscores.max_open_connsMaximum pool size.max_idle_connsMinimum retained idle connections in the current implementation.migrate_on_startWhentrue, Myria runs migrations on startup.
llm
{
"provider": "openrouter",
"request_template_path": "./config/openrouter-llm.template.json",
"timeout": "30s",
"max_tool_rounds": 8,
"temperature": 1.0,
"top_p": 0.95,
"structured_tool_calling_required": true
}
providerRequired. Currentlyopenrouter.request_template_pathRequired. Path to the OpenRouter request template JSON file.timeoutRequired. Per workflow timeout for builder and tree-walker calls.max_tool_roundsRequired. Maximum tool-call rounds for one internal LLM workflow.temperatureStored configuration for the chosen model request profile.top_pStored configuration for the chosen model request profile.structured_tool_calling_requiredWhentrue, Myria treats plain-text non-tool responses as invalid in internal tool loops.
builder
{
"inactivity_timeout": "30s",
"max_unindexed_events": 100,
"auto_publish": true,
"allow_manual_trigger": true
}
inactivity_timeoutRequired. Global quiet-window trigger for background builds.max_unindexed_eventsRequired. Global tail threshold trigger.auto_publishWhentrue, validated snapshots are promoted automatically.allow_manual_triggerEnables the admin-triggered build path.
OpenRouter Request Template
The request template is stored outside environment variables so the call shape is explicit and versionable.
Typical template:
{
"model": "nvidia/nemotron-3-super-120b-a12b:free",
"provider": {
"sort": "throughput"
},
"temperature": 1.0,
"top_p": 0.95,
"usage": {
"include": true
},
"headers": {
"Authorization": "Bearer YOUR_OPENROUTER_API_KEY",
"HTTP-Referer": "http://localhost",
"X-Title": "myria"
}
}
Myria injects dynamic fields such as:
messagestoolstool_choice
During tool-calling requests, Myria also removes incompatible fields like response_format before sending the request.
Validation Rules
The current config validator enforces:
service.nameis requiredmcp.transportis required and must bestdiomcp.network.enabledmust befalsepostgres.dsnis requiredpostgres.schemais required and sanitizedllm.provideris requiredllm.request_template_pathis requiredllm.timeoutmust be positivellm.max_tool_roundsmust be positivebuilder.inactivity_timeoutmust be positivebuilder.max_unindexed_eventsmust be positive
For a minimal working setup, see quickstart.md.