What it is
Mirix is a multi-agent personal assistant designed to track on-screen activities and answer user questions intelligently. By capturing real-time visual data and consolidating it into structured memories, Mirix transforms raw inputs into a rich knowledge base that adapts to your digital experiences.
AutoGineer overview, from the brain’s own files
Mirix is a memory server designed to provide AI agents with persistent, multi-modal memory. It functions by observing screen activity and processing natural language conversations, consolidating these inputs into six distinct memory components: Core, Episodic, Semantic, Procedural, Resource, and Knowledge Vault. The system uses a hybrid storage approach, leveraging PostgreSQL with pgvector for search and an optional Neo4j graph database for provenance tracking. Mirix includes an 'Auto-Dream' feature for periodic memory consolidation, deduplication, and refinement, ensuring that the agent's knowledge base remains structured and relevant over time.
How it works
Memory model: Hybrid
AutoGineer overview, from the brain’s own files
Mirix operates as a backend server that orchestrates six specialized sub-agents to manage different memory types. It captures user interactions and visual screen data, which are then processed and stored in a PostgreSQL database. The system supports full-text search via BM25 and vector similarity search. An optional graph memory layer can be enabled to map relationships between entities using Neo4j. The Auto-Dream functionality allows the system to review and merge memory entries, while the provided Python client enables agents to read from and write to these memory stores.
| Folder | Role | Files |
|---|---|---|
| .github | agent-config | 1 |
| assets | attachments | 3 |
| docs | docs | 5 |
| samples | examples | 16 |
| scripts | scripts | 34 |
| tests | tests | 132 |
| .vscode | folder | 2 |
| dashboard | folder | 35 |
| docker | folder | 3 |
| evals | folder | 53 |
| mirix | folder | 341 |
The agent writes
- mirix/schemas/ evidence: CLAUDE.md
- mirix/services/ evidence: CLAUDE.md
- mirix/server/rest_api.py evidence: CLAUDE.md
- mirix/client/remote_client.py evidence: CLAUDE.md
- mirix/orm/ evidence: CLAUDE.md
- mirix/agent/ evidence: CLAUDE.md
Requirements
Apps: Docker
Runtimes: Python >=3.10,<4.0
Databases: Neo4j, PostgreSQL, Redis, SQLite
API keys (by name): MIRIX_API_KEY
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Google Antigravity, Kiro, OpenCode, Amp, Roo Code, Cline, JetBrains Junie, Devin (ex-Windsurf)
Set it up
This brain runs code automatically: 2 scripts. Review Makefile, setup.py before opening the folder in Claude Code. No step below turns a hook on for you.
Makefile:$(POETRY) installsetup.py:python setup.py
- Not scanned by AutoGineerThe author’s README also describes installing it with Docker Compose. Read its install section: AutoGineer did not scan that path. https://github.com/Mirix-AI/MIRIX/blob/9077e4b229dd8f61c5703b431a97788c6b61acfb/README.md#quick-start
- Not scanned by AutoGineerAutoGineer could not scan everything it runs. https://pypi.org/project/mirix/
Created by Mirix AI. Published in Mirix-AI/MIRIX. Licence: Apache License 2.0.
Usage
AutoGineer overview, from the brain’s own files
- Initialize a meta-agent with specific memory components.
- Add conversation turns or tool-use logs to the memory store.
- Retrieve context-aware memories based on user queries.
- Trigger memory consolidation using the Auto-Dream endpoint.
- Enable graph-based provenance for complex entity relationships.
- “What did we discuss on MirixDB in last 4 days?”
- The agent retrieves relevant conversation history and memory blocks from the last four days to answer the user's question.
- “Deploy the service.”
- The agent records the tool call, captures any resulting errors or successful fixes, and stores this as procedural memory for future reference.
Documentation by Mirix AI
MIRIX - Multi-Agent Personal Assistant with an Advanced Memory System
Your personal AI that builds memory through screen observation and natural conversation
| 🌐 Website | 📚 Documentation | 📄 Paper | 💬 Discord
<!-- | [Twitter/X](https://twitter.com/mirix_ai) | [Discord](https://discord.gg/S6CeHNrJ) | -->
Key Features 🔥
Multi-Agent Memory System: Six specialized memory components (Core, Episodic, Semantic, Procedural, Resource, Knowledge Vault) managed by dedicated agents
Screen Activity Tracking: Continuous visual data capture and intelligent consolidation into structured memories
Privacy-First Design: All long-term data stored locally with user-controlled privacy settings
Advanced Search: PostgreSQL-native BM25 full-text search with vector similarity support
Graph Memory (optional): A provenance hypergraph over episodic and semantic memories in Neo4j, with n-ary facts that link entities through named roles and cite the memory rows they came from
Multi-Modal Input: Text, images, voice, and screen captures processed seamlessly
Results
Image: MIRIX-2.0 compared with other memory systems on user-centric and agent-centric tasks
MIRIX-2.0 compared with other memory systems. Each axis label gives the MIRIX-2.0 score; the value in parentheses is its lead over the strongest baseline on that axis, shown where MIRIX-2.0 leads.
(a) User-centric tasks (accuracy, %): conversational recall on LoCoMo and LongMemEval-S, and the document QA tracks of MemoryAgentBench (SHDocQA, MHDocQA, DetectiveQA). Baselines are A-Mem, Graphiti, MemoryBank, mem0 and HyperMem. LoCoMo uses graph memory with AutoDream; LongMemEval-S and document QA use graph memory alone.
(b) Agent-centric tasks (success rate, %): the six ALFWorld task types (Pick, Look, Clean, Heat, Cool, Pick Two) and five WebShop product categories (Fashion, Beauty, Electronics, Garden, Grocery), with GPT-6 Luna as the agent model. Baselines are no memory, AWM and ReasoningBank.
Quick Start
Step 1: Backend & Dashboard (Docker):
docker compose up -d --pull alwaysDashboard: http://localhost:5173
Step 2: Create an API key in the dashboard (http://localhost:5173) and set as the environmental variable MIRIX_API_KEY.
Step 3: Client (Python, mirix-client, https://pypi.org/project/mirix-client/):
pip install mirix-clientNow you are ready to go! See the example below:
from mirix import MirixClient
client = MirixClient(
api_key="your-api-key",
base_url="http://localhost:8531",
)
client.initialize_meta_agent(
config={
"llm_config": {
"model": "gemini-3.6-flash",
"model_endpoint_type": "google_ai",
"api_key": "your-api-key-here",
"model_endpoint": "https://generativelanguage.googleapis.com",
"context_window": 1_000_000,
},
"embedding_config": {
"embedding_model": "gemini-embedding-001",
"embedding_endpoint_type": "google_ai",
"api_key": "your-api-key-here",
"embedding_endpoint": "https://generativelanguage.googleapis.com",
"embedding_dim": 768,
},
"meta_agent_config": {
"agents": [
{
"core_memory_agent": {
"blocks": [
{"label": "human", "value": ""},
{"label": "persona", "value": "I am a helpful assistant."},
]
}
},
"resource_memory_agent",
"semantic_memory_agent",
"episodic_memory_agent",
"procedural_memory_agent",
"knowledge_vault_memory_agent",
],
},
}
)
client.add(
user_id="demo-user",
messages=[
{"role": "user", "content": [{"type": "text", "text": "The moon now has a president."}]},
{"role": "assistant", "content": [{"type": "text", "text": "Noted."}]},
],
session_id="sess-demo-001",
)
# Include tool activity when you want skills learned from the WORK PROCESS:
# tool errors, retries, and the fix that finally worked are the distiller's
# strongest signals. Pass tool results as role="tool" turns and/or a
# "tool_calls" list on assistant messages (OpenAI shape) — both are preserved
# in the session conversation store.
client.add(
user_id="demo-user",
messages=[
{"role": "user", "content": [{"type": "text", "text": "Deploy the service."}]},
{"role": "assistant", "content": "", "tool_calls": [
{"function": {"name": "kubectl_apply", "arguments": "{\"file\": \"deploy.yaml\"}"}}
]},
{"role": "tool", "name": "kubectl_apply", "content": "error: forbidden (missing RBAC)"},
{"role": "assistant", "content": [{"type": "text", "text": "Fixed the RBAC role and redeployed successfully."}]},
],
session_id="sess-demo-001",
)
memories = client.retrieve_with_conversation(
user_id="demo-user",
messages=[
{"role": "user", "content": [{"type": "text", "text": "What did we discuss on MirixDB in last 4 days?"}]},
],
limit=5,
)
print(memories)For more API examples, see samples/run_client.py.
Auto-Dream Memory Consolidation
MIRIX also exposes an auto-dream endpoint for explicit memory cleanup and consolidation. Auto-dream reviews existing memories, merges duplicates, resolves stale/conflicting entries where possible, and writes the result back through the memory tools.
REST endpoint:
POST /memory/auto_dream?user_id=demo-user
Content-Type: application/json
{
"mode": "experience",
"dry_run": false
}Supported mode values:
| Mode | Memory component(s) reviewed |
|---|---|
core | Core memory blocks |
episodic | Episodic memories |
semantic | Semantic memories |
resource | Resource memories |
procedural | Procedural memories |
knowledge | Knowledge Vault memories |
experience | Episodic, Semantic, and Knowledge Vault memories together |
Use dry_run: true to fetch counts and inspect what would be processed without applying updates. The optional model field can override the auto-dream agent model for that request. For procedural mode, pass the target meta_agent_id and optionally last_n_sessions to distill recent session experiences.
Python client example:
result = client.auto_dream(
user_id="demo-user",
mode="procedural",
meta_agent_id=meta_agent.id,
last_n_sessions=3,
dry_run=False,
)
print(result)Graph Memory
MIRIX can index episodic and semantic memories into a provenance hypergraph stored in Neo4j. Entities become anchors, each extracted fact becomes an n-ary frame whose edges name the role each anchor plays, and every frame cites the memory rows it came from. With graph memory on, episodic and semantic retrieval enters through the graph, and Auto-Dream merges duplicate anchors on the graph instead of rewriting stored memories.
Graph memory is off by default. To turn it on:
Start Neo4j 5.23 or later.
docker compose --profile graph up -dstarts Neo4j 5.26 with APOC; first setMIRIX_NEO4J_PASSWORD(at least 8 characters) in.env, because there is no default password.Install the Neo4j driver. It is in
requirements.txt; afterpip install -e ., runpip install "neo4j>=5.20,<6".Set
MIRIX_ENABLE_GRAPH_MEMORY=trueandMIRIX_NEO4J_PASSWORDto the password your Neo4j uses.MIRIX_NEO4J_URIandMIRIX_NEO4J_USERdefault tobolt://localhost:7687andneo4j.
With graph memory on, POST /memory/auto_dream refines the graph only unless the request sets graph_only to false. Evaluation settings and commands are in evals/GRAPH_MEMORY.md.
Upgrading an Existing Database
Fresh databases get their full schema automatically at startup. Existing databases require manual migrations when upgrading to a version that alters tables — startup creates missing tables but never adds columns to existing ones. If migrations are pending, the server refuses to start and names the exact scripts to run.
For the skill-based procedural memory release, run against your database (in this order):
psql "$MIRIX_PG_URI" -f scripts/migrate_procedural_to_skill.sql
psql "$MIRIX_PG_URI" -f scripts/migrate_add_message_session_id.sql
psql "$MIRIX_PG_URI" -f scripts/migrate_add_message_session_id_phase2.sql # outside a transaction (CREATE INDEX CONCURRENTLY)
psql "$MIRIX_PG_URI" -f scripts/migrate_add_conversation_message.sql
psql "$MIRIX_PG_URI" -f scripts/migrate_add_conversation_message_phase2.sql # outside a transaction
psql "$MIRIX_PG_URI" -f scripts/migrate_add_skill_experience.sql
psql "$MIRIX_PG_URI" -f scripts/migrate_add_agent_trigger_state.sql
psql "$MIRIX_PG_URI" -f scripts/migrate_backfill_procedural_scope.sql # backfill filter_tags['scope'] from each skill's owning clientFor the graph-memory release, which adds five provenance columns, also run:
psql "$MIRIX_PG_URI" -f scripts/migrate_add_graph_provenance_columns.sqlEach script is idempotent where possible and documents its own preconditions in its header. Run them once, then restart the server.
License
Mirix is released under the Apache License 2.0. See the LICENSE file for more details.
Contact
For questions, suggestions, or issues, please open an issue on the GitHub repository or contact us at [e-mail address on the upstream page](https://github.com/Mirix-AI/MIRIX/blob/9077e4b229dd8f61c5703b431a97788c6b61acfb/README.md)
Join Our Community
Connect with other Mirix users, share your thoughts, and get support:
💬 Discord Community
Join our Discord server for real-time discussions, support, and community updates: https://discord.gg/S6CeHNrJ
🎯 Weekly Discussion Sessions
We host weekly discussion sessions where you can:
Discuss issues and bugs
Share ideas about future directions
Get general consultations and support
Connect with the development team and community
📅 Schedule: Friday nights, 8-9 PM PST 🔗 Zoom Link: https://ucsd.zoom.us/j/96278791276
📱 WeChat Group
You can add the account ari_asm so that I can add you to the group chat.
Acknowledgement
We would like to thank Letta for open-sourcing their framework, which served as the foundation for the memory system in this project.
docs/security-integrity-review-2026-11-09.md
MIRIX 安全性與資料完整性修復
基準為 main 的 60cd444cc92d425f001d690734d901c78ed46b3c。
修復工作區位於 fix/security-snapshots-evaluation。
核對結果
使用程式碼檢查、修正前的失敗案例與回歸測試,確認以下 11 類問題存在。
| 問題 | 修復內容 | 驗證 |
|---|---|---|
| API 身份驗證可繞過 | 私有路由統一驗證 JWT/API key,使用 request state 保存驗證結果;client/org header 不再是憑證;無效 JWT 不降級接受其他身份 | ASGI 測試覆蓋匿名、偽造 header、無效 key/JWT 與有效憑證 |
| client 修改/刪除缺少驗證 | client 查詢、更新、刪除要求自己的 dashboard JWT;限制跨組織與自行提升權限 | 自己的 token 成功,其他 client 的 token 被拒;拒絕後不呼叫修改 manager |
| 回應包含密碼雜湊 | 公開 ClientResponse 與內部 Client 分開;登入仍保有內部雜湊 | HTTP 回應不含雜湊,實際 SQLite 登入驗證仍成功 |
| Docker 共用 JWT/密碼預設值 | 要求設定 JWT、PostgreSQL、Redis secret;JWT 拒絕舊公開預設值;服務埠限制在 loopback;Redis 啟用原生密碼驗證 | Compose 缺少任一必要 secret 時失敗;檢查所有公開埠;實際 Redis 匿名連線被拒 |
| 快照還原失敗卻顯示成功 | PostgreSQL 的 truncate 與 restore 在同一交易,SQL 錯誤立即中止;Neo4j 使用交易;失敗不印出 loaded | 實際 PostgreSQL 約束衝突保留還原前資料;Neo4j 約束衝突回滾圖清除 |
| 已刪記憶仍可搜尋 | 補上 SQL 軟刪除條件;Redis 結果回查資料庫;圖引用只接受仍存在的記憶;不把孤立 anchor 當作記憶輸出 | SQLite 五種記憶搜尋、殘留快取、PostgreSQL 圖搜尋與 Neo4j 引用測試 |
| 不同數值錯誤合併 | 保留符號、小數、日期、百分比、幣別、單位、順序與重複次數;frame 身份包含 literal;Dream 合併增加硬性檢查 | 數值差異、相同事實、frame 身份與錯誤 LLM 合併建議測試 |
| 空快照留下舊圖 | 空圖也必須執行交易式清除;區分「刻意未擷取圖」與「擷取失敗」 | 將空快照還原到有舊節點的實際 Neo4j,結果為零節點 |
| 時間型別導致快照失敗 | 對 Python/Neo4j 日期、時間、duration 等使用帶型別的 JSON 編碼 | 實際 Neo4j 日期、時間與 duration 往返;保留奈秒精度及關係屬性 |
| 評測日期錯配 | 使用 session 自己攜帶的日期,避免以 chunk 序號查找 session | 測試重疊視窗及不連續的 session 編號 |
| QA-only 仍可修改記憶 | 載入既有 agent;跳過初始化、ingest 與所有 Dream;加入寫入拒絕檢查 | 初始化、尾端 Dream、記憶新增及 HTTP 寫入拒絕測試 |
另外補上:註冊完成後的管理員驗證、首次註冊的併發保護、API key 的 read-only 權限、user/org 與搜尋參數的租戶檢查、快照名稱路徑限制、 完整快照才發布,以及還原後清理相關 MIRIX 快取。 沒有 organization_id 的舊 client 也維持 default organization 範圍,不會因此 省略查詢的租戶條件。
驗證結果
完整非 integration 測試:3,229 通過、52 跳過、242 排除。
額外執行隔離 PostgreSQL/Neo4j integration 測試:9 通過。
Docker Compose 設定、Python 致命 lint、shell 語法、
git diff --check通過。實際 Redis:匿名存取被拒;有效密碼可存取。
主要新增測試:
tests/test_security_regressions.pytests/test_auth_storage_regressions.pytests/test_memory_identity_regressions.pytests/test_snapshot_regressions.pytests/test_eval_read_only_regressions.pytests/test_docker_security.pytests/test_security_storage_integration.py
測試使用隔離資料庫與模擬模型,沒有對正式資料執行刪除或還原,也沒有重新跑 付費 LLM 評測。此結果驗證所列缺陷及相關回歸,不代表完整的滲透測試或整個專案 沒有其他漏洞。
使用與相容性
SDK/評測程式需要有效
MIRIX_API_KEY;僅提供 client/org ID 不再能通過驗證。第一個 dashboard 帳號可 bootstrap;之後的註冊需要管理員 JWT。
Docker 使用前,設定獨立的
MIRIX_JWT_SECRET_KEY、MIRIX_PG_PASSWORD、MIRIX_REDIS_PASSWORD。舊公開 JWT 預設值不再能啟動服務。新快照不覆寫同名目錄;PostgreSQL 工具須在 PATH 或
MIRIX_PG_BIN中。 QA-only 需要既有 agent;保存快照時可用--agents納入 agents/messages。快照仍是指定資料表的備份,不是整個資料庫的完整備份。還原保留原有的
TRUNCATE ... CASCADE行為,需留意依賴表並停止並行寫入。PostgreSQL、Neo4j、Redis 不是單一共同交易。 各資料庫的失敗會明確回報; 若 PostgreSQL 已提交,後續 Neo4j/快取失敗無法回滾已提交的 PostgreSQL。
已經被錯誤合併的舊記憶不會憑空復原;需從可信的原始資料或備份重新建立。
歷史上已外洩的 provider key 仍須由持有人撤銷。移除程式中的 literal 或 修改 Docker 設定不會使那些金鑰失效。
512 files · 499 not served here
- .claudeignore (not served here)
- .cursorignore (not served here)
- .cursorrules (not served here)
- .editorconfig (not served here)
- .github/workflows/tests.yml (not served here)
- .gitignore (not served here)
- .vscode/extensions.json (not served here)
- .vscode/settings.json (not served here)
- ATTRIBUTION.md
- AUTOGINEER-RUNS.md
- CLA.md
- CLAUDE.md
- CODE_OF_CONDUCT.md
- CODE_STANDARDS.md
- CONTRIBUTING.md
- Dockerfile (not served here)
- LICENSE
- MANIFEST.in (not served here)
- Makefile (not served here)
- PR_DESCRIPTION_MIRIX.md (not served here)
- README.md
- assets/icon.png (not served here)
- assets/logo.png (not served here)
- assets/mirix2_radar.png (not served here)
- dashboard/Dockerfile (not served here)
- dashboard/index.html (not served here)
- dashboard/nginx.conf (not served here)
- dashboard/package-lock.json (not served here)
- dashboard/package.json (not served here)
- dashboard/postcss.config.js (not served here)
- dashboard/src/App.tsx (not served here)
- dashboard/src/api/client.ts (not served here)
- dashboard/src/assets/.gitkeep (not served here)
- dashboard/src/assets/logo.png (not served here)
- dashboard/src/components/ProtectedRoute.tsx (not served here)
- dashboard/src/components/UserSwitcher.tsx (not served here)
- dashboard/src/components/ui/button.tsx (not served here)
- dashboard/src/components/ui/card.tsx (not served here)
- dashboard/src/components/ui/dialog.tsx (not served here)
- dashboard/src/components/ui/input.tsx (not served here)
- dashboard/src/components/ui/label.tsx (not served here)
- dashboard/src/components/ui/popover.tsx (not served here)
- dashboard/src/components/ui/textarea.tsx (not served here)
- dashboard/src/contexts/AuthContext.tsx (not served here)
- dashboard/src/contexts/WorkspaceContext.tsx (not served here)
- dashboard/src/index.css (not served here)
- dashboard/src/lib/utils.ts (not served here)
- dashboard/src/main.tsx (not served here)
- dashboard/src/pages/Dashboard.tsx (not served here)
- dashboard/src/pages/Login.tsx (not served here)
- dashboard/src/pages/Register.tsx (not served here)
- dashboard/src/pages/dashboard/ApiKeys.tsx (not served here)
- dashboard/src/pages/dashboard/Memories.tsx (not served here)
- dashboard/src/pages/dashboard/Overview.tsx (not served here)
- dashboard/src/vite-env.d.ts (not served here)
- dashboard/tailwind.config.js (not served here)
- dashboard/tsconfig.json (not served here)
- dashboard/tsconfig.node.json (not served here)
- dashboard/vite.config.ts (not served here)
- docker-compose.test.yml (not served here)
- docker-compose.yml (not served here)
- docker/README.md (not served here)
- docker/env.example (not served here)
- docker/redis-entrypoint.sh (not served here)
- docs/ARCHITECTURE.md
- docs/FORMATTING_SETUP.md
- docs/Mirix_async_native_changes.md
- docs/architecture.html (not served here)
- docs/security-integrity-review-2026-11-09.md
- eval_token_usage.py (not served here)
- evals/GRAPH_MEMORY.md (not served here)
- evals/README.md (not served here)
- evals/_chunking.py (not served here)
- evals/assert_store_sane.py (not served here)
- evals/clear_records.py (not served here)
- evals/configs/0201c.yaml (not served here)
- evals/configs/mab.yaml (not served here)
- evals/configs/openrouter_template.yaml (not served here)
- evals/llm_judge.py (not served here)
- evals/mab/__init__.py (not served here)
- evals/mab/_eval_db.py (not served here)
- evals/mab/llm_judge_mab.py (not served here)
- evals/mab/llm_judge_mab_summary.py (not served here)
- evals/mab/llm_judge_substring.py (not served here)
- evals/mab/longmem_eval.py (not served here)
- evals/mab/lru_eval.py (not served here)
- evals/mab/ruler_eval.py (not served here)
- evals/mab/run_mab_longmem_eval.sh (not served here)
- evals/mab/run_mab_lru_eval.sh (not served here)
- evals/mab/run_mab_ruler_eval.sh (not served here)
- evals/main_eval.py (not served here)
- evals/memory_snapshot.py (not served here)
- evals/mirix_memory_system.py (not served here)
- evals/organize_results.py (not served here)
- evals/prompts/0130a/episodic_memory_agent.txt (not served here)
- evals/prompts/0130a/meta_memory_agent.txt (not served here)
- evals/prompts/0130a/semantic_memory_agent.txt (not served here)
- evals/prompts/0131b/episodic_memory_agent.txt (not served here)
- evals/prompts/0131b/meta_memory_agent.txt (not served here)
- evals/prompts/0131b/semantic_memory_agent.txt (not served here)
- evals/prompts/0201a/episodic_memory_agent.txt (not served here)
- evals/prompts/0201a/meta_memory_agent.txt (not served here)
- evals/prompts/0201a/semantic_memory_agent.txt (not served here)
- evals/prompts/0207c/core_memory_agent.txt (not served here)
- evals/prompts/0207c/episodic_memory_agent.txt (not served here)
- evals/prompts/0207c/meta_memory_agent.txt (not served here)
- evals/prompts/0207c/semantic_memory_agent.txt (not served here)
- evals/prompts/0207d/core_memory_agent.txt (not served here)
- evals/prompts/0207d/episodic_memory_agent.txt (not served here)
- evals/prompts/0207d/meta_memory_agent.txt (not served here)
- evals/prompts/0207d/semantic_memory_agent.txt (not served here)
- evals/prompts/0208a/episodic_memory_agent.txt (not served here)
- evals/prompts/0208a/meta_memory_agent.txt (not served here)
- evals/prompts/0208a/semantic_memory_agent.txt (not served here)
- evals/prompts/0208b/episodic_memory_agent.txt (not served here)
- evals/prompts/0208b/meta_memory_agent.txt (not served here)
- evals/prompts/0208b/semantic_memory_agent.txt (not served here)
- evals/task_agent.py (not served here)
- evals/v720_policy.py (not served here)
- evals/v721_policy.py (not served here)
- evals/v722_policy.py (not served here)
- evals/v723_policy.py (not served here)
- evals/v724_policy.py (not served here)
- init.sql (not served here)
- main.spec (not served here)
- mirix/__init__.py (not served here)
- mirix/__main__.py (not served here)
- mirix/agent/__init__.py (not served here)
- mirix/agent/agent.py (not served here)
- mirix/agent/agent_configs.py (not served here)
- mirix/agent/agent_states.py (not served here)
- mirix/agent/app_constants.py (not served here)
- mirix/agent/app_utils.py (not served here)
- mirix/agent/auto_dream_agent.py (not served here)
- mirix/agent/background_agent.py (not served here)
- mirix/agent/core_memory_agent.py (not served here)
- mirix/agent/episodic_memory_agent.py (not served here)
- mirix/agent/knowledge_vault_memory_agent.py (not served here)
- mirix/agent/message_queue.py (not served here)
- mirix/agent/meta_agent.py (not served here)
- mirix/agent/meta_memory_agent.py (not served here)
- mirix/agent/procedural_memory_agent.py (not served here)
- mirix/agent/reflexion_agent.py (not served here)
- mirix/agent/resource_memory_agent.py (not served here)
- mirix/agent/semantic_memory_agent.py (not served here)
- mirix/agent/temporary_message_accumulator.py (not served here)
- mirix/agent/tool_call_plan.py (not served here)
- mirix/agent/tool_failures.py (not served here)
- mirix/agent/tool_validators.py (not served here)
- mirix/agent/upload_manager.py (not served here)
- mirix/client/__init__.py (not served here)
- mirix/client/client.py (not served here)
- mirix/client/remote_client.py (not served here)
- mirix/client/render.py (not served here)
- mirix/client/utils.py (not served here)
- mirix/config.py (not served here)
- mirix/configs/__init__.py (not served here)
- mirix/configs/examples/mirix_azure.yaml (not served here)
- mirix/configs/examples/mirix_claude.yaml (not served here)
- mirix/configs/examples/mirix_gemini.yaml (not served here)
- mirix/configs/examples/mirix_openai.yaml (not served here)
- mirix/configs/examples/mirix_openai_with_auto_dram.yaml (not served here)
- mirix/configs/legacy_configs/mirix.yaml (not served here)
- mirix/configs/legacy_configs/mirix_azure_example.yaml (not served here)
- mirix/configs/legacy_configs/mirix_custom_model.yaml (not served here)
- mirix/configs/legacy_configs/mirix_custom_prompts.yaml (not served here)
- mirix/configs/legacy_configs/mirix_gemini.yaml (not served here)
- mirix/configs/legacy_configs/mirix_gpt4.yaml (not served here)
- mirix/configs/legacy_configs/mirix_gpt4o-mini.yaml (not served here)
- mirix/configs/legacy_configs/mirix_monitor.yaml (not served here)
- mirix/configs/mirix.yaml (not served here)
- mirix/constants.py (not served here)
- mirix/database/__init__.py (not served here)
- mirix/database/cache_provider.py (not served here)
- mirix/database/filter_tags_query.py (not served here)
- mirix/database/neo4j_client.py (not served here)
- mirix/database/pglite_connector.py (not served here)
- mirix/database/redis_cache_provider.py (not served here)
- mirix/database/redis_client.py (not served here)
- mirix/database/schema_extractor.py (not served here)
- mirix/database/startup_migrations.py (not served here)
- mirix/database/token_tracker.py (not served here)
- mirix/embedding_guard.py (not served here)
- mirix/embeddings.py (not served here)
- mirix/errors.py (not served here)
- mirix/functions/__init__.py (not served here)
- mirix/functions/ast_parsers.py (not served here)
- mirix/functions/function_sets/__init__.py (not served here)
- mirix/functions/function_sets/base.py (not served here)
- mirix/functions/function_sets/extras.py (not served here)
- mirix/functions/function_sets/memory_tools.py (not served here)
- mirix/functions/functions.py (not served here)
- mirix/functions/helpers.py (not served here)
- mirix/functions/mcp_client/__init__.py (not served here)
- mirix/functions/mcp_client/base_client.py (not served here)
- mirix/functions/mcp_client/exceptions.py (not served here)
- mirix/functions/mcp_client/gmail_client.py (not served here)
- mirix/functions/mcp_client/manager.py (not served here)
- mirix/functions/mcp_client/stdio_client.py (not served here)
- mirix/functions/mcp_client/types.py (not served here)
- mirix/functions/schema_generator.py (not served here)
- mirix/helpers/__init__.py (not served here)
- mirix/helpers/converters.py (not served here)
- mirix/helpers/datetime_helpers.py (not served here)
- mirix/helpers/json_helpers.py (not served here)
- mirix/helpers/json_parsing.py (not served here)
- mirix/helpers/keyed_locks.py (not served here)
- mirix/helpers/message_helpers.py (not served here)
- mirix/helpers/remote_image_fetch.py (not served here)
- mirix/helpers/tool_rule_solver.py (not served here)
- mirix/interface.py (not served here)
- mirix/jobs/__init__.py (not served here)
- mirix/jobs/cleanup_raw_memories.py (not served here)
- mirix/llm_api/__init__.py (not served here)
- mirix/llm_api/anthropic.py (not served here)
- mirix/llm_api/anthropic_client.py (not served here)
- mirix/llm_api/auth_provider.py (not served here)
- mirix/llm_api/aws_bedrock.py (not served here)
- mirix/llm_api/azure_openai.py (not served here)
- mirix/llm_api/azure_openai_client.py (not served here)
- mirix/llm_api/azure_openai_constants.py (not served here)
- mirix/llm_api/cohere.py (not served here)
- mirix/llm_api/cohere_client.py (not served here)
- mirix/llm_api/google_ai.py (not served here)
- mirix/llm_api/google_ai_client.py (not served here)
- mirix/llm_api/helpers.py (not served here)
- mirix/llm_api/llm_api_tools.py (not served here)
- mirix/llm_api/llm_client.py (not served here)
- mirix/llm_api/llm_client_base.py (not served here)
- mirix/llm_api/mistral.py (not served here)
- mirix/llm_api/openai.py (not served here)
- mirix/llm_api/openai_client.py (not served here)
- mirix/local_client/__init__.py (not served here)
- mirix/local_client/local_client.py (not served here)
- mirix/log.py (not served here)
- mirix/memory.py (not served here)
- mirix/observability/__init__.py (not served here)
- mirix/observability/context.py (not served here)
- mirix/observability/langfuse_client.py (not served here)
- mirix/observability/trace_propagation.py (not served here)
- mirix/orm/__all__.py (not served here)
- mirix/orm/__init__.py (not served here)
- mirix/orm/agent.py (not served here)
- mirix/orm/agent_trigger_state.py (not served here)
- mirix/orm/base.py (not served here)
- mirix/orm/block.py (not served here)
- mirix/orm/client.py (not served here)
- mirix/orm/client_api_key.py (not served here)
- mirix/orm/cloud_file_mapping.py (not served here)
- mirix/orm/conversation_message.py (not served here)
- mirix/orm/conversation_session.py (not served here)
- mirix/orm/custom_columns.py (not served here)
- mirix/orm/enums.py (not served here)
- mirix/orm/episodic_memory.py (not served here)
- mirix/orm/errors.py (not served here)
- mirix/orm/file.py (not served here)
- mirix/orm/knowledge_vault.py (not served here)
- mirix/orm/message.py (not served here)
- mirix/orm/mixins.py (not served here)
- mirix/orm/organization.py (not served here)
- mirix/orm/procedural_memory.py (not served here)
- mirix/orm/provider.py (not served here)
- mirix/orm/raw_memory.py (not served here)
- mirix/orm/resource_memory.py (not served here)
- mirix/orm/retrieval_log.py (not served here)
- mirix/orm/semantic_memory.py (not served here)
- mirix/orm/skill_experience.py (not served here)
- mirix/orm/skill_learning_run.py (not served here)
- mirix/orm/skill_object.py (not served here)
- mirix/orm/skill_session_feedback.py (not served here)
- mirix/orm/skill_version.py (not served here)
- mirix/orm/sqlalchemy_base.py (not served here)
- mirix/orm/sqlite_functions.py (not served here)
- mirix/orm/step.py (not served here)
- mirix/orm/tool.py (not served here)
- mirix/orm/tools_agents.py (not served here)
- mirix/orm/user.py (not served here)
- mirix/prompts/__init__.py (not served here)
- mirix/prompts/gpt_persona.py (not served here)
- mirix/prompts/gpt_summarize.py (not served here)
- mirix/prompts/gpt_system.py (not served here)
- mirix/prompts/personas/chill_buddy.txt (not served here)
- mirix/prompts/personas/concise_analyst.txt (not served here)
- mirix/prompts/personas/friendly_conversationalist.txt (not served here)
- mirix/prompts/personas/helpful_assistant.txt (not served here)
- mirix/prompts/personas/playful_Ironist.txt (not served here)
- mirix/prompts/personas/project_manager.txt (not served here)
- mirix/prompts/system/base/auto_dream_agent/core.txt (not served here)
- mirix/prompts/system/base/auto_dream_agent/episodic.txt (not served here)
- mirix/prompts/system/base/auto_dream_agent/experience.txt (not served here)
- mirix/prompts/system/base/auto_dream_agent/graph_pipeline_merge_rule.txt (not served here)
- mirix/prompts/system/base/auto_dream_agent/knowledge.txt (not served here)
- mirix/prompts/system/base/auto_dream_agent/procedural.txt (not served here)
- mirix/prompts/system/base/auto_dream_agent/resource.txt (not served here)
- mirix/prompts/system/base/auto_dream_agent/semantic.txt (not served here)
- mirix/prompts/system/base/background_agent.txt (not served here)
- mirix/prompts/system/base/chat_agent.txt (not served here)
- mirix/prompts/system/base/core_memory_agent.txt (not served here)
- mirix/prompts/system/base/episodic_memory_agent.txt (not served here)
- mirix/prompts/system/base/knowledge_vault_memory_agent.txt (not served here)
- mirix/prompts/system/base/meta_memory_agent.txt (not served here)
- mirix/prompts/system/base/procedural_memory_agent.txt (not served here)
- mirix/prompts/system/base/reflexion_agent.txt (not served here)
- mirix/prompts/system/base/resource_memory_agent.txt (not served here)
- mirix/prompts/system/base/semantic_memory_agent.txt (not served here)
- mirix/prompts/system/screen_monitor/auto_dream_agent.txt (not served here)
- mirix/prompts/system/screen_monitor/background_agent.txt (not served here)
- mirix/prompts/system/screen_monitor/chat_agent.txt (not served here)
- mirix/prompts/system/screen_monitor/chat_agent_monitor_on.txt (not served here)
- mirix/prompts/system/screen_monitor/core_memory_agent.txt (not served here)
- mirix/prompts/system/screen_monitor/episodic_memory_agent.txt (not served here)
- mirix/prompts/system/screen_monitor/knowledge_vault_memory_agent.txt (not served here)
- mirix/prompts/system/screen_monitor/meta_memory_agent.txt (not served here)
- mirix/prompts/system/screen_monitor/procedural_memory_agent.txt (not served here)
- mirix/prompts/system/screen_monitor/reflexion_agent.txt (not served here)
- mirix/prompts/system/screen_monitor/resource_memory_agent.txt (not served here)
- mirix/prompts/system/screen_monitor/semantic_memory_agent.txt (not served here)
- mirix/queue/__init__.py (not served here)
- mirix/queue/config.py (not served here)
- mirix/queue/kafka_queue.py (not served here)
- mirix/queue/manager.py (not served here)
- mirix/queue/memory_queue.py (not served here)
- mirix/queue/message.proto (not served here)
- mirix/queue/message_pb2.py (not served here)
- mirix/queue/message_pb2.pyi (not served here)
- mirix/queue/message_pb2_grpc.py (not served here)
- mirix/queue/queue_interface.py (not served here)
- mirix/queue/queue_util.py (not served here)
- mirix/queue/worker.py (not served here)
- mirix/schemas/__init__.py (not served here)
- mirix/schemas/agent.py (not served here)
- mirix/schemas/agent_trigger_state.py (not served here)
- mirix/schemas/auto_dream.py (not served here)
- mirix/schemas/block.py (not served here)
- mirix/schemas/client.py (not served here)
- mirix/schemas/client_api_key.py (not served here)
- mirix/schemas/cloud_file_mapping.py (not served here)
- mirix/schemas/conversation_message.py (not served here)
- mirix/schemas/conversation_session.py (not served here)
- mirix/schemas/embedding_config.py (not served here)
- mirix/schemas/enums.py (not served here)
- mirix/schemas/environment_variables.py (not served here)
- mirix/schemas/episodic_memory.py (not served here)
- mirix/schemas/file.py (not served here)
- mirix/schemas/health.py (not served here)
- mirix/schemas/knowledge_vault.py (not served here)
- mirix/schemas/llm_config.py (not served here)
- mirix/schemas/memory.py (not served here)
- mirix/schemas/message.py (not served here)
- mirix/schemas/mirix_base.py (not served here)
- mirix/schemas/mirix_message.py (not served here)
- mirix/schemas/mirix_message_content.py (not served here)
- mirix/schemas/mirix_request.py (not served here)
- mirix/schemas/mirix_response.py (not served here)
- mirix/schemas/openai/__init__.py (not served here)
- mirix/schemas/openai/chat_completion_request.py (not served here)
- mirix/schemas/openai/chat_completion_response.py (not served here)
- mirix/schemas/openai/chat_completions.py (not served here)
- mirix/schemas/openai/embedding_response.py (not served here)
- mirix/schemas/openai/openai.py (not served here)
- mirix/schemas/organization.py (not served here)
- mirix/schemas/procedural_memory.py (not served here)
- mirix/schemas/providers.py (not served here)
- mirix/schemas/raw_memory.py (not served here)
- mirix/schemas/resource_memory.py (not served here)
- mirix/schemas/retrieval_log.py (not served here)
- mirix/schemas/sandbox_config.py (not served here)
- mirix/schemas/semantic_memory.py (not served here)
- mirix/schemas/skill_experience.py (not served here)
- mirix/schemas/skill_learning_run.py (not served here)
- mirix/schemas/skill_session_feedback.py (not served here)
- mirix/schemas/skill_version.py (not served here)
- mirix/schemas/source.py (not served here)
- mirix/schemas/step.py (not served here)
- mirix/schemas/tool.py (not served here)
- mirix/schemas/tool_rule.py (not served here)
- mirix/schemas/usage.py (not served here)
- mirix/schemas/user.py (not served here)
- mirix/sdk.py (not served here)
- mirix/security/__init__.py (not served here)
- mirix/security/api_keys.py (not served here)
- mirix/server/__init__.py (not served here)
- mirix/server/constants.py (not served here)
- mirix/server/rest_api.py (not served here)
- mirix/server/server.py (not served here)
- mirix/server/startup.sh (not served here)
- mirix/server/utils.py (not served here)
- mirix/services/__init__.py (not served here)
- mirix/services/_graph_common.py (not served here)
- mirix/services/admin_user_manager.py (not served here)
- mirix/services/agent_manager.py (not served here)
- mirix/services/agent_trigger_state_manager.py (not served here)
- mirix/services/auto_dream_manager.py (not served here)
- mirix/services/block_manager.py (not served here)
- mirix/services/client_manager.py (not served here)
- mirix/services/cloud_file_mapping_manager.py (not served here)
- mirix/services/context_budget.py (not served here)
- mirix/services/conversation_content.py (not served here)
- mirix/services/conversation_message_manager.py (not served here)
- mirix/services/conversation_session_manager.py (not served here)
- mirix/services/distill_session_context.py (not served here)
- mirix/services/distill_transcript.py (not served here)
- mirix/services/entity_resolver.py (not served here)
- mirix/services/episodic_memory_manager.py (not served here)
- mirix/services/file_manager.py (not served here)
- mirix/services/frame_extractor.py (not served here)
- mirix/services/graph_memory_manager_v7.py (not served here)
- mirix/services/graph_reconsolidator.py (not served here)
- mirix/services/graph_reconsolidator_v714.py (not served here)
- mirix/services/graph_reconsolidator_v716.py (not served here)
- mirix/services/graph_reconsolidator_v717.py (not served here)
- mirix/services/graph_reconsolidator_v719.py (not served here)
- mirix/services/graph_retriever_dispatcher.py (not served here)
- mirix/services/graph_retriever_v7.py (not served here)
- mirix/services/helpers/__init__.py (not served here)
- mirix/services/helpers/agent_manager_helper.py (not served here)
- mirix/services/image_store.py (not served here)
- mirix/services/ingest_policy_v723.py (not served here)
- mirix/services/knowledge_vault_manager.py (not served here)
- mirix/services/lightrag_extractor.py (not served here)
- mirix/services/mcp_marketplace.py (not served here)
- mirix/services/mcp_tool_registry.py (not served here)
- mirix/services/memory_identity.py (not served here)
- mirix/services/merge_coverage.py (not served here)
- mirix/services/message_manager.py (not served here)
- mirix/services/organization_manager.py (not served here)
- mirix/services/per_agent_lock_manager.py (not served here)
- mirix/services/procedural_evolution_runtime.py (not served here)
- mirix/services/procedural_memory_manager.py (not served here)
- mirix/services/provider_manager.py (not served here)
- mirix/services/raw_memory_manager.py (not served here)
- mirix/services/resource_memory_manager.py (not served here)
- mirix/services/retrieval_log_manager.py (not served here)
- mirix/services/retrieval_policy_v720.py (not served here)
- mirix/services/retrieval_policy_v721.py (not served here)
- mirix/services/retrieval_policy_v722.py (not served here)
- mirix/services/retrieval_policy_v723.py (not served here)
- mirix/services/retrieval_policy_v724.py (not served here)
- mirix/services/retry_policy.py (not served here)
- mirix/services/semantic_memory_manager.py (not served here)
- mirix/services/session_experience_distiller.py (not served here)
- mirix/services/skill_curator_state.py (not served here)
- mirix/services/skill_experience_curator.py (not served here)
- mirix/services/skill_experience_manager.py (not served here)
- mirix/services/skill_experience_pool.py (not served here)
- mirix/services/skill_history.py (not served here)
- mirix/services/skill_learning_run_manager.py (not served here)
- mirix/services/skill_learning_trigger.py (not served here)
- mirix/services/skill_retrieval.py (not served here)
- mirix/services/skill_retrieval_reembed.py (not served here)
- mirix/services/skill_session_feedback.py (not served here)
- mirix/services/skill_text_checks.py (not served here)
- mirix/services/step_manager.py (not served here)
- mirix/services/tool_execution_sandbox.py (not served here)
- mirix/services/tool_manager.py (not served here)
- mirix/services/topic_extraction.py (not served here)
- mirix/services/triple_extractor.py (not served here)
- mirix/services/user_manager.py (not served here)
- mirix/services/utils.py (not served here)
- mirix/settings.py (not served here)
- mirix/system.py (not served here)
- mirix/temporal/__init__.py (not served here)
- mirix/temporal/temporal_parser.py (not served here)
- mirix/tracing.py (not served here)
- mirix/utils.py (not served here)
- mirix/voice_utils.py (not served here)
- package-lock.json (not served here)
- poetry.lock (not served here)
- pyproject.toml (not served here)
- pyrightconfig.json (not served here)
- pytest.ini (not served here)
- requirements.txt (not served here)
- run_client.py (not served here)
- run_client_auto_dream.py (not served here)
- samples/README.md (not served here)
- samples/add_test_memory.py (not served here)
- samples/claude_agent.py (not served here)
- samples/claude_agent_original.py (not served here)
- samples/custom_auth_example.py (not served here)
- samples/generate_demo_api_key.py (not served here)
- samples/langgraph_integration.py (not served here)
- samples/langgraph_integration_azure.py (not served here)
- samples/load_json_batch_conversations.py (not served here)
- samples/load_test_add_memory.py (not served here)
- samples/load_test_messages.txt (not served here)
- samples/mirix_memory_viewer.py (not served here)
- samples/new_client_example.py (not served here)
- samples/poetry.lock (not served here)
- samples/pyproject.toml (not served here)
- samples/run_client.py (not served here)
- scripts/CLEAN_CACHE_README.md (not served here)
- scripts/backfill_skill_baseline_versions.py (not served here)
- scripts/clean_cache.py (not served here)
- scripts/clean_cache.sh (not served here)
- scripts/migrate_add_agent_trigger_state.sql (not served here)
- scripts/migrate_add_conversation_message.sql (not served here)
- scripts/migrate_add_conversation_message_phase2.sql (not served here)
- scripts/migrate_add_conversation_message_session_tag.sql (not served here)
- scripts/migrate_add_conversation_session.sql (not served here)
- scripts/migrate_add_graph_provenance_columns.sql (not served here)
- scripts/migrate_add_learning_run_and_retrieval_log.sql (not served here)
- scripts/migrate_add_message_session_id.sql (not served here)
- scripts/migrate_add_message_session_id_phase2.sql (not served here)
- scripts/migrate_add_skill_experience.sql (not served here)
- scripts/migrate_add_skill_history.sql (not served here)
- scripts/migrate_backfill_procedural_scope.sql (not served here)
- scripts/migrate_conversation_message_parts.sql (not served here)
- scripts/migrate_p16_agent_context_and_skill_feedback.sql (not served here)
- scripts/migrate_procedural_to_skill.sql (not served here)
- scripts/migrate_skill_experience_attempts.sql (not served here)
- scripts/migrate_skill_experience_pool.sql (not served here)
- scripts/migrate_skill_retrieval_fields.sql (not served here)
Advantages
- Supports multi-modal inputs including text, images, voice, and screen captures. evidence: README.md
- Provides a provenance hypergraph to link entities and cite memory sources. evidence: README.md
Limitations
- Existing databases require manual migration scripts when upgrading to versions that alter table schemas. evidence: README.md
- Requires manual configuration and setup of external dependencies like PostgreSQL and optional Neo4j. evidence: README.md
Security
Risk level: Low risk
This brain runs
Agent instructions that run or fetch something (12)
.cursorrules:User-defined tools run in `ToolExecutionSandbox` for security.cursorrules:Run tests with: `pytest tests/`.cursorrules:Run linters before committing: `ruff check .` and `pyright`.cursorrules:User-defined tools MUST run in `ToolExecutionSandbox`CLAUDE.md:docker-compose up -d # starts PostgreSQL (5432), Redis (6379), API (8531), Dashboard (5173)CLAUDE.md:docker-compose ps # verify all services healthyCLAUDE.md:pip install -e .CLAUDE.md:python scripts/start_server.py --port 8531CLAUDE.md:python scripts/start_server.py --port 8899 # Terminal 1CLAUDE.md:make format # ruff import sort + formatCLAUDE.md:make lint # ruff check + pyrightCLAUDE.md:make check # format + lint + test
Install scripts (2)
Makefile(make install):$(POETRY) installsetup.py:python setup.py
- Low risk: network-instructions (CLAUDE.md:31)
- Low risk: scripts-present (scripts/start_server.py)
- Low risk: scripts-present (setup.py)
Attribution and licence
- Created by
- Mirix AI
- First committed by
- @wangyu-ustc
- Declared authors
- Mirix AI (declared in pyproject.toml)
- Publisher
- MIRIX-AI (Community)
- Source
- Mirix-AI/MIRIX · commit 9077e4b
- Licence
- Apache License 2.0 (files served here)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by Mirix AI.
Install from source
499 of its files are not served here, so there is no ZIP. Mirix-AI/MIRIX at 9077e4b