Skip to main content

Environment Variables

Config And Workspace​

VariablePurpose
PROTOAGENT_CONFIG_DIROverrides the default ~/.protoagent config/state directory.
PROTOAGENT_HOMELegacy config directory fallback used by config.py.
PROTOAGENT_WORKSPACESet by agent_engine.process_prompt() for downstream helpers.

Runtime Transport​

VariableDefaultPurpose
PROTOAGENT_RUNTIME_HOST127.0.0.1Host used when generating local runtime URLs.
PROTOAGENT_REGISTRY_URLgeneratedRegistry URL override.
REGISTRY_URLgeneratedLegacy registry URL override.
PROTOAGENT_ARCHITECT_URLgeneratedArchitect URL override.
ARCHITECT_AGENT_URLgeneratedLegacy Architect URL override.
PROTOAGENT_EXPLORER_URLgeneratedExplorer URL override.
EXPLORER_AGENT_URLgeneratedLegacy Explorer URL override.
PROTOAGENT_CODER_URLgeneratedCoder URL override.
CODER_AGENT_URLgeneratedLegacy Coder URL override.
PROTOAGENT_TESTER_URLgeneratedRead-only Tester URL override.
TESTER_AGENT_URLgeneratedTester factory URL alias.
PROTOAGENT_VERIFIER_URLgeneratedVerifier URL override.
VERIFIER_AGENT_URLgeneratedLegacy Verifier URL override.
PROTOAGENT_SCOUT_URLgeneratedOptional Scout URL override.
SCOUT_AGENT_URLgeneratedLegacy Scout URL override.
PROTOAGENT_AGENT_TRANSPORTlocalOwned local children without servers/Registry. Explicit runtime, sse, http, websocket or grpc selects the transport mesh; gRPC requires its extra.
PROTOAGENT_MAX_CHILDREN32Total owned child tasks per Architect attempt. Concurrency remains one, depth one, background tools disabled.
PROTOAGENT_STREAM1Set to 0 to suppress live text and incremental UI summaries; RunHandle still consumes execution once.
PROTOAGENT_AGENT_TIMEOUT600Native run/approval timeout default in seconds.

Tracing And Progress​

VariableDefaultPurpose
PROTOAGENT_TRACE0Enable durable ProtoLink LocalTraceTelemetry JSONL traces.
PROTOAGENT_STREAM_TRACE_LIMIT120Max retained trace summaries; live text uses a separate channel and continues beyond this limit.
PROTOAGENT_SCAFFOLD0Set to 1 to return diagnostics without a model call.

Context And Memory​

VariableDefaultPurpose
PROTOAGENT_CONTEXT_CHARS6000 local, 48000 remotePrompt context budget before the current request.
PROTOAGENT_OLLAMA_NUM_CTXunsetOllama context window override below app config.
PROTOAGENT_OLLAMA_TOOL_CALLINGautoauto, native or json; native tools use advertised Ollama capabilities. Provider tool_calling config takes precedence.
OLLAMA_CONTEXT_LENGTHunsetOllama runtime context window fallback.
PROTOAGENT_HISTORY_BUDGET_RATIO0.7Fraction of context window used for run-boundary history compaction.

Run Budget​

VariableRunBudget field
PROTOAGENT_RUN_MAX_STEPSmax_steps
PROTOAGENT_RUN_MAX_LLM_CALLSmax_llm_calls
PROTOAGENT_RUN_MAX_TOOL_CALLSmax_tool_calls
PROTOAGENT_RUN_MAX_SECONDSmax_runtime_seconds
PROTOAGENT_RUN_MAX_INPUT_TOKENSmax_input_tokens
PROTOAGENT_RUN_MAX_OUTPUT_TOKENSmax_output_tokens

Token budgets are optional aggregate limits across model calls, for all providers including Ollama. They default to unset and are independent of the model's per-request context window.

Provider Variables​

VariableProvider
OLLAMA_URLOllama base URL default.
OLLAMA_HOSTOllama base URL fallback.
LMSTUDIO_URLLM Studio base URL.
LLAMACPP_SERVER_URLllama.cpp server base URL.
OPENAI_COMPATIBLE_BASE_URLGeneric OpenAI-compatible base URL.
OPENAI_API_KEYOpenAI key.
ANTHROPIC_API_KEYAnthropic key.
GEMINI_API_KEYGemini key.
DEEPSEEK_API_KEYDeepSeek key.
OPENAI_COMPATIBLE_API_KEYGeneric OpenAI-compatible key.
BRAVE_SEARCH_API_KEYBrave Search key read by ProtoLink's web_search only when optional Scout invokes the default Brave engine.

DuckDuckGo is keyless best-effort search, while English Wikipedia is keyless factual search. Enabling Scout registers network tools but does not itself issue a request.

Common Debug Recipes​

One-shot trace capture:

shell
PROTOAGENT_TRACE=1 proto-cli run "your task" 2>&1 | tee /tmp/protoagent-debug.txt

No-model contract test:

shell
PROTOAGENT_SCAFFOLD=1 proto-cli run "show runtime diagnostics"

Force request/response mode:

shell
PROTOAGENT_AGENT_TRANSPORT=http PROTOAGENT_STREAM=0 proto-cli run "task"

Use disposable state:

shell
PROTOAGENT_CONFIG_DIR=/tmp/protoagent-smoke proto-cli check

MCP HTTP authentication uses owner-selected environment variables through each server's headers_env mapping. Values resolve only on connection and join runtime redaction. PROTOAGENT_MCP_URL / MCP_AGENT_URL override the broker's internal mesh endpoint; they are unrelated to a remote server URL in mcp_servers. PROTOAGENT_TESTER_URL / TESTER_AGENT_URL override Tester's internal endpoint. See MCP Broker.