一个开源仓库的位置变化
腾讯微信团队开源的 WeKnora 项目在模型社区里的热度很直接:仓库星标数约 2.51 万,单日新增约 1200;叉出 3.3 千余份,贡献者接近 200 人。这些数字在开源项目里属于头部区间。
但真正让这个项目值得单独写一写的,不是热度,而是它解决的问题变了。它起步时是一个企业知识库:把 PDF、Word、PPT、图片、音频这类文档收进来,做成能带引用的问答。而在 9 月 3 日发布的 0.8.0 版本里,它的定位已经明确转向:为智能体提供长期上下文的知识基础设施。
知识库面向人还是面向智能体,是两种不同的产品。面向人时,评判标准是答案好不好读;面向智能体时,评判标准变成检索结果能不能被工具化调用、上下文能不能被持续维护、执行动作能不能被约束在沙箱里。
项目采用 MIT 许可,后端用 Go 写,可以完全自托管。
三层结构:上下文管线、ReAct 智能体、执行环境
把 0.8.0 的说明读下来,可以把它拆成三层。
底层是上下文管线。它接收十几种格式,包括 PDF、Word、Excel、PPT、图片、XMind 与音频,并支持从飞书、Notion、语雀、GitLab、腾讯 IMA、钉钉文档与 RSS 自动同步。办公文件走内置解析器,每一批上传都可以单独覆盖解析器、分块方式、视觉模型与语音识别设置。检索侧同时跑 BM25 稀疏检索、稠密向量检索与 GraphRAG 图检索,分块采用父子结构;向量侧使用 HNSW 加速的 pgvector,维度 1024,底层数据库是带 BM25 与向量扩展的 ParadeDB。分块本身可以在界面里编辑,带版本历史与自动重建索引。
中层是一个 ReAct 智能体。它按轮次决定这次要调用什么:知识库检索、Wiki 工具、Excel 分析、MCP 服务(包括对话中途发起 OAuth 授权的那些),或者跨 11 个提供方的联网搜索。每轮可以通过提及技能或 MCP 来收窄可用的运行时范围,这一点对控制副作用很重要。
上层是 0.8.0 新加的执行环境。每个对话会话都有一个持续存在的工作空间,后端可选 Docker、E2B 或 CubeSandbox。智能体可以在里面执行 shell 命令、读写文件、从约定目录取用户上传的附件,并把生成的文件作为结果交付。技能可以从若干技能市场、代码托管地址或压缩包安装,每个技能配置单独的网络策略。项目同时移除了旧的本地宿主进程后端,并把 Docker 设为可选项——官方自己的解释是,挂载 Docker 守护进程的套接字等于把宿主机的最高权限交出去。这句风险提示由项目方主动写出,并不常见。
记忆的设计里有一处克制
跨会话记忆不是把历史塞回上下文,而是一套独立的存储。它分成五类:画像、偏好、事实、任务与兴趣,支持仅显式写入或自动抽取两种模式,默认每个身份上限 200 条。
真正值得记住的是它的默认行为:由系统推断出来的条目会停在待确认状态,未经确认的猜测不会进入提示词。这个选择在体验上并不讨巧——它意味着智能体有时会显得「没记住」——但它避免了另一类问题:把推断当成事实写进长期记忆,之后再用这份事实去支撑决策。
另一处设计是引用频次。系统会记录用户反复引用的文档,并让这种亲缘关系影响后续检索排序。这是一种隐式的使用偏好学习,代价是它可能把检索结果收窄到少数几份文档上;项目文档没有给出这种收窄的上限控制。
自动 Wiki 与它的整理成本
自动 Wiki 这个功能容易被当成装饰,但它的机制值得展开。智能体读取原始资料后,把其中的实体、概念与关系整理成相互链接的 Markdown 页面,同时生成知识图谱。页面分为六种类型,有目录层级和搜索。围绕页面有十种工具,支持读取、写入、改名(连带修复反向链接)与删除(连带清理失效链接)。
页面会被标注带有类型的问题,例如混合实体、事实矛盾、内容过期,另有一个内置的修缮智能体处理这些问题队列。每次编辑都有版本历史、差异对比与一键回滚,自动版本上限 50、总上限 200。
这套机制把知识库的维护从「人工梳理」变成了「人工审核」。省下的是整理工作量,增加的是审核工作量,两者是否划算取决于原始资料的更新频率。对一个季度才动一次的文档集,自动 Wiki 的价值有限;对每日都有新版本流入的工程资料,它才真正发挥作用。
与编码智能体的接法
项目提供了一条针对编码工具的官方通道:面向 DeepSeek Harness 的插件,包名 @wxg-prc-cpg/dsh-weknora。安装方式是在该工具内添加插件,凭证以接口密钥方式传入。插件向编码智能体暴露四个只读工具:列出知识库、混合检索、按页滚动读取文档,以及取回带引用的答案。它在 0.8.0 之前的版本上做过测试,且明确不提供写入通道。
只读这个约束值得肯定。编码智能体最需要的本来就是「查得到」,而不是「改得动」;把权限收在只读一侧,等于把知识库的内容风险从工具链上摘掉。项目另有一个以 Python 包形式发布的 MCP 服务器,对外暴露 29 个工具。
企业侧的能力与真正的门槛
面向企业的部分相当完整:四级工作空间权限(所有者、管理员、贡献者、查看者),按知识库绑定的接口密钥,审计日志,20 多个模型提供方加 LiteLLM 网关,用 Langfuse 追踪每一轮 ReAct 循环,通过企业微信、飞书、Slack、Telegram 与微信本身提供对话入口,另有嵌入式组件与浏览器扩展。产品文档覆盖约 360 个接口,这个数量本身说明它的定位是可被集成的底座,而不是一个开箱即用的应用。
部署方式是 Docker Compose 或 Helm。标准形态是五个容器:前端 Nginx、Go 后端、Python 文档解析服务、ParadeDB 与 Redis,按官方说明大约十五分钟可以跑起来。启动前必须自己生成两个密钥,本地模型可以用 Ollama 对接,官方快速上手用的是一个 8B 对话模型加一个中文嵌入模型。界面默认简体中文,需要英文环境要在启动前改环境变量。官方给出的起步配置是四核处理器与 8GB 内存,因为文档解析服务打包了桌面办公套件与浏览器组件。
门槛也要说清楚。它不是一条安装命令就能用的库,而是一套需要运维的服务组合;混合检索与图检索依赖 ParadeDB 这个特定数据库;沙箱隔离、接口密钥的管理方式与引用质量,官方文档都建议使用方在自己的语料上独立验证——这个建议方向是对的,但也说明这些问题在通用层面尚无定论。