Documentation

LoxiaFlow Agent

A local Python agent loop that gives an Ollama-backed model real file-read/write and shell tool access, so it can execute tasks directly against your codebase — not just return text.

The LoxiaFlow Agent is what powers Workflows, Project Layer setup, and the Issue Runner when they're pointed at an Ollama model — instead of just chatting back, it can read, write, and run shell commands in your project directly.

It's enabled per-model via the “Use LoxiaFlow Agent loop” setting on an Ollama model config, and follows that config's Purpose: automatically on for Coding, off for General. See AI Config Categories for how Coding and General Purpose models are used across the app.

Supported parameters

The agent accepts the parameters below. Only the ones marked "Passed by the app" are currently set automatically when you run it from LoxiaFlow's UI — the rest are available if you run loxiaflow_agent.py yourself from a terminal.

ParameterPurposeDefaultPassed by the app
--projectProject root directory to operate in— (required)
--message-fileTask/prompt text (delivered via file, not inline, to avoid CLI length limits)
--modelModel nameprovider default
--base-urlOllama endpointhttp://localhost:11434
--api-key-fileBearer token for Ollama Cloud (delivered via file, not as a plain arg, so it never appears in process lists or shell history)none✅ (Cloud only)
--max-turnsMax agent loop iterations15✅ (fallback only)
--auto-max-turnsLet the model estimate how many turns it needs (clamped 5–40) instead of a flat cap, with checkpoint-and-extend if it runs outoff✅ (always on)
--max-extensionsHow many times to re-estimate/extend the turn budget under --auto-max-turns8not overridden
--verboseExtra debug outputoff
--providerLLM provider (ollama, openai, anthropic, groq, mistral, together, fireworks, xai, cohere, deepseek, perplexity, nvidia, custom)ollamanot set — always defaults to ollama
--temperatureSampling temperature (0.0–2.0)nonenot passed
--context-sizeOllama context window (num_ctx)nonenot passed
--max-retriesBuild-fix retry cycles after the loop2not overridden
--max-tool-errorsConsecutive tool errors before aborting3not overridden
--max-repeat-callsConsecutive identical tool calls before aborting3not overridden
--plan-only / --approved-plan / --plan-modelTwo-phase plan-then-execute modeoffnot used
--thinking-budgetAnthropic extended-thinking token budgetnoneAnthropic-only, not applicable here
--reasoning-effortOpenAI o-series reasoning effortnonenot applicable here

Request timeout is fixed internally at 180 seconds per call and isn't user-configurable.

How text and model get passed

  • Your prompt (plus conversation history and any system prompt) is written to a temporary file and passed via --message-file — not as an inline argument — to avoid Windows' ~32K command-line length limit.
  • The model name comes straight from the model config's Model field (--model).
  • Temporary prompt and API-key files are deleted automatically once the run completes or errors out.

Ollama: Local vs. Cloud

Both modes use the identical request path — only the Base URL and API key differ:

LocalCloud
Base URLhttp://localhost:11434https://ollama.com
API Keynone (not applicable)required — from ollama.com
Prerequisiteollama serve running, model pulled locally (e.g. ollama pull qwen2.5-coder:7b)none — requests go to Ollama's hosted service

Switching the Local/Cloud toggle in the model config only changes the Base URL default (it won't overwrite a URL you've customized) and shows/hides the API Key field. Whichever URL is set is passed straight through as --base-url; if an API key is present, it's sent as a Bearer token file (--api-key-file) — omitted entirely for Local mode.

Other providers: supported in principle, currently locked to Ollama

The underlying loxiaflow_agent.py engine already has provider scaffolding for OpenAI, Anthropic, Groq, Mistral, Together, Fireworks, xAI, Cohere, DeepSeek, Perplexity, NVIDIA, and custom OpenAI-compatible endpoints via its --provider flag. However, in the current app, the Agent loop can only be enabled on Ollama-type model configs — it's not yet selectable for Anthropic-API or OpenAI-compatible-API configs. This is a deliberate, explicit gate in the app (not a missing feature in the engine itself), and multi-provider agent-loop support is expected in a future release.