RootAct routes each plan step to a provider adapter. You can use local models, remote APIs, or multiple providers side by side.
| Adapter | Use case | Configuration keys |
|---|---|---|
local_http |
Local servers such as llama-server, ollama, lmstudio | url, model |
openai |
OpenAI-compatible cloud APIs | url, api_key, model |
Start the server:
llama-server -m /path/to/model.gguf --port 8011 --host 127.0.0.1 -c 32768
Configure RootAct:
manager_provider: local
providers:
local:
adapter: local_http
url: http://127.0.0.1:8011/v1
model: my-local-model
The model value is passed to the server but may be ignored by local servers.
providers:
ollama:
adapter: local_http
url: http://127.0.0.1:11434/v1
model: llama3.1
If you run a local inference proxy that routes to a model on port 11434:
providers:
local_proxy:
adapter: local_http
url: http://127.0.0.1:11434/v1
model: my-local-model
providers:
openai:
adapter: openai
url: https://api.openai.com/v1
api_key: ${OPENAI_API_KEY}
model: gpt-4o-mini
providers:
zai:
adapter: openai
url: https://api.z.ai/v1
api_key: ${ZAI_API_KEY}
model: your-zai-model
providers:
moonshot:
adapter: openai
url: https://api.moonshot.cn/v1
api_key: ${MOONSHOT_API_KEY}
model: moonshot-v1-8k
providers:
openrouter:
adapter: openai
url: https://openrouter.ai/api/v1
api_key: ${OPENROUTER_API_KEY}
model: openai/gpt-4o-mini
RootAct expands ${...} placeholders from the environment at runtime. Keep secrets out of the config file by using environment variables.
You can define more than one provider. The manager uses manager_provider to choose which model plans the work. Each step can then request a provider by hint:
manager_provider: planner
providers:
planner:
adapter: openai
url: https://api.openai.com/v1
api_key: ${OPENAI_API_KEY}
model: gpt-4o
coder:
adapter: openai
url: https://api.openai.com/v1
api_key: ${OPENAI_API_KEY}
model: gpt-4o-mini
In a plan, a step can specify provider_hint: coder. RootAct’s router selects the best matching provider.
Providers support configurable retries:
providers:
openai:
adapter: openai
url: https://api.openai.com/v1
api_key: ${OPENAI_API_KEY}
model: gpt-4o-mini
max_retries: 3
retry_delay: 1.0
retry_backoff: 2.0
retry_max_delay: 30.0
retry_on_429: true
max_retries: how many times to retry a failed request.retry_delay: initial delay in seconds.retry_backoff: multiplier applied after each retry.retry_max_delay: cap on the delay between retries.retry_on_429: whether to retry HTTP 429 rate-limit responses.If the adapter advertises the streaming capability, RootAct can stream deltas as they arrive:
rootact "explain this code" --config rootact.yaml --stream
Streaming is optional; if the adapter does not support it, RootAct falls back to a non-streaming completion.
The router scores providers by how well they match a step’s hint. A provider named or tagged for a hint is preferred. If no specific match exists, the first configured provider is used.
eval(), exec(), subprocess...shell=True, and bare except: in generated content.