DeskcommCRM:一体化客服工作台的设计与实现

做客服系统的这些年,我越来越觉得“客户关系管理”这个说法被用滥了。很多团队上了一套CRM,结果客服手上还是开着三五个窗口:左边是客户资料,右边是工单后台,底下还挂着一个IM工具,电话响了还要切到软电话面板去接。这不叫CRM,这叫手工拼盘。DeskcommCRM这个项目,说白了就是想把“桌面”(Desk)和“沟通”(Comm)真正揉进一套系统里,让坐席在一个工作台上完成从客户识别、会话接待、工单创建到回访跟进的完整闭环。

这个项目适合谁参考?一个是准备自建客服系统或者说想替换掉老旧客服平台的技术团队,另一个是负责客服数字化选型的产品、运营同学。整套系统我把它定位成“以会话为中心、以工单为主线、以客户画像为底座”的一体化客服工作台,这篇文章会把我的设计思路、模块拆解、落地参数和踩过的坑一次讲透。

1. 内容整体设计与思路拆解

1.1 命名背后的核心语义

先拆这个名字。DeskcommCRM,Desk是工位,Comm是Communication,连起来就是“桌面通信”。我最初立项时有个很直接的判断:客服系统最大的痛点不是“没有数据”,而是“数据和沟通隔着一道墙”。

传统CRM的核心是“记录”,但客服的真实工作场景是“交互”。如果系统只记录结果、不承载交互过程,坐席就不得不在CRM和聊天工具之间来回切换,客户说过的需求要手动复制粘贴到工单里,电话里讲过的话没有任何文字留痕。这类问题积累到一定量级,客服体验和运营效率都会崩。

所以DeskcommCRM的第一个设计原则:让每一次客户交互都在系统内原生发生。不管是Web聊天、邮件、电话还是API接入的外部IM,消息和通话记录统一进会话中心,坐席的所有响应动作都在同一套界面里完成。

1.2 为什么做“一体化工作台”而不是“轻量工具集”

我当时考察过一些轻量方案,比如直接买一个在线客服SDK,再配一套工单系统,两套系统用API对接。表面上省钱省事,实际跑起来会埋不少雷:

  • 两套系统各有各的客户ID,客户身份合并要靠自己写逻辑
  • 聊天记录和工单数据分离,做不了“一个客户全旅程”的视图
  • 坐席要在两个系统间切来切去,培训成本和误操作率都会上升
  • 权限体系两套,审计困难

所以DeskcommCRM的设计目标不是“做一个客服IM”,也不是“做一个工单数据库”,而是把两者在数据模型层面打通,生成统一的客户实体、统一的会话记录、统一的工单流程。从产品形态上看,它是一个工作台,但从数据架构上看,它是一条完整的链路:渠道接入 → 会话统一 → 客户识别 → 工单驱动 → 服务闭环。

1.3 技术选型与模块划分思路

这套系统我采用前后端分离架构,后端按领域拆了几组核心服务,而不是搞一个巨大单体。

模块划分上,我坚持一个原则:会话服务只做实时通信和消息持久化,工单服务只做流程状态和SLA计算,客户服务只做身份归并和画像标签,三个服务之间通过事件消息异步联动。这样做的好处很明显:大促期间消息量暴增时可以单独扩容会话服务,而工单服务不会受到冲击。

技术栈上,后端用了Spring Boot,实时消息通道走WebSocket,消息队列用RabbitMQ处理事件分发,数据库MySQL保存结构化业务数据,Redis承担热会话缓存和坐席状态管理。前端是Vue 3,工作台界面用微前端拆分模块,保证页面再复杂也不至于成为维护噩梦。

2. 核心细节解析与实操要点

2.1 统一会话体系是地基

会话是DeskcommCRM最核心的数据对象。我在设计会话模型时,没有按渠道去建多个表,而是统一成一个会话主表,用channel字段区分来源,包括web_chat、email、phone_call、api_im等。

每条会话都绑定一个客户ID,客户ID又是一个独立实体,专门做“多端身份归并”。比如同一个客户在网站上留了手机号,又通过邮件来咨询,系统会根据手机号和邮箱去匹配已有客户档案,匹配成功的会话自动挂到同一个客户ID下面。这个能力非常重要,没有它就会产生大量“重复客户”,后面统计复购率、客诉率全部失真。

会话状态我设计成open、pending、closed三种。closed的会话不能直接再次打开,必须走reopen流程并生成一条事件记录,这么做是为了避免坐席悄无声息地“翻旧账”,确保每一次服务动作都有迹可循。

2.2 工单流转不是写状态机那么简单

