短信通知API集成实践:从选型架构到重试监控的工程指南
这些年我参与过的项目里短信通知一直是“用时方恨急”的模块平时没人管等产品提需求说要发验证码、发订单提醒才发现接口文档看不懂、服务商选型没概念、模板审核各种不过。很多人以为集成通知短信接口就是把 SDK 拖进工程填个 key 就能跑实际上工程实践里藏了不少坑。我写过好几个短信 API 模块从最初踩坑到大面积重构把一些经验和盘托出这篇指南主要写给后端开发、全栈工程师和刚接触短信服务接入的团队目标是让你在最短时间内做出一条能扛住线上流量、出问题可排查、后续好维护的短信发送链路。1. 把三件事想透再动手业务场景、通道类型、签名与模板1.1 你到底要发哪种短信短信看着简单但不同业务场景对应的通道类型、审核规则和发送策略完全不同一开始没分清后面配置基本白做。通常可以把短信需求分成三类。第一类是验证码短信典型场景是用户注册、登录、找回密码、支付确认。特点是时效性极强用户就在页面上等着晚到 30 秒转化率就掉一截而且同一号码短时间内的发送频次要严格限制防止恶意刷接口。第二类是事务通知短信包括订单状态变更、物流提醒、预约提醒、系统告警。这类消息用户不急着等但也需要较稳定的到达率重点是“该发的时候必须发出去”不能因为上游抖动就吞消息。第三类是营销短信促销活动、优惠券到期、用户回访这类一般需要用户主动订阅而且多数服务商要求在内容里加退订方式发送时间也被严格限制比如很多通道不允许在晚上九点之后发。我见过不少项目把三种短信混在一个模块里没区分通道结果营销短信排队排到验证码前面用户收验证码硬生生晚了十分钟。所以接入短信 API 的第一件事不是写代码而是把业务方喊在一起确认你现在做的到底是哪一类短信以后会不会扩展其他类别1.2 服务商通道能力怎么判断市面上短信服务商不少各家 API 结构大同小异真正拉开差距的是通道质量和服务边界。选服务商不要只看单价重点要看这么几个指标。送达率是底线指标但你没跑过量之前很难拿到真实数据。比较务实的做法是让对方提供近一个月的三网送达率统计同时拿测试签名和测试模板发一批真实手机号验证。测试环境是拉不了真数据的必须拿真实号码在真实通道上跑。接口并发上限同样关键。有些服务商虽然单价低但给企业签的账号默认 QPS 很低比如每秒只能发几十条注册高峰一到验证码接口立刻被限流用户侧表现为一直收不到短信。签约之前合同里必须写明并发上限最好预留两到三倍余量。再就是回调能力。说得直接点短信发出去了不代表用户收到了真正能证明到达的是服务商回传的状态回调也就是 report。有的服务商回调服务不稳定会丢状态或者延迟几十分钟这就导致你这边“已发送”“已送达”的统计全部失真。对接之前让服务商提供回调的历史稳定性说明并在联调时故意制造几条失败短信看回传是否及时。1.3 签名和模板看上去是配置项实际是审核关卡很多人第一次接短信 API反复报错就卡在签名和模板上。签名就是短信开头那对括号里的名字比如【某某应用】。签名不是随便写的服务商需要企业资质证明个人开发者往往只能用已备案的公众号或小程序主体去申请。签名审核通过后你调发送接口时填入签名 ID 或签名内容服务商那边会比对不匹配直接拒绝。模板是短信正文的骨架比如“您的验证码为 ${code}五分钟内有效”。每个服务商都有自己的模板审核规范着重检查场景明确、变量定义清晰、不含诱导性内容。有些开发者图省事把整个文案拼好写在代码里想绕过模板直接发这是行不通的短信接口强制走模板不是服务商想卡你而是内容安全和反诈的硬性要求。这块我的经验是申请模板不要写得太宽泛越具体越容易过。比如“验证码模板”正文变量写清楚是数字还是字符串变量还建议加描述。模板里尽量不出现“点击链接”“加微信”“返现”等容易触发风控的词。模板审核一般几小时到一天建议在项目截止前两三天就提交别压到最后一天才申请。2. 做好架构取舍同步回执、异步回调还是消息队列2.1 同步调用最直接但别让它堵住主流程短信发送接口本身是 HTTP 请求同步调用就是业务代码直接调服务商接口拿到返回结果后再往下走。好处是简单、流程直观出问题马上能反馈给调用方适合低频场景比如后台管理员手工发个提醒。但同步调用有个明显的隐患外部接口的延迟不可控。服务商接口在高峰期可能响应一两秒甚至更长你的业务线程就卡在这数据库连接也被占用流量一大整个服务跟着变慢。另一个问题是失败后的处理策略线上发送失败你得重试如果还是同步重试请求积压会更严重。所以我现在的习惯是同步调用只用在后台操作类、非高频场景前端页面触发的验证码发送必不直接同步挂接最少也要包一层异步化。2.2 异步化之后谁来维护发送状态异步化的常见做法是把发送请求丢进线程池或者消息队列立即返回“已受理”然后由后台任务慢慢发。这样主流程不阻塞但也产生了新问题发送任务丢了怎么办服务重启了怎么办发送结果怎么跟踪。线程池方案适合单体小项目进程内队列加异步执行即可但服务崩溃后内存里排队的短信会全部丢失而且多实例部署时可能出现重复发送。消息队列方案会更可靠比如把短信目标任务投递到队列里消费者负责调服务商接口发送失败还能进入重试队列。虽然架构重了一点但短信发送天然适合消息驱动因为用户其实不关心“接口是否已接收”只关心“短信是否真的到了”。我在库存系统重构时就干过这种事原来用户付款后同步发短信因为上游通道抖动导致订单这一侧也跟着超时。后来改成支付成功后丢一条消息到队列独立消费者负责发短信订单流程与短信通道彻底隔离效果立竿见影。2.3 状态回调是短信模块的“眼睛”短信发送成功后服务商会向你的服务器推送一条回执包含手机号、模板、状态、失败原因等字段。这个回调你必须接不然你永远不知道哪些短信没送到。我见过一些项目短信发送接口调成功了就万事大吉完全不接回调等到用户投诉收不到短信才去查日志结果发现服务商半个月前就报了“运营商网关失败”。这个局面非常被动。所以回调接口在我看来不是可选组件而是短信模块的关键组成。在架构上回调接口要独立于业务系统部署至少单独拆一个 controller避免业务主链路阻塞。回调接口本身要做验签防止有人伪造回执把系统状态带偏。后续统计分析到达率、延迟率全靠这部分数据。3. 最小可用短信模块的完整落地过程3.1 依赖引入与基础配置假设你已经选好了一个服务商文档里给了 accessKey 和 secretKey。我们先做一个最精简的 Python 客户端只负责发送、查询和接收回调语言不限思路通用。先把依赖装好常见的是 requests 和 pydantic如果项目本身有 HTTP 框架则用项目里现成的。pip install requests pydantic python-dotenv配置建议通过环境变量注入不要写死在代码仓库里短信密钥和普通密码同等重要泄露了别人能用你的账号刷短信。SMS_ACCESS_KEYyour_access_key SMS_SECRET_KEYyour_secret_key SMS_BASE_URLhttps://api.your-provider.com/sms SMS_SIGNATURE_IDsig_123456 SMS_TEMPLATE_IDtpl_20250101 SMS_CALLBACK_URLhttps://your-domain.com/api/sms/callback3.2 发送接口实现现在写一个基础客户端。这里的重点不是照抄服务商 SDK而是理解每个 API 背后的三方交互你要提供身份凭证、签名、模板、参数和接收号码。import hashlib import hmac import json import time import requests from pydantic import BaseModel, Field class SmsClient: def __init__( self, access_key: str, secret_key: str, base_url: str, signature_id: str, template_id: str, ): self.access_key access_key self.secret_key secret_key self.base_url base_url self.signature_id signature_id self.template_id template_id def _sign(self, params: dict, timestamp: int) - str: # 不同服务商的签名规则不同大多是对参数排序后拼接再使用密钥做 HMAC 摘要 raw .join( f{k}{params[k]} for k in sorted(params.keys()) ) raw f{raw}timestamp{timestamp}key{self.secret_key} return hmac.new( self.secret_key.encode(), raw.encode(), hashlib.sha256 ).hexdigest() def send_code(self, mobile: str, code: str, minutes: int 5) - dict: params { mobile: mobile, signature_id: self.signature_id, template_id: self.template_id, template_params: json.dumps({code: code, minutes: minutes}, ensure_asciiFalse), } timestamp int(time.time()) params[timestamp] timestamp params[sign] self._sign(params, timestamp) resp requests.post( f{self.base_url}/send, jsonparams, timeout10, ) resp.raise_for_status() data resp.json() if data.get(code) ! 0: raise RuntimeError(f短信发送失败: {data}) return data这段代码已经覆盖了主流程组装参数、加时间戳、签名、提交请求、校验响应。具体的签名算法各服务商可能略有差异比如有的用 MD5有的要求把 JSON 体也算进去这都不影响整体结构你按服务商文档替换那一处即可。3.3 短信状态查询接口发送接口返回成功只代表服务商受理了发送请求最终结果要看查询接口。def query_status(self, request_id: str) - dict: params {request_id: request_id, timestamp: int(time.time())} params[sign] self._sign(params, int(time.time())) resp requests.get( f{self.base_url}/query, paramsparams, timeout10, ) resp.raise_for_status() return resp.json()业务系统在什么情况下需要主动查状态回调还没来又想知道结果时可以通过定时任务对发出超过一定时长的短信做补偿查询。注意频率不要对每条发送都强行轮询否则会给服务商和自己造成无谓压力。3.4 回调接收与签名校验服务商回调数据一般长这样{ request_id: abc123, mobile: 13800000000, status: DELIVERED, err_msg: , timestamp: 1735689600, sign: xxxx }回调接口要做的第一件事是验签字段由服务商串起来做摘要防止攻击者伪造回执。验签通过后再把状态写进自己的发送记录表。def verify_callback_sign(self, body: dict) - bool: timestamp body.get(timestamp) sign body.pop(sign, ) params {k: body[k] for k in sorted(body.keys())} raw .join(f{k}{params[k]} for k in params) expected hmac.new(self.secret_key.encode(), f{raw}key{self.secret_key}.encode(), hashlib.sha256).hexdigest() return expected sign回调接口建议做幂等处理同一 requestId 可能回调多次重复更新状态没问题但不要重复触发业务动作比如“发货通知”不能因为回调重试而发两遍。4. 线上必须加固的四件事幂等、重试、限流与内容安全4.1 幂等防止重复发送比想象中难短信一旦重复发送轻则用户被骚扰重则验证码被覆盖导致登录失败。常见重复来源有三种前端双击发起请求、网关层重试、消息队列重复消费。我建议在发送接口入口处做一层幂等控制。最简单的方式是生成一个全局唯一的业务单号比如biz_id发送前查一下记录表是否已经存在存在就直接返回旧的请求结果。另一种做法是利用验证码本身的失效机制生成验证码后先存 Redis设好过期时间同一用户一分钟内不重新生成。这样即使前端发起了重复请求后端拿到的也是同一个验证码不会让用户手机里冒出两条不同的短信。4.2 网络抖动与重试策略外部接口总会有偶发超时或 5xx重试必须带着退避策略否则一个小故障就能把通道打死。建议采用指数退避加重试上限比如第一次 1 秒、第二次 2 秒、第三次 4 秒最多五次超出就把消息转人工处理队列。这里有一个容易踩的坑服务商返回“提交成功”不代表发送成功所以你的重试不应该对所有失败一视同仁。对于网络超时或服务商明确提示可重试的错误码可以安心重试对于参数错误、签名错误这类业务错误重试一万次也白搭需要马上告警并排查配置。我习惯在模块里加一层发送策略retry_policy { TIMEOUT: {max_retries: 3, backoff: [1, 3, 7]}, BIZ_ERROR: {max_retries: 0, alert: True}, }4.3 限流保护通道也保护用户短信通道并发有限同时业务方又可能恶意刷接口这两端都需要限流。对用户维度的限流最简单的是存储每个手机号的发送记录限制频率比如一分钟一次、一小时五次、一天十次具体按业务定。验证码场景还要加图形验证码或滑块验证否则容易被人盯上变成短信轰炸渠道。对通道维度的限流可以自己封装一个信号量或令牌桶控制每秒发往服务商的请求数。尤其是营销短信批量群发一次性打几万条直接触达服务商并发上限建议在代码里做均匀削峰。4.4 内容安全与敏感词短信内容多了以后你会发现正文里有些词会触发服务商内容过滤甚至导致模板被冻结。即使模板审核通过模板参数里的变量值也可能包含敏感词比如用户在备注里填了一些违禁词拼到短信正文里就被拦了。这块的经验是在发送前做一次简单的内容校验校验模板参数里是否含明显违规词、是否超过模板变量长度。模板变量控制在合理长度内宁短勿长也减少流量费用。5. 本地开发、联调和自动化测试的实践细节5.1 Mock 服务不花钱也能把流程跑顺短信发送是强外部依赖本地开发如果不接 Mock会出现两种情况要么真的把测试短信发到同事手机要么反复调不通接口。比较好的做法是在本地起一个 Mock 短信服务模拟服务商的发送接口和回调。用 FastAPI 搭一个最小 Mock 很容易把/send接口返回成功把/callback接口按需触发。开发环境里业务代码改一下 base_url 指向本地 Mock就能把全链路跑通。from fastapi import FastAPI, Request from pydantic import BaseModel app FastAPI() class SendReq(BaseModel): mobile: str signature_id: str template_id: str template_params: str app.post(/send) async def send(req: SendReq): return { code: 0, request_id: fmock_{req.mobile}, message: success, } app.post(/api/sms/callback) async def callback(req: Request): body await req.json() return {code: 0}这个 Mock 虽然简单但能帮前端和后端联调省不少时间。更进一步的做法是在 Mock 里配置各种异常返回比如随机超时、固定返回失败用来测你的重试逻辑。5.2 测试用例最少要有这几个短信模块的测试用例别只测“能发出去”重点要测边界和异常。我常用的一组用例包括重复发送同一个 bizId只产生一条实际发送。服务商返回 500 时自动退避重试且重试次数不超过上限。收到重复回调时数据库记录状态不出现奇怪翻转。签名校验失败时回调请求被拒绝。验证码发送频率超过限制时返回明确的业务提示。模板参数缺失时不向第三方发起请求。这些用例写起来不难但会帮你省掉大量线上问题排查时间。5.3 签名不一致的排查套路本地联调最容易遇到的就是签名校验失败服务商返回“sign not match”或 403。排查顺序建议是先看参数是否完整再看排序方式是否一致再检查时间戳是否用的同一个值最后确认编码统一为 UTF-8。我遇到过最隐蔽的一个问题是服务商文档用 Java 示例签名字符串里把 JSON 参数做了转义而我在 Python 里没做转义两边摘要完全不同。遇到这类问题不要瞎猜把服务商文档的示例参数原样复制用你写的签名函数算一遍比对文档给出的正确签名能快速定位差异。6. 上线后盯住四个信号顺手把成本也控住6.1 该关注的四个监控项短信模块上线后首要指标不是发送量而是发送成功率与到达率。发送成功率可以从服务商 API 响应里统计到达率则依赖回调回执两者差距过大说明通道质量或签名被运营商拦截需要立刻联系服务商排查。第二个指标是发送延迟。从提交到收到回调正常情况下应该在几秒到十几秒如果大量短信的延迟超过一分钟多半是服务商通道拥堵要及时降级或切换备用通道。第三个指标是重试率。重试率突然上涨一般不是网络问题就是通道问题按服务商错误码分组统计能很快定位是哪一个域名的接口异常。第四个指标是频率拦截次数。业务跑起来后你会看到大量“同一号码超过频率限制”的拒绝这类拒绝本身是正常的但如果占比过高说明用户操作流程里存在异常重试要么前端有 bug要么有批量刷量行为。6.2 成本控制与通道切换短信单价看着低量大之后费用很可观。我见过一个项目一个月短信费花了十几万查下来大量是重复发送和无效号码发送。无效号码比如空号、停机号服务商照样计费而且这类号码在运营商侧送达失败率很高白白浪费。控制成本的办法是在发送前对手机号格式严格校验同时定期清理长周期内持续发送失败的高危号码段。营销短信尽量走价格更低的营销通道验证码走更稳的专属通道不要把所有短信都用同一条通道发。服务商之间切换时核心逻辑不变变的只是客户端实现。所以模块内部最好定义一个统一接口把服务商的具体实现放在适配层下次换服务商只需要新增一个 Adapter不用动业务代码。我一开始没这么做结果换服务商的时候改了两个通宵全是血泪。6.3 备用通道与降级方案通道会故障服务商也会出问题成熟的短信模块不能只绑定一家服务商。线上验证码场景建议配置主备双通道主通道失败率达到阈值后自动切换。切换要注意一个细节模板 ID 和签名 ID 在各服务商之间不能通用备用通道必须提前把常用模板和签名都申请好否则切过去会发现模板不存在切换就成了一句空话。我在项目里就吃过这个亏备用通道签了约但忘记同步模板真的出故障时切过去一发就是 400。降级方案也值得考虑。短信不是唯一触达用户的路径验证码还能走邮件、语音电话或 App 内推送短信通道故障时可以按用户优先级做降级比如用户在下单高峰期短信发不了就先给 App 推送一条模板消息等短信恢复再补发。降级逻辑的触发条件和恢复条件要写清楚避免通道恢复后还一直走降级链路。最后再分享两个我个人的小习惯。第一短信发送表的数据结构里强烈建议加上request_id、biz_id、mobile、status、callback_time这几个字段线上排查问题时你会感谢自己当初的设计。第二发短信前花一分钟看看当前时间很多服务商对夜间发送有限制白天测得好好的功能晚上可能一条都发不出去。短信这个模块技术难度不算高难的是把细节抠干净把异常场景都覆盖到。你按照上面的步骤把配置、架构、重试、监控和降级都处理到位大概率能少走很多弯路。

