企业微信自动回复API落地实践:关键词匹配+AI智能对话架构指南

做企业微信消息服务这几年,我最大的体感是:客服人群里超过一半的提问是重复劳动。于是我做了个“企微自动回复 API”,从关键词匹配起步,后来接入了 AI 智能对话,这才把客服从复制粘贴里解放出来。这篇是我的完整落地记录,包含方案选型、代码设计、调参过程和踩坑清单,给准备自建企微自动回复系统的团队一个参考。

先交代一下背景。我服务的对象是几家以企微为主要客户触点的公司,比如本地生活服务商、电商代运营团队,他们每天在外部联系人私聊和客户群里收到大量重复问题——“在吗”“怎么退货”“物流到哪了”“发票怎么开”。之前要么靠客服手动复制话术,要么用第三方机器人,但第三方的问题很明显:规则配置改一次要等半天、关键词匹配逻辑封闭、完全不懂上下文,更别提私有化部署。客户希望数据链路自己掌握,于是才有了从零搭建自动回复 API 的完整项目。

这个方案适合谁?适合正在部署企微应用、想在自己服务器上实现消息自动应答的技术团队,也适合运营同学理解自动回复的能力边界。全文涉及的架构设计、规则引擎、AI 接入、排障经验,都是我实际跑过的,可以直接落地。

1. 需求分析与整体方案选型

1.1 消息场景的痛点与自动回复的价值

企业微信场景里,消息形态比普通微信要复杂一些。它有内部员工的同事消息,也有外部联系人的客户消息,还有客户群里的群聊消息。自动回复服务做在应用层,核心是要接收这些消息事件,做业务判断,再通过 API 主动回复。看上去只是“收消息—处理—发消息”三个环节,真正做起来才发现每个环节都有不少坑。

先说痛点。客服工作最大的成本不是打字,而是状态切换。客服处理一个售后问题时,突然被一条“在吗”打断,再切回来需要重新回忆上下文,这中间的时间损耗非常隐蔽但极其致命。只要消息量上来,两个人根本忙不过来。

我当时拉了一份数据,某客户一周内的私聊消息有 8000 多条,其中约 4600 条是重复问题。也就是说,就算把最基础的规则配上,能省下超过一半的人工回复量。这个数字直接决定了方案价值。

1.2 关键词匹配与 AI 智能对话的分工

项目启动时,我一度想直接“全上 AI”。当时大模型 API 已经很成熟,什么都能答,听起来完美。但冷静下来分析业务流量后,我发现这个想法不现实。

第一是成本。AI 调用按 token 计费,高频问题如果用 AI 处理,费用会非常可观,而关键词匹配几乎是零边际成本。第二是确定性。用户问“退货政策”,规则引擎返回的标准话术永远是同一句合规文案,AI 则每次可能生成不同说法,存在合规风险。第三是速度。关键词匹配是本地查表,几毫秒出结果;AI 接口响应再快也要一秒左右。

所以最终定了“先规则、后 AI”的两层架构:

  • 第一层,关键词匹配。处理高频、确定性、合规要求严格的问题,规则库管理,命中直接返回。
  • 第二层,AI 智能对话。处理长尾开放性问题,携带上下文请求大模型,但答案必须经过安全兜底。

这个架构还有一个额外收益:规则引擎积累的问答数据,可以持续用来校准 AI 的 system prompt,让 AI 更懂业务。反过来,AI 回答得好的问题,也可以沉淀成新的关键词规则,形成“数据飞轮”。

1.3 整体技术栈与消息链路梳理

整套系统的骨架拆成四个模块:

模块职责关键技术点
消息接收网关接收企微回调、加密校验、消息类型解析URL 验证、AES 解密
规则引擎规则存储、命中判断、动作分发Redis 缓存、正则匹配
AI 会话服务上下文管理、模型调用、结果过滤Prompt 模板、上下文裁剪
消息发送服务调用企微主动发消息 APIToken 管理、限流退避

这里的核心纽带是 access_token。企业微信 API 的 access_token 有效期 7200 秒,用 corpid 和 secret 换取。实际开发时必须做全局缓存,并且提前刷新,否则高峰期 token 过期会导致批量发消息失败。

我踩过这个坑:某天 token 缓存服务意外重启,所有发消息接口在同一时刻去请求新 token,直接打爆了企微 API 的频控限制,结果就是短时间内所有主动消息全部失败。那次事故之后,我专门写了一个 token 管理模块,后面会细说。

2. 关键词匹配层:第一道门的搭建要点

2.1 消息接收回调的完整链路

企微消息回调本质上是“服务器主动推送”。用户在企微里对你的应用发消息,企微服务器把你的 URL 当 webhook 调一次,把加密消息 POST 过来。开发时最容易出问题的是 URL 验证环节。

企微后台配置接收消息服务器时,会向你的 URL 发一次 GET 请求,带上 msg_signature、timestamp、nonce、echostr 参数。这里的要求不是简单返回 echostr,而是先用企微提供的加解密库对 echostr 解密,再返回明文。很多新手在这里会被绕晕,因为文档写得确实不够直白。

这里我强烈建议直接用官方 SDK 里的加解密类,不要自己手写 AES。企微用的加密算法是 AES-256-CBC,密钥是后台随机生成的 EncodingAESKey,这个 Key 如果配错一位,整个消息体就是乱码。我调试时的小技巧是:先用 SDK 解密,把解密后的明文打印出来,确认和回调参数里的 echostr 一致,再继续写业务逻辑,能省很多排查时间。

业务端接收 POST 消息后,消息是一个 XML 结构。文本消息的核心字段包括 ToUserName、FromUserName、MsgType、Content。需要从中取出发送者 ID(企微的 userid 或外部联系人 external_userid)和消息内容,再进规则判断。注意企微不同类型的消息字段差别很大,图片消息、位置消息、事件消息各有各的解析方式,一定要做好类型分支。

2.2 关键词规则引擎的设计与数据结构

关键词规则引擎是整个自动回复的“大脑”。我的原则很简单:规则绝不硬编码在代码里,必须放数据库,改规则不用发版。当时建的规则表结构大致如下:

CREATE TABLE `reply_rule` ( `rule_id` int NOT NULL AUTO_INCREMENT, `keyword` varchar(128) NOT NULL COMMENT '关键词', `match_type` tinyint NOT NULL COMMENT '0精确 1包含 2正则', `reply_type` tinyint NOT NULL COMMENT '0文本 1图片 2链接 3转人工', `reply_content` text COMMENT '回复内容', `priority` int NOT NULL DEFAULT 100 COMMENT '优先级,越小越靠前', `is_active` tinyint NOT NULL DEFAULT 1, `hit_count` int NOT NULL DEFAULT 0, PRIMARY KEY (`rule_id`), KEY `idx_keyword` (`keyword`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

这里我要重点讲讲 priority 字段,太重要了。比如用户发了“退款政策”,你既有“退款”的通用规则,也有“退款政策”的精准规则。如果直接按“包含匹配”去查,“退款”这个规则会先命中,返回的却是泛泛的退款说明,而不是政策详情。

我的解法是双阶段命中:

  • 第一阶段,把 match_type 为 0(精确匹配)的规则全部取出来,和消息内容做精确比对,命中就直接返回。
  • 第一阶段没命中,再查 match_type 为 1(包含匹配)或 2(正则)的规则,按 priority 倒序取第一条命中规则。

这样“退款政策”会先被精准规则接住,用户得到的是最具体的答案。“退款”兜底规则只有在没有更精准规则时才生效。这个顺序调整之后,误回复率下降非常明显。

还有一个容易忽视的点:关键词匹配要统一大小写。中文没这个问题,但英文、物流单号、订单号这些就有。我的做法是对消息内容统一做小写化。数字和字母混合的单号类关键词,建议用正则配置,直接匹配常见单号格式,比单纯写死字符串强得多。

2.3 关键词命中后的多动作扩展

很多人以为关键词匹配就是“返回一句话”,其实动作的类型可以很丰富。我在不同项目里实际用过的回复动作有这几种:

  • 纯文本回复。固定话术、政策说明、FAQ 标准答案。这是最基础的。
  • 素材消息回复。企微支持图片、语音、文件、视频消息,只需要在配置里填素材的 media_id。
  • 跳转小程序或链接。适合服务场景,比如引导客户进入小程序自助售后,或者跳转表单收集问题。
  • 拉取业务数据。命中“查订单”后,内部订单接口组装一个卡片,用模板消息返回,客户看到的是一张结构化订单卡片。
  • 转人工。命中“投诉”“人工”这类关键词,直接走人工客服分配逻辑,并推送一条“正在为您转接人工”的消息。

这些动作我统一封装成 Action 接口,规则引擎只负责“命中”和“选择动作”,具体的动作执行由各个 Action 模块实现。好处是新增动作不用改规则引擎代码,符合开闭原则。实际维护下来,这个抽象帮我省了很多事,后来新增“预约回调”动作时,只加了一个类就搞定了。

3. AI 智能对话接入:从“规则”到“理解”

3.1 模型接入与统一接口设计

关键词匹配的短板很明显:用户换一种说法就命不中了。比如规则库里有“发货时间”,用户问“我东西啥时候能发出来”,关键词一个都没命中。这时候就需要 AI 上来接住。

接入 AI 模型时,我强烈建议做一层代理接口,不要在各个业务模块里直接散装调用大模型 API。统一封装一个 chat 接口,所有模块都走这个口子。

# 伪代码:统一AI会话入口 def ai_chat(user_id, user_message, session_id): history = session_manager.get_context(session_id) messages = build_prompt(system_prompt, history, user_message) response = llm_client.chat( model="default", messages=messages, temperature=0.3, max_tokens=500 ) return filter_content(response)

这里最关键的是 System Prompt 和历史上下文。System Prompt 决定了 AI 的角色边界和业务规则。比如在售后场景,我当时的 system prompt 是这样设计的:

你是某电商企业的智能客服助手。 你只能回答与售后政策、物流查询、订单、发票相关的问题。 回答必须简洁,控制在100字以内。 遇到无法确定的问题,只回复:抱歉,我需要转接人工客服为您处理。 不要编造订单信息,不要给出与政策矛盾的建议。

这段 Prompt 看起来简单,实际上是试了很多次才定下来的。核心就一条:限制答案边界。模型越知道“哪些不能说”,幻觉就越少。

我见过太多团队把 AI 接入做成“裸奔”。不设 system prompt、不限制范围、不处理拒答,结果 AI 什么都敢答,业务方天天提心吊胆。所以我在设计这个接口时,第一件事就是规定 AI 不能做什么,其次才是能做什么。

3.2 会话上下文管理与状态保持

AI 多轮对话的核心是上下文管理。企微消息是一来一回的,你需要记录每个用户的上下文,否则 AI 记不清用户刚刚说了什么。

我的方案是用 Redis 做短期会话存储。key 设计为session:{user_id},value 存一个消息数组,每条消息带 role(user/assistant)和 content。同时设置一个合理的过期时间,比如 30 分钟无交互就自动清空。

# 伪代码:上下文管理 import redis r = redis.Redis.from_url("redis://localhost:6379/0") def append_message(user_id, role, content): key = f"session:{user_id}" messages = r.get(key) or [] messages.append({"role": role, "content": content}) messages = messages[-10:] # 最多保留最近10轮 r.setex(key, 1800, messages)

这里我踩过一个坑:一开始为了效果好,保留了所有历史消息,结果对话超过 20 轮后,请求 token 数量非常大,接口响应时间暴涨,费用也直线上升。后来实测下来,保留最近 8 到 10 轮对话效果最好,再老的上下文信息密度已经很低,反而会干扰模型对当前意图的判断。

上下文裁剪的核心策略是“保留尾部,丢弃头部”。用户当前的问题肯定在末尾,中间最近几轮决议相关度最高。只要队列长度超过阈值,就把最老的一组 user/assistant 消息丢掉,保持队列稳定。

3.3 AI 回答的安全兜底与转人工策略

AI 回复绝对不能“裸奔”直接发出去。我经历了两次事故后才把安全层补完整,都很有代表性。

第一次是内容合规问题。AI 偶尔会生成违反业务规则的回答,比如把“不支持七天无理由退货”的产品说成“可以退”。这种错误一旦出现,直接导致客诉。从那以后,所有 AI 回复在发送前必须经过一层内容过滤。

第二次是 AI 误判问题。用户问一个规则库没有、AI 也不确定的问题,AI 硬给了一个含糊答案,反而带偏了用户。后来我在 prompt 里加了“不确定就转人工”的指令,并且在代码层做了兜底:如果模型返回文本里包含预设的转人工标志,就直接走转人工流程。

兜底逻辑我画成四条规则:

  • 规则命中:关键词规则直接答复,不进入 AI。
  • 规则未命中:进入 AI 对话,带上最近 8 轮上下文。
  • AI 返回置信度低:触发关键词“转人工”,自动分配人工客服。
  • AI 生成内容包含敏感词或违反白名单:拦截回答,改发转人工话术。

实践下来,我把“AI 拒答率”当作核心指标来监控。拒答率高说明 prompt 太保守,把能答的问题都转人工了;拒答率低说明 AI 太激进,容易产生幻觉。每个业务场景的最佳值不一样,我的经验是先定在 10% 到 20%,再根据客诉反馈微调。

4. 联调、排障与性能优化实录

4.1 常见问题速查表

这部分我按踩坑频率排个序,都是真实遇到过的。

现象排查方向解决办法
回调 URL 验证失败解密算法、EncodingAESKey 是否配对用官方 SDK 调试,核对 token 与 key
收到消息但没回复规则未命中、token 异常、回调超时看日志链路,先测规则命中,再查 token
回复超过 5 秒企微报错同步调用 AI 模型太慢改异步预处理,或对模型超时设短一些
AI 回复乱码编码不一致、模型返回转义异常统一 UTF-8,检查引号与换行转义
重复收到同一条回调企微重试机制触发接口做幂等,以 msg_id 为唯一键去重
access_token 取不到corpid/secret 错误、IP 白名单未加核对配置,检查后台可信 IP
规则命中顺序不符合预期优先级设计不合理增加 priority 字段,日志记录命中链路

其中有两条我要单独拿出来讲。第一是重复回调。企微 API 为了保证消息可靠投递,在一定条件下会做重试。如果你的接口没做幂等,用户发一条消息,你的客服会收到两条甚至更多。我处理的办法是加一张消息去重表,以 msg_id 为唯一键,重复消息直接丢弃。

第二是调用 AI 超时。企微对被动回复消息的时效要求很严格,超过 5 秒直接报错。一开始我在回调里同步调用模型接口,用户体验很糟糕。后来改成“先返回一个正在处理的提示,再异步调用 AI,完成后主动推送结果”,体验反而更好了。不过这里要注意,异步发送需要在业务层记录请求状态,防止消息丢失。

4.2 性能瓶颈、限流与缓存优化策略

高频消息场景下,性能瓶颈往往不在规则引擎,而在 API 调用频率和数据库访问。我的优化思路分三个层次。

第一层是 token 集中管理。写一个定时任务,提前预热 access_token,在快过期前 10 分钟主动刷新,并加一个分布式锁防止多进程同时刷新。这样发消息接口永远有可用的 token,不会出现“等 token 期间消息堆积”的问题。

第二层是规则缓存。把规则表全量缓存到 Redis,用 hash 结构按关键词索引,命中时 O(1) 查询速度。规则修改通过配置后台发布时清掉 Redis 缓存,实现热更新。这个改造上线后,规则引擎的平均响应时间从 20ms 降到了 1ms 以内。

第三层是发送消息的频控策略。企微主动发送消息 API 有频控限制,大批量发送时容易触发限制。我的做法是做一个消息队列削峰,把发送动作投递到队列,由消费端按一定速率发送,并对失败率做监控,一旦报频控错误就指数退避重试。

4.3 安全与合规注意清单

自建企微自动回复涉及客户数据和聊天内容,安全层面我列几个强制要求。

一是消息内容最小化。日志里不要打完整消息明文,尤其是订单号、手机号这类敏感信息,脱敏后再落日志。比如手机号只打印前三位和后两位。

二是权限最小化。为自动回复服务单独分配一个企微应用,用独立的 corpid/secret,不要和其他系统的权限互相混淆。企微后台给这个应用配置最小权限集,只开通需要使用的 API 权限。

三是对外暴露的接收 URL 必须做签名校验。企微的签名验证逻辑要放在最前面,验签不过直接拒绝,避免恶意伪造请求。这个不做好,服务很容易被打。

四是 AI 模型的输出必须做内容过滤。把审核逻辑独立成一个服务,无论是规则引擎的回复还是 AI 的回复,发出去之前都过一遍。规则引擎的文案是人工维护的,相对安全,但 AI 的生成内容充满不确定性,必须重点过滤。

最后,关于数据留存时长建议在方案里也设计好。会话上下文在 Redis 里有自动过期,业务日志要定期清理归档。这个不只是合规问题,也是控制存储成本的手段。

做完这套方案之后,我最大的感触是:关键词匹配和 AI 不是替代关系,而是互补关系。想让自动回复系统既快又聪明,一定要把高频确定问题交给规则,把长尾开放问题交给 AI,同时在中间加一道兜底的安全网。如果你也在搭类似的企微自动回复服务,建议先把规则引擎做扎实,再逐步引入 AI 对话能力,不要一上来就全量 AI,否则成本和风险都不可控。

最后再分享一个小技巧。我在规则引擎维护后台里加了一个“相似问学习”功能:每当用户消息没有命中任何规则、且 AI 回答后又没有触发转人工,就自动把“用户原句 + AI 回答”存进待确认列表。运营同学每周看一遍这个列表,把高频的相似问整理成新规则,AI 的调用量就会一降再降。这套架构跑了大半年下来,我的感觉是越用越顺手,AI 承担的比例从一开始的 90% 降到了 30% 左右,但整体的回复准确率反而更高了。后续我还打算在会话层加情绪判断,把语气不好的消息自动优先转人工,这是下一个迭代方向。

相关新闻

AI论文写作工具实操拆解:4款工具搭配与完整流水线指南

AI论文写作工具实操拆解:4款工具搭配与完整流水线指南

又到了论文季,朋友圈里哀嚎一片。开题报告、文献综述、初稿、终稿、查重、降重……不少人都动过用AI帮忙的心思,但又不知道该从哪下手、用哪个工具、怎么用才不被导师看出来还是AI味太重。我前前后后试过不下二十款AI写作工具,踩过的坑比写过…

2026/10/20 19:36:09 阅读更多 →
2020全国行政边界CGCS2000数据处理:坐标转换与Python标准化

2020全国行政边界CGCS2000数据处理:坐标转换与Python标准化

简介:一份面向地理信息系统从业者、规划研究者及地理数据分析人员的全国行政边界矢量数据包,数据覆盖省、市、县三级行政单元,采用国家2000坐标系,保存为常用的矢量文件格式,适用于行政区划可视化、人口密度分析、区域…

2026/10/20 19:36:09 阅读更多 →
AI辅助文献引用管理:从检索到核验的六种实用技巧

AI辅助文献引用管理:从检索到核验的六种实用技巧

正文总算写完了,盯着满屏的参考文献却笑不出来——页码对不上、作者名格式不统一、好几处引用的内容我根本没读过原句。这种场景,经历过论文写作的人应该都不陌生。文献引用管理看着是细枝末节,真正动手整理时才发现它是个不折不扣的时间黑洞…

2026/10/20 19:36:09 阅读更多 →

最新新闻

模型量化如何影响推理性能?实战解析原理、选型与问题排查

模型量化如何影响推理性能?实战解析原理、选型与问题排查

在AI推理优化这条路上,量化是我见过投入产出比最高的手段。很多人以为量化就是把模型从FP32变成INT8,体积缩小、推理变快,但实操后才发现,AI模型量化对推理性能的影响并不只有正向:有时速度反而下降,精度却…

2026/10/20 20:20:51 阅读更多 →
基于Simulink的23自由度分布式电驱动整车动力学模型搭建与仿真

基于Simulink的23自由度分布式电驱动整车动力学模型搭建与仿真

做分布式电驱动车辆的控制,最头疼的问题就是你手上的整车模型到底该建多细。我这次在Matlab Simulink里完整搭了一套23自由度整车动力学模型,把车身六个方向的运动、四个车轮的垂向跳动、车轮旋转、转向系统、以及分布式驱动链条的扭转自由度全部拉进来了…

2026/10/20 20:20:51 阅读更多 →
用JSON和Python命令行构建个人技能管理工具:从数据建模到实践

用JSON和Python命令行构建个人技能管理工具:从数据建模到实践

1. 为什么需要技能管理工具:需求拆解与设计取舍上周末想更新简历,结果发现我根本说不清“现在到底会什么”。十几项技能分散在旧简历、脑图、收藏夹和一摞笔记本里,有的早已过期,有的只停留在“看过教程”的阶段,还有的…

2026/10/20 20:20:51 阅读更多 →
企业微信回调验证与AES加解密:.NET开发者接入指南

企业微信回调验证与AES加解密:.NET开发者接入指南

接手过几个企业微信自建应用的项目,每次新人对接时几乎都会卡在同一个地方:管理后台保存“接收消息服务器”配置时提示URL验证失败,或者明明验证过了,消息却一直推送不进来。这个环节看着只是填几个参数,背后实际上是一…

2026/10/20 20:20:51 阅读更多 →
vLLM Prefix Caching 原理:如何用 Paged KV 消除重复计算

vLLM Prefix Caching 原理:如何用 Paged KV 消除重复计算

先说一个我遇到过的情况。某个线上推理服务,所有请求都带着同一段两千多字的 system prompt,并发一上来,GPU 利用率看着很高,但真正对用户有用的计算没多少——大部分算力在一遍遍重复计算同一段内容的 K 和 V。很长一段时间里&am…

2026/10/20 20:20:51 阅读更多 →
用Design.md构建符合产品风格的原型设计:设计令牌实战指南

用Design.md构建符合产品风格的原型设计:设计令牌实战指南

上周跟某团队聊原型评审,对方把三个页面的设计稿拍在我面前,主色蓝就出现了五种,没有两个颜色值相同。评审会开了一个小时,快一半时间在争论“这个蓝到底是不是我们品牌那个蓝”。原型阶段最让人心累的从来不是画得快不快&#xf…

2026/10/20 20:19:47 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

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

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

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

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

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

2026/10/20 1:01:30 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 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/20 10:02:08 阅读更多 →
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/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练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/20 9:50:45 阅读更多 →