工单模块是DeskcommCRM里踩坑最多的部分。很多初做工单系统的人第一反应是“无非就是状态机:新建、处理中、已完成”。但真实业务里,工单有类型差异:售前咨询、售后维修、投诉、内部协作,每种类型的流转路径都不完全一样。

我的做法是字段和流程解耦。工单基础表只存type、status、priority、assignee、customer_id、channel等核心字段,而每种type对应一套独立的流程配置。比如“投诉类工单”会强制经过质检审核节点,“售后维修类工单”则必须有产品SN号和物流单号字段。

再一个关键点是SLA。工单能不能及时响应直接决定客户满意度。SLA计算我建议单独做成一个定时扫描任务,而不是靠事件触发。因为事件驱动在服务重启或消息积压时容易漏算,定时任务配合工单状态变更事件双保险,才能保证SLA超时告警准确可靠。SLA策略包括首次响应时限和解决时限,每个类型都可以独立配置,超时后自动升级通知组长。

2.3 客户画像和标签体系怎么搭

客户画像不是“存一堆字段”就行。DeskcommCRM里我设计了基础属性、行为属性、业务属性三个维度的画像结构。

  • 基础属性:姓名、手机号、邮箱、地域、会员等级,主要来自注册信息和客服手动补充
  • 行为属性:访问次数、平均会话时长、常用渠道、历史工单数,由系统自动统计
  • 业务属性:最近一次购买时间、累计消费金额、售后次数、当前待处理工单,从订单和工单数据聚合过来

标签则分成“系统自动打”和“人工打”两类。自动标签通过规则引擎生成,比如“高价值客户”的触发条件是累计消费金额大于1万且最近购买时间在90天内;“重复售后”是30天内创建超过2个售后工单。人工标签是坐席根据对话内容自行添加,比如“意向强烈”“情绪激动”。

我强烈建议标签规则不要一上来就做机器学习,先用可解释的规则引擎跑半年,积累一批人工标注数据后,再考虑模型辅助打标。原因很简单:标签错了比没有标签危害更大,规则至少能让运营同学一眼看出打标依据。

2.4 坐席状态管理和通话排队逻辑

坐席状态如果只做在线、离线两种,现场调度会非常难做。DeskcommCRM里我细化了状态机:在线、忙碌、小休、离线。只有“在线”状态才参与新会话分配,“小休”用于上厕所、开会这类短暂离席,可以手动设置时长,超时系统自动置为“离线”并释放会话。

电话模块涉及排队和坐席分配。排队逻辑我采用优先级加等待时长的加权算法,简单说就是:排队中的客户先按VIP等级排队,同一等级内超过2分钟还没接入的客户权重不断提高,避免高等级客户插队导致普通客户长时间无人接听。

分配策略也是可配置的,支持三种模式:轮询分配、空闲优先、技能组优先。我默认推荐“空闲优先+技能组兜底”,也就是尽量让空闲坐席接听,但如果来话咨询的是售后问题,则优先分配到售后技能组。为了不让某个坐席被持续投喂,算法里还加了最大并发数限制,超过并发阈值的坐席会被暂时移出分配池。

3. 实操过程与核心环节实现

3.1 从零到一:跑通一条完整链路

我第一次搭建DeskcommCRM环境,目标是72小时内跑通一条“客户从网站发起咨询 → 坐席接待 → 创建工单 → 工单流转 → 客户回访”的完整链路。这期间不做多余功能,不看报表,不做标签,只保证核心链路顺畅。

第一步是部署基础服务。我把MySQL、Redis、RabbitMQ各起一个单机实例,先用最简配置把后端服务跑起来。数据库初始化脚本里包含了预设的角色、菜单和基础字典数据,这一步不能省,否则后面配置权限会非常痛苦。

第二步是创建渠道配置。在管理后台新增一个Web聊天渠道,拿到一段前端嵌入代码,然后在一个测试站点的页面上嵌进去。接着配好消息路由规则,新会话默认分配给售后技能组的在线坐席。

第三步是测试电话能力。我在开发环境接入了一个SIP中继,配置了一个测试分机,然后分别测试了坐席呼出、客户呼入、排队转接三个场景。重点要看通话结束后的CDR记录是否能正常写入会话中心,这直接决定后续话单统计是否准确。

第四步是创建一套最小可用的工单流程:新建工单 → 分配处理人 → 处理中 → 待客户确认 → 已完成。我没有加任何自动化策略,先让坐席手动流转,确认基本功能不出问题后,再逐步加上SLA计算和自动分配。

这条链路跑通后,才算有了一个可以给业务方演示的版本。很多团队上来就做高难度的智能分配、质检打分,结果基础链路天天出问题,业务方一周就失去信心。我对这种事情的建议是:先把主流程做到“能用”,再谈“好用”。

