memory-os/.env.example

132 lines
4.9 KiB
Plaintext

# Memory OS — Environment Variables
# Copy this file to .env and fill in your values:
# cp .env.example .env
# ── Required ──────────────────────────────────────────
# Redis password (generate with: openssl rand -hex 16)
REDIS_PASSWORD=
# ── Paths ─────────────────────────────────────────────
# Where Icarus writes fabric entries (absolute path required — systemd does not expand ~)
FABRIC_DIR=/home/your-user/vault/fabric
# Vault root for Vault Curator, wiki, and backfill scripts
VAULT_PATH=/home/your-user/vault
# Wiki directory for Qdrant ingestion
WIKI_ROOT=/home/your-user/vault/wiki
# Hermes home (usually ~/.hermes)
HERMES_HOME=/home/your-user/.hermes
# State database path (SQLite with FTS5 for session search)
STATE_DB_PATH=/home/your-user/.hermes/state.db
# Logs directory
HERMES_LOGS_DIR=/home/your-user/.hermes/logs
# DLQ (Dead Letter Queue) state file
HERMES_DLQ_PATH=/home/your-user/.hermes/wiki_ingest_failures.json
# DLQ report output (used by dlq_manager.py)
HERMES_DLQ_REPORT_LOG=/home/your-user/.hermes/cron/output/dlq-report.log
HERMES_DLQ_REPORT_DIR=/home/your-user/.hermes/cron/output
# Telemetry log for context_enhancer.py query tracking
TELEMETRY_LOG_PATH=/home/your-user/.hermes/logs/query-telemetry.jsonl
# Reflection trigger log path
REFLECTION_LOG_PATH=/home/your-user/.hermes/logs/reflection_trigger.log
# MaaS env path (reflection_trigger.py loads env from this location)
MAA_ENV_PATH=/home/your-user/.env
# ── Embedding Backend ─────────────────────────────────
# Choose ONE backend. If both are set, Ollama takes priority (local, zero cost).
#
# Option A: Ollama (recommended for production, local, zero latency)
OLLAMA_BASE_URL=http://localhost:11434
OLLAMA_EMBEDDING_MODEL=nomic-embed-text
#
# Option B: OpenRouter (cloud, pay-per-use, multilingual Qwen3-Embedding-8B)
# OPENROUTER_API_KEY=sk-or-...
# EMBEDDING_API_BASE=https://openrouter.ai/api/v1
# EMBEDDING_MODEL=qwen/qwen3-embedding-8b
# API key for non-OpenRouter authenticated endpoints (vLLM with --api-key,
# custom hosted embedding services). Not needed for OpenRouter (uses
# OPENROUTER_API_KEY) or local unauthenticated providers.
# EMBEDDING_API_KEY=your-key-here
# ── Strongly Recommended ──────────────────────────────
# Agent identity — distinguishes this agent in fabric entries and cross-agent
# handoffs. Without this, fabric entries use "agent" as a fallback and
# multi-agent deployments cannot tell agents apart.
HERMES_AGENT_NAME=hermes
# Alternative LLM API keys — the extraction pipeline is provider-agnostic.
# Priority: ICARUS_ENDPOINT + ICARUS_API_KEY_ENV → DEEPSEEK_API_KEY → OPENROUTER_API_KEY
# Set DEEPSEEK_API_KEY to route directly to api.deepseek.com (no middleman):
# DEEPSEEK_API_KEY=sk-...
# Fully custom endpoint override (base URL for /v1/chat/completions)
# ICARUS_ENDPOINT=https://my-custom-api.example.com/v1/chat/completions
# ICARUS_API_KEY_ENV=CUSTOM_API_KEY
# LLM extraction token limit — 1024 is too small, causes fabric truncation
ICARUS_EXTRACTION_MAX_TOKENS=4096
# LLM extraction model (any OpenRouter chat model, or bare name for direct APIs)
ICARUS_EXTRACTION_MODEL=deepseek/deepseek-v4-flash
# Embedding dimensions — must match Qdrant collection schema
EMBEDDING_DIMS=4096
# Qdrant collection name
COLLECTION_NAME=knowledge_base
# ── Optional ──────────────────────────────────────────
# Obsidian integration
# ICARUS_OBSIDIAN=1
# OBSIDIAN_VAULT_PATH=/home/your-user/vault
# Fallback truncation limits (only used when LLM extraction fails)
# ICARUS_RESULT_MAX_CHARS=500
# ICARUS_TASK_MAX_CHARS=300
# Training/eval (Together AI)
# TOGETHER_API_KEY=tok-...
# Alternative OpenRouter keys (tried in order by context_enhancer.py)
# OPENROUTER_FULL_API_KEY=sk-or-...
# OPENROUTER_DS_API_KEY=sk-or-...
# Docker: wiki mount path inside worker container
# WIKI_PATH=/wiki
# ── Docker Compose volumes ─────────────────────────────
# These override the host paths mounted into the worker container.
# If unset, docker-compose uses relative paths (./wiki, ./hermes, ./fabric)
# which are safe defaults for development. Set these ONLY if you need
# to point the Docker stack at existing production directories.
# MEMORY_OS_WIKI_PATH=/home/your-user/vault/wiki
# MEMORY_OS_HERMES_HOME=/home/your-user/.hermes
# MEMORY_OS_FABRIC_DIR=/home/your-user/vault/fabric
# Logging
# LOG_LEVEL=INFO
# CURATOR_LOG_LEVEL=INFO
# ARQ worker tuning
# ARQ_MAX_JOBS=10
# ARQ_JOB_TIMEOUT=300
# ARQ_KEEP_RESULT=3600
# Micro-reflection budget
# MICRO_REFLECTION_MAX_PER_HOUR=5