- 7413 rows from MuhlAI.zip → agent_memory_peter (0 failures) - Workspace files (SOUL/USER/IDENTITY/MEMORY/AGENTS/HEARTBEAT) snapshotted - 7 custom skills pushed to Forgejo peter org - progress.json: peter → complete Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
5.7 KiB
5.7 KiB
MEMORY.md — Long-term Memory
Facts, people, project state. No instructions — those live in SOUL.md and AGENTS.md.
People
Peter Mühlmann
- AI subscriptions & model protocol:
memory/peter-subscriptions.md - Key rule: Anthropic primary → GPT-5.2 on cooldown → back to Anthropic when available
- Cerebras (free) for all boilerplate/templated work
Mario (Mariusz) — Admin
- Location: Poland (CET)
- Manages infrastructure and deploys
- Communication style: Minimal, to the point
Environment
- OS: Ubuntu 22.04 Docker, XFCE desktop, Display :0
- Workspace:
/home/developer/.openclaw/workspace - Skills:
~/.openclaw/skills/
APIs & Keys
- Cerebras (Peter's):
~/.config/cerebras/config| llama3.1-8b (232 tok/s), gpt-oss-120b - OpenAI (Peter's):
~/.config/openai/api_key— alias GPT=openai/gpt-5.1-codex - ElevenLabs:
~/.config/elevenlabs/config— key may need verification - OpenClaw fork:
~/.openclaw/workspace/platform/openclaw(branch: m2-custom)
Voice & STT
- TTS: Qwen3-TTS at
http://speech_gateway/v1(voice: vivian, timeout: 60s) - STT: Speaches at
http://speaches-l0w808o4k80k0gogg88s80cc:8000(faster-whisper-large-v3) - Config:
~/.openclaw/openclaw.json— tts.provider=openai, voice=vivian, timeoutMs=60000
Memory System
- Primary: m2-memory skill — 3,280+ memories in Qdrant (BGE-M3, 1024-dim)
~/.openclaw/skills/m2-memory/memory.sh search|store|recent|entities- RLM agentic search:
~/.openclaw/skills/rlm-memory/rlm.sh "query" --depth 3
- Auto-ingest: hourly cron
memory-ingest-sessions(ID: 153f98c6) - Fallback: OpenClaw
memory_search/memory_getfor keyword lookups
MuhlmannAI Platform — LLM Routing (2026-03-10)
Extraction Model (CONFIRMED WORKING)
- Primary:
anthropic/claude-haiku-4-5via OpenRouter (OPENROUTER_API_KEY in Coolify env) - Escalation:
anthropic/claude-sonnet-4-5via OpenRouter - Cerebras: valid key but DO NOT use for structured extraction (0% confidence, entity matching fails)
- CRITICAL: Anthropic OAuth tokens (sk-ant-oat01-*) do NOT work on api.anthropic.com directly — "OAuth authentication is currently not supported". They only work inside OpenClaw gateway. Never put them in external app configs.
- Coolify deploy: use
/deploy?uuid=...&force=truefor code changes;/restartonly restarts same image
MuhlmannAI Platform (2026-03-11)
Architecture
- Database:
muhlai_v5.db(single, consolidated) — ⚠️ LOCAL COPY IS EMPTY. Always query production API. - Production API:
https://muhl-ai.machinemachine.ai/api/— Bearer token in~/.config/muhlai/api_key - Production data (as of 2026-03-11): 101 CSV events + SQLite events from doc review, 123 documents (44 completed, 77 pending), 10 funds, 139 bank transactions, 0 NAV snapshots
- Pipeline: P3 via
muhlai/ingestion/processor.py+ OpenRouter (Claude Haiku) - Primary UI:
/static/doc-review.html(review page with upload + entity/doc type filters) - Legacy Streamlit: Still at
/app/— needs retirement - Root URL: Redirects to review page
- Running app:
api/main.py(NOTmuhlai/api/main.py) — always checkstart.shto confirm - ⚠️ TWO EVENT STORES: data/ledger/events.csv (101 legacy, pandas) + SQLite events table (doc-review). MUST consolidate — CSV needs to die.
- Old events.csv: NEVER use for matching or as authoritative data. Contains ~1% corruption. Peter's explicit rule.
Ledger v3 (accountant deliverable)
- Endpoint: GET /api/export/ledger-v3
- Code: lib/ledger_v3.py
- Spine: bank_transactions table (139 rows from Nordea DKK/EUR/USD + Goldman)
- NO automatic matching — all fund rows start as ⚠️ Unmatched
- Matching requires: human approval + verified document chain (bank_tx → event → document → PDF)
- Links: direct PDF view/download, NOT doc-review UI (accountant doesn't use reviewer)
- Columns: Dato, Beskrivelse, Fond/Modpart, Type, Beløb, Valuta, Beløb DKK, Bankkonto, Dokument, Mappe, 🔗 Vis, 🔗 Download, Status, Note
Deployment
- Coolify UUID:
rog0444skcwkw48044ggow48 - Env vars:
MUHLAI_LLM_MODEL=qwen-3-235b-a22b-instruct-2507,MUHLAI_LLM_ESCALATION_MODEL=qwen-3-235b-a22b-instruct-2507 - Git:
machine-machine/mp1-muhlman-aimaster branch, auto-deploys on push - Latest commit: e7bc733 (forecast bug fix)
Peter's Process
- Uploading docs one at a time; reviewing every extraction regardless of confidence
- Building trust before batch processing; reads thinking, checks spending
Fund Portals
Credentials Index
~/.config/fund-portals/northzone.json— Northzone IX + X (atominvest.co) — email 2FA via Gmail~/.config/fund-portals/crane.json— Crane 2 + Crane Flight LP (pearonline.com)~/.config/fund-portals/peakbridge.json— PeakBridge Newtrition (icx.efrontcloud.com/@5381) — no 2FA- Goldman Sachs (Petershill IV + West Street VIII) — no credentials yet
- Lumos Capital (Carta), Cocoa Ventures, Index Ventures, Seed Capital — no credentials yet
Document Rules
- Only docs with Peter Mühlmann Holding ApS financial data
- NEVER ingest fund events without also extracting NAV from quarterly reports
- European number formatting: "4.045" = 4,045 (period = thousand separator in DK)
Data Quality Issues
- Danish fund reports: periods = thousand separators (e.g. "4.045" = 4,045 DKK)
Active Projects
- MuhlmannAI (
rog0444skcwkw48044ggow48): VC portfolio tracker — doc extraction pipeline + doc-by-doc review with Peter - Dark Factory Engine:
machine-machine/dark-factory-engine— Markdown→skill compiler - MachineMachine website (
z8kgc0swckwckgg4wwsw4kok): Enterprise draft at draft.machinemachine.ai