3.2 关键配置项与参数清单

以下是我在DeskcommCRM落地时觉得最值得花时间调优的配置项,整理成了一张速查表:

配置项推荐初始值配置思路
会话空闲超时10分钟超过10分钟客户无新消息,会话自动置为pending,防止坐席挂着一堆死会话
坐席最大并发会话5个超过后不再分配新会话,避免接待质量下降,根据业务峰值再调
工单首次响应SLA15分钟从工单创建到坐席首次回复的时限,超时升级提醒
工单解决SLA24小时(售前)/ 48小时(售后)按工单类型区分,售后涉及物流和检测,时限适当放宽
排队超时阈值2分钟超过后拨打回铃或开启留言模式
标签自动生成频率每10分钟批量扫描实时打标签消耗过高,批量扫描足够满足业务需求
回访提醒工单关闭后第3天形成一个基础的服务闭环,提醒坐席做满意度回访

这些参数不是拍脑袋定的,我建议上线前用历史数据做一次回放验证。比如把过去一个月的会话数据导入系统,模拟这些配置下的分配效果和SLA达标率,比上线后靠人工试错要靠谱得多。

3.3 权限体系和队列分配落地

权限设计上我按“角色 - 数据范围 - 操作权限”三层来配。角色有超级管理员、客服主管、坐席、质检员、只读访客。数据范围决定一个角色能看到哪些客户的会话和工单,我做了两种维度:按团队隔离,以及按技能组隔离。

举个例子:售后技能组的坐席默认只能看到分配给本组的会话和工单,看不到销售团队的客户名单。客服主管则拥有跨组查看的权限,质检员是只读权限但可以查看全组会话记录。

队列分配的核心配置在于“技能组”和“路由策略”的绑定。我上线初期把路由策略设成了最简单的一层:会话按渠道进入统一队列,队列绑定了售后技能组,组内坐席按照空闲优先原则分配。后期业务方提出要区分初级咨询和高级投诉,我才加了第二个队列,并给工单类型增加了“投诉”标记,投诉类工单自动路由到高级技能组。

这里想提醒一点:技能组不要一开始就拆太细。我之前见过有团队把技能组拆成10个,结果每个组只有一两个人,一旦有人请假整个组就没人接得住,最后又灰溜溜合并。合理的起步是拆到“售前、售后、投诉”三个组,等人多了再考虑二级细分。

4. 常见问题与排查技巧实录

4.1 会话分配不均衡

上线第一周,就有主管反馈会话分配“偏科”——某几个坐席一直忙,另外几个一直闲。我看了一下分配日志,发现问题出在“空闲优先”策略的实现上。最初的代码逻辑是坐席主动结束会话后才释放为“空闲”,但很多坐席习惯“挂着”会话去写工单、查资料,导致表面在看一两个会话,实际上已经忙不过来。

我当时没有直接改分配策略,而是先给坐席状态流转加了一个强制约束:会话进入pending超时5分钟,或者坐席手动标记busy,系统就立刻从分配池摘除该坐席。这个配置上线后,分配均衡度好了一些,但还没根治。

后面我又加了一个“加权繁忙度”指标:每个坐席的繁忙度=当前活跃会话数/最大并发数+最近30分钟已接待会话数×0.1,分配时优先选择繁忙度最低的坐席。从此以后,分配不均衡的问题才真正解决。这个指标公式不复杂,但效果非常明显。

4.2 重复客户数据一锅粥

测试期间我们发现,同一个客户用不同邮箱发邮件进来,系统生成了两个客户档案,两个工单分别挂在两个账号下面。这个问题如果不处理,业务方看到的数据完全不可信。

排查之后定位到原因:客户合并的匹配规则太宽松,只做了邮箱精确匹配,但有的客户用手机号注册,有的用微信授权,还有的姓名都填得不一致。我把匹配策略改成了“多级匹配+人工确认”:

  • 精确匹配:手机号一致或邮箱一致,自动合并
  • 模糊匹配:姓名+地域一致,或者姓名+公司名一致,进入疑似列表,由坐席人工确认后合并
  • 不匹配:直接创建新客户档案,等待后续匹配

这套策略上线后,重复率从12%降到了1.5%以内。人工确认那一步虽然多花一点时间,但比无脑合并导致信息错乱要安全得多。

4.3 电话模块和工单联动断裂

电话接入后的一个典型问题是:坐席接完电话,系统没有自动把通话记录关联到工单,导致客服要手动去会话中心找记录再贴到工单备注里。

