惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

K
Kaspersky official blog
IT之家
IT之家
小众软件
小众软件
T
Tailwind CSS Blog
博客园 - 聂微东
V
Visual Studio Blog
博客园 - 三生石上(FineUI控件)
Hugging Face - Blog
Hugging Face - Blog
D
Docker
爱范儿
爱范儿
云风的 BLOG
云风的 BLOG
Google DeepMind News
Google DeepMind News
MongoDB | Blog
MongoDB | Blog
N
News and Events Feed by Topic
U
Unit 42
The Register - Security
The Register - Security
宝玉的分享
宝玉的分享
J
Java Code Geeks
H
Heimdal Security Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Stack Overflow Blog
Stack Overflow Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
酷 壳 – CoolShell
酷 壳 – CoolShell
雷峰网
雷峰网
T
The Blog of Author Tim Ferriss
博客园 - Franky
A
About on SuperTechFans
Webroot Blog
Webroot Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Recent Commits to openclaw:main
Recent Commits to openclaw:main
I
Intezer
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Project Zero
Project Zero
V
V2EX
博客园 - 司徒正美
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
The GitHub Blog
The GitHub Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
A
Arctic Wolf
罗磊的独立博客
Forbes - Security
Forbes - Security
PCI Perspectives
PCI Perspectives
SecWiki News
SecWiki News
大猫的无限游戏
大猫的无限游戏
Simon Willison's Weblog
Simon Willison's Weblog
The Cloudflare Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
F
Fortinet All Blogs
博客园 - 【当耐特】
Microsoft Azure Blog
Microsoft Azure Blog

博客园_首页

