公司内部推行AI Agent最头疼的不是模型能力
最近我在研究 Mwe-MCP,这个项目的切入点非常有意思,它把“内存”做成了自托管的 MCP 服务器,最核心的杀手锏是引入了行级 ACL(访问控制列表)。
简单来说,它不是给整个文件设权限,而是给每一段话、每一个列表项设权限。在公司实际场景中,这意味着 AI Agent 在检索信息时,引擎会在文本到达大模型之前就完成“脱敏”过滤。比如同一份项目进度表,财务能看到预算细节,而开发人员看到的则是被抹掉金额的版本。
从技术实现上看,这个工具是用 Rust 写的单二进制文件,走的是 MCP 协议,支持 Streamable HTTP 和 OAuth。它的记忆组织方式像是一个 Wiki,但并不是为了让人读,而是通过 prose(散文体)将事实连接起来。
这里有个很硬核的逻辑:它在检索时先通过 RAG 找到入口,然后用一个“Navigator”在 Wiki 页面间跳转,通过这种漏斗式导航构建上下文。这种机制能触发一种“随机记忆”,比如你在问食谱时,它能自动关联到某个成员之前提到过对某种食材过敏,而不需要你显式地询问过敏信息。
我在本地尝试部署时发现,它的内存维护分为两个阶段:白天是快速记录,晚上会有一个类似人类 REM(快速眼动睡眠)的整理阶段,由 LLM 对白天的碎片信息进行去重和重新排序。
如果你打算在团队中实操,有几个坑得注意:
- 模型要求: 内部用于路由和整理的 LLM 必须足够强。实测用一些极小的本地模型(如 1B-3B 级别)会导致路由错误率极高,建议至少上 7B 以上的量级或者直接接 Claude/GPT-4。
- 环境适配: Rust 编译虽然快,但目前对 Windows 的支持还处于“尽力而为”阶段,建议直接跑在 Linux 或 Docker 环境下。
部署这个 MCP 服务器的基本逻辑大概是这样的:
# 假设你已经安装了 Rust 环境
git clone https://github.com/mwe-mcp/mwe-mcp.git
cd mwe-mcp
cargo build --release
# 启动服务(默认端口包含 MCP 接口和管理面板)
./target/release/mwe-mcp --port 8080在配置 LLM 适配器时,建议在 config.yaml 中明确区分 dedup_model(去重模型,可用轻量级)和 reconciler_model(整理模型,必须用强模型):
llm_config:
dedup_model: "local-llama3-8b"
reconciler_model: "claude-3-5-sonnet"
timeout: 30s对于我们这种在公司推 AI 的打工人来说,这种能把权限控制到“句子级别”的记忆方案,比单纯追求模型参数量要实用得多。它把 AI Agent 从一个“全知全能但没分寸”的助手,变成了一个真正懂公司层级和隐私边界的团队成员。