1. 项目定位与核心思路
1.1 先说清楚 WeKnora 到底解决什么问题
做 AI 应用跑了一段时间的人,都会撞上同一个痛点:模型再聪明,它也没读过你们的内部文档。业务规则、历史流程、产品需求、售后话术,这些知识散落在几百个 Word、PDF、PPT 和表格里。让大模型直接回答,它多半会一本正经地编答案。RAG(检索增强生成)就是用来解决这件事的:先把文档解析好、切成块、向量化,存进知识库,用户提问时先检索出相关片段,再把片段和问题一起交给大模型生成答案。
WeKnora 是腾讯微信团队开源的一个 AI 知识库平台,它的定位就是把"文档解析、切片、向量化、索引管理、知识库隔离、检索问答"这一整条 RAG 链路串成一个开箱即用的系统。我们团队是从今年开始正式评估知识库方案的,前后对比了 Dify、RAGFlow,也拿自研脚本搭过一个临时方案,最终在"既要私有化部署、又要多模态处理、还得能接到业务系统里"这三个条件下,把方案收敛到了 WeKnora。
很多朋友第一次听到这个名字会问:它和直接用向量数据库有什么区别?区别在于——向量数据库只是底层的检索组件,你仍然要自己写文档解析、切片策略、索引生命周期管理、知识库权限、问答 API。而 WeKnora 把这些都打包了,并且自带一套可视化管理后台。你可以把大模型和向量模型配置进去,把文档传上去,它自动完成从解析到索引再到问答 API 的整个流程。
顺便说一句,WeKnora 这个名字我拆过,We 自然来自微信团队,Knora 里的 K 和 R 对应 Knowledge 和 Retrieval 的可能性很大。不过名字不是重点,重点是它的设计思路确实贴合知识库这个场景:一切围绕"喂文档、管索引、出答案"来做,而不是像某些平台那样什么都往上塞,导致知识库功能反而是配角。
1.2 我们为什么把它列为知识库底座的第一候选
在深入安装部署之前,先聊一下选型逻辑,这部分我认为对团队决策最有参考价值。我们要建的知识库有这几个硬性要求:第一是私有化部署,文档不能出内网;第二是要能识别图片、图表和扫描件,因为产品团队有很多截图、架构图和表格;第三是要提供 API,方便我们把检索问答能力嵌入到内部工具和客服工作台里;第四是持久化数据要可控,能备份能迁移。
对比下来,WeKnora 的优势集中在"生产可用"这四个字上。很多开源项目跑个 demo 没问题,但一旦面对真实的几十万文档、几百 G 数据,各种问题就会冒出来,比如文档解析不干净、索引同步失败、检索命中率低。WeKnora 在文档解析这块做得比较扎实,对常见格式的兼容性处理更符合实际办公场景,而不是只对漂亮的纯文本 PDF 友好。再加上它原生支持多种嵌入模型和视觉模型,遇到扫描版 PDF、带图表的 PPT,处理效果明显比我们之前脚本搭的方案稳定。
更重要的是,微信团队的背景决定了它对"多租户知识库"这个概念理解到位。我们在使用中需要给不同部门建独立的知识库,每个库要有独立的文档集和检索入口。WeKnora 的知识库隔离设计在这一类场景里很契合,权限边界天然存在,不用我们自己在应用层再包一层隔离逻辑。
1.3 典型应用场景:从产品经理知识库到客服助手
结合这次的热搜词里有 "mark的ai产品经理知识库",我猜很多人关注它,就是想做产品经理领域的知识库。这个场景其实非常典型:一个产品团队沉淀了大量 PRD、竞品分析、用户访谈纪要、版本发布说明,新同学入职后问"之前这个功能为什么这么设计",老同学一个个翻文档特别低效。把这一堆资料丢进 WeKnora,用 RAG 检索,新产品经理直接提问就能得到带出处的答案,效率提升非常明显。
另一个我们实际落地的场景是客服知识库。客服团队每周要面对几百条重复咨询,很多答案明明写在公司规范里,但因为搜索体验差,客服只能凭记忆回复。我们把客服 SOP、产品使用手册和常见问题处理流程导入了知识库,再通过 API 接到客服工作台,客服输入客户问题,系统实时返回参考回答和对应文档链接,准确率保持在可接受范围内,极大减少了翻文档的时间。
还有一类场景是研发团队的内部知识沉淀。比如接口文档、架构设计文档、运维手册,很多人写完之后就躺在 Wiki 里吃灰。WeKnora 能把这些 Markdown 和 PDF 全部索引起来,研发同学提问"支付服务超时一般怎么排查",系统可以把历史故障复盘报告里的相关段落捞出来。我甚至看到有团队把线上的几十期周报也喂了进去,用来做项目背景检索,效果意外地好。
2. 部署安装全记录:Windows 11 与腾讯云
2.1 Windows 11 本机安装的完整步骤
先讲本机部署,因为绝大多数团队都是先在个人电脑上把功能跑通,再上服务器。我以 Windows 11 环境为例,结合我们实际踩坑的过程来说明。
第一步准备 Docker Desktop。当前大多数开源中间件都通过 Docker 分发,WeKnora 也不例外。在 Windows 11 上安装 Docker Desktop 时,务必确保开启了 WSL2 后端,安装完成后执行wsl --status确认默认版本是 2。我们的经验是,如果用的是 WSL1,容器启动经常会报网络或文件权限错误,这是最容易被忽略的前提条件。
第二步获取项目代码和配置文件。拉取代码后,重点看 docker-compose.yml 和 .env 文件。WeKnora 启动依赖几个核心组件:应用服务、文档解析服务、向量索引服务和数据库。配置环境变量时,主要花时间在模型相关参数上。我们需要配置大模型 API Key,也就是调用 ChatGPT 或国产大模型的凭证,以及嵌入模型的 API Key 和模型名称。这里提醒一句,如果内网环境无法访问公网模型 API,需要提前准备可用的内网模型服务地址,WeKnora 支持通过配置自定义 endpoint 的方式对接。
第三步启动并初始化。在项目根目录执行docker compose up -d,第一次启动会拉取镜像,耗时取决于网络状况,建议提前配好 Docker 镜像加速。启动完成后,浏览器访问本机映射的管理端口,首次进入会引导我们创建管理员账户。这一步完成后,基本框架就跑起来了。
启动过程中出现容器频繁重启的,第一件事不是删容器,而是执行docker compose logs -f看具体报错。常见问题包括:端口被占用、数据库初始化失败、模型 API 地址不可达。我们当时遇到的是解析服务一直报 OOM,排查后确认是 Docker Desktop 默认分配给 WSL2 的内存只有 2GB,解析大文档时不够用。解决方案是在用户目录下的 .wslconfig 文件里设置memory=8GB,然后重启 WSL,容器内存问题就消失了。注意,.wslconfig 不是改 Docker Desktop 图形界面里的资源设置,改图形界面选项有时不生效。
2.2 腾讯云服务器部署的关键环节
本机跑通以后,正式环境我们部署在腾讯云上。这里说两个可选路线:一种是用云服务器直接跑 Docker Compose,适合文档量在可接受范围内、规模不太大的场景;另一种是上容器服务,用 TKE 或者轻量级容器服务来编排,适合弹性扩缩容、高可用要求更高的场景。
我们先用的方案是云服务器加 Docker Compose。购买云服务器时选择 Ubuntu Server 20.04 或 22.04,配置建议最低 8 核 16G,如果文档量较大或者要并发处理大量解析任务,内存要提到 32G。系统盘用高性能 SSD,数据目录建议单独挂一块云硬盘,这样应用崩溃或迁移时,知识库的数据不会丢。
部署步骤方面,大致是:安装 Docker 和 Docker Compose 插件,上传项目代码和配置,修改 .env 里的模型 API 地址为内网地址,在安全组中开放管理端口和 API 端口,但管理端口强烈建议只允许内网 IP 访问。数据目录挂载到云硬盘后启动服务,验证容器全部存活。随后用 Nginx 或负载均衡把 80/443 端口指到容器的服务端口,配上 HTTPS 证书,生产环境就可以对外提供服务了。
我们在腾讯云上踩得最深的坑是镜像拉取。国内环境拉取 Docker Hub 镜像经常超时,尤其是 WeKnora 涉及多个镜像文件,加上解析模型相关组件体积不小。解决办法是给 Docker 配置镜像加速地址,或者直接把镜像迁移到腾讯云的容器镜像服务里,从内网拉取。后者更稳定,而且后续更新版本时也方便。
2.3 版本更新与迁移注意事项
热词里有"腾讯云的weknora如何更新版本",这确实是个高频问题。WeKnora 版本迭代速度不算慢,功能修复和模型更新都很频繁,但更新操作并不建议无脑覆盖。
我的做法是三步走:第一步备份数据和配置。备份分两层,一层是数据库数据,另一层是向量索引目录和上传的原始文档目录。可以提前在 docker-compose.yml 里确认相关卷的挂载路径,然后直接用tar打包当前数据目录,同时用数据库的导出工具做一次逻辑备份。第二步更新镜像,docker compose pull拉取新版本镜像,然后执行docker compose up -d重新创建容器。第三步验证升级结果,检查容器状态、登录管理界面查看版本号、随便问几个历史问题,确认检索结果正常再宣布升级完成。
这里有一个很容易犯的错误:直接删除旧容器再启动新容器,结果发现数据目录配置不对,把知识库数据搞丢了。所以每次升级前先确认挂载卷的映射关系没有变,最好把 docker-compose.yml 也备份一份。升级完成后旧的镜像文件会占磁盘空间,定期执行docker image prune清理。
如果是从非常老的版本跨版本升级,可能需要手动执行数据库迁移脚本。我没有遇到需要手工干预的情况,但如果容器日志里出现和表结构相关的报错,建议先查看官方升级说明,而不是自己改数据库。这一点无论用什么开源系统都一样:结构变更类操作,一定要看官方文档。
3. 核心功能实操:解析、知识库与 Obsidian 联动
3.1 多模态文档解析能力
WeKnora 和纯文本检索工具最大的区别,就是它对多模态内容有专门的处理管线。日常工作中大量信息藏在图片、图表、扫描件里,传统的 OCR 只能提取文字,遇到架构图、流程图、产品截图,如果没有视觉理解能力,知识就丢了。
WeKnora 在解析 PDF、Word、PPT 时,会识别文档中的文本块、表格和图片,并尝试把图片内容也向量化。这意味着你上传一份包含系统架构图的 PDF 后,用户提问"我们的支付系统做了哪些限流策略"时,系统不仅能从正文里找到对应描述,甚至能结合架构图中的标注信息给出更完整的回答。在实际测试中,对于排版复杂的 PPT,识别效果明显好于我们之前用的普通解析方案。
解析格式上,比较常见的 PDF、DOCX、PPTX、XLSX、Markdown、TXT 都支持,扫描版 PDF 也能通过视觉模型处理。但不同类型的文档,解析效果差距很大。纯文本型 PDF 解析最稳定,Word 文档次之,PPT 容易遇到文字在图片里、文本框跨页的问题。所以我们在导入 PPT 时有个习惯:先在源文件里把关键页导出成高分辨率图片,图片的解析效果经常比整份 PPT 的解析效果更可控。
这里要特别提醒,WeKnora 部署上线的第一件事,是先做十份不同类型的样本文档解析测试,不要直接批量导入全部文档。解析质量差的文档,进知识库后就是垃圾进垃圾出,检索时会不断污染结果。先在小范围内确认每种格式能处理,再放开批量导入,能省下后面很多排查的时间。
3.2 知识库创建和检索参数调整
在 WeKnora 里建知识库很简单:新建一个库,上传文档,等待解析和索引完成。但要让这个过程稳定可控,有几个细节值得注意。
首先是切片大小。如果切片太大,一个片段里混了太多主题,检索召回的片段不够精准;如果切片太小,上下文信息不足,模型回答容易断章取义。我们团队的经验是:技术文档切片设为 500 到 800 字左右比较合适,问答型文档可以更短,200 到 300 字反而效果更好。这个没有绝对标准,要拿着真实问题来测。
其次是嵌入模型的选择。WeKnora 对多种向量模型兼容性都不错,我们用的是中文场景表现较好的开源嵌入模型,在私有化部署时避免了数据出内网的问题。如果文档以英文为主,可以选英文效果更好的向量模型。模型换过之后,需要重新跑一遍索引才能生效,所以一开始就要想清楚,不要上线后再频繁切换。
然后是检索策略。WeKnora 支持向量检索和关键词检索混合的方式。很多 RAG 项目只做向量检索,遇到专有名词、缩写、版本号时会抓瞎,因为向量相似度对这类精确 token 匹配不敏感。混合检索能显著改善这一点。上线前期可以稍保守一些,把召回数量调大一点,宁可多召回再让模型自己筛选,也别因为召回太少导致答案缺失。
最后是测试闭环。我们内部总结了一个小方法:每配置完一个知识库,就准备二十个真实业务问题,一半是"文档中有明确答案"的,另一半是"需要跨文档综合"的。用这套固定题库去评测每次调整前后的回答质量,改变切片、换模型、调检索策略后立刻跑一遍,结果一目了然。没有这个评测过程,调优就变成了凭感觉瞎调。
3.3 把 WeKnora 和 Obsidian 联动起来
之前有朋友问"weknora 和 obsidian"怎么一起用。这两者其实是互补关系:Obsidian 是笔记工具,负责内容的创作和管理;WeKnora 是知识引擎,负责把笔记内容变成可检索、可问答的知识资产。
目前常见做法是把 Obsidian 的 Vault 里相关 Markdown 文件同步出来,再导入 WeKnora。实现方式可以先通过 Obsidian 自带的 Git 同步插件,把 Vault 推送到代码仓库,再在服务器上定时拉取,把需要的文件复制到 WeKnora 的导入目录,或者调用接口上传。这样笔记写了,知识库自动更新,检索到的答案永远基于最新笔记内容。
如果你想在 Obsidian 里直接提问,也很简单。WeKnora 提供了查询 API,你可以在 Obsidian 里用自定义命令或者 QuickAdd 插件,把选中的文本发送给知识库,拿到返回结果后写回当前笔记。等于把 AI 检索能力嵌入到了你每天写作和思考的界面里,不需要来回切换系统。
我个人比较推荐的做法是:笔记分两层。一层是常青笔记,作为个人长期思考的沉淀,量不大但质量高,同步到 WeKnora 做深度问答;另一层是工作资料,比如会议纪要、项目复盘,按项目归类,全部导入知识库供团队检索。两层分开管理,既不会让知识库被垃圾笔记污染,又能保证真正重要的内容被索引到。千万别什么笔记都往知识库里丢,问一个问题召回几十条无关片段,那体验会非常差。
3.4 API 接入业务系统的三种方式
知识库最终要服务于业务系统,所以 API 是重中之重。WeKnora 对外提供查询接口,我们实际用了三种接入模式。
第一种是服务端调用。内部业务系统在后端集成,传入用户问题和知识库 ID,返回答案文本和引用的文档片段列表。这种模式适合嵌入客服工作台、工单系统、内部 Wiki,权限控制也最简单,API Key 只保存在服务端。
第二种是前端直连模式。在受控网络内部,可以通过 Web 应用直接调用查询 API,省一层后端转发。但这种模式需要特别注意 API 凭证泄露风险,只推荐在内网使用,并且要给 API 配置最小权限。
第三种是基于 API 做自动化流程。我们有个场景,每天有新的产品发布说明进来,自动通过 API 导入知识库,导入成功后触发索引完成回调,再把结果推送到企业微信群机器人。这基本实现了知识库的自流转,人力维护成本降了很多。
具体接入时,用 Python 请求库写一个简单的查询函数非常快,基本就是 POST 请求,带上问题和知识库 ID,解析返回结果里的答案字段和引用来源字段。但要注意,正式接入前务必确认并发限制和超时配置,不要默认它是无限并发服务。
4. 常见问题与排查实录
4.1 解析失败的典型原因逐一分析
这次热词里专门有一条"weknora解析失败的原因是什么",可见这是大家使用过程中最常碰到的问题。我们从测试到上线,遇到过至少四类解析失败,现在基本能快速定位了。
第一类是文档本身的问题。最典型的是带密码的 PDF、加密的 Word 文档,解析服务无法读取内容,直接失败。解决方法是导入前先统一去掉文档保护密码。另外,格式损坏的文档也会失败,比如一个文件明明后缀是 docx,其实内容已经损坏,Word 能打开但第三方库解析时崩溃。遇到这情况不要纠结,找源文件重新导出一次再传。
第二类是扫描件和图片型 PDF。如果文档是纯扫描图片,没有视觉模型配置或模型加载失败,就会提示解析失败。这个问题的核心是视觉模型配置,不是解析服务问题。确认配置正确后,再测一份扫描 PDF,如果还是失败,多半是模型服务接口不稳定,检查网络连通性和超时时间。
第三类是超大文档导致内存溢出。几百页的 PDF 带大量高清图片,解析进程内存占用会飙升,服务器内存不足就直接失败或整个容器重启。解决思路是控制单文件大小,超大文档先拆分成多个子文件再导入。同时保证解析服务容器有足够的内存上限。
第四类是文件类型伪装。改后缀名并不能改变内容类型,如果内部检测通过后缀识别类型,把一个图片改名为 PDF 再导入,解析器读取时发现魔数不对,就会报解析失败。这类问题最容易迷惑人,看到失败日志先检查文件原始格式再排查其他原因。
现实情况里,解析失败往往不是单一原因,需要结合日志逐层看。建议先看解析服务的日志,确认是读取阶段、识别阶段还是索引阶段报错,再针对性解决。排查效率最高的方法是准备一个小样本集,每种格式一份,每种失败类型一份,快速复现问题。
4.2 部署和更新过程中踩过的坑
部署阶段踩坑主要集中在三处:端口冲突、环境变量配置错误、模型 API 连接不上。端口冲突可以通过修改 docker-compose.yml 里的映射端口解决;环境变量配置错误症状很诡异,服务能起来但登录后功能异常,比如知识库列表一直为空,很可能是数据库连接串或对外地址配置不对;模型 API 连接不上则要先确认 API 地址从服务器能否访问,再确认是否配置了兼容的模型名称。
更新版本最常见的坑是数据丢失。表面上看只是更换了镜像,但实际上因为新旧版本的数据目录挂载点不一致,新容器启动后发现是空库,如果这时再把旧容器删除回收,数据就真的找不回来了。我们后来立了个规矩:任何版本升级都先停掉写入任务,做完整备份,升级验证通过前绝不删除旧容器。
还有一种更新后的问题:检索结果比之前差很多。这多半是新版本改了默认的嵌入模型或索引参数,旧数据没重新索引。解决办法是在升级说明里查看索引相关变更,必要时触发全量重建索引。全量重建很耗时,建议安排在业务低峰期执行。
4.3 检索效果不理想的十个排查方向
如果问答结果一直在胡说八道,先别急着怪大模型,往往是知识库链路的前端出了问题。我们总结了一个排查清单,优先级从高到低排序:
文档解析是否正常。如果文档本身解析出来就是乱码或者缺字,检索效果当然烂。可以用管理后台的文档预览功能,直接看解析后的文本内容是否完整。
切片策略是否合适。一个切片混杂了太多主题,或者一个完整表格被切开,都会影响召回精度。动手调整切片大小和重叠量,用固定题库测效果。
嵌入模型和文档语言是否匹配。中文文档用英文优化的向量模型,检索相关性一定会打折扣。
混合检索是否开启。如果只走向量检索,精确关键词匹配容易失效,重申一遍,专有名词多的场景一定要开混合检索。
召回数量设置是否过小。TopK 太小会漏掉关键片段,建议初期设置 10 到 20 之间,再根据效果收敛。
知识库是否混入大量无关文档。一个库里堆了几十个主题,相关性噪声会淹没真正答案。这时候用元数据过滤,或者在库层面做拆分。
大模型 Prompt 是否没有约束它基于引用内容回答。知识库提供了引用片段,但模型可能忽略引用、自己去联想,需要在 Prompt 里明确要求它只基于给定的上下文回答。
系统 Prompt 是否过长。上下文窗口被系统 Prompt 占满,挤占了引用片段的空间,导致关键信息丢失。
问题本身是否表述模糊。相同知识库,问题的措辞直接影响召回效果。可以尝试把问题改写得更具体再提问。
服务端是否有结果缓存。如果启用了缓存,旧答案可能一直生效,测试时会误判新配置无效。排查时先绕过缓存。
这个清单我们打印出来贴在工位上,遇到效果问题就从头过一遍,基本解决 80% 的疑难杂症。
5. WeKnora、Dify、RAGFlow 横向对比
5.1 三款产品的定位差异
Dify、RAGFlow、WeKnora 是现在提到开源知识库时绕不开的三个项目,但它们的定位其实完全不同。很多人把它们当成同一个品类的竞品,结果选型方向跑偏了,后面用起来特别别扭。
Dify 本质上是 LLM 应用开发平台,知识库只是它的一个数据源能力。它最擅长的是编排 AI 工作流、快速搭建聊天机器人、Agent 应用、以及在界面上拖拽完成 prompt 管理。如果你的核心诉求是快速做一个完整的 AI 应用,Dify 是效率最高的。但如果你的核心诉求是把几百份文档做成高质量知识库,Dify 的深度文档处理能力就相对没那么强。
RAGFlow 的核心优势在深度文档理解。它对复杂 PDF、版面解析有专门的处理管线,处理精度很高,尤其适合"文档排版复杂、对解析要求苛刻"的场景。不过,RAGFlow 更像一个知识库处理和检索的引擎,应用层能力相对有限,如果要对接业务系统,更多需要自己封装。
WeKnora 的定位处于两者之间但更偏向生产级知识库底座:它既有完整的 RAG 流程,也内置了知识库管理界面,同时提供了可直接对接业务的 API。它不像 Dify 那样强调应用编排,也不像 RAGFlow 那样只专注文档解析。一句话概括:Dify 适合做应用,RAGFlow 适合做解析,WeKnora 适合做知识库系统本身。
5.2 开源版与企业版功能差异梳理
在企业落地时,开源版功能通常只是起点,版本之间的功能差异直接决定了项目能否顺利推进。这里我把三者放在一起做一个粗略对比,注意不同版本更新很快,具体以官方最新说明为准。
| 对比维度 | WeKnora 开源版 | Dify 社区版 | RAGFlow 开源版 |
|---|---|---|---|
| 核心定位 | 知识库/RAG 引擎 | LLM 应用开发与编排 | 深度文档解析 RAG |
| 文档解析深度 | 多模态较全面 | 基础文档上传解析 | 复杂版面解析最强 |
| 知识库隔离 | 支持多知识库 | 基本知识库能力 | 支持多知识库 |
| 可视化界面 | 知识库管理较完整 | 应用编排界面最完善 | 面向检索调优 |
| API 完整性 | 查询/管理接口较完整 | 工作流和模型接口完善 | 查询接口可用 |
| 企业权限体系 | 基础能力 | 社区版功能有限 | 基础能力 |
| SSO/审计/精细权限 | 通常需企业版 | 通常需商业版 | 通常需商业版 |
在实际使用中,最明显的差距在权限和审计层面。企业内部上线知识库,不希望所有员工都直接登录管理后台操作,更不希望所有人都能看到全部知识库。开源版的权限模型普遍偏向简单,区分管理员和普通用户,做多部门隔离时通常要在业务层自己包一层权限控制,或者选择购买企业版。
另一个差距是可扩展性和运维工具。企业版往往附带更多监控指标、日志告警和部署模板,开源版更多依赖社区运维经验。我们的解决方案是:先用开源版跑通业务,同时把监控、备份、权限代理这些薄弱环节通过自建组件补上。这个思路适合大多数中小团队,能用最低成本把系统跑到生产级,后续有预算再评估商业授权。
5.3 知识库选型的三条建议
如果团队正在犹豫选哪款,我给三条实操建议。
第一,先明确角色。如果你要的不是"知识库",而是一个什么都能干的 AI 应用平台,选 Dify。如果你的场景就是知识库,选 WeKnora 或 RAGFlow。想清楚这一点,选型难度直接砍掉一半。
第二,看文档复杂度和多模态需求。如果资料主要是 PDF、Word、PPT 混合场景,且包含不少扫描件和图表,WeKnora 的综合体验更好,因为它的解析管线兼顾了多模态和批量处理能力。如果文档版面特别复杂,比如学术论文、报纸排版、复杂表格,RAGFlow 的深度解析优势更突出。
第三,看团队资源和后续对接。团队没有太多精力自研 API 封装和解析管线的,WeKnora 开箱即用的特性最有价值。团队本身有开发资源,想深度掌控每一层细节的,RAGFlow 这种更纯粹的引擎反而更适合。我个人更看重"系统能不能直接接到业务里",所以选了 WeKnora,这个决定到现在我们也没后悔。
最后再说一个在实际使用中的感受:知识库系统的价值,很大程度取决于内容运营的持续性。工具再好,不持续往里补充高质量文档,三个月后就会变成无人问津的摆设。我们团队现在养成了一个习惯,每次项目结束、每次重要会议开完,第一件事就是把产出物归档进知识库。技术选型只是开始,真正让知识库发挥价值的是把它嵌入到团队日常工作流里。这也是我这次折腾下来最深的体会。