模型上下文协议守护进程

Chaosmith Core是一个本地化的模型上下文协议守护进程,用于索引文件、嵌入意义并为代理提供结构化上下文。

  • by CryingSurrogate
  • Go
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 CryingSurrogate/chaosmith-core

使用说明

混沌核心(或译为“混沌引擎”,具体译名可能根据上下文有所调整)

混沌核心(或译为“混沌引擎”,具体译名可能根据上下文有所调整) 是核心 模型上下文协议(MCP) daemon —— Chaosmith 生物的脑干。 它索引你的现实:遍历文件、嵌入意义,并为Letta风格的智能体提供结构化上下文。 无云端,无遥测,无模拟——仅提供原生守护进程和经过验证的工具结果。


🔩 架构/建筑(根据上下文,“Architecture”可以翻译为“架构”或“建筑”,这里提供了两种可能的翻译)

组件 作用
SurrealDB(注:这可能是一个特定数据库系统的名称,直接翻译为中文并无实际意义,因此保持原样) 记忆皮层——存储图表、向量和事实。
核心MCP(main.go) 脑干——连接配置、SurrealDB和MCP工具。
嵌入式执行器 用于向量生成的外部HTTP服务(兼容OpenAI)。
索引引擎(internal/indexer) 通过以下方式分词 tiktoken写入NDJSON证据,执行Surreal数据库的插入或更新操作。
运行上下文(internal/runctx) 生成确定性结果 run_ids(可能指某种特定类型或状态)和人工制品树。
(计划中的)执行者 附肢(或分支功能)——卸载嵌入、图分析或工作区爬取任务。

一切运行如常 本地守护进程无容器。无Kubernetes。无第三方代理。


⚙️ 核心工具包

  • 索引器 — 确定性工作空间扫描、分块处理、嵌入。
  • 上下文 — 用于RAG(检索增强生成)管道的向量和文本搜索工具。
  • 列表 — 最简化的基于 SurrealDB 的工作区笔记。
  • 图表 (计划中的) — 依赖关系和符号关系。
  • 执行 (计划中的) — 通过NATS进行远程命令分发。

所有工具均按照要求提供验收测试(AT)证据 PCS/INST/1.0(可译为“PCS/指令/1.0”或根据具体上下文调整为更贴切的表述,如“PCS/安装指南/1.0”等,但直接翻译保持原样即为“PCS/INST/1.0”)。 如果证据缺失,则该运行结果无效——这是设计上的规定。


🛰️ 可流式传输的HTTP端点

Chaosmith Core 为 MCP 提供服务 可流式传输的HTTP 默认情况下。 构建并启动守护进程:

go build -o bin/chaosmith-mcp .
./bin/chaosmith-mcp --config etc/centralmcp.toml --listen :9878
# -> Streamable HTTP active on :9878/mcp

可用工具

  • index_workspace_scan — 浏览工作区,存储目录/文件行,生成以下产物 /var/lib/chaosmith/artifacts/<run_id>/。
  • index_workspace_embed — 分块并嵌入文本,插入或更新 vector_chunk 行。
  • index_workspace_all — 将扫描和嵌入合并为一个确定性步骤。
  • workspace_list — 列出已注册的工作区。
  • workspace_tree — 返回工作区的目录和文件树。
  • workspace_find_file — 在工作区中通过精确/部分路径查找文件。
  • workspace_search_text — 在工作区文件中查找确切文本。
  • file_search_text — 在特定文件中查找确切文本。
  • file_vector_search — 在文件内进行向量相似度搜索。
  • workspace_vector_search — 在整个工作区中进行向量相似性搜索。
  • workspace_register — 插入或更新一个与现有节点绑定的工作区。
  • node_register, node_list — 管理/列出节点。
  • workspace_read_file — 按字符范围读取文件切片;支持十六进制模式以进行二进制安全读取。
  • term_exec, term_pty — 受控主机命令执行。

每次调用都会产生一个 运行报告 (run_id(针对AT通过/失败、工件路径、风险等)每 PCS/INST/1.0。


🔌 可选的 stdio 桥接

对于Letta或本地侧车代理,您可以同时运行这两种传输方式:

./bin/chaosmith-mcp --stdio --listen :9878

Stdio 会话与 HTTP 共享同一个 SurrealDB 和工具注册表。


🧠 哲学

自由。掌控。混乱。艺术。

Chaosmith Core 以(本地/自主)取代了对云的依赖 地方主权。 每一个向量、每一个文件、每一个想法——都在您自己的服务器上存储并验证。


🧰 快速入门

先决条件

  • Go 1.25及以上版本
  • SurrealDB 2.2及以上版本
  • 嵌入服务提供OpenAI兼容的API
  • 对目标工作区的文件系统访问

配置

etc/centralmcp.toml 定义连接和嵌入参数:

surreal_url  = "http://127.0.0.1:8000"
surreal_user = "root"
surreal_pass = "root"
surreal_ns   = "chaos"
surreal_db   = "core"

embed_url    = "http://127.0.0.1:1234/v1/embeddings"
embed_model  = "text-embedding-nomic-embed-text-v1.5"
effective_dim = 768
artifact_root = "var/lib/chaosmith/artifacts"

使用环境变量覆盖(SURREAL_URL, EMBED_URL等)或 CHAOSMITH_CONFIG。

跑

go run . --config etc/centralmcp.toml --listen :9878 --stdio

文物出现在以下(位置/情境中) <artifact_root>/<run_id>/ 作为NDJSON(Newline Delimited JSON): files.ndjson, dirs.ndjson, vectors.ndjson。


🔍 本地搜索框架

直接运行工作区搜索工具,无需MCP:

go run ./cmd/test_workspace_search --config etc/centralmcp.toml

🧮 MCP 工具概览

类别 工具
索引编制 index_workspace_scan, index_workspace_embed, index_workspace_all
库存 node_register, node_list, workspace_register, workspace_list, workspace_tree, workspace_find_file
搜索 workspace_search_text, file_search_text, file_vector_search, workspace_vector_search
内容 workspace_read_file
终端 term_exec, term_pty

所有事实均来自执行者或SurrealDB,绝非虚构。


🧾 许可证

Chaosmith Core 采用以下许可协议: GNU 通用公共许可证 v3.0(附带 Affero 条款)。 如果你将其作为网络服务部署,你必须提供修改后的源代码。 商业或闭源使用需另行签订许可协议。