Skip to main content

Configuration

akritas serve combines flags with a required global model-instructions file, an optional MCP configuration, and an optional workspace catalog.

Every serve setting is available as a CLI flag, an AKRITAS_* environment variable, or a field in the strict versioned JSON service configuration. Precedence is CLI flag, environment, JSON configuration, then built-in default. Start from configs/akritas/server.example.json:

cp configs/akritas/server.example.json configs/akritas/server.local.json
AKRITAS_CONFIG=configs/akritas/server.local.json ./bin/akritas serve

-config has precedence over AKRITAS_CONFIG. Keep actual secrets in OPENAI_API_KEY, AKRITAS_API_KEY, or alternative variables selected by the configuration; the JSON schema stores only those variable names.

./bin/akritas serve \
-base-url http://127.0.0.1:8080/v1 \
-upstream-model demo-model \
-system-instructions instructions/SYSTEM.md \
-skills-dir skills \
-response-language en \
-rag-index data/runbooks.tgr \
-mcp-config configs/mcp.local.json \
-alert-sources-config configs/akritas/alerts.local.json \
-alert-store data/audit/alerts.jsonl \
-workspace-config configs/akritas/workspaces.local.json \
-audit-log data/audit/akritas.jsonl

Secrets are read indirectly from environment variables. OPENAI_API_KEY is the default upstream key and AKRITAS_API_KEY is the inbound Bearer token. Empty inbound credentials disable authentication, so retain the default loopback bind unless a trusted proxy provides the boundary.

-system-instructions defaults to instructions/SYSTEM.md. Akritas prepends this non-empty UTF-8 Markdown file to the first system message of every model request and loads it once during startup. The file controls model behavior but cannot add tools, permissions, or host capabilities. Use an absolute path in a service deployment, protect the file as trusted configuration, and restart Akritas after changing it.

-skills-dir defaults to skills. Each immediate child directory can contain a SKILL.md. Akritas automatically loads exact selectors from explicit request fields or successful inventory/CMDB facts. If those sources are insufficient, knowledge.list_skills exposes bounded name/description metadata and knowledge.load_skill loads one exact catalog name. Automatic and requested loads share an eight-skill Run cap. An empty flag value disables the catalog and both tools. Skills guide model reasoning but cannot add or authorize tools, and loading one does not prove that its technology is present.

-response-language controls model-generated human-readable prose. It accepts a BCP 47 tag such as en, ru, fr, ja, zh-Hant, or pt-BR and defaults to en. The setting does not localize the Web UI, fixed Markdown headings, host validation errors, or logs.

See the Configuration Reference and Environment Variables for defaults, schemas, and the complete mapping.