KnowWork 是一个面向企业私有化部署的 Agent 平台。它以 DeepSeek Harness(下文简称 DSH)为内核,把企业上线一个 Agent 要的账号权限、会话沙箱、审批、审计和用量统计都做好了,开发者只需要写技能、接工具、接知识库。 今天第一个公开版本 v0.0.1 发布,代码和镜像都用 Apache-2.0 许可,没有附加条款,可以商用,也可以改名、换 Logo 交付给客户。

DeepSeek Harness 加上 RBAC 权限、企业沙箱、知识库、模型网关、审批审计、技能管控和私有化部署,就是 KnowWork,记忆层还在计划里
我们是做私有化知识库 KnowFlow 的团队。最近看到的变化是,企业想私有化部署 Agent 的越来越多,招投标里写着"智能体平台"的项目也在变多。合同审查、制度问答、报表整理、工单处理,每个行业都会长出一批贴着自己业务的 Agent,这个方向我们长期看好。
业务之外的那一层,每个团队都在重搭
真要把一个 Agent 私有化部署进企业,花时间的地方大多不在业务上。谁能用哪个模型、哪个知识库、哪个工具,要和企业的部门树对上。模型发起的命令和文件操作不能碰到服务器上的其他数据。写操作要有人批,每一步事后要能翻出来看,用量要能按人算清楚。模型密钥和业务系统的凭证,也不能交给 Agent 自己保管。
这些道理都不难懂,做起来却很费工夫,而且每个团队都在从头做一遍。等账号、权限、审计都搭完,留给合同审查本身的时间已经不多了。KnowWork 想把这一层做成开源的,大家直接拿去用。
DSH 让 Agent 会干活,KnowWork 让你只管业务,企业私有化要的那一层,它已经做好了。
内核用 DSH,一行都不改它
DSH 是 DeepSeek 开源的 Agent 运行时,工具调用、技能、子 Agent、待办清单、向用户提问它都有,整套能力靠配置档和插件组装。我们选了它,也决定不 fork 它。KnowWork 只用 DSH 的官方扩展点,所有 @deepseek-ai/* 包锁在同一个版本,当前是 0.2.1-rc.2。升级前先跑一组准入测试,建会话、执行、取消、恢复、加载技能、调子 Agent 都过了才换版本。 DSH 往后加的能力,我们跟着升级就能用上。DSH 原生的待办清单和提问,在 KnowWork 的网页里都能直接看到、直接回答。
不 fork 也有代价,有些官方插件的默认做法得换掉。DSH 的官方插件默认在本机开 shell、读写本机文件,这适合一个人用自己的电脑。企业服务器上有数据库连接、密钥和别人的数据,附件或者知识库里只要混进一段提示词注入,模型就可能照着去执行。
所以 KnowWork 的配置层把官方的本机 shell、终端、文件系统和子进程插件停掉,换成我们自己写的远程实现。模型照常调用官方的 bash 和文件工具,命令却经过业务服务,落到这个会话自己的 Docker 容器里。
一个会话一个容器
会话沙箱的 Docker 后端参照了 WeKnora 的做法。每个会话一个容器,按需创建,空闲 30 分钟回收,再用时附件会重新放好。容器里的命令默认用 root 执行,模型能装包,也能改容器里的任何文件,所以隔离全靠容器本身,会话之间、用户之间、容器和宿主机之间都隔开。
-
• 容器去掉 Linux 能力以后,只加回装包要用的七项,并禁止提权
-
• 内存和交换设成一样大,失控的内存分配直接被杀,进程数也有上限
-
• 网络默认能出网,部署时可以整个断掉
-
• 命令超时或者用户取消时,整个进程组一起杀掉,不留后台子进程
-
• 需要内核层隔离的部署,可以把容器运行时换成 gVisor

模型写文档、跑脚本的命令,都在这个会话自己的沙箱容器里执行
沙箱里预装了 Office 工具链,Word、Excel、PPT 能生成,也能在原文件上带修订痕迹改稿、加批注、重算公式。这里我们换掉过一个官方技能。DSH 自带的 Office 技能依赖 LibreOffice Kit,它在 Linux 上只有 WASM 版本,我们实测每次调用约 17 秒,占内存约 1.4 GB。换成原生 LibreOffice 以后是 2 到 5 秒,约 190 MB。现在内置的 Word、Excel、PPT 三个技能来自 KnowFlow,跑在原生 LibreOffice 上。

沙箱里生成的培训 PPT,交付以后在网页上直接预览,每条要点都标着条款号
沙箱也有代价。命令要等跑完才一次拿回输出,需要和宿主实时双向通信的 DSH 能力,目前接不进来。我们觉得这个代价值得付。
密钥和权限都不进 DSH
DSH 跑在运行时宿主里,宿主不存任何密钥,也不做任何权限判断。
KnowWork 由三个进程组成。浏览器只连 Python 写的业务服务,账号、权限、模型密钥、审计都在这里。DSH 跑在 Node 写的运行时宿主里,它要调模型、执行工具、下载技能、操作沙箱,都拿着业务服务签发的短期令牌回调业务服务的内部端口。这个端口只在业务服务和宿主之间的内部网段上监听,网关转发不到。
接 MCP 时我们也按这个规矩来。DSH 有官方的 MCP 客户端,可它把 MCP 服务的凭证写在宿主配置里,调用也绕过了业务服务的授权和动作回执。KnowWork 改由业务服务连接 MCP 服务,凭证加密后入库,界面上只露末四位。管理员接入 MCP 服务以后,可以按人、用户组、部门授权,知识库和模型也一样。每次工具调用按动作唯一记一条回执,重试时写操作不会执行第二遍。

管理端把知识库授权给部门,下级部门沿部门树继承
模型调用也走业务服务,所以每个人、每个模型的用量都能算清。用自建大模型的团队会碰到一种情况,长上下文的首字要等一分钟以上,模型写长脚本时,工具参数也可能一两分钟才发出来。网关只在模型已经开始出字、中途停住时按空闲超时截断,首字之前和工具参数生成期间只看总时长。这几处调整在 v0.0.1 发布之后才完成,会随下一个版本发布。

运行详情里能逐步回看每一轮,每一步调了哪个工具、传了什么参数
技能能管住模型
企业里的很多活,步骤不能少。合同审查要先抽条款,再对照公司模板,模型跳过对照直接下结论,结论再像样也不能用。
技能声明的工具没有调用成功,模型就交不出最终回答。
KnowWork 的技能是一个 SKILL.md 加参考资料,打成 ZIP 上传,有草稿和发布版本,可以只授权给某个部门。技能可以声明哪些工具必须调用成功,这一轮没做到,插件会把模型推回去补做,默认最多补两次。技能认领的专业工具,在技能加载之前模型根本看不到,免得它在不该用的时候乱用。
引用也做了同样的约束。工具每返回一条证据,业务服务就给它登记一个编号,回答里的引用编号只能指向这一轮登记过的证据,指向不存在的编号会被去掉并留下警告。接 KnowFlow 知识库时,只检索提问人被授权的库。用户点开回答里的引用,看到的就是工具当时取回的原文。

问宿舍押金怎么收、怎么退,回答里的每个编号点开都是制度细则原文
怎么用起来
需要一台 Linux(x86_64)服务器,装好 Docker 24 以上和 Compose v2.24 以上。镜像里会话沙箱最大,约 2.2 GB,磁盘要留够。
bash
git clone https://github.com/knowflow-ai/KnowWork.git
cd KnowWork
deploy/install.sh
脚本会检查环境、生成配置、从阿里云容器镜像服务拉镜像,等服务就绪后打印访问地址。所有镜像都放在阿里云,包括 PostgreSQL、Redis 和对象存储,国内不依赖 Docker Hub。云服务器上用 deploy/install.sh --url http://公网IP:8080 指定访问地址,并在安全组放行 8080 端口。
浏览器打开以后,按初始化向导建管理员,到「管理 → 模型」添加模型,模型别名填 default。DeepSeek、通义千问、自建的 vLLM,只要是 OpenAI 兼容接口都能接。然后回到工作台,开始第一个任务。
会话沙箱默认打开,它需要把宿主机的 docker.sock 挂给业务服务,相当于给了业务服务宿主机的 root 权限,只适合私有化单机部署。不需要执行命令和生成文件,可以用 --no-sandbox 关掉。
一起来做
v0.0.1 是第一个公开版本,接口和数据结构在 1.0 之前还会变,已知限制写在仓库的 CHANGELOG 里。长期记忆、技能验证台、固定工作流的界面都在接下来的计划里。
如果你手里有实际业务想用 Agent 来做,欢迎联系我们。我们正在招募共创客户,一起做企业私有化 Agent 产品,智能客服、合同审核、报告撰写都可以,不限于这几类。招募详情见 https://mp.weixin.qq.com/s/8iSlx3qiHFUPOavXlWopTA
KnowWork 和 KnowFlow、KnowFlow Analytics、KnowEval 同属一个产品家族。KnowFlow 管知识,KnowFlow Analytics 管数据,KnowEval 管评测,KnowWork 管干活。
项目地址 https://github.com/knowflow-ai/KnowWork ,欢迎提 Issue 和 PR,也欢迎点个 Star。