christina
Project Christina: автономный когнитивный усилитель
[Быстрый старт](#- 1-command-zero-friction-installation) • Архитектура • MCP-инструменты • Справочник по CLI • Документация • Участие
🌟 Общая картина: устранение деградации контекста
Современные ИИ-агенты, работающие с кодом, не справляются с большими кодовыми базами ($10\text{M}+$ токенов) не из-за ограниченных возможностей логического вывода, а из-за деградации контекста (Context Rot): рассеивания внимания, неиндексированного загрязнения промпта, потери архитектурных ограничений после очисток контекста и несогласованных коллизий в рое.
Project Christina решает эту проблему с помощью интегрированной высокопроизводительной когнитивной триады:
RLM (рекурсивные языковые модели — контекст как переменная): выносит большие кодовые базы из транскриптов диалоговых промптов в изолированные программные переменные кучи (
context). Агенты выполняют ограниченные подзапросы ($D \le 2, N \le 20$) и транзакционные управляющие циклы copy-on-write (CoW) на Python с автоматическим откатом.Graphify (детерминированный CPG и AST-радар): строит граф вызовов в памяти на базе SQLite3 WAL, обеспечивая рекурсивные CTE-запросы быстрее 0.3 мс, транзитивный расчёт радиуса поражения и центральности «God-узлов» со сокращением перебора токенов в 71.5 раза.
OKF (долговременная семантическая память и эпистемическая эволюция): сублимикронный разбор frontmatter регулярными выражениями ($6.72\ \mu\text{s}$ на документ), формальная AGM-ревизия убеждений, забывание по Эббингаузу и эпистемический сборщик мусора Mark-and-Sweep с автоматическим якорем восстановления памяти после уплотнения на $\le 400$-токенов.
Межпроектная эпистемическая дистилляция: анонимизирует проприетарный код в математические архетипы со строгим инвариантом нулевой утечки информации ($\mathcal{I} = 0$), зачисткой секретов по энтропии Шеннона по нескольким основаниям и байесовской агрегацией инвариантов по кодовым базам.
Управление конкурентностью роя: децентрализованное выполнение задач задачи агентами с использованием оптимистического управления конкурентностью Кунга-Робинсона (OCC), трёхсторонним слиянием AST на Tree-CRDT и ценной доской на пространстве кортежей Linda (Linda tuple-space).
Related MCP server: onto-agent
🏛️ Трёхопорная когнитивная архитектура
┌─────────────────────────────────────────┐
│ SUPERVISOR / AGENT │
│ (Antigravity / OpenCode / Claude / AI) │
└────────────────────┬────────────────────┘
│ JSON-RPC 2.0 (stdio)
▼
┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ PROJECT CHRISTINA FAST-MCP GATEWAY │
├──────────────────────────────────────┬────────────────────────────────────┬───────────────────────────────────────┤
│ PILLAR 1: RLM ENGINE │ PILLAR 2: GRAPHIFY CPG │ PILLAR 3: OKF MEMORY │
│ (Context as Variable) │ (AST Code Radar) │ (Semantic Evolution) │
├──────────────────────────────────────┼────────────────────────────────────┼───────────────────────────────────────┤
│ • Out-of-core Heap Variables │ • In-Memory SQLite3 WAL Graph │ • Sub-microsecond OKF Regex Parser │
│ • Transactional CoW Rollback │ • Sub-0.3ms Transitive Blast Query │ • Formal AGM Belief Revision │
│ • 3-Phase EGRI Invariant Linter │ • Composite God-Node Centrality │ • Ebbinghaus Forgetting & GC │
│ • Dynamic Governor (D<=2, N<=20) │ • Circular Dependency & Wave Sort │ • Symbol-to-ADR Constraints │
└──────────────────────────────────────┴────────────────────────────────────┴───────────────────────────────────────┘
│
▼
┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ DECENTRALIZED SWARM & DISTILLERY │
├───────────────────────────────────────────────────────────────────┬───────────────────────────────────────────────┤
│ SWARM CONCURRENCY BLACKBOARD │ GLOBAL EPISTEMIC DISTILLERY │
├───────────────────────────────────────────────────────────────────┼───────────────────────────────────────────────┤
│ • Kung-Robinson Optimistic Concurrency Control (OCC) │ • Zero-Information Leakage (I = 0) │
│ • Semantic Tree-CRDT 3-Way AST Merge Resolution │ • Multi-Base Shannon Entropy Secret Redaction │
│ • Linda Tuple Space (`out`, `rd`, `in`, `eval`, `digest`) │ • Bayesian Invariant Distillation (0700 Fence)│
└───────────────────────────────────────────────────────────────────┴───────────────────────────────────────────────┘Диаграмма Mermaid
flowchart TD
Host[Host Agent Context] -->|JSON-RPC 2.0 stdio| MCP[Christina FastMCP Server]
subgraph Trinity["Autonomous Cognitive Trinity"]
MCP -->|cpg_query| CPG[Graphify CPG Radar<br/><i>sub-0.3ms SQLite WAL</i>]
MCP -->|rlm_execute| RLM[RLM Sandbox<br/><i>Transactional CoW REPL</i>]
MCP -->|memory_evolve| OKF[OKF Semantic Memory<br/><i>AGM Revision & Epistemic GC</i>]
end
subgraph SwarmDistill["Swarm & Cross-Project Substrate"]
MCP -->|swarm_blackboard| OCC[Swarm Concurrency<br/><i>Kung-Robinson OCC + Tree-CRDT</i>]
OKF -->|distill_global| Distill[Global Epistemic Distillery<br/><i>Anonymized Archetypes (I=0)</i>]
end
CPG -.->|Blast Radius & Waves| OCC
RLM -.->|Isolated Sub-Calls| Host
OKF -.->|ADR Anchor <=400 Tokens| Host🚀 Установка одной командой: без сложностей
Christina устанавливается за секунды без фоновых демонов, нативной компиляции и root‑привилегий:
cd christina
./install.shАвтоматическая диагностическая предпроверка
./install.sh doctor================================================================
Christina Cognitive Amplifier Diagnostics (v1.0.0)
================================================================
✓ Python Version: 3.11+ (Requirement satisfied)
✓ SQLite3 in-memory WAL Engine: Ready
✓ OKF Semantic Memory Engine: Ready
✓ Google Antigravity Plugin: Registered
✓ OpenCode Plugin: Registered
✓ Global memory directory: ~/.config/christina/global_memory (0700 fenced)
================================================================
✅ All systems functional.Запуск полного набора тестов (62/62 пройдено за <1.2 с)
./install.sh test
# Or with pytest directly:
pytest tests/ -v🛠️ Каноническая матрица FastMCP-инструментов
Christina предоставляет 4 унифицированных инструмента JSON-RPC 2.0 stdio, совместимых с любым MCP-хостом:
Tool | Категория | Ключевые возможности & режимы | Предел производительности |
| AST-радар кода |
| обход в памяти за $<0.3\text{ms}$ |
| Изолированное исполнение | MapReduce субагентов, транзакционная CoW REPL, трёхфазное линтинг EGRI, ограничитель вычислений | лимит рекурсии $D \le 2, N \le 20$ |
| Семантическая память |
| парсинг за $6.72\ \mu\text{s}$/документ |
| Конкурентность роевого исполнения |
| оптимистическая валиация без блокировок |
Примеры вызовов MCP-инструментов
1. Анализ радиуса поражения (cpg_query)
{
"name": "cpg_query",
"arguments": {
"symbol": "PaymentGateway",
"mode": "blast_radius",
"depth": 3
}
}2. Транзакционное выполнение подзапроса (rlm_execute)
{
"name": "rlm_execute",
"arguments": {
"query": "Audit error recovery handling in database connection pool",
"scope_paths": ["src/db/", "src/pools/"]
}
}3. Поиск в семантической памяти с ограничением по символу (memory_evolve)
{
"name": "memory_evolve",
"arguments": {
"action": "search",
"query": "zero-trust authentication policy",
"linked_symbols": ["AuthMiddleware"]
}
}4. Проверка конфликтов Swarm OCC (swarm_blackboard)
{
"name": "swarm_blackboard",
"arguments": {
"action": "occ_validate",
"worker_id": "worker_security_audit",
"read_version": 4,
"read_set": ["AuthMiddleware", "SessionToken"],
"write_set": ["AuthMiddleware"]
}
}⚡ Быстрый справочник CLI
# 1. Scan codebase and index AST knowledge graph into in-memory SQLite3 WAL
python3 -m christina.cli scan .
# 2. Calculate static blast radius for a target symbol
python3 -m christina.cli blast AuthService --depth 3
# 3. List top God Nodes ranked by composite degree centrality
python3 -m christina.cli god-nodes --limit 10
# 4. Search OKF institutional memory, ADRs, and symbol constraints
python3 -m christina.cli memory "connection pool timeout" --symbol DatabasePool
# 5. Run FastMCP JSON-RPC 2.0 stdio server
python3 -m christina.cli serve
# 6. Execute system diagnostics
python3 -m christina.cli doctor🔌 Совместимость и настройка на нескольких хостах
Christina автоматически регистрируется одной командой во всех стандартных хостах искусственных интелл-агентов:
1. Google Agravity CLI (agy)
Автоматически создаётся символическая ссылка в ~/.gemini/antigravity-mc/plugins/christina и выполняется регистрация в ~/.gemini/antigravity-cli/mcp_config.json.
2. OpenCode
Автоматически регистрируется в ~/.config/opencode/plugins/christina и ~/.config/opencode/opencode.json.
3. Claude Desktop
Автоматически настраивается в ~/.claude/claude_desktop_config.json (или Library/Application Support/Claude/claude_desktop_config.json на macOS):
{
"mcpServers": {
"christina": {
"command": "python3",
"args": ["-m", "christina.bridge.mcp_server"],
"env": {
"PYTHONPATH": "/path/to/christina"
}
}
}
}4. OpenAI Codex CLI
Автоматически регистрируется в ~/.config/codex/config.json.
🪮 Ponytail Ultra: гарантия нулевых зависимостей
Проект Project Christina полностью соответствует дисциплине Ponytail Ultra:
Нулевые внешние зависимости во время выполнения: используется только стандартная библиотека Python (
ast,sqlite3,re,json,hashlib,fcntl,math,pathlib,typing).Без «тяжёлых» демонов: ни Docker, ни Neo4j, ни ChromaDB, ни Redis. In-memory SQLite3 WAL и файловые блокировки POSIX обеспечивают выполнение быстрее миллисекунды с использованием $0\text{MB}$ фоновой оперативка.
Строгая лаконичность кода: каждый модуль сжат ($<250$ LOC), целостен и автономен.
📚 Документация и руководства
Документ | Описание |
Пошаговая настройка, проверка и первый рабочий процесс агента. | |
Определения навыков с прогрессивным раскрытием ( | |
Рекомендации по разработке в стиле Ponytail Ultra, настройка Nix, наборы тестов и ADR-процесс. | |
нулевая утечка информации ($\mathcal{I} = 0$), очистка секретов по энтропии Шеннона и изоляция. | |
Детальные примечания к выпускам и история версий. |
📜 Лиценция
Проект Project Christina распространяется под открытой лицензией MIT License.
Copyright (c) 2026 Christina Engineering Swarm и участники.
Available Tools
4 toolscpg_queryC
CPG & AST radar: def-use chains, CFG, virtual interfaces, blast radius.
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | ||
| mode | No | blast_radius | |
| depth | No | ||
| symbol | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral aspects. It doesn't mention side effects, performance, output format, or constraints like whether the code parameter is required. The description is too thin to disclose anything beyond the raw feature list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but this is under-specification rather than effective conciseness. It does not front-load key information about what the tool does or how to call it; instead it reads as a product tagline.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 4 parameters, a rich enum, no annotations, and no output schema, the description is vastly incomplete. It explains none of the modes, the meaning of depth, or the expected output, leaving an agent unable to use the tool correctly without external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention any parameters (code, mode, depth, symbol) or explain their roles. The enum values like blast_radius and def_use are self-explanatory, but no guidance is given for depth or symbol.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description mentions specific analysis features like def-use chains, CFG, and blast radius, which suggests it's a code analysis tool, but it uses the vague metaphor 'radar' rather than a clear verb-resource structure. It doesn't explicitly state that it operates on code or what input it expects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no context about when to use this tool, what scenarios it fits, or any alternatives. Sibling tools are unrelated, and no exclusions are stated. An agent would have to infer that it's for code analysis from the feature list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_evolveC
Semantic memory: AGM revision, GC, distill_global, query_global, search, persist.
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | ||
| tags | No | ||
| query | No | ||
| title | No | ||
| action | No | search | |
| content | No | ||
| repo_path | No | ||
| supersedes | No | ||
| entity_type | No | concept | |
| linked_symbols | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description must carry the behavioral burden, but it only names operations such as GC and revision without disclosing side effects, destructive potential, permissions, or return behavior. The label 'GC' implies deletion/cleanup, yet this is never stated explicitly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is extremely short with no filler, but it is under-specified rather than appropriately concise: a list of acronyms and operation names is not a structured explanation of the tool. It is compact but not optimally front-loaded for decision-making.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex multi-action tool with 10 parameters, no annotations, and no output schema, yet the description provides only a fragment-level list of operations. An agent cannot determine required parameters per action, expected effects, or result formats, so the context is critically incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 10 parameters, and the description does not mention code, tags, query, title, content, repo_path, supersedes, entity_type, or linked_symbols at all. It names a few actions but gives no mapping between parameters and actions, leaving the agent without usable parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a semantic memory resource and lists several operation names (search, persist, distill_global, query_global), which is more than a bare tautology. However, it lacks a main verb and uses unexplained jargon (AGM revision, GC), and the tool's 'evolve' purpose is only implied by the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to choose this tool over its siblings (cpg_query, rlm_execute, swarm_blackboard) or when to use one internal action over another. The phrase 'Semantic memory' hints at context but offers no conditions, exclusions, or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rlm_executeC
Sandboxed RLM REPL executor with transactional CoW rollback, 3-phase EGRI linter, governor.
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | ||
| query | No | ||
| scope_paths | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions several safety mechanisms (sandbox, transactional CoW rollback, linter, governor) which imply controlled side effects and validation. However, it does not specify whether the operation is read-only or mutating, what happens on error, or the nature of side effects beyond rollback. This is a moderate level of transparency given the short description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, dense sentence that packs multiple salient features without fluff. It is front-loaded with the primary action ('Sandboxed RLM REPL executor') and immediately conveys key behavioral characteristics. Every word contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with three parameters and no schema descriptions, the description is severely incomplete. It omits an explanation of what RLM is, what each parameter means, what the return value looks like, and under what circumstances the tool should be used. The agent would have to guess at nearly every aspect of usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no meaning to any of the three parameters (code, query, scope_paths). Since schema description coverage is 0% and the description never touches them, the agent receives no semantic context beyond the bare parameter names, which is insufficient for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific action: executing RLM code in a REPL, and adds notable features (sandboxed, transactional CoW rollback, linter, governor). However, it does not differentiate this tool from its siblings (cpg_query, memory_evolve, swarm_blackboard) by explaining what distinguishes it or when to prefer it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus its siblings. It does not state conditions, prerequisites, or explicitly mention alternatives, forcing the agent to infer usage solely from the name and generic executor label.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swarm_blackboardD
Swarm blackboard & OCC concurrency: Kung-Robinson OCC validation, Tree-CRDT 3-way merge, Linda tuple space.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | rd | |
| channel | No | default | |
| payload | No | ||
| read_set | No | ||
| topic_key | No | % | |
| worker_id | No | ||
| write_set | No | ||
| read_version | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description alone must carry all behavioral disclosure. It fails to state side effects, mutability, persistence, per-action semantics, or requirements. Terms like 'OCC validation' and 'tree merge' imply operations but do not disclose whether state changes are destructive or reversible, leaving the agent entirely in the dark.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only one sentence, but it is not appropriately sized because it is dense with jargon yet empty of actionable meaning. It is under-specification rather than conciseness—every term could be omitted without loss since none are explained.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 8 parameters, a complex action enum, nested objects, and no output schema, yet the description provides none of the necessary context for an agent to call it correctly. There is no explanation of expected payloads, return values, or interaction with the blackboard, making the tool effectively unusable without external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description makes no attempt to explain any of the 8 parameters or the action enum. The action values (out, rd, in, eval, etc.) are unexplained, and payload, read_set, write_set, and read_version have no semantic context. The description adds zero value beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description mentions 'Swarm blackboard & OCC concurrency' and lists algorithms (Kung-Robinson OCC, Tree-CRDT merge, Linda tuple space) but never states what the tool actually does for the caller or what resource it operates on. It reads as a feature list rather than a clear verb+resource statement, leaving the agent without a concrete purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, when not to use it, or any prerequisites. The sibling tools are entirely unrelated (cpg_query, rlm_execute, memory_evolve), and the description provides no comparative context, so an agent cannot determine appropriate invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
v1.0.0- First observed
cpg_query - First observed
memory_evolve - First observed
rlm_execute - First observed
swarm_blackboard
TDQS
Scored across 4 tools
Each tool targets a completely different subsystem: static code analysis, sandboxed execution, semantic memory, and concurrency/blackboard coordination. There is no overlap or plausible confusion between them.
All tools follow a readable two-part snake_case format with domain-specific prefixes. However, the suffixes mix verbs (query, execute, evolve) with a noun (blackboard), creating a minor deviation from a fully uniform pattern.
Four tools is a reasonable, focused count for a server whose scope appears to be a coordinated agent runtime: analyze, execute, remember, and coordinate. Each tool earns its place and none feel redundant.
The tool surface covers the major capabilities one would expect from this kind of system: code understanding, safe execution, memory persistence, and shared-state coordination. There are minor gaps such as explicit file/API interaction, but the broad sub-operations embedded in each tool make the overall surface feel fairly complete.
Maintenance
Related MCP Connectors
Company brain for AI agents — temporal knowledge graph search, exploration, and durable memory.
Shared memory for coding agents. Stop re-explaining your codebase every session.
Hosted runtime for persistent agent teams, durable workflows, memory, schedules, and goals.
Persistent memory and knowledge graphs for AI agents. Hybrid search, context checkpoints, and more.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to query and analyze code across multiple repositories through a unified knowledge graph, with tools for symbol search, impact analysis, and graph algorithms.15 npmMIT
- AlicenseNot gradedqualityAmaintenanceProvides AI coding agents with an embedded knowledge graph and architecture governance tools, enabling blast radius analysis, compliance checks, and smart context extraction from codebases.Apache 2.0
- FlicenseNot gradedqualityAmaintenanceEnables developer agents to perform semantic codebase search, dependency and impact analysis, cross-file refactoring, and full-stack API tracing through a unified query DSL over a high-performance graph engine.-
- AlicenseNot gradedqualityCmaintenanceProvides persistent cross-session AI memory, code graph analysis, and subagent context compression so coding agents can resume work instantly and avoid re-reading the codebase.Elastic 2.0