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.