我去查了事件链路,发现电话服务在通话结束后发出的“call_ended”事件并没有被工单服务消费。原因是事件类型名称两边不一致:电话服务发的是call_finished,工单服务订阅的却是call_ended,RabbitMQ在类型不匹配时直接丢弃消息,且没有死信队列兜底,错误就被吞掉了。

这个问题的排查经验很值得分享:异步事件链路一定不能只靠“肉眼对字段”,要统一事件命名规范,并且给每一个事件消费者加失败重试和死信队列。顺便说一句,这事之后我把所有服务间的异步事件,都加了核心链路日志追踪,消息积压或丢失都能在监控面板上第一时间看到。

4.4 高并发下的消息延迟

压测时发现,当并发会话数超过300个时,WebSocket消息会变得明显迟钝,客户端要等两三秒才能收到新消息。一开始我怀疑是WebSocket服务瓶颈,后来通过链路追踪定位到问题出在Redis。

当时每个会话的消息都要实时写入Redis做热缓存,同时还要同步到MySQL做持久化。写入链路过重,导致WebSocket推送被阻塞。我调整了策略:消息进来后先写入Redis列表并立即推送,MySQL的异步落库放到另一个线程池执行,批量化每隔5秒批量刷新一次。

这个改动立竿见影,并发400个会话时的消息延迟从秒级降到了200毫秒以内。但要提醒一句:异步落库虽然有性能优势,必须在服务重启时做好缓冲队列的数据补偿,否则容易出现消息丢失。我在落库线程池里加了队列长度监控,积压超过阈值会自动告警,避免静默故障。

4.5 常见问题速查表

现象可能原因处理建议
坐席不在线但系统仍分配会话给他坐席状态未同步,Redis中的状态过期时间设置过长检查坐席心跳机制,超时自动置为离线,心跳间隔建议不超过60秒
工单SLA超时但没有任何告警定时扫描任务没跑,或SLA策略未绑定到对应工单类型查看任务调度日志,确认工单类型的SLA策略已配置并启用
客户消息重复展示两条WebSocket消息和API轮询数据重复检查渠道接入方式,避免同时开启WebSocket和HTTP长轮询
队列中有等待客户但坐席一直收不到路由器队列绑定错误,或技能组内无在线坐席检查队列绑定关系,确认坐席状态和技能组归属
报表里工单数和会话数对不上工单关联会话的字段写入失败查看工单创建接口的入参,确认session_id是否传递成功

5. 场景扩展与深化方向

5.1 从被动响应到主动服务

DeskcommCRM跑稳之后,我开始考虑一个更务实的场景:怎样让系统从“等人来找”变成“主动发现”。比如某客户连续三次进线咨询物流问题,系统其实是可以提前预警的。我在规则引擎里加了一条“高频咨询预警”:同一客户7天内创建3个及以上工单,自动打标签并通知对应销售。

这类能力不需要太复杂,规则引擎就能完成,但对业务的价值非常直接。运营团队可以根据这些信号提前介入,而不是等问题升级成投诉才去处理。我觉得做客服系统最忌讳就是功能堆叠没有业务指向,每加一个能力之前,先想清楚它到底能驱动哪个业务决策。

5.2 智能质检和数据看板

智能化方面,我们先从“智能辅助”切入,而不是直接上全自动质检。做法是:会话结束后,系统基于关键词和时长做初筛,把疑似情绪激烈、语速异常、客户重复提问的会话标记出来,由质检员优先抽查。这样质检覆盖率从过去的5%提升到了30%,而且抽样对象更精准。

数据看板上,我重点做了三张报表:实时坐席状态看板、工单SLA达标率趋势、客户满意度趋势。这三张表基本覆盖了客服主管日常管理80%的信息需求。看板大屏不是刚需,但“数据能回答管理问题”是刚需。我不建议一上来就做一堆堆叠图、雷达图,先把管理层真正会看的几个指标打磨清楚。

写在最后的一点体会

项目上线这段时间,我最大的感受是:客服系统的核心从来不在于“功能多不多”,而在于“链路通不通”。DeskcommCRM这个项目从设计到落地,我走过弯路,也推倒过部分设计,但始终坚持“一个客户、一段旅程、一套记录”的理念。每次业务方提新需求,我都会先问一句:这个需求是让客户体验更顺了,还是让坐席操作更重了?如果两者都没有,那这个需求大概率不值得做。

如果你也在规划类似的系统,我建议从最小闭环起步,先跑通会话、客户、工单这条主线,再逐步叠加分配策略、SLA、标签和智能化能力。过程中一定要记录好每一次配置调整的前后效果,这些数据比任何经验分享都更能说明问题。客服系统没有标准答案,但流程跑顺之后,团队节省下来的时间和客户给出的正面反馈,会告诉你方向没有错。

