SkillHub SMTP 邮箱配置指南:为密码重置验证码邮件搭建完整发信链路
人工智能AI AgentAI 技能后端前端【免费下载链接】skillhubSelf-hosted, open-source agent skill registry for enterprises. Publish version skill packages, govern with RBAC and audit logs, deploy on-premise with Docker or Kubernetes.项目地址https://gitcode.com/gh_mirrors/sk/skillhub点击查看免费下载本篇技术指南围绕 SkillHub企业级自托管 Agent 技能注册中心的「密码重置验证码邮件」功能系统讲解如何为后端配置 SMTP 发信服务覆盖生产/预发布环境compose.release.yml.env.release与本地联调环境直接注入后端环境变量两条路径。读完本文你将掌握 SkillHub 密码重置相关全部环境变量的含义与取值范围、三种开箱即用的配置方案通用 SMTP、MailHog、线上 465 SSL、完整的验证流程以及认证失败、证书异常等常见问题的排障方法。本文依据仓库中的 docs/19-smtp-password-reset-email-setup.md 展开并结合 server/skillhub-app/src/main/resources/application.yml、PasswordResetService.java 等源码给出实现级证据。1. 前置认知SMTP 与验证码邮件的定位SMTPSimple Mail Transfer Protocol本质是邮件传输协议而不是某一厂商的单一产品。为 SkillHub 配置邮件发送时你可以选择企业邮箱 / 云邮箱如自建邮件网关、各类云邮件服务的 SMTP 地址一般同时提供 465 SSL 或 587 STARTTLS 两种接入方式本地测试 SMTP 服务如 MailHog本文仅作示例工具名称不输出外部链接用于开发环境快速验证邮件链路而不依赖真实邮箱。1.1 当前密码重置页面的统一入口前端统一使用/reset-password页面该页面同时包含发送验证码和提交新密码两步不再单独使用/forgot-password。对应前端实现位于 web/src/pages/reset-password.tsx页面先校验邮箱格式并调用发送验证码接口收到codeSentMessage提示后再提交email code 新密码 确认密码完成重置。1.2 验证码邮件的后端链路源码视角从 PasswordResetService.java 可以看到完整实现验证码生成VERIFICATION_CODE_DIGITS 6使用SecureRandom生成 6 位数字验证码源码第 217-221 行验证码存储不落明文验证码经passwordEncoder.encode(code)哈希后随过期时间存入PasswordResetRequest核对时用passwordEncoder.matches(code, request.getCodeHash())校验源码第 140-146 行邮件发送通过 SpringJavaMailSender发送SimpleMailMessage主题为SkillHub password reset verification code正文包含验证码与有效分钟数源码第 223-254 行防账号枚举自助请求对不满足重置条件的邮箱静默返回不创建请求、不发邮件接口永远返回通用成功提示源码第 70-97 行。2. 需要配置的环境变量以下变量均已被后端读取是配置 SMTP 的全部入口变量名说明示例SPRING_MAIL_HOSTSMTP 服务器地址smtp.example.comSPRING_MAIL_PORTSMTP 端口465SPRING_MAIL_USERNAMESMTP 用户名noreplyexample.comSPRING_MAIL_PASSWORDSMTP 密码/授权码xxxxxxSPRING_MAIL_SMTP_AUTH是否启用 SMTP AUTHtrueSPRING_MAIL_SMTP_STARTTLS_ENABLE是否启用 STARTTLSfalseSPRING_MAIL_PROPERTIES_MAIL_SMTP_SSL_ENABLE是否启用 SMTP SSL 直连trueSPRING_MAIL_PROPERTIES_MAIL_SMTP_SSL_TRUSTSSL 信任主机规避部分环境下证书链校验失败smtp.mail.exampleSKILLHUB_AUTH_PASSWORD_RESET_CODE_EXPIRY验证码有效期ISO-8601 DurationPT10MSKILLHUB_AUTH_PASSWORD_RESET_FROM_ADDRESS发件人邮箱noreplyexample.comSKILLHUB_AUTH_PASSWORD_RESET_FROM_NAME发件人名称SkillHub2.1 环境变量的后端绑定源码证据这些变量在 application.yml 中通过${VAR:default}形式完成绑定Spring Mail 基础配置application.yml 第 124-134 行spring: mail: host: ${SPRING_MAIL_HOST:localhost} port: ${SPRING_MAIL_PORT:25} username: ${SPRING_MAIL_USERNAME:} password: ${SPRING_MAIL_PASSWORD:} properties: mail: smtp: auth: ${SPRING_MAIL_SMTP_AUTH:false} starttls: enable: ${SPRING_MAIL_SMTP_STARTTLS_ENABLE:false}注意若你未配置任何 SMTP 变量后端默认按localhost:25、无认证尝试发信因此生产环境务必显式配置。密码重置业务配置application.yml 第 166-169 行password-reset: code-expiry: ${SKILLHUB_AUTH_PASSWORD_RESET_CODE_EXPIRY:PT10M} email-from-address: ${SKILLHUB_AUTH_PASSWORD_RESET_FROM_ADDRESS:noreplyskillhub.local} email-from-name: ${SKILLHUB_AUTH_PASSWORD_RESET_FROM_NAME:SkillHub}配置类默认值PasswordResetProperties.javacodeExpiry默认Duration.ofMinutes(10)即PT10M、emailFromAddress默认noreplyskillhub.local、emailFromName默认SkillHub与 YAML 中的默认值一致。Compose 透传compose.release.yml 第 138-148 行server服务将上述SPRING_MAIL_*与SKILLHUB_AUTH_PASSWORD_RESET_*全部映射为容器环境变量其中SKILLHUB_AUTH_PASSWORD_RESET_CODE_EXPIRY默认PT10MFROM_ADDRESS默认noreplyskillhub.localFROM_NAME默认SkillHub。2.2 端口模式与取值说明本文统一按465 SSL配置不再展开587 STARTTLS方案。使用465时配置STARTTLSfalse、SSL_ENABLEtrue。若出现PKIX path building failed/SSLHandshakeException可尝试增加SPRING_MAIL_PROPERTIES_MAIL_SMTP_SSL_TRUSTSMTP_HOST本地联调常用。生产环境默认不建议配置SPRING_MAIL_PROPERTIES_MAIL_SMTP_SSL_TRUST仅在证书链异常时临时启用。SKILLHUB_AUTH_PASSWORD_RESET_CODE_EXPIRY支持如PT5M、PT10M、PT30M等 ISO-8601 Duration 写法邮件正文中会按codeExpiry.toMinutes()提示验证码在 N 分钟内有效最短按 1 分钟计见 PasswordResetService.java 第 249-253 行。仓库内置的环境模板 .env.release.example第 178-189 行给出了另一组可参考写法SPRING_MAIL_PORT587、STARTTLS_ENABLEtrue、SSL_ENABLEfalse即587 STARTTLS模式。两种端口模式按需二选一务必保持STARTTLS与SSL_ENABLE与所选端口匹配。3. 配置方案速查推荐方案 A通用 SMTP 邮箱本地直连真实邮箱SPRING_MAIL_HOSTsmtp.mail.example SPRING_MAIL_PORT465 SPRING_MAIL_USERNAMEmailerexample.com SPRING_MAIL_PASSWORDyour-smtp-app-password SPRING_MAIL_SMTP_AUTHtrue SPRING_MAIL_SMTP_STARTTLS_ENABLEfalse SPRING_MAIL_PROPERTIES_MAIL_SMTP_SSL_ENABLEtrue SPRING_MAIL_PROPERTIES_MAIL_SMTP_SSL_TRUSTsmtp.mail.example SKILLHUB_AUTH_PASSWORD_RESET_CODE_EXPIRYPT10M SKILLHUB_AUTH_PASSWORD_RESET_FROM_ADDRESSmailerexample.com SKILLHUB_AUTH_PASSWORD_RESET_FROM_NAMEyour-from-name本地export示例写法export SPRING_MAIL_PROPERTIES_MAIL_SMTP_SSL_TRUSTsmtp.mail.example export SPRING_MAIL_HOSTsmtp.mail.example export SPRING_MAIL_PORT465 export SPRING_MAIL_USERNAMEmailerexample.com export SPRING_MAIL_PASSWORDyour-smtp-app-password export SPRING_MAIL_SMTP_AUTHtrue export SPRING_MAIL_SMTP_STARTTLS_ENABLEfalse export SPRING_MAIL_PROPERTIES_MAIL_SMTP_SSL_ENABLEtrue export SKILLHUB_AUTH_PASSWORD_RESET_CODE_EXPIRYPT10M export SKILLHUB_AUTH_PASSWORD_RESET_FROM_ADDRESSmailerexample.com export SKILLHUB_AUTH_PASSWORD_RESET_FROM_NAMEyour-from-name方案 BMailHog本地联调推荐SPRING_MAIL_HOST127.0.0.1 SPRING_MAIL_PORT1025 SPRING_MAIL_USERNAME SPRING_MAIL_PASSWORD SPRING_MAIL_SMTP_AUTHfalse SPRING_MAIL_SMTP_STARTTLS_ENABLEfalse SPRING_MAIL_PROPERTIES_MAIL_SMTP_SSL_ENABLEfalse SKILLHUB_AUTH_PASSWORD_RESET_FROM_ADDRESSnoreplyskillhub.local SKILLHUB_AUTH_PASSWORD_RESET_FROM_NAMESkillHubMailHog 无需认证、不加密直接以127.0.0.1:1025接收邮件并在8025端口提供 Web UI 查看收件箱。方案 C线上部署465 端口示例SPRING_MAIL_HOSTsmtp.mail.example SPRING_MAIL_PORT465 SPRING_MAIL_USERNAMEmailerexample.com SPRING_MAIL_PASSWORDyour-smtp-app-password SPRING_MAIL_SMTP_AUTHtrue SPRING_MAIL_SMTP_STARTTLS_ENABLEfalse SPRING_MAIL_PROPERTIES_MAIL_SMTP_SSL_ENABLEtrue SPRING_MAIL_PROPERTIES_MAIL_SMTP_SSL_TRUSTsmtp.mail.example SKILLHUB_AUTH_PASSWORD_RESET_CODE_EXPIRYPT10M SKILLHUB_AUTH_PASSWORD_RESET_FROM_ADDRESSmailerexample.com SKILLHUB_AUTH_PASSWORD_RESET_FROM_NAMEyour-from-name线上建议将SPRING_MAIL_PROPERTIES_MAIL_SMTP_SSL_TRUST留空使用规范 CA 证书链如需企业内网自签证书见本文 7.6 节说明。4. 单机交付Compose配置步骤适用于生产/预发布环境使用compose.release.yml.env.release。复制环境模板若尚未创建cp .env.release.example .env.release编辑.env.release填写 SMTP 变量SPRING_MAIL_HOSTsmtp.mail.example SPRING_MAIL_PORT465 SPRING_MAIL_USERNAMEmailerexample.com SPRING_MAIL_PASSWORDyour-smtp-app-password SPRING_MAIL_SMTP_AUTHtrue SPRING_MAIL_SMTP_STARTTLS_ENABLEfalse SPRING_MAIL_PROPERTIES_MAIL_SMTP_SSL_ENABLEtrue SPRING_MAIL_PROPERTIES_MAIL_SMTP_SSL_TRUSTsmtp.mail.example SKILLHUB_AUTH_PASSWORD_RESET_CODE_EXPIRYPT10M SKILLHUB_AUTH_PASSWORD_RESET_FROM_ADDRESSmailerexample.com SKILLHUB_AUTH_PASSWORD_RESET_FROM_NAMEyour-from-name重启后端容器使配置生效docker compose --env-file .env.release -f compose.release.yml up -d server查看后端日志确认启动正常docker compose --env-file .env.release -f compose.release.yml logs -f server提示仓库的发布配置校验脚本 scripts/validate-release-config.sh第 311-312 行会对SPRING_MAIL_USERNAME/SPRING_MAIL_PASSWORD执行reject_patterns检查拒绝TODO_*、todo_*、replace*等占位符防止把占位值带上生产环境。5. 本地开发配置与验证5.1 一次性临时生效推荐适合当前终端临时测试重开终端后失效SPRING_MAIL_HOSTsmtp.mail.example \ SPRING_MAIL_PORT465 \ SPRING_MAIL_USERNAMEmailerexample.com \ SPRING_MAIL_PASSWORDyour-smtp-app-password \ SPRING_MAIL_SMTP_AUTHtrue \ SPRING_MAIL_SMTP_STARTTLS_ENABLEfalse \ SPRING_MAIL_PROPERTIES_MAIL_SMTP_SSL_ENABLEtrue \ SPRING_MAIL_PROPERTIES_MAIL_SMTP_SSL_TRUSTsmtp.mail.example \ SKILLHUB_AUTH_PASSWORD_RESET_CODE_EXPIRYPT10M \ SKILLHUB_AUTH_PASSWORD_RESET_FROM_ADDRESSmailerexample.com \ SKILLHUB_AUTH_PASSWORD_RESET_FROM_NAMEyour-from-name \ make dev-server5.2 长期生效shell 配置如果写入~/.zshrc请注意必须source ~/.zshrc或重开终端后变量才会生效需要在同一个终端启动make dev-server。可先确认变量是否在当前 shell 中env | rg ^(SPRING_MAIL_|SKILLHUB_AUTH_PASSWORD_RESET_)5.3 推荐联调方式MailHog如果只是本地验证验证码链路建议用 MailHog 作为本地 SMTP 服务启动 MailHogdocker run -d --name skillhub-mailhog \ -p 1025:1025 \ -p 8025:8025 \ mailhog/mailhog启动依赖服务Postgres/Redismake dev启动后端时注入 SMTP 环境变量示例SPRING_MAIL_HOST127.0.0.1 \ SPRING_MAIL_PORT1025 \ SPRING_MAIL_USERNAME \ SPRING_MAIL_PASSWORD \ SPRING_MAIL_SMTP_AUTHfalse \ SPRING_MAIL_SMTP_STARTTLS_ENABLEfalse \ SPRING_MAIL_PROPERTIES_MAIL_SMTP_SSL_ENABLEfalse \ SKILLHUB_AUTH_PASSWORD_RESET_FROM_ADDRESSnoreplyskillhub.local \ SKILLHUB_AUTH_PASSWORD_RESET_FROM_NAMESkillHub \ make dev-server打开 MailHog Web UI 查看邮件http://localhost:8025在 SkillHub 页面验证流程打开/reset-password输入邮箱并点击发送验证码在 MailHog 中查看验证码邮件输入邮箱 验证码 新密码完成重置。也可使用接口做快速验证示例curl -X POST http://localhost:8080/api/v1/auth/local/password-reset/request \ -H Content-Type: application/json \ -d {email:your-emailexample.com}对应后端端点定义在 LocalAuthController.javaPOST /api/v1/auth/local/password-reset/request第 118-123 行发起重置请求限流类别auth-password-reset-requestPOST /api/v1/auth/local/password-reset/confirm第 125-130 行校验验证码并更新密码限流类别auth-password-reset-confirm。6. 功能验证验证码邮件6.1 用户自助找回在/reset-password页面点击发送验证码后系统会尝试发送验证码邮件。说明为防止账号枚举自助接口总是返回通用成功提示源码中ineligible邮箱直接 return不暴露账号是否存在即使邮件发送失败接口也可能返回成功请结合后端日志确认实际发送结果服务端成功发送会记录Password reset verification code sent to ...失败则记录Failed to send password reset verification code to ...见 PasswordResetService.java 第 229-238 行。6.2 管理员触发重置管理员在用户管理页触发重置密码时系统会强制发送验证码若 SMTP 发送失败会返回错误便于运维排障。对应端点后端POST /api/v1/admin/users/{userId}/password-reset见 UserManagementController.java 第 85-93 行服务实现adminTriggerPasswordReset中调用sendVerificationCodeEmail(email, code, true)failOnErrortrue时发送失败直接抛出error.auth.password.reset.email.failedPasswordResetService.java 第 102-127 行。6.3 自动化测试佐证仓库的 PasswordResetServiceTest.java 覆盖了关键链路合法用户请求时保存PasswordResetRequest并调用mailSender.send(...)SMTP 抛异常时自助请求仍正常返回verify(resetRequestRepository).save(...)后不再抛出邮箱为空、格式非法、账号不存在时均不触发发信verifyNoInteractions系统内置账号如builtin-skill-publisher不可发起密码重置验证码不匹配时confirm拒绝执行。7. 常见问题排查7.1 认证失败535 Authentication failed排查方向用户名/密码是否正确邮箱服务是否要求客户端授权码而非登录密码发件账号是否已开启 SMTP 服务。7.2 连接超时或拒绝连接排查方向主机到 SMTP 服务端口465是否可达安全组/防火墙是否放行出站连接SMTP 服务地址是否填写正确。7.3 本地明明配置了变量但不生效排查方向是否只是编辑了~/.zshrc但没有source ~/.zshrc启动后端的终端是否与配置变量的终端是同一个8080是否被旧进程占用导致新进程没启动成功。可执行以下命令快速检查# 查看 8080 是否被旧进程占用 lsof -nP -iTCP:8080 -sTCP:LISTEN # 查看当前 shell 是否有 SMTP 环境变量 env | rg ^(SPRING_MAIL_|SKILLHUB_AUTH_PASSWORD_RESET_)7.4 发件人被拒绝排查方向SKILLHUB_AUTH_PASSWORD_RESET_FROM_ADDRESS是否与 SMTP 账号一致或已验证邮箱服务是否限制别名发件。7.5 健康检查是否校验 SMTP默认配置下邮件健康检查关闭不会因为 SMTP 不可达导致health失败——这是刻意设计避免 SMTP 故障影响服务可用性判定见 application.yml 第 311-313 行health.mail.enabled: ${MANAGEMENT_HEALTH_MAIL_ENABLED:false}。若需要将 SMTP 连通性纳入健康检查可设置MANAGEMENT_HEALTH_MAIL_ENABLEDtrue7.6 SMTP 报PKIX path building failed证书链校验失败典型日志SSLHandshakeExceptionunable to find valid certification path to requested target处理建议本地联调SPRING_MAIL_PROPERTIES_MAIL_SMTP_SSL_TRUSTsmtp.mail.example然后重启后端再触发一次发送验证码。补充该配置用于指定信任主机绕过证书链校验适合本地排障与联调生产环境默认不建议长期启用该配置更推荐使用规范 CA 证书链或将企业 CA 导入 Java truststore。8. 安全建议不要把 SMTP 密码提交到仓库仅写入受控的.env.release或密钥管理系统配合 scripts/validate-release-config.sh 的占位符校验可提前拦截误提交使用专用发信账号避免使用个人邮箱主密码优先使用邮箱服务提供的客户端授权码或SMTP 专用密码生产环境建议定期轮换 SMTP 授权码。9. 相关文件索引本指南依据docs/19-smtp-password-reset-email-setup.md环境模板.env.release.example第 178-189 行为 SMTP 段发布编排compose.release.yml第 138-148 行为 SMTP 变量透传后端配置server/skillhub-app/src/main/resources/application.ymlSpring Mail 绑定与 password-reset 业务配置业务配置类PasswordResetProperties.java核心服务PasswordResetService.java自助端点LocalAuthController.java管理员端点UserManagementController.java前端页面web/src/pages/reset-password.tsx单元测试PasswordResetServiceTest.java发布校验scripts/validate-release-config.sh赞分享人工智能AI AgentAI 技能后端前端【免费下载链接】skillhubSelf-hosted, open-source agent skill registry for enterprises. Publish version skill packages, govern with RBAC and audit logs, deploy on-premise with Docker or Kubernetes.项目地址https://gitcode.com/gh_mirrors/sk/skillhub点击查看免费下载相关推荐Wasp 邮箱认证Email Auth完整指南邮箱验证、密码重置与配置 API 详解v0.16Wasp 邮箱认证Email Auth完整指南邮箱验证、密码重置与配置 API 详解v0.16 本文面向使用 Wasp v0.16 构建全栈应用的开发后端前端Web框架编译器开发工具代码生成Wasp 邮件认证完全指南邮箱登录、验证与密码重置的声明式配置实战Wasp 邮件认证完全指南邮箱登录、验证与密码重置的声明式配置实战 本指南以 Wasp 0.18 官方文档 email.md https://link.gi后端前端Web框架编译器开发工具代码生成Wasp 邮箱认证完整实战指南从注册登录到邮件验证与密码重置Wasp 邮箱认证完整实战指南从注册登录到邮件验证与密码重置 本指南以 Wasp 全栈框架当前仓库 waspc https://link.gitcode.c后端前端Web框架编译器开发工具代码生成上一篇终极NGA论坛优化指南5分钟打造个性化高效浏览体验下一篇5分钟掌握X-AnyLabelingAI智能标注工具快速入门指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Terminus 中基于 Web5 的 JWT 签名与验证:`cli/pkg/web5/jwt` 包实战指南