Plist 二进制格式 Milvus 和 PGVector,哪个更好? OpenClaw 已过时?在 VS Code 中运行 Hermes Agent! 第30篇文章:一个大三计科生的自白 Manim如何在数学公式中完美显示中文? Docker 部署 RocketMQ 5 并发编程核心概念辨析 C#事务处理最佳实践:别再让“主表存了、明细丢了”的破事发生 CLI 是什么?为什么大厂突然集体卷命令行? 【从0到1构建一个ClaudeAgent】协作-自主Agent UIImageView 设置图片不生效的原因排查 最小二乘问题详解20:无先验约束下的增量式SFM自由网平差 痞子衡嵌入式:大话双核i.MXRT1180之XIP应用里借助MU实现可靠Flash IAP的方法 AI Chat 封装, SemanticKerne.AiProvider.Unified 已发布 Windows下右键编辑js文件无法打开记事本——在注册表中使用环境变量 在后台服务中使用 Scoped 服务,为什么总是报错? H200 安装驱动并使用sglang启动模型 wireshark 抓包Trap上报告警内容 我用 AI 辅助开发了一系列小工具(2):图片压缩工具 [A Primer On MC and CC] 2.1 Memory Consistency 1 - 指令重排序和 SC 模型 Oracle数据库SCN推进技术详解与实践指南 玩转控件:封装个带图片的Label控件 Claude Code 4.7 真正该升级的不是模型,而是你的工作流 前端小白一句话,AI 帮我做了个颜值拉满的桌面媒体播放器。当代码不再是门槛,一句话编程就是现实。 5. WorkBuddy: 小龙虾的灵魂三件套,让你的小龙虾不只是工具 SQLite 分片方案实战:三种分片策略的深度对比 告别简陋 UI!一款基于 Fluent Design 和基于 WinUI 的开源免费、现代化的 Avalonia UI 控件库 关于二进制排列组合枚举的总结 AI开发-python-LangGraph框架(3-27-LangGraph从零实现大模型智能决策工作流) ElasticSearch主分片和副本分片概念详解 【002】HTTPS 粗解:证书、TLS 握手与对后端配置的影响 Hermes Agent 一周暴涨五万 Star,但我劝你别急着追 明明连接的是Redis的DB0,为什么能查到DB3的数据? 【从0到1构建一个ClaudeAgent】协作-Agent团队 熟悉电子元器件之后,电子小白下一步该怎么走? MAF快速入门(23)通过C#类定义Skills .NET 高级开发 | 手写一个对象映射框架 FastAPI数据库ORM怎么选?我肝了三个Demo后,终于不再纠结了 mysqldump 参数拾遗:在遗忘与铭记之间 C# .NET 周刊|2026年3月5期 Claude code入门 - 陈彦斌 一文学习入门 ThingsBoard 开源物联网平台 GitHub 热门项目 | 2026年04月16日 如何为GIT设置全局勾子,为每次提交追加信息 Number.isFinite和isFinite与isNaN()和Number.isNaN的区别 PortSwigger SQL注入LAB2 推荐一个测试人必备的Skills,从功能到性能全搞定(附详细实操和安装下载方式) 筑基期:掌握Odoo基础核心知识点02(Odoo XML 开发方式详解) GLM模型这么火,咱们用vllm也咧一个呗! 深入理解 AbortController:从底层原理到跨语言设计哲学 字符串学习笔记 多租户系统框架的基础模块设计和分析设计 Apache SeaTunnel Zeta 为什么能做到“又快又稳”? AI开发-python-LangGraph框架(3-26-LangGraph基本概念及第一个简单样例) Vue 3 组件通信,别只会用 Props 和 Emits 了,这几个狠活儿你得看看 ElasticSearch7.X版本配置密码 用Manim实现动态交点计算--从一个动点问题说起 团结引擎+Addressable+Instant Game打包抖音小游戏 function call 实战:让 LLM 自动判断 pod 异常、调用日志工具并完成故障分析 bubseek —— 让 Agent 的足迹,变成团队的洞察 通过 C# 读取并导出 PDF 书签 如何用 GitHub Actions 实现 Steam 自动化发布 【从0到1构建一个ClaudeAgent】并发-后台任务 .NET 高级开发 | 定制 ASP.NET Core 框架 电子小白:什么是运算放大器(运放) zero2Agent:面向大厂面试的 Agent 工程教程,从概念到生产的完整学习路线 堆上的ORW HC32F460 USB CDC通信异常:非对齐访问异常排查 20260413-Hyperbridge 攻击事件:发生在默克尔山上的验证绕过 那些喊着AI 要淘汰你的人,正在靠你的焦虑赚大钱! 深度学习进阶(八)Swin Transformer 最小二乘问题详解19:带先验约束的增量式SFM优化与实现 SnapTranslate 3.0 正式发布:全局划词翻译 + 完整英语学习闭环,一站式搞定查词、记词、复习 工作的意义、工作的困难认知再思考 .NET + AI 进阶实战:基于类的技能开发 - 打造可治理的 Agent 能力模块 【从0到1构建一个ClaudeAgent】规划与协调-技能 上周热点回顾(4.6-4.12) 电子小白的工具三件套:面包板、杜邦线、万能板 单表五亿数据的查询优化 | Mysql、StarRocks 2. WorkBuddy:从“我是谁”到“帮我干活” C# 如何减少代码运行时间:7 个实战技巧 基于HelixToolkit.SharpDX 渲染3D模型 - 笺上知微 从零开始的双臂具身VLA起源及现阶段发展综述 - SkyXZ 记对 xonsh shell 的使用, 脚本编写, 迁移及调优 - pluvium27 受够了Vibe Coding的失控?换个起点,让AI事半功倍 从开始配置漏洞环境到漏洞复现流程 - 難しい 关于10年工作经验的程序员对OpenClaw的实战经验分享以及看法 - 虚无境 Any metadata 的内存布局 C# .NET 周刊|2026年3月2期 - InCerry 我帮你测过了,测试圈排名第二的 Skill 依然很牛逼 Skill Discovery | 无监督技能发现的经典工作总结 - MoonOut 上下文工程是什么?过时了么?一文讲明白! - 一枫说码 开了 TUN 模式还是直连?90% 的人都踩过这个坑 AScript扩展多种脚本语言 - rockey627 AI 学习笔记:Agent 的记忆机制 你能被装进一个文件里吗?——7 万人把同事"蒸馏"成了 AI - 我没有三颗心脏 Claude Code 通关手册(七):给 AI 装上技能包——Skills 完全指南 - 暮色之狐 在浏览器中快速编辑代码:VSCode Web 集成实践 - Newbe36524 蒸馏自己 skill?基于 Deepseek 的蒸馏器,丐版蒸馏方式,简单便捷 - To_Carpe_Diem Spring AI Aliababa和AgentScope,哪个更好? - 苏三说技术
5年,一个程序员是如何把私有化在线客服系统做到第一名的
升讯威在线客服系统 · 2026-06-18 · via 博客园_首页

我是一个独立开发者,已经持续多年开发维护一款自己的产品:升讯威在线客服与营销系统。

5 年前,我开始记录和分享独立开发与维护这款产品的过程:

早期博客分享

一转眼 5 年过去了。今天对我来说同样是具有里程碑意义的日子,一个大客户经过长达近 3 个月的评估,测试,终于签单了。过程十分辛苦,甚至一度让我有点想放弃,包括不限于:

1)和客户的技术团队在腾讯会议多次 battle,从技术方案到各种边界场景的应对。
2)前期为客户提供了过往的一些测试数据,包括一个真实的 2000 访客在线视频,客户依然要求必须在其部署的测试环境给出压测方案。
3)信息安全,要求我证明在 100% 私有化部署的情况下,确确实实没有后门,口头承诺当然不行,必须技术验证。
4)性能指标,由于涉及到向上级单位申请服务器和带宽预算,必须给出有理有据的服务器和带宽诉求计算依据。
5)对经过压测的测试环境,不允许停机,直接抽取性能指标数据。参阅我的上一篇博客:“使用 dotnet-counters 观测升讯威客服系统内存占用情况和数据吞吐性能”。
6)OpenAPI 接口对接的流程和字段讨论,如何适配客户的业务流程。
7)其它各种合规工作……

我依然记得曾经打工的地方,领导为了强行安插一个小姑娘来接手所谓的“产品”工作,经常使用的 PUA 话术就是:“你只是个程序员”。 😂

经过这个大客户长达近 3 个月的高压,客服系统也确确实实在稳定性和性能上再次上了一个台阶,我在更新记录中做了详细记录,这几个月几乎全部的精力都用在了这方面:
https://docs.shengxunwei.com/Post/f7bc8496-14ee-4a53-07b4-08d8e3da6269/659b9d6f-7258-4302-9c5f-df0a4a2d87f5

回到正题,经过这一役,我忽然想,我做了 5 年多的这款在线客服系统,到底在市场上处于什么位置?于是我做了一些调查。

我现在的位置

Docker 拉取数量

镜像拉取数量达到了 3.8K。 在市场上能找到的一些私有化部署客服系统中,目前处于第一的位置,并且增速很快。
我上传 Docker 镜像的第一年和第二年,都只有几百个拉取,第三年开始每年几乎是翻倍的增长。
此外由于中国很多地方无法成功拉取 Docker 镜像,我提供了一个导出的镜像文件给用户下载,这部分数量没有统计在内,可能比 Docker Hub 上的拉取数量要多。

升讯威客服系统Docker

私有化部署包下载量

我在官网上提供了完整的私有化部署包下载,截至 6 月,2026年已经实现了 1211 次下载。从折线图上能看到下载量从 2024年开始起飞。

升讯威客服系统下载量统计

我的线上 SaaS 环境数据

除了提供私有化部署为主要服务方向外,我也提供了在线使用的 SaaS 环境,截至目前,实现了近 2400 万次会话。

升讯威客服系统SaaS环境使用量统计

我是怎么做的

首先产品要稳定可靠

要有十年磨一剑的耐心与意志,一定要先把产品做好,这是一切推广的前题。

在开始推广宣传之前,要确保产品达到了相当的稳定可靠水平。避免前期好不容易找到的用户在试用之后就放弃,失去种子用户,也避免给自己的产品口碑带来负面影响,再想纠正难度会大大增加。

在我开发维护同一款产品多年之后,我切身感受到 “口碑” 对产品生命力的影响之大。所以要做就认真做,珍惜你的每一个用户。

产品要容易使用,正常人的思维要能理解

在推广前期,想积累用户很困难,一定要尽可能的把用户留下。

只有容易使用,低使用门槛的产品才能相对容易的把用户留下,从用户的注册流程到使用细节,都必须足够友好,做到不需要看用户手册,只需凭借正常人的基本思维理解就能开始使用,避免非常技术性的表述和非常隐晦的操作逻辑。

在我做项目经理的时候,我曾很直白的对开发团队说:我希望这个功能,只要识字的人就会用。(可惜打工的环境做不到,总有各种人不希望看到产品被估好,你的工作被做好)

现在有许多产品的设计,初看挺高大上,界面很是简洁,再一用,发现不太会用,必须要仔细的观察和理解,摸索着用。有很多界面的表达细节,片面追求“好看”,追求“高大上”,操作过程看似很有逻辑性,实则极其隐晦。我认为这是大量的年轻人从事所谓“产品经理”的岗位造成的。对产品没有质的理解,对用户没有敬畏和同理心。现在极少有所谓的“产品经理”能够听取用户建议,他们更加崇拜乔布斯,信奉用户不知道自己想要什么,无法理解为什么 Windows 能够成为生产力工具。

常见做法比如 滚动条 1 毫米宽;图标不带文字以显得更精致;有二级菜单不知道,要点了才知道,文字必须要小,颜色必须要淡,位置必须要边边,诸如此类智障的设计。

对这类产品设计我是持保留意见的,我认为有两种情况:

  • 如果是大厂产品,毕竟用户也没什么选择,你想怎样就怎样吧。而且对于在大厂打工来讲,政治正确和占据理论高点、高大上,其实比用户真实想法更重要,卷来卷去的不容易,在你没有话语权的情况下,接地气的想法和做法可能会显得比较 low ?

  • 如果你是独立开发者,你的目标就变成了把事情做好,而不再是玩弄组织规则牟利,在这种情况下你唯一要关注的只有用户的想法,其它的都不重要,你唯一要做的是向用户证明你的产品好用,正常人容易理解,而无需向同事和领导证明你的理念更高端受教育层次更高。