相关新闻

构造与析构:对象生命周期核心原理与工程踩坑实录

构造与析构:对象生命周期核心原理与工程踩坑实录

有段时间我在维护一个内部教学系统,里面有个很诡异的现象:新建账号第一次登录时,头像永远显示默认图,要手动刷新两次才能恢复。一开始我怀疑是缓存,查到最后发现,问题出在对象创建后的初始化阶段——那块逻…

2026/10/19 21:21:08 阅读更多 →
Matlab实现BP神经网络多输入单输出回归预测及K折交叉验证

Matlab实现BP神经网络多输入单输出回归预测及K折交叉验证

多输入单输出回归预测,是我在实操里遇到频次最高的建模需求之一。手里攒了一堆自变量,想预测一个连续的因变量,数据不算多、关系又不线性,这时候BP神经网络往往是最省心的选择。它不像线性回归那样对模型形式要求严格,…

2026/10/19 21:21:08 阅读更多 →
大模型开发三大支柱:数据流水线、算法与基础设施实战解析

大模型开发三大支柱:数据流水线、算法与基础设施实战解析

这两年聊大模型开发,很多人都下意识盯着模型结构本身:用哪个开源底座、改多少层、参数量多大。可真到了自己跑项目,你会发现卡你的往往不是那几十行模型代码,而是数据怎么喂进去、训练怎么稳定不崩、多卡上怎么不浪费显存、迭代一…

2026/10/19 21:21:08 阅读更多 →

最新新闻

美赛B题O奖论文拆解:概率搜索模型与路径规划实战

美赛B题O奖论文拆解:概率搜索模型与路径规划实战

去年美赛B题一出,圈子里都在讨论那篇O奖论文。英文原题翻译成中文,核心是四个字:失联寻回。那篇O奖论文的标题如果直译,大概就是《从失联到寻回:某片海域的搜寻之旅》。我刻意不提具体海域名,因为做案例分析…

2026/10/19 22:05:38 阅读更多 →
多测站GNSS精密定位:Kriging插值与卡尔曼滤波实现网络RTK

多测站GNSS精密定位:Kriging插值与卡尔曼滤波实现网络RTK

很多人第一次看到“多测站 GNSS 精密定位 Kriging 卡尔曼滤波”这条链路时,第一反应都是:有必要这么复杂吗?单站差分、PPK、PPP不也能定位吗。我之前做某测试场的动态定位精度评估时也这么想,直到某次基准站距离用户站超过30km&…

2026/10/19 22:05:38 阅读更多 →
IM系统用户管理子服务架构设计与踩坑实践:从表结构到缓存策略

IM系统用户管理子服务架构设计与踩坑实践:从表结构到缓存策略

做IM系统,用户管理子服务往往是看起来最简单、坑却最多的那一块。很多人一开始会觉得,无非就是注册、登录、改个昵称、拉个好友列表,有什么好写的?但真正上手做才发现,一个IM系统里最基础的用户服务,牵扯到…

2026/10/19 22:03:35 阅读更多 →
DUT-OMRON数据集上的U-Net二值分割实战:边缘鲁棒与工业落地

DUT-OMRON数据集上的U-Net二值分割实战:边缘鲁棒与工业落地

简介:本资源是一套面向深度学习初学者与图像分割实践者的Unet多尺度分割实战项目,聚焦二值图像分割任务,特别适配DUT-OMRON数据集的端到端训练与推理需求。压缩包共2000个文件,主体为1979张PNG格式的训练/测试图像及对应mask&…

2026/10/19 22:03:35 阅读更多 →
XXE漏洞剖析:从XML外部实体注入到文件读取与SSRF防御

XXE漏洞剖析:从XML外部实体注入到文件读取与SSRF防御

大概在五年前做某次授权测试,目标系统有个不起眼的文件上传接口,响应报文里带着一段 XML 结构。当时随手改了改请求体,把实体声明换成了外部实体,结果直接把服务器上的/etc/passwd读了出来。那是我第一次真正意识到 XXE&#xff0…

2026/10/19 22:02:34 阅读更多 →
编译通过≠代码健康:C++静态检测原理与工具落地指南

编译通过≠代码健康:C++静态检测原理与工具落地指南

编译通过不等于代码健康:C静态检测到底在查什么我做C开发这些年,越来越觉得一个道理:编译器不报错,只是说你的代码符合语法和类型规则,它压根不关心你的逻辑是不是对的、指针是不是悬空的、资源有没有泄漏。很多问题要…

2026/10/19 22:02:34 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →