Skip to content

Environment Variables

LLM

VariableTypeDefaultDescription
LLM_PROVIDERstringollamaollama | openai | anthropic
OLLAMA_MODELstringqwen3:14bOllama model with tool calling support
OLLAMA_BASE_URLstringhttp://localhost:11434URL of Ollama server
OPENAI_MODELstringgpt-4oOpenAI model
OPENAI_API_KEYstringOpenAI API key
ANTHROPIC_MODELstringclaude-3-5-sonnet-20241022Anthropic model
ANTHROPIC_API_KEYstringAnthropic API key

OSINT API Keys

VariableServiceFree tier
VIRUSTOTAL_API_KEYVirusTotal500 req/day
ABUSEIPDB_API_KEYAbuseIPDB1,000 req/day
ALIENVAULT_OTX_API_KEYAlienVault OTXUnlimited
SHODAN_API_KEYShodan100 req/month
IPINFO_TOKENIPInfo50,000 req/month
URLSCAN_API_KEYURLScan.io5,000 req/day
FRED_API_KEYFREDFree
EIA_API_KEYEIAFree
CLOUDFLARE_API_TOKENCloudflare RadarFree
ACLED_ACCESS_TOKENACLEDFree (research)
ACLED_EMAILACLEDRequired with token
AISSTREAM_API_KEYAISStreamFree

OSINT Behavior

VariableTypeDefaultDescription
CACHE_TTL_SECONDSint86400Result cache TTL (seconds)
MAX_PIVOTSint2Maximum depth of auto-pivot
THREAT_FEED_LIMITint10Max IOCs per feed fetch
BATCH_DELAY_SECONDSfloat2Pause between IOCs in batch

Data Paths

VariableTypeDefaultDescription
OSINT_CACHE_DB_PATHpathdata/osint_cache.dbOSINT cache SQLite
INVESTIGATION_DB_PATHpathdata/osint_ai.dbInvestigations SQLite
CHROMA_PATHpathdata/chromaChromaDB directory
INVESTIGATIONS_DIRpathinvestigacionesRoot directory for investigations

Embeddings

VariableTypeDefaultDescription
EMBEDDING_MODELstringsentence-transformers/paraphrase-multilingual-MiniLM-L12-v2Embedding model for ChromaDB

Quotas

VariableTypeDefaultDescription
ACTIVE_INVESTIGATIONS_LIMITint5Max active investigations simultaneously
MONTHLY_OPERATIONS_LIMITint100Monthly operations quota

Servers

VariableTypeDefaultDescription
MCP_TRANSPORTstringstdiostdio | streamable-http
MCP_HTTP_PORTint8080HTTP port for MCP
A2A_HOSTstring0.0.0.0A2A listening interface
A2A_PORTint9000A2A server port

Reading variables in code

The system uses Pydantic Settings (src/config.py). Variables are read at startup and validated with types. If a required variable is missing, startup fails with a clear message.

from src.config import settings
# Access variables
print(settings.virustotal_api_key)
print(settings.cache_ttl_seconds)
print(settings.ollama_model)