相关新闻

VS2010下DLL与LIB的隐式加载和显示加载详解:原理、配置与实战避坑

VS2010下DLL与LIB的隐式加载和显示加载详解:原理、配置与实战避坑

1. 为什么在VS2010里搞明白DLL加载方式这么重要如果你现在还在维护一些老项目,尤其是工业控制、医疗设备上位机、或者某些产线测试软件,大概率绕不开VS2010这个老伙计。它虽然年纪大了,但胜在稳定,很多底层库、驱动接口、硬件SDK至…

2026/10/18 13:19:55 阅读更多 →
YOLO26与对比蒸馏驱动的工厂违规行为实时检测方案

YOLO26与对比蒸馏驱动的工厂违规行为实时检测方案

1. 项目背景与整体设计思路工厂安全生产的痛点,很多人第一反应是管理问题,但真正在现场待过的人会告诉你,更大的问题在于“看不过来”。一个中大型工厂,几百路监控画面同时挂在调度大屏上,安保人员盯着看二十分钟&…

2026/10/18 13:19:55 阅读更多 →
基于YOLO26的工厂人员违规检测算法研究与部署实践

基于YOLO26的工厂人员违规检测算法研究与部署实践

搞定了几套工厂人员违规检测的项目之后,我对这类需求的判断基本固定了:算法选型重要,但真正决定项目能不能落地的是数据质量、标注规范和部署链路里的那些脏活累活。这篇文章就以一个基于 YOLO26 的工厂人员违规行为检测算法研究与实现为切入…