Terminus 中基于 Web5 的 JWT 签名与验证:`cli/pkg/web5/jwt` 包实战指南

云原生后端运维 【免费下载链接】Terminus Open-Source Personal Cloud OS for Always-On Agents 项目地址: https://gitcode.com/gh_mirrors/terminus2/Terminus 点击查看 免费下载 导读 在 Terminus 的 CLI 代码库中,cli/pkg/web5 是承载 DID&#x…

2026/10/13 2:39:33 阅读更多 →
六款科研绘图AI的维普过检能力评分实测

六款科研绘图AI的维普过检能力评分实测

论文返修意见里躺着一条刺眼的批注:"图3坐标轴单位缺失,图7图例与正文描述不符,请全面整改后重新提交。"实验室同门赶在截稿前把图表交给导师,结果被一句"这图能看出你做了三个月实验?"堵了回来。…

2026/10/13 2:39:33 阅读更多 →
Natron 节点详解:G‘MIC Dithering 抖动滤镜的参数配置与实战应用

Natron 节点详解:G‘MIC Dithering 抖动滤镜的参数配置与实战应用

音视频视频处理图形学桌面应用 【免费下载链接】Natron Open-source video compositing software. Node-graph based. Similar in functionalities to Adobe After Effects and Nuke by The Foundry. 项目地址: https://gitcode.com/gh_mirrors/na/Natron 点击查看 …

