Persistent Cognition, Cluster Bus & Magistrale, Parallel Multi-Agent Orchestration with Live Monitoring for AI Coding Assistants
______________________________________________________________________
kemdiCode MCP 是一个 模型上下文协议 该服务器通过持久认知、多代理编排、分布式集群通信和上下文压缩扩展了AI编码助手。 63工具 跨15个类别,由Redis支持跨会话状态,8个LLM提供程序支持嵌入式AI执行。
洛伦兹启发的压实管道 --通过庞加莱截面进行相位检测,通过吸引子循环去重进行轨道压缩,以及CTC扰动影响评分——保持了跨上下文窗口边界的推理连续性。
集群巴士和Magistrale --两层总线(ClusterBus L3用于集群间Redis发布/订阅,GlobalEventBus L1用于进程内事件),具有18种信号类型、基于MetaRouter标签的路由、反放大桥和LLM Magistrale,用于跨集群的分布式快速执行(4种策略:先赢、n中最佳、共识、回退链)。
33个测试文件中的741个测试。适用于Claude Code、Cursor、Windsurf、VS Code、Zed和任何兼容MCP的客户端。
______________________________________________________________________
安装
bun install -g kemdicode-mcpClaude Code
claude mcp add kemdicode-mcp -- kemdicode-mcp --stdioCursor — ~/.cursor/mcp.json
{
"mcpServers": {
"kemdicode-mcp": {
"command": "kemdicode-mcp",
"args": ["--stdio"]
}
}
}Windsurf — ~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"kemdicode-mcp": {
"command": "kemdicode-mcp",
"args": ["--stdio"]
}
}
}VS Code (GitHub Copilot) — .vscode/mcp.json
{
"mcp": {
"servers": {
"kemdicode-mcp": {
"command": "kemdicode-mcp",
"args": ["--stdio"]
}
}
}
}Zed — ~/.config/zed/settings.json
{
"context_servers": {
"kemdicode-mcp": {
"command": {
"path": "kemdicode-mcp",
"args": ["--stdio"]
}
}
}
}KiroCode / RooCode — .kiro/settings/mcp.json
{
"mcpServers": {
"kemdicode-mcp": {
"command": "kemdicode-mcp",
"args": ["--stdio"]
}
}
}HTTP Transport (multi-session)
kemdicode-mcp --port 3100Redis (required for persistence)
没有Redis,只有无状态工具(代码智能、AI调用)才能发挥作用。
# Docker (recommended)
docker run -d -p 6379:6379 redis:alpine
# macOS
brew install redis && brew services start redis
# Debian/Ubuntu
sudo apt install redis-server && sudo systemctl start redisBuild from Source
git clone https://github.com/kemdi-pl/kemdicode-mcp.git
cd kemdicode-mcp
bun install && bun run build && bun run start______________________________________________________________________
配置
大语言模型提供商
kemdiCode支持8个LLM提供商,具有统一的 provider:model:thinking 语法。
| 别名 | 提供者 | SDK | 身份验证 |
|---|---|---|---|
o | OpenAI | 原生 | OPENAI_API_KEY |
a | 人类学 | 本土 | ANTHROPIC_API_KEY |
g | 双子座 | 原住民 | GEMINI_API_KEY |
q | 格鲁克 | OpenAI-compat | GROQ_API_KEY |
d | DeepSeek | OpenAI兼容 | DEEPSEEK_API_KEY |
l | Ollama | OpenAI同胞 | (无) |
r | OpenRouter | OpenAI兼容 | OPENROUTER_API_KEY |
p | 困惑 | OpenAI兼容 | PERPLEXITY_API_KEY |
思考令牌控制:
o:o3:high # OpenAI reasoning effort (low/medium/high)
a:claude-sonnet-4-6:4k # Anthropic thinking budget (4096 tokens)
g:gemini-2.5-flash:8k # Gemini thinking budget (8192 tokens)自定义端点(运行时热重新加载):
ai-config --action add-custom --name minimax --baseURL https://api.minimax.io/v1 --apiKey sk-...
# Then use: custom:minimax:MiniMax-M2.5CLI标志
kemdicode-mcp [options]
--stdio Stdio transport (subprocess mode for MCP clients)
-m, --model Primary AI model (provider:model:thinking)
-f, --fallback Fallback model on quota/error
--port HTTP server port (default: 3100)
--host Bind address (default: 127.0.0.1)
--redis-host Redis host (default: 127.0.0.1)
--redis-port Redis port (default: 6379)
--no-context Disable Redis context sharing
--compact Minimal output______________________________________________________________________
工具参考
15个类别的63个工具。整合工具使用 action 参数(例如。, task action=create|get|list|update|delete).
| 类别 | 工具 |
|---|---|
| 核心AI | ask-ai plan build brainstorm batch pipeline |
| 代码智能 | find-definition find-references semantic-search |
| 多LLM | multi-prompt consensus-prompt enhance-prompt mind-chain |
| 认知 | decision-journal confidence-tracker mental-model intent-tracker error-pattern self-critique smart-handoff context-budget |
| 代理 | agent agent-comm monitor |
| 上下文 | shared-thoughts get-shared-context feedback |
| 看板 | task task-multi board workspace |
| 记忆 | memory checkpoint |
| 递归 | invoke-tool invoke-batch invocation-log agent-orchestrate |
| 会话 | session |
| 思考 | thinking-chain |
| 知识图谱 | graph-query graph-find-path loci-recall sequence-recommend |
| 集群总线 | cluster-bus-status cluster-bus-topology cluster-bus-send cluster-bus-magistrale cluster-bus-flow cluster-bus-routing cluster-bus-inspect cluster-bus-file-read audit-scheduler |
| MCP客户端 | client-sampling client-elicit client-roots |
| 系统 | env-info memory-usage ai-config ai-models tool-health config ping help |
______________________________________________________________________
建筑
事件总线(2层)
L3 ClusterBus Redis Pub/Sub cross-process signaling
18 signal types, 4 send modes (unicast/broadcast/routed/multicast)
HMAC auth, bloom filter dedup, backpressure, circuit breaker
----bridges--> hop limit 5, source prefix guard
L1 GlobalEventBus In-process async events, namespaced, max chain depth 8
Redis bridge for cross-session propagation洛伦兹语境压缩
在压缩边界上保持推理连续性的三种算法:
- 相位检测 --庞加莱截面分析。连续的Jensen Shannon分歧确定了话题转换。阶段边界携带了关于推理轨迹的最大信息。
- 轨道压缩 --洛伦兹吸引子循环检测。具有贪婪循环搜索的NxN TF-IDF余弦相似性矩阵(长度2-10,最小2次重复)。保留第一个循环,修剪重复。
- 扰动影响 --JSD(full_context,context_without_item)量化每个项目的贡献。高冲击项目是压实后幸存的因果锚。
九种思维
九种专门的认知主体,每种都有不同的思维方式。受启发于 衔尾蛇 哈里·蒙罗:
| 思维 | 模式 | 核心问题 |
|---|---|---|
socratic | 质疑 | “你在假设什么?” |
ontologist | 分类 | “这到底是什么?” |
seed-architect | 结晶 | “这是完整和明确的吗?” |
evaluator | 验证 | “我们建造了正确的东西吗?” |
contrarian | 对抗 | “如果相反的情况属实呢?” |
hacker | 横向 | “哪些约束是真实的?” |
simplifier | Reductive | “最简单可行的方法是什么?” |
researcher | 证据 | “我们实际上有什么证据?” |
architect | 结构性 | “如果我们重新开始,我们会这样建造吗?” |
使用任何头脑作为 agent 参数: ask-ai --agent socratic --prompt "...".为多角度分析撰写它们:苏格拉底→ 本体论者→ 种子建筑师(辩证推进)。
能动循环
自主代理执行,子代理生成(最大深度2,全局预算10),通过以下方式注入文件上下文 @path 语法和完整的编排ID可追溯性。
并行代理 --通过并行方式启动2-10个代理 agent-orchestrate --parallel每个人都有一个独特的 orchestrationId,通过Redis和内存缓存实时跟踪。通过以下方式汇总结果 Promise.allSettled.
实时监控 --代理运行时查询编排状态(MCP在工具调用期间阻塞,因此使用HTTP):
# List all active orchestrations
curl http://localhost:3100/orchestrations
# Get specific orchestration status
curl http://localhost:3100/orchestrations/
# Or via MCP tool (when not blocked)
monitor --view orchestrations编排ID可追溯性 --每个代理循环都会得到一个UUID。子代理通过以下方式向母公司推荐 parentOrchestrationId所有认知记录(决策、信心、意图、错误、批评、交接)都带有 orchestrationId 以实现嵌套代理层次结构的完全可追溯性。
工具访问 --默认情况下,所有kemdiCode工具都可供代理使用(只读、看板、思维链——无需shell/文件写入)。使用 allowedTools 或 blockedTools 为每个代理定制。
并发模型
- 通过以下方式进行每次会话隔离
AsyncLocalStorage(通过异步链传播) - 用于任务状态突变的Redis事务(MULTI/EXEC、Lua脚本)
- 具有SET NX PX、Lua CAS释放、3次重试退避的分布式锁
______________________________________________________________________
实际使用情况
kemdiCode工具在三个层次上工作。以下是开发人员每天遇到的实际场景。
第一级:无状态工具(无AI代理)
Claude Code(或Cursor等)直接调用kemdiCode工具——没有嵌入式AI,只有结构化认知和代码智能。
场景:“我在各个项目中都遇到了相同的Redis超时错误”
# 1. Check if you've seen this before
error-pattern action=match errorType="redis-timeout"
# → Returns: "Pattern found: connection pool exhaustion under load.
# Fix: set maxRetriesPerRequest=3, enable enableOfflineQueue=false"
# 2. It's a new variant — record it
error-pattern action=record \
errorType="redis-timeout" \
pattern="ETIMEDOUT after 200 concurrent writes in bull queue" \
fix="Switch from ioredis default to pooled connection with family=6 on k8s"
# 3. Track the decision
decision-journal action=record \
question="How to handle Redis under Bull queue load?" \
options='["connection pool","Redis Cluster","separate Redis instance"]' \
chosen="connection pool" \
reasoning="Cluster adds ops complexity, separate instance adds cost"场景:“Sprint计划——在3个开发人员中组织15个任务”
# Create workspace + board
workspace action=create name="Q1 Auth Rewrite"
board action=create name="Sprint 12" workspaceId=
# Batch create tasks
task action=create boardId= title="Migrate session store to Redis" priority=high labels='["backend"]'
task action=create boardId= title="Add PKCE flow to OAuth" priority=high labels='["security"]'
task action=create boardId= title="Write E2E tests for login" priority=medium labels='["testing"]'
# ... more tasks
# Assign and track
task action=assign taskId= assignee="alice"
task action=update taskId= status="in-progress"
board action=status boardId=
# → Shows kanban: 3 todo, 2 in-progress, 1 done场景:“加入团队后浏览不熟悉的代码库”
# Find where auth middleware is defined
find-definition --symbol "authMiddleware" --path "@src/"
# Find all places it's used
find-references --symbol "authMiddleware" --path "@src/"
# Search by concept, not just text
semantic-search --query "rate limiting per user" --path "@src/"
# Persist findings for next session
memory action=write name="auth-architecture" \
content="authMiddleware in src/middleware/auth.ts, used in 14 routes. Rate limiting in src/middleware/rateLimit.ts uses sliding window with Redis MULTI."第二级:AI代理(嵌入式LLM执行)
kemdiCode在内部调用外部LLM进行推理、分析和生成。你的IDE的AI不做这项工作——kemdiCode自己的代理做。
场景:“调试API响应时间从50ms变为3秒的原因”
# Start structured reasoning with the plan agent
agent-orchestrate \
--agent plan \
--task "Analyze why GET /api/users went from 50ms to 3s. Check @src/routes/users.ts and @src/services/userService.ts for N+1 queries, missing indexes, or unnecessary joins." \
--sessionId "debug-perf" \
--maxIterations 10 \
--enableCognition true
# The agent autonomously:
# 1. Reads the files via find-definition / find-references
# 2. Identifies: userService.getAll() does 3 sequential DB calls
# 3. Records in error-pattern: "N+1 query in user list endpoint"
# 4. Records in decision-journal: "Consolidate to single JOIN query"
# 5. Returns: "Root cause: 3 sequential queries per user (N+1). Fix: replace
# with single LEFT JOIN on user_roles and user_preferences."场景:“我们提出的微服务拆分是个好主意吗?”
使用 mind-chain --连续的思维切换,每个思维都建立在前一个思维的基础上:
# One call — 4 Minds analyze in sequence, each seeing previous outputs
mind-chain \
--composition custom \
--minds '["architect", "contrarian", "researcher", "simplifier"]' \
--prompt "Evaluate splitting the monolith at @src/ into auth-service, user-service, and notification-service. We have 3 developers and 45 shared models."
# Or use a predefined composition:
mind-chain --composition adversarial \
--prompt "Should we split the monolith into microservices? @src/"
# Full review with 6 Minds + synthesis:
mind-chain --composition full-review \
--prompt "Architecture decision: monolith vs microservices for @src/"链运行:建筑师建议→ 逆向挑战→ 研究人员事实核查→ Simplifier找到了务实的道路→ 综合结合了所有观点。
场景:“让3名LLM审查关键的安全更改”
# Send to GPT-4o, Claude, and Gemini in parallel
multi-prompt \
--prompt "Review this OAuth implementation for security vulnerabilities: @src/auth/oauth.ts" \
--models '["o:gpt-4.1", "a:claude-sonnet-4-6", "g:gemini-2.5-pro"]' \
--agent evaluator
# Or use CEO-and-Board consensus
consensus-prompt \
--prompt "Is this PKCE implementation correct and secure? @src/auth/pkce.ts" \
--boardModels '["o:gpt-4.1", "g:gemini-2.5-pro", "d:deepseek-v3"]' \
--ceoModel "a:claude-sonnet-4-6"
# → Board votes + CEO synthesizes a final verdict with reasoning第三级:集群总线和Magistrale(分布式LLM编排)
多个LLM节点通过Redis Pub/Sub进行通信。当您需要更广泛的上下文时,请使用此方法——将同一问题分派给具有不同专业化的多个模型。
场景:“设计一个速率限制器——从3个模型中获得最佳答案”
# Dispatch to all registered clusters, pick the best response
cluster-bus-magistrale \
--prompt "Design a distributed rate limiter for a REST API with 10K req/s. Must handle multi-region, be Redis-backed, and support per-user and per-IP limits. Include TypeScript implementation." \
--strategy "best-of-n"
# Magistrale:
# 1. Sends the prompt to Cluster A (GPT-4.1), Cluster B (Claude), Cluster C (Gemini)
# 2. Each cluster runs PassController (multi-pass refinement)
# 3. Scores responses: quality 0.45, detail 0.25, relevance 0.15, latency -0.15
# 4. Returns the highest-scoring implementation场景:“架构决策——需要共识,而不仅仅是一种意见”
# Require agreement between models
cluster-bus-magistrale \
--prompt "For a real-time collaboration feature (like Google Docs), should we use CRDTs, OT, or a simpler last-write-wins approach? Team has 2 backend devs, deadline is 6 weeks." \
--strategy "consensus"
# Consensus strategy:
# 1. All clusters generate independent responses
# 2. TF-IDF cosine similarity scoring between responses (threshold 0.3)
# 3. If agreement: returns consensus answer
# 4. If disagreement: returns all positions with similarity scores场景:“生产事故——需要最快的答案”
# First model to respond wins
cluster-bus-magistrale \
--prompt "Our PostgreSQL replication lag jumped to 30s. WAL sender is active, network is fine. What should we check first?" \
--strategy "first-wins"
# Returns in ~1s from whichever model responds fastest场景:“深度代码分析——让集群产生自己的代理”
# Each cluster spawns an autonomous agent with tool access
cluster-bus-magistrale \
--prompt "Find potential race conditions in the authentication module" \
--strategy "first-wins" \
--orchestrate true \
--orchestrateAgent "plan" \
--orchestrateMaxIterations 8 \
--orchestrateAllowedTools '["find-definition", "find-references", "semantic-search"]'
# Orchestration:
# 1. Magistrale dispatches to clusters with orchestrate payload
# 2. Each cluster spawns a full agentic loop (not just an LLM call)
# 3. Agent reasons, calls tools (find-definition, semantic-search), iterates
# 4. Returns structured analysis with tool call evidence______________________________________________________________________
发展
bun install # Install dependencies
bun run build # Compile TypeScript
bun run dev # Hot reload
bun run test # Run 741 tests
bun run typecheck # Type check
bun run lint # ESLint
bun run format # Prettier添加工具
- 在中创建文件
src/tools// - 定义Zod模式
.describe()每个字段 - 实施
UnifiedTool接口 - 通过注册
registerLazyTool()在src/tools/index.ts - 在中添加注释
src/tools/annotations-map.ts
______________________________________________________________________
文档
- 技术白皮书(PDF) --洛伦兹压缩,九心,庞加莱相位检测,轨道压缩,39参考文献(LaTeX源代码)
- 架构概述
- 总线架构
- 例子 --集成模式和工作流程
______________________________________________________________________
许可证
作者
大卫 Irzyk — dawid@kemdi.pl — Kemdi Sp. z o.o.
