
用 AI 排错的人大概都经历过同一个场面问题解决了解法留在一段会话记录里窗口一关就找不回来。下次自己或别人撞上同样的问题只能从头再问一遍。真正的问题不是 AI 不能重复解决而是可用的解法已经存在过只是没人把它留下来。Shared Knowledge 就是冲着这一点做的。它是一个 MCP 服务器把 AI 对话里已经验证过的解法整理成一篇 Markdown 文章提案再提交成 GitHub 上的 Pull Request 等人审查。合并之后文章发布到文档站并生成一个音频版本。整个过程里对话本身始终是私密的服务器只提取与解法相关的内容分享这件事必须由使用者主动发起不存在自动发布。流水线短到可以一行写完对话、显式分享、MCP、Markdown、Pull Request、人工审查、合并、文档与音频。其中最关键的约束是人工审查。MCP 能做的是把知识结构化、把一次贡献准备好它不能替任何人判断什么内容值得公开。服务器对外只暴露三个工具而且刻意保持窄搜索用字段加权排序在知识库里查找读取按路径安全地取回某一篇文章防止路径穿越校验负责检查结构并开出一个 GitHub Pull Request。工具少边界清楚调用方的助手才有空间决定怎么用。技术选型上做了明显的减法。GitHub 是唯一的事实来源知识库就是纯 Markdown版本、历史、分支、差异对比、代码审查这些 Git 本来就能做没有理由再重建一套。渲染交给 Astro 和 Starlight静态内容已经过人工确认不需要一个常驻的应用服务器。搜索只做字段加权关键词匹配在这个规模下够用只有四篇文章时引入向量数据库不会让系统更聪明只会让原型更重。中途改过一次架构。最初的版本里MCP 服务器自己调用 Gemini把对话摘要变成结构化文章。功能上能跑但方向不对服务器正在变成一个绑定单一模型厂商的单体应用这跟 MCP 要解决的问题相反。改法是把结构化规则做成一个 MCP prompt规定英文输出、必须包含哪些区块、分类和标签只能用受控词表真正生成内容的是调用方的助手用它自己的模型服务器回到校验和发布的角色。代价是主动放弃了某个奖项的参评资格因为把 Gemini 移出了关键路径。这是有意的取舍不是疏忽。接入方式很普通。任何兼容 stdio 的 MCP 客户端都能连上比如 Claude Desktop或者 VS Code 里 GitHub Copilot Chat 的 Agent 模式。克隆仓库、完成安装、配置自己的访问令牌、把地址指向自己的知识仓库之后任何会说 MCP 的助手都能读取这个库并以使用者自己的 GitHub 身份提交 Pull Request。验证走了两条完全不同的路径没有写死任何东西。第一条贡献是一篇讲可选依赖如何让导入链整体崩溃的文章流程完整跑通真实问题由 AI 助手协助解决转成带章节、元数据和标签的 Markdown 文章服务器自动校验并开 PRCopilot 的自动审查指出 YAML 格式和标题问题修复后合并合并之后才生成音频并发布到文档站。第二条走的是对话式 Agent 模式在 Codespace 里助手主动先查了一遍已有知识库做查重然后才决定发布。这个行为没有写在 MCP 服务器里服务器只是提供工具怎么使用由调用方助手决定。这个项目本身也是用它所主张的方式做出来的。几个 AI 环境各自承担固定角色在人工监督下协作一个负责分七个批次顺序推进开发每批都写明边界禁止越界实现避免不同组件互相破坏一个作为独立代码审查者检查 PR、跑关键检查一个负责本地迭代、重构和快速修边界问题。谁的活谁做最终判断留给。真实世界里冒出来的问题更有意思。有一次自动审查报告了一个看起来非常有说服力的 GitHub 认证缺陷连代码片段和行号都给了先去核对发现那一行和它描述的代码在仓库里根本不存在。AI 审查确实有用但它仍然需要有人去核对作业。音频生成则一直报一个误导性很强的错误原因是网页界面里选的音色属于共享语音库免费账户通过 API 访问不到把音色加进自己的列表后第二个问题浮现出来GitHub Actions 里一个空变量悄悄覆盖了代码里的默认值。环境变量只在键缺失时回退默认值设成空字符串并不会回退。还有一次是手工造成的状态不一致本地测试时删掉了 MP3 文件却没有同步更新清单下一次 CI 读清单直接认为音频已经是最新的。代码没坏是人改了文件却让系统状态对不上。音频只在 PR 合并之后生成未经审查的内容永远不会被合成。回听生成的音频时会碰到一个很实际的工程问题适合人阅读、也适合 Git 差异对比的格式未必适合语音合成引擎。TTS 读原始 Markdown 时区块标题会直接撞进后面的正文没有真正意义上的停顿听起来缺少呼吸和叙事结构。后面要加一个中间步骤把文章的结构转成一份真正的旁白脚本。Markdown 仍然是唯一的事实来源音频变成一种有明确用途的派生格式。很容易想到把它扩成完整的社区平台投票、评论、向量搜索、仪表盘。但这不是现在的优先级。先要验证的是这个环本身够不够简单一个人解决了问题选择把答案交回来另一个人可以直接复用。更自然的下一步是把 MCP 服务器用 Streamable HTTP 放到远端不用本地安装在已有的助手里加一个地址就能用。这个环能不能转起来不取决于投票和仪表盘而取决于有人愿意给出答案以及另一个人愿意信任并读它。