2026/10/18 13:19:55 阅读更多 →

最新新闻

hostapd-2.10源码解析:从编译到二次开发实战指南

hostapd-2.10源码解析:从编译到二次开发实战指南

简介:hostapd-2.10源码包面向Linux无线开发与嵌入式网络工程师,用于在Linux系统上以软件方式创建和管理WiFi热点,替代硬件AP实现主机模式接入点。包内共655个文件,以363个C源文件和235个头文件为核心,覆盖nl80211驱动、…

2026/10/18 15:50:15 阅读更多 →
LISREL验证性因素分析完整指南:从模型识别到拟合判读

LISREL验证性因素分析完整指南:从模型识别到拟合判读

简介:一份面向社会科学、心理学及教育学研究者与学生的LISREL软件验证性因素分析教学PPT,系统讲解结构方程模型中验证性因素分析的核心逻辑与实操要点。资源从“准确Vs简洁”的数据处理两难切入,说明如何输入相关矩阵、设定理论模型、输出再生…

2026/10/18 15:50:15 阅读更多 →
通义千问Qwen3本地部署实战:MoE架构、硬件选型与性能调优

通义千问Qwen3本地部署实战:MoE架构、硬件选型与性能调优

前几天有个朋友来问我,说他拿到一台旧工作站,想跑一个新出的开源模型,问我到底值不值得折腾。我第一反应是问他:你要跑的模型是哪个?他回答说在想跑通义千问 Qwen3 系列。我说那就很值得,Qwen3 这一代把 Mo…

2026/10/18 15:50:15 阅读更多 →
AI原生应用人机共创成功案例:用TaoToken统一Key打通多模型协作链路

AI原生应用人机共创成功案例:用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/18 15:50:15 阅读更多 →
翁恺C语言习题集刷题指南:环境搭建、题型拆解与避坑要点

翁恺C语言习题集刷题指南:环境搭建、题型拆解与避坑要点

简介:浙江大学翁恺教授C语言课程习题与源码合集,专门面向C语言初学者、备考计算机等级考试或自学编程的读者,覆盖从基础语法到典型算法的多层次练习。资源共4个文件,包含txt题解文档、Python辅助脚本、inscode在线交互文件和html页…

2026/10/18 15:50:15 阅读更多 →
红色党建风工作总结PPT模板:从空白页到成稿的工程化流程

红色党建风工作总结PPT模板:从空白页到成稿的工程化流程

简介:这是一套面向党政部门的工作总结PPT模板,整体采用红色党建风格,视觉庄重且富有感染力,适合年终总结、阶段汇报、主题教育展示等场合。模板内置完整汇报逻辑,共分为工作目标与背景、工作成果与亮点、挑战与解决方案…

2026/10/18 15:49:14 阅读更多 →

日新闻

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

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

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

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

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

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

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

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

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

2026/10/18 0:00:55 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 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/18 0:55:02 阅读更多 →
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/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练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 阅读更多 →