我问了它一句:「什么是人形机器人?把结果写到 Docx 文件中。」
它没有回我一段话。
它思考了 17 轮、调用了 20 次工具、花了 2 分 38 秒——先在自己的知识库里搜关键词、读回 4 篇文档、把片段拼成一份内容大纲,然后读了一遍
docx技能的说明,在沙箱里写下output/create_humanoid_doc.js,跑通脚本,最后把一个排版完整的 Word 文件递到我面前。查资料、读技能、写代码、执行、交付。整个流程发生在我的知识库里,我没有复制粘贴过一次。
做这件事的项目叫 WeKnora,腾讯微信团队开源,MIT 协议,当前版本 0.8.0。
它值得写,不是因为又多了一个 RAG 框架,而是因为它回答了这一年多来知识库产品最尴尬的那个问题:
为什么我养了一堆知识库,它还是只会「回答」,不会「干活」?
一、先说结论:它是什么
WeKnora,官网 weknora.weixin.qq.com,仓库 github.com/Tencent/WeK…,MIT 协议,Go + Vue 写的,出自腾讯微信团队。
顺带说一句,说它「微信团队出品」是有实据的:官网挂在 weixin.qq.com 域名下,是微信对话开放平台 chatbot.weixin.qq.com 的核心技术框架,npm 包 scope 里有 wxg——微信事业群。这不是一个实验室里的演示项目。
官方给自己的定位是一句话:
WeKnora — Turn Documents into Living Knowledge with RAG, Agents and Auto-Wiki
把文档变成「活的」知识。
注意这个词:Living(活的) 。
它不是「上传文档 → 向量化 → 问答」这条老路再做一遍。它由三块能力组成:
| 能力 | 干什么 | 一句话理解 |
|---|---|---|
| RAG 快速问答 | 日常查资料、问文档 | 动嘴 |
| ReAct Agent | 自主编排检索、MCP 工具、技能目录、沙箱、联网搜索 | 动手 |
| Wiki 模式 | 把原始文档蒸馏成自维护、互相链接的 Markdown 知识库 | 自己长 |
这是它的基础形态:智能问答。引用悬浮、RAG 流水线进度、流式 Markdown——注意右侧引用区区分了「知识库来源」和「网络来源」。但这一层只是起点,真正有意思的在下面。
先放一组基本信息,方便你对它有个量级判断:
| 项目 | 数值 |
|---|---|
| 开源方 | 腾讯微信团队 |
| 协议 | MIT(商用友好) |
| 当前版本 | v0.8.0 |
| 技术栈 | Go(后端)+ Vue(前端),模块化可插拔 |
| 部署方式 | 本地 / Docker / Kubernetes(Helm),支持私有化与离线 |
| 适配模型 | 20+ 家 LLM 供应商(含 LiteLLM) |
| 文档格式 | PDF / Word / Txt / Markdown / HTML / EPUB / MHTML / 图片 / CSV / Excel / PPT / JSON / XMind |
| IM 渠道 | 企业微信 / 飞书 / Lark / QQBot / Slack / Telegram / 钉钉 / Mattermost / 微信 / 云之家 |
这张表的最后两行,是国内同类项目里比较少见的部分。
二、核心变化:知识库从「动嘴」到「动手」
这是 0.8.0 最重的一次更新,也是这篇文章的主线:Skill Sandbox Runtime(技能沙箱运行时) 。
在说它之前,先回顾一下我们过去用的知识库是什么形态:
你问它「我们的报销标准是多少」,它检索出三段相关文本,拼成一段话给你。它到此为止。 剩下的事情——把答案整理成表格、写进文档、发出去——全是你自己动手。
WeKnora 0.8.0 把这段断掉的路接上了。
它怎么做到的:技能 + 沙箱
第一层是技能目录(Skill Catalog)。 技能不再散落在各个 Agent 里,而是像应用商店一样集中管理——可以从 ClawHub、SkillHub、git 仓库或者 zip 包安装。
技能管理页面:docx / pptx / pdf 三个技能已安装到 E2B_DEMO 沙箱。注意页面顶部那句话——「技能属于空间目录,可以只登记,也可以装到一份或多份沙箱。智能体只能启用当前沙箱里已就绪的技能。」
第二层是沙箱(Sandbox)。 技能必须装进沙箱才能被调用。0.8.0 支持三种后端:Docker / E2B / Cube,并且是会话级持久的——同一个会话里,上一轮写下的文件和装好的环境,下一轮还在。
装进沙箱之后,Agent 拿到的是一整套真实可用的工具:shell_exec 执行命令、文件读写、产物(artifacts)管理,还有可按配置收紧的网络策略。
这意味着它手里有真东西了。 不是「生成一段代码给你看」,而是在隔离环境里把代码跑起来。
它跑起来是什么样
回到开头那个场景,把过程摊开看:
Agent 模式完整执行链:思考 17 轮 · 调用 20 次工具 · 耗时 2 分 38 秒。可以看到它依次做了:搜索关键词「人形机器人 / humanoid robot / 人型机器人」命中 30 个片段(来自 4 个文档)→ 检索知识库 → 深读文档 → 读取 docx 技能说明 → 写入沙箱文件 output/create_humanoid_doc.js → 运行脚本生成 Word。
注意中间那一步:「读取技能:{docx}」。
这一步是整个设计里最聪明的地方。Agent 并不是「天生会写 Word」——它是先读了技能说明书,才知道该调用哪个库、怎么写这个脚本。技能在这里扮演的是「给 Agent 的操作手册」,而沙箱提供了把它跑起来的地方。
最后交付的成品:
左侧是对话,右侧是实时预览的 Word 文档「什么是人形机器人?——概念、进展与挑战概述」,带封面、目录层级和正文结构。文档内容全部来自左侧知识库检索到的资料。
一个必须点赞的安全细节
如果你做技术选型,这条比上面的功能更值得注意:
0.8.0 移除了 Local host-process 后端,Docker 改成需显式开启(opt-in) 。
翻译一下:上一版允许技能直接在你宿主机上跑进程。这一版把它砍了,默认只走 Docker / E2B / Cube 这些隔离环境,而且每个租户可以配独立的网络策略。
💡 在「让 AI 动手」这件事上,先收紧执行边界、再放开能力,这个顺序是对的。 国内不少项目是反过来的——先把能力做出来,安全问题留给下一代。它这一步是自己给自己上枷锁。
三、Wiki 模式:让文档自己长成知识库
如果说沙箱解决的是「动手」,Wiki 模式解决的是「理解」。
传统 RAG 有个绕不开的毛病:它检索的是切片(chunk) ,不是知识。你上传 50 份文档,它切成 3000 个片段存进向量库。它能找到「包含这个关键词的段落」,但它不知道这些段落之间是什么关系。
WeKnora 的 Wiki 模式换了个思路:让 Agent 把原始文档读完之后,重新写成一套互相链接的 Markdown 页面。
交互式知识图谱,右上角显示「49 / 49 节点」。图例区分了链接、实体、概念、综合、对比五种关系类型。右侧是「日常费用报销」这个 Wiki 页面的正文——它是被 Agent 从原始文档里蒸馏出来的一页,有提交时限、常见科目表格,还有「展开对话」按钮,可以就这一页继续追问。
这一步的价值在于:切片是不可读的,Wiki 页面是可读的。 切片是给机器检索用的中间产物,Wiki 页面是给人看的知识资产。
Wiki 浏览器:Agent 生成的所有页面按目录组织,可以像读一本手册一样逐页翻阅。注意顶部 tab——同一个知识库里,「文档」「Wiki」「图谱」是三种并存的视图。
而且它没做成「只能看不能改」的黑盒:
Wiki 页面支持修订历史:快照 + 行级 diff + 一键回滚,还能直接在浏览器里手动编辑。
💡 这套东西(自动生成 + 可编辑 + 有版本 + 可回滚)的组合,让它从「AI 生成的内容」变成了「你能接管的内容」。 这一条决定了它能不能用在真实业务里——自动生成的东西一旦不可修正,就没有人敢用。
配合上知识图谱视图,你可以直观看到某个概念被哪些文档支撑、它和哪些实体相连。这是从「检索工具」进化成「知识管理」的标志。
四、它开始记得你是谁
0.8.0 另一个更新是跨会话长期记忆。
分五类:profile(用户画像)/ preference(偏好)/ fact(事实)/ task(任务)/ interest(兴趣) 。
机制是自动抽取 + 用户确认 + 按需检索(search_memory) ——注意中间那一步「用户确认」,它没有偷偷记,而是抽出来让你过目再决定存不存。
这个设计对知识库类产品挺关键。因为知识库最痛的不是「记不住」,是每次都问一遍「你们公司是做什么的」「上一个问题聊到哪了」。跨会话记忆解决的是这类重复摩擦。
五、两个容易被忽略、但很实用的细节
这两个功能不在宣传重点里,但都是真实用起来才会感激的设计。
1. 树状文件夹视图:你的目录结构被保留了
大部分知识库上传完文档就是一大坨平铺列表,上传时精心分好的目录全丢了。文件一多,找东西全靠搜索。
左侧是目录树(保留了上传时的目录结构,可浏览、可重命名、可把文档重新归到别的目录),右侧是文档卡片列表 + 筛选器(标签 / 类型 / 状态 / 来源 / 时间),底部是批量操作:重建知识、批量标签、移动到目录。
上传路径被当成一等数据存下来了——这是个很小的决定,但省掉的是后面无数次的翻找。
2. 切片编辑 + 修订历史:检索单元可以被修正
这条我认为是所有做 RAG 的人都该抄的。
RAG 的准确率问题,八成出在切片上:切太碎丢上下文,切太粗引入噪音,切错边界把两段不相干的内容拼一起。传统做法是「改配置 → 重新解析整个知识库」,成本高、反馈慢。
可以直接在界面上编辑检索切片,每个版本有快照、可 diff、可一键回滚,保存后自动重建索引。
💡 把检索单元做成像文档一样可编辑、可比对、可回滚的对象——这个抽象抓得很准。它把「调 RAG 效果」从一件要重跑流水线的事,变成了改一段文字的事。
另外还有生成问题的增删改、自定义文档元数据,这些都是同一个思路:让知识库里每一个中间产物都变成可干预的对象。
六、架构:能换的零件,它都让你换
放一张官方架构图,这张图信息量很大:
WeKnora Architecture v0.8.0:上半部分是输入渠道(Web UI / IM Bots 10 个渠道 / 网页嵌入组件 / MCP Server / 浏览器扩展 / ClawHub Skill / CLI / DeepSeek Harness 插件),中间是核心引擎(文档处理 + RAG & Agent 引擎,右下角就是 Skill Catalog、Sandbox Docker/E2B/Cube、长期记忆三件套),下半部分是存储与外部服务。
这张图里有三个判断值得单独拎出来:
① 输入渠道做了 8 类。 除了网页,还有 10 个 IM 渠道、浏览器扩展、CLI、MCP Server、网页嵌入组件。它没把自己做成一个「你必须登录网页才能用」的系统——知识库应该出现在你已经工作的地方,而不是让你多开一个标签页。
② 每一层都可替换。 官方列的可替换清单:
| 层 | 支持的后端 |
|---|---|
| LLM | OpenAI / Azure OpenAI / Anthropic / DeepSeek / 通义千问 / 智谱 / 混元 / 豆包 / Gemini / MiniMax / NVIDIA / Novita AI / SiliconFlow / OpenRouter / Requesty / LiteLLM / Ollama |
| 向量库 | PostgreSQL(pgvector) / Elasticsearch / OpenSearch / Milvus / Weaviate / Qdrant / Apache Doris / 腾讯 VectorDB |
| 对象存储 | 本地 / MinIO / AWS S3 / 火山 TOS / 阿里 OSS / 金山 KS3 / 华为 OBS |
| 嵌入模型 | Ollama / BGE / GTE / 智谱 / OpenAI 兼容接口 |
| 联网搜索 | DuckDuckGo / Bing / Google / Tavily / 百度 / Ollama / SearXNG / Keenable / 智谱 / Exa / Metaso |
③ 保留了「完全私有化」这条路。 所有组件都能换成自建,支持本地 / 私有云部署,数据主权在你自己手里。对于要处理内部文档的团队,这个是硬门槛。
可观测性部分集成了 Langfuse,做全链路追踪:ReAct 循环、token 消耗、工具调用、流水线逐阶段耗时。另有一个运行时任务队列看板,能看队列深度、按模型并发数、失败任务检查与手动重试。
💡 这类「运维视角」的东西,往往比功能列表更能说明这项目有没有被真实使用过。 Demo 项目不会做失败任务重试。
七、一个隐藏身份:你公众号后台的智能问答,可能就是它
这一段是给做公众号的朋友看的。
WeKnora 是微信对话开放平台(chatbot.weixin.qq.com)的核心技术框架。也就是说:
- 你可以在平台上零代码部署——上传知识、配好问答,能力就接进微信生态了
- 高频问题可以分类管理,有数据工具兜底,答案可维护
- 这套问答能力可以接进公众号、小程序等场景
💡 换句话说,你在公众号后台配的那套自动问答,底层引擎很可能就是这篇文章讲的这个东西。
这件事对读者的实际意义是:你不需要自己搭 Docker 也能用上它。想先低成本试试效果,可以走微信对话开放平台;想完全掌控数据、想接自己的模型,就自部署。两条路都在。
另外它还提供了几个轻量的接入方式,成本都很低:
| 入口 | 用途 |
|---|---|
| 浏览器扩展 | 网页上划词、选图、整页收藏,一键存进知识库,不用复制粘贴 |
| 微信小程序 | 手机上配 API、选知识库、导 URL、直接问答 |
CLI(weknora) | 终端里驱动,agent-first 设计:默认输出稳定的 JSON(带类型化错误码映射退出码),--format text 给人看 |
| MCP Server | 官方 PyPI 包 tencent-weknora-mcp,29 个工具,支持 stdio / SSE / HTTP |
| ClawHub Skill | 装到 ClawHub 后,Agent 可直接导入文档、混合检索、管理知识条目 |
| DeepSeek Harness 插件 | @wxg-prc-cpg/dsh-weknora,给你的编码 Agent 挂上自己的文档库 |
最后那条 MCP Server 值得多说一句:29 个工具、三种传输方式,意味着它可以作为「知识底座」接进任何支持 MCP 的 Agent 里。它没想当一个孤岛。
八、上手:三步跑起来
前置只要 Docker + Docker Compose:
git clone https://github.com/Tencent/WeKnora.git
cd WeKnora
cp .env.example .env # 按需编辑,文件里注释写得很细
docker compose pull
docker compose up -d
起来之后访问 http://localhost 就能用。如果要用本地 Ollama 模型,先起 ollama serve。
需要额外组件的话,用 profile 按需加载:
| Profile | 用途 |
|---|---|
| 默认 | 核心服务 |
full | 全功能 |
neo4j | 知识图谱 |
minio | 对象存储 |
langfuse | 链路追踪 |
服务地址: Web UI http://localhost · 后端 API http://localhost:8080 · Langfuse http://localhost:3000
⚠️ 官方安全提示里有一条务必注意:生产部署建议放在内网,不要直接暴露公网。
另外这个项目迭代非常快(0.8.0 之前已经跑了十几个小版本),升级时记得先
docker compose pull再up -d,不然容器还在用本地缓存的旧镜像,会出现「UI 版本对不上」的诡异问题。
九、说点我的看法
先说它做对了什么。
1. 它押的不是「回答得更准」,是「能交付结果」。
这一年 RAG 项目的竞争几乎全在准确率上——改切分策略、加 rerank、叠图谱。这些都有价值,但天花板很明显:你把答案准确率从 80% 提到 92%,用户的流程一样没变,他还是得自己把答案搬去别的地方。
WeKnora 0.8.0 换了个赛道:让知识库在沙箱里把活干完。查完资料直接生成 Word、Excel、PPT,写完直接存进文件系统。这个方向我认为更接近用户真实的诉求——用户要的从来不是「答案」,是「事情被办完」。
2. 它在安全上先收了手。
前面说过,这一版砍掉了在宿主机直接跑进程的后端,改成默认隔离。「让 AI 在你机器上执行代码」这件事,现在是 AI 产品里风险最高的动作之一。 先把边界收窄再放能力,说明团队清楚自己在开什么口子。
3. 它对「可干预」的执念贯穿始终。
切片可编辑、Wiki 可回滚、技能可登记、任务可重试、记忆要确认。这套设计语言的共同点是:不把 AI 的产物当成不可触碰的结论,而是当成一个可以随时接管的半成品。
再说门槛和不适合的场景。
- 它不是一个开箱即用的 SaaS。 自部署要处理 Docker、模型 API、向量库,比注册个账号麻烦得多。想零门槛可以先走微信对话开放平台。
- 能力越强,配置面越大。 20+ 模型、8 种向量库、7 种存储——自由度的另一面是选择成本。好在默认配置能直接跑通。
- 沙箱执行必然有算力开销。 一次任务跑 2 分多钟、20 次工具调用,比一句问答重得多。这适合「值得花时间把事做完」的场景,不适合闲聊。
- MIT 协议是加分项。 商用友好,不用纠结授权条款。
一句话总结:如果你在找一个能长期沉淀、能自己动手、能私有化的知识底座,它目前是国内开源里最完整的一个。如果你只是想要个问答窗口,它有点重。
十、最后
回到最开始那个问题:为什么我们的知识库只会动嘴?
因为过去我们做的其实不是「知识库」,是「文档检索器」。它只负责把相关内容找出来递给你,剩下的活是你干的。
WeKnora 0.8.0 想改的是这个分工:把最后那段路也走完。
「知识库不再只动嘴,还能在沙箱里动手」——这句话听起来像个噱头,但拆开看,它是三件很实的事:技能有目录、沙箱有隔离、产物有交付。噱头背后是工程。
📌 仓库地址: github.com/Tencent/WeKnora
📖 官方文档: 约 50 页,覆盖 360+ API 接口和 150+ 环境变量,支持独立部署
🎬 官方演示视频: 2 分 25 秒 · 1080p · 英文解说与字幕(仓库首页可看)
聊两句
如果给你的知识库装上「手」,你最想让它替你干的第一件事是什么?
是批量把内部文档整理成周报,还是查完资料自动生成对客方案,又或者每天定时扫一遍行业资讯、直接产出摘要?
评论区说说你的场景,我会挑几个具体的需求,下一篇写一份能跑通的最小配置教程。
觉得有用的话,点个「在看」,让更多被知识库「只会动嘴」折磨过的朋友看到。
关注我,每周拆一个值得读的开源项目。
本文基于 WeKnora v0.8.0 官方 README 与仓库公开资料整理,截图均取自项目官方文档目录。项目迭代较快,具体特性以仓库最新版本为准。