Repository navigation
Expand file tree
/
Copy path.env.example
More file actions
289 lines (244 loc) · 11.9 KB
/
Copy path.env.example
File metadata and controls
289 lines (244 loc) · 11.9 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
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
# BEGIN GENERATED CONNECTIONS
# Generated by scripts/generate_env_example.py; definitions live in prometheus/integrations.py
PROMETHEUS_PROVIDER=anthropic
# ── AI Providers ──
# ── Anthropic ──
# Uses Anthropic models.
# ANTHROPIC_API_KEY=
# ── Openai ──
# Uses Openai models.
# OPENAI_API_KEY=
# ── Openrouter ──
# Uses Openrouter models.
# OPENROUTER_API_KEY=
# ── Gemini ──
# Uses Gemini models.
# GEMINI_API_KEY=
# ── Deepseek ──
# Uses Deepseek models.
# DEEPSEEK_API_KEY=
# ── Minimax ──
# Uses Minimax models.
# MINIMAX_API_KEY=
# Choices: https://api.minimaxi.com/anthropic, https://api.minimax.io/anthropic.
# MINIMAX_BASE_URL=https://api.minimaxi.com/anthropic
# ── Kimi ──
# Uses Kimi models.
# MOONSHOT_API_KEY=
# Choices: https://api.moonshot.ai/anthropic, https://api.moonshot.cn/anthropic.
# MOONSHOT_BASE_URL=https://api.moonshot.ai/anthropic
# ── Glm ──
# Uses Glm models.
# ZHIPU_API_KEY=
# Choices: https://api.z.ai/api/anthropic, https://open.bigmodel.cn/api/anthropic.
# ZHIPU_BASE_URL=https://api.z.ai/api/anthropic
# ── Xai ──
# Uses Xai models.
# XAI_API_KEY=
# ── Opencode Zen ──
# Uses Opencode Zen models.
# OPENCODE_ZEN_API_KEY=
# ── Opencode Go ──
# Uses Opencode Go models.
# OPENCODE_GO_API_KEY=
# ── Channels ──
# ── Telegram ──
# Lets Prometheus receive and send Telegram messages.
# Install: pip install -e '.[telegram]'
# Setup: https://t.me/BotFather
# TELEGRAM_BOT_TOKEN=
# TELEGRAM_ALLOWED_USER=
# ── Discord ──
# Lets Prometheus answer in a Discord server.
# Install: pip install -e '.[discord]'
# DISCORD_BOT_TOKEN=
# DISCORD_ALLOWED_USER=
# DISCORD_ALLOWED_CHANNEL=
# Set to 1 to enable.
# DISCORD_REQUIRE_MENTION=
# DISCORD_MAX_TURNS_PER_HOUR=
# DISCORD_HOME=
# ── WhatsApp ──
# Lets Prometheus answer WhatsApp messages via the Meta Cloud API.
# Install: pip install -e '.[whatsapp]'
# Setup: https://developers.facebook.com/apps
# WHATSAPP_TOKEN=
# WHATSAPP_PHONE_NUMBER_ID=
# WHATSAPP_APP_SECRET=
# WHATSAPP_VERIFY_TOKEN=
# Without '+' prefix. Empty = answer anyone.
# WHATSAPP_ALLOWED_PHONE=
# ── Calendar & Productivity ──
# ── Google Calendar ──
# Lets Prometheus create and update Google Calendar events.
# Install: pip install -e '.[gcal]'
# Setup: https://developers.google.com/calendar/api/quickstart/python
# Set to 1 to enable.
# PROMETHEUS_GOOGLE_CALENDAR=
# PROMETHEUS_GOOGLE_CALENDAR_ID=primary
# ── Apple Calendar ──
# Lets Prometheus work with Apple Calendar on this Mac.
# Set to 1 to enable.
# PROMETHEUS_APPLE_CALENDAR=
# PROMETHEUS_APPLE_CALENDARS=
# ── Apple Tools ──
# Lets Prometheus use Apple Mail and other local Apple tools.
# Set to 1 to enable.
# PROMETHEUS_APPLE_TOOLS=
# ── Memory & Storage ──
# ── Notion ──
# Stores episodic memory in a Notion database.
# Install: pip install -e '.[notion]'
# Setup: https://www.notion.so/my-integrations
# Choices: sqlite, notion.
# PROMETHEUS_EPISODIC_STORE=sqlite
# NOTION_TOKEN=
# NOTION_EPISODES_DATABASE_ID=
# ── Mem0 ──
# Stores semantic memory in the Mem0 service.
# Install: pip install -e '.[arena]'
# Choices: sqlite, mem0.
# PROMETHEUS_SEMANTIC_STORE=sqlite
# From app.mem0.ai. The adapter sends infer=False so add() always stores — a bake-off against it measures retrieval, not Mem0's own extraction step.
# MEM0_API_KEY=
# Defaults to 'prometheus'. Change it only if several people share one Mem0 account.
# MEM0_USER_ID=
# ── Zep ──
# Stores semantic memory in a Zep temporal graph.
# Install: pip install -e '.[arena]'
# Choices: sqlite, zep.
# PROMETHEUS_SEMANTIC_STORE=sqlite
# From getzep.com. Facts become graph edges with validity dates, so a correction supersedes the old value instead of ranking beside it — the one backend built for the update test.
# ZEP_API_KEY=
# Defaults to 'prometheus'. Zep scopes a graph per user.
# ZEP_USER_ID=
# Ingestion is asynchronous: graph.add returns in ~0.2s with the episode unprocessed, and the text is not searchable until Zep has turned it into nodes and edges. Prometheus polls until it has, up to this long. Default 120 — raise it if seeding times out, never lower it to make a benchmark finish.
# ZEP_MAX_WAIT_SECONDS=
# ── LangMem ──
# Stores semantic memory in a LangGraph store via LangMem.
# Install: pip install -e '.[arena]'
# Choices: sqlite, langmem.
# PROMETHEUS_SEMANTIC_STORE=sqlite
# Optional. Without it LangGraph's InMemoryStore is used, which its own docs describe as a reference implementation whose data dies with the process — fine for a benchmark run, not a persistence story.
# PROMETHEUS_LANGMEM_POSTGRES=
# LangMem has no key of its own; it bills through embeddings. Semantic search needs this or the store is a plain key-value dict.
# OPENAI_API_KEY=
# ── Supabase ──
# Stores semantic memory in Supabase pgvector.
# Install: pip install -e '.[supabase]'
# Choices: sqlite, supabase.
# PROMETHEUS_SEMANTIC_STORE=sqlite
# SUPABASE_URL=
# Embeddings also require OPENAI_API_KEY (optionally OPENAI_EMBED_MODEL).
# SUPABASE_SERVICE_KEY=
# ── Search & Observability ──
# ── Tavily ──
# Lets Prometheus search the web.
# Setup: https://tavily.com
# TAVILY_API_KEY=
# ── treg ──
# Your own treg key. treg then bills your treg account, not your Prometheus credits.
# Setup: https://treg.to
# An org-scoped key from your treg dashboard. It is sent only to treg.
# TREG_API_KEY=
# ── Memory & Storage ──
# ── TypeSafe Jev ──
# Lets Jev decide which memories earn a place in each answer.
# Setup: https://typesafe.ai
# TYPESAFE_API_KEY=
# PROMETHEUS_SLOT_GATE=
# ── Search & Observability ──
# ── OpenTelemetry ──
# Exports traces to an OTLP collector.
# Install: pip install -e '.[tracing]'
# OTEL_EXPORTER_OTLP_ENDPOINT=
# END GENERATED CONNECTIONS
# ── Models (optional) ───────────────────────────────────────────────────────
# Each provider has sensible defaults (see prometheus/loop/models.py PROVIDERS):
# anthropic: claude-sonnet-5 + claude-haiku-4-5 (gate/summarizer)
# openai: gpt-5.5 + gpt-4.1-mini
# gemini: gemini-3.5-flash + gemini-3.1-flash-lite
# deepseek: deepseek-v4-pro + deepseek-v4-pro
# minimax: MiniMax-M3 + MiniMax-M2
# kimi: kimi-k3 + kimi-k2.6 (gate/summarizer)
# (K3-only key? set PROMETHEUS_SMALL_MODEL=kimi-k3 too)
# glm: glm-5.2 + glm-5-turbo
# openrouter: nemotron-3-super:free + gemma-4-26b:free (both $0,
# rate-limited; Settings lists the live catalog, free first)
# openrouter's whole point is picking a different model, so PROMETHEUS_MODEL takes
# any "<vendor>/<model>" slug from https://openrouter.ai/models — e.g.
# PROMETHEUS_MODEL=meta-llama/llama-3.1-70b-instruct
# Override here if you want something else — they're just strings:
# PROMETHEUS_MODEL=
# PROMETHEUS_SMALL_MODEL=
# Advanced: point at any compatible endpoint / bring your own key var:
# PROMETHEUS_BASE_URL=
# PROMETHEUS_API_KEY=
# ── Prometheus home (optional) ──────────────────────────────────────────────────
# Where memory (state.db), calendar.ics, outbox/ and traces/ live.
# PROMETHEUS_HOME=.prometheus
# ── Loop guardrails (optional) ──────────────────────────────────────────────
# PROMETHEUS_MAX_ITERATIONS=10
# PROMETHEUS_MAX_TOKENS=2048
# Working memory window: how many recent turns enter the prompt (default 12).
# Older turns stay in state.db + consolidation; the retrieval gate brings them
# back when relevant. Caps context/cost/latency on long (esp. Telegram) threads.
# PROMETHEUS_HISTORY_TURNS=12
# Tools this deployment does not offer, as the model names them; the prompt
# tells the model not to call them. Hosted containers set it; laptops leave it empty.
# PROMETHEUS_UNAVAILABLE_TOOLS=treg_balance,treg_resources_list
# ── Memory tuning (optional) ────────────────────────────────────────────────
# Consolidate chats into durable facts only after N new exchanges.
# PROMETHEUS_CONSOLIDATE_EVERY=6
# PROMETHEUS_RETRIEVAL_TOP_K=4
# ── GitHub, read-only (optional) ────────────────────────────────────────────
# Lets the agent read pull requests and issues through the `gh` CLI. There is
# no token here: gh keeps its own credentials, so run `gh auth login` once and
# nothing sensitive lands in this file. The tool is READ-ONLY by construction —
# it can list/view PRs and issues and read a diff, and refuses to merge,
# comment, close or push. Off by default because every registered tool ships in
# every prompt, and this is maintainer capability, not assistant capability.
# PROMETHEUS_GH_TOOL=1
# Repo to assume when a call omits one (for running outside a checkout):
# PROMETHEUS_GH_REPO=Engine-User/Prometheus-AI-Agent
# ── Open files in your editor (optional) ────────────────────────────────────
# Dashboard "reveal" links open files in this editor when it's on PATH
# (falls back to cursor, then code, then Finder):
# PROMETHEUS_EDITOR=cursor
# ── Experimental tools (optional) ───────────────────────────────────────────
# delegate_task (LIVE): hand coding jobs to pi, the open-source coding agent —
# npm install -g --ignore-scripts @earendil-works/pi-coding-agent
# The terminal/browser/cron skeletons still just report "coming soon".
# PROMETHEUS_EXPERIMENTAL=1
# Graph workflows: triage every message through a graph (small-model classify +
# calendar peek in parallel -> quick reply, or the normal loop as a node).
# Fails open to the plain loop on any error. See prometheus/graph/.
# PROMETHEUS_GRAPH_WORKFLOWS=1
# Max seconds pi may spend on one delegated task (default 300):
# PROMETHEUS_DELEGATE_TIMEOUT=300
# ── MCP servers (optional): pip install -e '.[mcp]' ─────────────────────────
# Connect Model Context Protocol servers by creating .prometheus/mcp.json:
# {"servers": [{"name": "fs", "command": "npx",
# "args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"]}]}
# Their tools register as <server>_<tool> and appear to the agent automatically.
# ── Voice gateway (optional): pip install -e '.[voice]' ────────────────────
# Unset = push-to-talk (Enter, speak, Enter). Set a wake word — ANY phrase —
# and `make voice` becomes always-listening:
# PROMETHEUS_WAKE_WORD=prometheus prometheus
# What it says when it wakes:
# PROMETHEUS_WAKE_ACK=Yes?
# Stay in the conversation after answering (Siri-style) for N seconds before
# needing "prometheus prometheus" again:
# PROMETHEUS_FOLLOWUP_SECONDS=8
# STT model (tiny/base/small — bigger = more accurate, slower):
# PROMETHEUS_WHISPER_MODEL=base
# TTS engine: 'say' (macOS built-in, default) or 'kokoro' (neural British
# butler — first: pip install kokoro soundfile):
# PROMETHEUS_TTS=say
# PROMETHEUS_VOICE=Daniel
# (for kokoro use voices like bm_george / bm_fable)
# Mic sensitivity: lower if it never hears you, higher if it wakes on noise:
# PROMETHEUS_MIC_THRESHOLD=0.005
# ── Reliability (optional) ──────────────────────────────────────────────────
# Max seconds any single LLM call may take before erroring instead of hanging:
# PROMETHEUS_LLM_TIMEOUT=120