2026/10/13 2:38:33 阅读更多 →

最新新闻

PS5通用调校指南:从HDR发灰、下载慢到手柄断连的排查与优化

PS5通用调校指南:从HDR发灰、下载慢到手柄断连的排查与优化

最近一位朋友新入手了PS5,连着问了我好几个问题:电视开HDR之后画面发灰,下载一个游戏等了一夜还没好,手柄玩到一半断连,重连又要重新匹配。我一边远程指导一边发现,这些疑难杂症其实跟“哪一台PS5”没什么关…

2026/10/13 3:19:47 阅读更多 →
接口自动化测试实战:Excel用例管理+unittest+xlrd+xlsxwriter

接口自动化测试实战:Excel用例管理+unittest+xlrd+xlsxwriter

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

2026/10/13 3:19:47 阅读更多 →
AnyPS5实战:基于官方链路的PS5游戏串流全攻略

AnyPS5实战:基于官方链路的PS5游戏串流全攻略

如果你家里的 PS5 只能老老实实待在客厅电视下面,那这台机器一大半的潜力其实都没被用上。AnyPS5 是我这段时间集中折腾的一个项目,思路特别直接:把 PS5 的画面和操作,通过游戏串流的方式,送到你手边任何一块屏幕上——…

2026/10/13 3:19:47 阅读更多 →
PMI参数的解读与应用分析