当你做自己的产品时,必须在思路上要有清楚的认知,好好做一款正常人能理解,方便使用的产品。

要有完善的文档和说明书

为用户快速了解产品,进一步理解产品,提供指引。大部分程序员都不爱写文档,但这很重要。

既然说产品要容易使用,为什么又讲到要有完善的文档和说明书呢。你要为用户的使用设计一个递进的层次。往往用户是在直接体验,感觉良好之后,才有可能看你的文档和说明书。所以两者不矛盾。

我在推广升讯威在线客服系统之前,专门花几天时间写了一个简单的在线文档系统,最初只是参考 MSDN 的版式简单克隆了一下详细的介绍了私有化部署的方法,软件的基本功能,后来我发现文档系统的访问量慢慢变得非常大,我又做改版,加入了全文检索,美化了页面,提升了体验。

我仔细设计了文档的类目结构,一步一步分解了软件的部署和使用过程,特别是对于安装部署的过程,我写完之后,就自己严格跟着文档在纯净的系统上跟着做,发现有疏漏的地方就立即补充修改。

https://docs.shengxunwei.com/Book/kf

升讯威客服系统在线文档

用户根据文档,就能自己完成系统的搭建,一方面使我能够积累到更多的用户,另一方面也减轻了我自己的精力,在有详细文档之前,需要花很多时间回答用户的疑问。

详细的文档为我默默积累了许多前期用户,对于大部分人来说,如果没有详细的文档,他们会直接放弃使用你的产品,而不是来咨询你,这一点很重要。

升讯威客服系统用户正面反馈

要听取用户的反馈,对用户要有同理心

不要嫌弃用户,不要试图教育用户。

我怀疑现在几乎没有任何一个“产品经理”会听取用户意见和反馈,毕竟有经验的产品经理(对,这里没有双引号),年龄都不小了,应该已经去送外卖或者开滴滴了。

前文我用了一些篇幅说明产品要易用易于理解。即便如此,在我推广自己产品时,也经常会被用户的反馈弄到懵逼,怎么会有人这样理解(某个功能或操作)?

但我总是耐心听取用户的意见和反馈,在我向用户解释说明之后,我会第一时间修改调整产品的界面设计或文字表述,使同样的疑问不再产生第二次。因为我知道产品是为人服务的,不是用来证明我自己的。

我记得在公司打工的时候,有时提出一些用户体验方面的意见,总是被嘲笑。 其实近几年,我才慢慢体味到:其实他们不是嘲笑你这个想法本身(你什么想法这不重要),只是借机嘲笑你这个人,毕竟,组织里向上走的通道越来越狭窄,能踩一个是一个。

早期的种子用户为我提供了极大的支持,在产品的完善过程中,给予了极大的耐心和支持,在此表示感谢:

升讯威客服系统用户正面反馈

不要试图向你身边认识的人推广,除非有利益捆绑

不管你做的产品多么的好,多么的有用,你身边的人永远不会愿意给你抬轿子,这是人性。

在我身边有许多认识的人,这么多年下来,依然不相信我懂技术是做技术的。后来我明白了,是他们选择不相信。

“老曹你现在做什么,做销售啦?”
“你做产品经理?再说吧再说吧。”
“老曹你要注意,以前有个人就是把公司代码传到网上....”

曾经和同事探讨一个观点,对方积极辩驳。正巧领导过来加入探讨,正巧和我观点一样。后来同事说:“他说可以,反正你说就不行。

在早期我想推广自己的产品时,总是先从身边认识的人着手,浪费了很多时间,后来我明白了,别人不想给你抬轿子

通过升讯威客服系统,我认识了很多新朋友,其中有许多朋友对我的帮助非常大,甚至有许多人对我提供了非常直接的帮助!
但是,我过往的朋友、同事,一个都没有,他们甚至没有一个人注册我的产品看一看,没有。

中国有这么多人,这么多企业,这么多网民,无论做什么,都一定要想办法打开更广阔的空间,去寻找机遇,有太多的事情可以去做。

哪怕自己去地推,去陌拜,都是可以的,一定会有收获。

得到用户的肯定之后,确实有成就感

前些天有个用户上线,上线前在内部做了个小的压力测试,也没有提前和我说,完了才截图给我看。当时还是非常高兴的。我自己业余时间做的系统只能自己用测试工具跑一跑,肯定没有这样的人力去测试,这是第 1 次在用户真实环境真实的压测,整个过程没有任何问题。


如果您感兴趣:

升讯威客服系统仍处于不断演进的过程中。
如果您曾经构建或部署过实时聊天系统,我非常期待与您交流心得。

无论您倾向于使用托管版还是自行部署(Self-hosting),都可以免费使用。