-
Notifications
You must be signed in to change notification settings - Fork 45
Expand file tree
/
Copy path.env.example
More file actions
136 lines (129 loc) · 7.08 KB
/
Copy path.env.example
File metadata and controls
136 lines (129 loc) · 7.08 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
# =============================================================================
# Reflexio (open source) — example environment file
# =============================================================================
# Copy to `.env` and fill in the values you need. The open-source CLI runs with
# SQLite storage and no auth by default, so the only thing you must set is one
# LLM provider key.
#
# LEGEND:
# (optional) = safe to leave empty; code default shown
# options: = allowed values for a categorical variable
# =============================================================================
# =============================================================================
# 1. LLM PROVIDER KEYS
# =============================================================================
# Set at least one API key. The system auto-detects available providers and
# selects appropriate default models per role (generation, evaluation,
# should_run, pre_retrieval, embedding).
#
# Provider priority when multiple keys are set:
# Anthropic > Gemini > OpenRouter > DeepSeek > MiniMax > DashScope > xAI >
# Moonshot > ZAI > OpenAI
# For the embedding role, if the top-priority provider has no embedding support,
# the next embedding-capable provider is used (currently OpenAI or Gemini).
#
# Model resolution order (highest priority first):
# 1. Org-level LLMConfig override
# 2. Non-empty values in
# reflexio/server/site_var/site_var_sources/llm_model_setting.json
# 3. Auto-detected default for the primary available provider
OPENAI_API_KEY=
ANTHROPIC_API_KEY=
OPENROUTER_API_KEY=
GEMINI_API_KEY=
MINIMAX_API_KEY=
DEEPSEEK_API_KEY=
DASHSCOPE_API_KEY=
ZAI_API_KEY=
MOONSHOT_API_KEY=
XAI_API_KEY=
# =============================================================================
# 2. OBSERVABILITY (optional)
# =============================================================================
# Set to enable Braintrust LLM observability (https://www.braintrust.dev).
# BRAINTRUST_API_KEY=
# BRAINTRUST_PROJECT_NAME=reflexio
# =============================================================================
# 3. STORAGE
# =============================================================================
# Local storage directory — houses disk-storage artifacts and the SQLite
# database file (reflexio.db). (optional; default ~/.reflexio/data/)
LOCAL_STORAGE_PATH=
# Default org id for no-auth / local mode. Controls the request org, and hence
# the config file name (config_<org>.json) and the SQLite data scope. Override
# it to run a second local backend under a distinct org so the two don't collide
# on the same config file under ~/.reflexio/. (optional; default self-host-org)
REFLEXIO_DEFAULT_ORG_ID=self-host-org
# =============================================================================
# 4. EXTRACTION
# =============================================================================
# Per-interaction content token budget when formatting interactions into an
# extraction/evaluation prompt. When an interaction's content exceeds this many
# tokens, the first half and last half are kept (head + tail) and the middle is
# elided. (optional; default 512; set <= 0 to disable slicing and pass full
# content)
REFLEXIO_MAX_INTERACTION_CONTENT_TOKENS=512
# Warn when queued post-persist async publish learning jobs reach this depth.
# The queue is unbounded so acknowledged publishes do not drop learning due to
# transient limiter pressure. (optional; default 1000)
REFLEXIO_PUBLISH_LEARNING_QUEUE_WARN_SIZE=1000
# Worker threads for post-persist async publish learning. (optional; default
# matches the configured publish concurrency limit, currently 4)
REFLEXIO_PUBLISH_LEARNING_WORKERS=
# Inactivity delay in seconds before a quiet session is evaluated by agent-success
# evaluation. (optional; default 600 = 10 minutes)
GROUP_EVALUATION_DELAY_SECONDS=600
# Opt-in background sweep that re-embeds interactions whose embedding failed at
# ingest (empty vector, no vector row -> invisible to vector/hybrid search). Runs
# per-org on the shared lineage-GC scheduler cadence. Off by default so the GC
# scheduler's start conditions are unchanged unless you opt in.
# options: true | false (optional; default false)
REFLEXIO_MISSING_VECTOR_BACKFILL_ENABLED=false
# Max interactions re-embedded per org per sweep tick (bounds embedding cost and
# log volume). (optional; default 200; values <= 0 fall back to the default)
REFLEXIO_MISSING_VECTOR_BACKFILL_CAP=200
# Bounded per-tick org fan-out width for the lineage-GC / expiry-reclamation
# scheduler. SQLite storage is pinned to serial (1) regardless of this value.
# (optional; default 8; non-numeric or <=0 falls back to default)
REFLEXIO_SCHEDULER_ORG_WORKERS=
# Max current user playbooks a single playbook-aggregation run will cluster.
# Above this the run is skipped rather than sampled down, so results stay
# reproducible. This bounds CPU, not memory: clustering runs on raw vectors, so
# peak RSS stays ~flat, but runtime grows quadratically. Measured on 512-dim
# embeddings: 5k -> 8s, 10k -> 32s, 20k -> 126s. Aggregation shares a vCPU with
# request serving, so the default is set at roughly a 2-minute run.
# (optional; default 20000; non-numeric or <=0 falls back to default)
REFLEXIO_MAX_CLUSTERING_PLAYBOOKS=20000
# Idle timestamp written after an agent version is fully drained. New work still
# advances the version to due-now; unchanged residual-only retries use their
# separate exponential cooldown. (optional; default 3600 seconds)
REFLEXIO_AGGREGATION_MIN_INTERVAL_SECONDS=3600
# Shared inference service. Leave the URL empty for the separately supervised
# colocated process. Set it to a remote base URL (without /v1) to suppress the
# local child and route health discovery, embeddings, and reranking remotely.
# Explicit cloud embedding model names still bypass this service.
# Options: cloud/local_service/internal_service/off/empty. Default: empty.
REFLEXIO_EMBEDDING_PROVIDER=
REFLEXIO_EMBEDDING_SERVICE_URL=
# Whole-feature reranker gate. When false, the shared inference service skips
# model loading/prewarm and the main app makes no reranker requests.
# Options: true/false. Default: true.
REFLEXIO_RERANK_ENABLED=true
# Reranking uses the configured shared embedding service/daemon URL.
# Automatic search silently skips reranking when the ordinary loopback daemon
# is unavailable; remote/internal service failures are reported and fail open.
# Read timeout for reranker service calls, in ms. (optional; default 5000)
REFLEXIO_RERANK_SERVICE_TIMEOUT_MS=5000
# =============================================================================
# 5. TESTING & LOGGING
# =============================================================================
# Verbose debug logging to console. options: true | false
DEBUG_LOG_TO_CONSOLE=true
# Mark the process as a test environment. options: true | false
IS_TEST_ENV=true
# Return canned LLM responses instead of calling providers. options: true | false
MOCK_LLM_RESPONSE=false
# Override the base directory for log files. The .reflexio/logs suffix is always
# preserved, so e.g. REFLEXIO_LOG_DIR=/tmp/foo writes logs to
# /tmp/foo/.reflexio/logs/. (optional; default $HOME -> ~/.reflexio/logs/)
REFLEXIO_LOG_DIR=