PMI参数的解读与应用分析

PMI是宏观经济的重要指标,这里尝试对PMI参数进行解读和分析。 1 定义与特征 1.1 定义 采购经理指数(PMI)通过对企业采购经理的月度问卷调查结果统计汇总、编制而成的指数, 涵盖企业采购、生产、流通等各个环节,包括制造业和非制造业领域&…

2026/10/13 3:19:47 阅读更多 →
Simulink风光储并网系统建模与协调控制策略详解

Simulink风光储并网系统建模与协调控制策略详解

1. 项目概述与整体系统方案选择风电和光伏是当前电力系统中发展最快的两类清洁能源,但两者的出力特性完全不同——风电随风速波动,光伏则受辐照度和温度制约,两者叠加后仍然存在天然间歇性。储能系统的加入就是用来弥补这种波动,把…

2026/10/13 3:19:47 阅读更多 →
小白程序员必备:收藏!从零开始掌握 Codex 大模型核心技术

小白程序员必备:收藏!从零开始掌握 Codex 大模型核心技术

本文深入解析 Codex 大模型的六层架构,涵盖模型、Runtime、Context、Tool、Sandbox 和 Environment 的功能与关系。通过分析 Agent Loop 的工作原理,揭示 Token 的计量方式以及 Context Window 与 Memory 的关联。文章还探讨了长任务中出现的“忘记”现象…

2026/10/13 3:18:47 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 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/12 21:05:09 阅读更多 →
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/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练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/12 18:11:17 阅读更多 →