-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathstart.config.example
More file actions
161 lines (135 loc) · 11 KB
/
start.config.example
File metadata and controls
161 lines (135 loc) · 11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
# ─── Backplaned Start Configuration ────────────────────────────────────
#
# This file is sourced by start.sh on startup. All values here are
# propagated into the appropriate .env and config.json files for each
# agent. Edit this file, then run start.sh.
#
# Lines starting with # are comments. Empty values are left unconfigured.
# Generate secrets with: openssl rand -hex 32
#
# ═══════════════════════════════════════════════════════════════════════
# Router
# ═══════════════════════════════════════════════════════════════════════
# Admin API bearer token for the router. Used by web_admin and start.sh
# to manage agents, create invitations, and perform admin operations.
# REQUIRED — generate with: openssl rand -hex 32
ADMIN_TOKEN=""
# ═══════════════════════════════════════════════════════════════════════
# Shared Admin Password
# ═══════════════════════════════════════════════════════════════════════
# Initial password for all agent web UI admin panels. Each agent's
# password can be changed independently via its web UI after first login.
# REQUIRED for web UI access.
ADMIN_PASSWORD=""
# ═══════════════════════════════════════════════════════════════════════
# LLM Gateway (llm_agent — "default" model)
# ═══════════════════════════════════════════════════════════════════════
#
# All LLM-based agents route inference through llm_agent, which needs
# at least one model ("default") configured. This is the MINIMUM
# requirement for agents to work.
#
# Supported providers: "openai_compat" (vLLM, llama.cpp, Ollama, etc.),
# "openai", "anthropic"
LLM_PROVIDER="openai_compat"
LLM_BASE_URL="" # e.g. http://localhost:11434/v1
LLM_API_KEY="" # API key (leave empty for local models without auth)
LLM_MODEL="" # e.g. gpt-4o, claude-sonnet-4-20250514, llama3.1
LLM_MAX_TOKENS=16384 # Max output tokens per completion
# ═══════════════════════════════════════════════════════════════════════
# Memory Agent (LLM via llm_agent, embeddings direct)
# ═══════════════════════════════════════════════════════════════════════
#
# memory_agent routes LLM calls through llm_agent (per-user model ACL).
# Model ID is configured via the web admin UI (memory_agent config.json).
# Embedding is called directly for latency. If embedding values are left
# empty, memory_agent will not function.
MEMORY_EMBED_BASE_URL="" # Embedding API endpoint (REQUIRED for memory_agent)
MEMORY_EMBED_API_KEY="" # Embedding API key (default: LLM_API_KEY)
MEMORY_EMBED_MODEL="" # Embedding model name (REQUIRED for memory_agent)
MEMORY_EMBEDDING_DIMS="" # Embedding output dimension (e.g. 768, 1024, 2560). REQUIRED for table creation
# ═══════════════════════════════════════════════════════════════════════
# MD Converter OCR (optional — direct LLM call for scanned documents)
# ═══════════════════════════════════════════════════════════════════════
#
# md_converter can optionally use an LLM for OCR on scanned PDFs/images.
# If left empty, falls back to the LLM Gateway values above.
OCR_ENABLED="false" # Set to "true" to enable LLM-based OCR
OCR_BASE_URL="" # Override LLM endpoint for OCR (default: LLM_BASE_URL)
OCR_API_KEY="" # Override API key for OCR (default: LLM_API_KEY)
OCR_MODEL="" # Override model for OCR (default: LLM_MODEL)
# ═══════════════════════════════════════════════════════════════════════
# Knowledge Base Embeddings (kb_agent)
# ═══════════════════════════════════════════════════════════════════════
#
# kb_agent needs an embedding endpoint for vector search. If left empty,
# falls back to MEMORY_EMBED_* values above.
KB_EMBED_BASE_URL="" # Override embedding endpoint (default: MEMORY_EMBED_BASE_URL)
KB_EMBED_API_KEY="" # Override embedding API key (default: MEMORY_EMBED_API_KEY)
KB_EMBED_MODEL="" # Override embedding model (default: MEMORY_EMBED_MODEL)
KB_VECTOR_DIM="" # Embedding vector dimension for kb_agent (default: MEMORY_EMBEDDING_DIMS)
# ═══════════════════════════════════════════════════════════════════════
# Web Search (web_agent)
# ═══════════════════════════════════════════════════════════════════════
#
# web_agent requires either a SearXNG instance or a Brave Search API key.
#
# Docker: a searxng container is included in docker-compose.yml. Keep the
# default SEARXNG_BASE_URL below to reach it via the internal network.
#
# Bare metal: run your own SearXNG (https://docs.searxng.org/) with JSON
# output enabled in settings.yml, or sign up for the Brave Search API
# (https://brave.com/search/api/) and set SEARCH_PROVIDER="brave".
SEARCH_PROVIDER="searxng" # "searxng" or "brave"
SEARXNG_BASE_URL="http://searxng:8080" # Docker default; for bare metal, use http://localhost:8880
BRAVE_API_KEY="" # Brave Search API key (required if SEARCH_PROVIDER="brave")
# ═══════════════════════════════════════════════════════════════════════
# Telegram Integration (optional)
# ═══════════════════════════════════════════════════════════════════════
TELEGRAM_TOKEN="" # Bot token from @BotFather
# ═══════════════════════════════════════════════════════════════════════
# Discord Integration (optional)
# ═══════════════════════════════════════════════════════════════════════
DISCORD_TOKEN="" # Bot token from Discord Developer Portal
# ═══════════════════════════════════════════════════════════════════════
# Channel Agent Rate Limiting (optional)
# ═══════════════════════════════════════════════════════════════════════
RATE_LIMIT_WINDOW=3600 # Seconds before rate limit counter resets
RATE_LIMIT_MAX_TRIALS=5 # Max attempts from unregistered users per window
# ═══════════════════════════════════════════════════════════════════════
# Exclude External Agents (optional)
# ═══════════════════════════════════════════════════════════════════════
#
# Comma-separated list of external agent directory names to skip during
# bootstrap (config propagation, invitation creation) and startup.
# Useful for Docker deployments where some agents run in separate
# containers, or to disable agents you don't need.
#
# Available agents: channel_agent, coding_agent, cron_agent, kb_agent,
# mcp_agent, mcp_server, reminder_agent, web_admin
# EXCLUDE_AGENTS="" # e.g. "coding_agent" or "coding_agent,kb_agent"
# ═══════════════════════════════════════════════════════════════════════
# Ports (bare-metal only)
# ═══════════════════════════════════════════════════════════════════════
#
# Container-internal ports are hardcoded to these defaults in Docker.
# For Docker deployments, COMMENT OUT or REMOVE these lines — host-side
# port mapping is configured in docker/.env instead.
ROUTER_PORT=8000
WEB_ADMIN_PORT=8080
CHANNEL_PORT=8081
MCP_AGENT_PORT=8082
MCP_SERVER_PORT=8083
MCP_PORT=8084 # MCP protocol advertising port (mcp_server)
CRON_PORT=8085
KB_PORT=8086
CODING_PORT=8100
REMINDER_PORT=8101
WEBAPP_PORT=8090
# ═══════════════════════════════════════════════════════════════════════
# Agent Exclusion (optional)
# ═══════════════════════════════════════════════════════════════════════
#
# For Docker: uncomment the line below — coding_agent runs in its own
# container and should not be started by start.sh in the router container.
# EXCLUDE_AGENTS="coding_agent"