33 lines
1.5 KiB
YAML
33 lines
1.5 KiB
YAML
# ByteClaw configuration. Secrets can come from env instead:
|
|
# BYTECLAW_AUTH_TOKEN, BYTECLAW_LLM_API_KEY, BYTECLAW_LLM_BASE_URL, BYTECLAW_LLM_MODEL,
|
|
# BYTECLAW_LISTEN, BYTECLAW_DATA_DIR, BYTECLAW_WORKSPACE, BYTECLAW_ALLOWED_ORIGINS (comma separated)
|
|
listen: 127.0.0.1:8787 # bind to 0.0.0.0 only behind TLS (reverse proxy) or in a trusted LAN
|
|
auth_token: "" # required, >= 16 chars. Generate: openssl rand -hex 32
|
|
allowed_origins: [] # browser origins allowed besides same host; "*" only if you really mean it
|
|
data_dir: ./data
|
|
workspace: "" # default: <data_dir>/workspace; file tools cannot leave it
|
|
|
|
llm:
|
|
# Preset: openai | openrouter | ollama | dahl | gonkarouter | custom (env: BYTECLAW_LLM_PROVIDER)
|
|
# Presets fill base_url/model if empty; api_key falls back to OPENAI_API_KEY, OPENROUTER_API_KEY,
|
|
# DAHL_API_KEY or GONKAROUTER_API_KEY. "custom" requires base_url and model.
|
|
provider: openai
|
|
base_url: "" # override, e.g. https://inference.dahl.global/v1
|
|
api_key: ""
|
|
model: "" # e.g. MiniMaxAI/MiniMax-M2.7, zai-org/GLM-5.3-Flash
|
|
timeout_sec: 120
|
|
temperature: 0.7
|
|
|
|
agent:
|
|
system_prompt: "You are ByteClaw, a concise and helpful self-hosted assistant. Use tools when they help."
|
|
max_iterations: 8
|
|
history_limit: 50
|
|
|
|
tools:
|
|
web_fetch:
|
|
enabled: true
|
|
max_bytes: 524288
|
|
timeout_sec: 15
|
|
allow_private: false # true allows localhost/LAN targets (SSRF risk)
|
|
files_enabled: true
|
|
file_max_bytes: 1048576
|