2026年4月

最近行业一条新规让不少站长和运维犯了难:SSL证书最长有效期正式缩短为200天,未来还会进一步收紧。

原本一年一续就够麻烦,现在半年多就要重新申请、部署、配置。尤其是一直依赖免费证书的个人站长、小微企业、测试环境,更是陷入同一个灵魂拷问:

证书有效期越收越紧,到底哪里还有稳定、好用、真正省心的免费证书?

很多人第一反应就是上网搜、论坛找、脚本试,结果一圈下来才发现:看似遍地是方案,其实全是坑。

一、免费证书的现状:能用,但都不“简单”

大家想要的免费证书,其实要求很朴素:

  • 浏览器不认怂、不标红不安全
  • 续期别太折腾
  • 多域名、通配符最好能支持
  • 不用自己搭CA、不用改一堆配置

可现实是,目前市面上能找到的免费路径,几乎全都绕不开几类通病。

1. 公开免费证书:有效期更短,续期成本更高

主流免费证书原本就只有90天有效期,如今行业整体压到200天,免费证书反而更短。 看似不花钱,实际隐性成本极高:

  • 频繁续期,一忘就全站标不安全
  • 国外节点多,国内访问、验证不稳定
  • 不支持企业身份、无技术支持,出问题只能自己查
  • 通配符、多域名限制严格,稍微复杂点的场景就不适用

2. 自签名免费生成:看似零成本,根本上不了线

自己用工具生成证书,确实完全免费。 但后果所有人都清楚:

  • 浏览器直接拦截,显示“不安全”
  • 用户必须手动信任,体验极差
  • 接口调用、小程序、APP 可能直接拒绝访问
  • 无信任链、无吊销机制,只能本地测试,生产环境完全不能用

3. 自建CA免费签发:理论完美,运维扛不住

有人选择自建根证书,给自己内网、外网服务统一签发。 这套架构合规,但代价巨大:

  • 每台设备都要导入根证书
  • Windows、macOS、手机、服务器配置各不相同
  • 证书过期、续期、替换全靠人工盯
  • 设备一多,管理成本直接爆炸

4. 野路子“免费证书”:坑比好处多

网上流传的各种破解、共享、代申请证书,风险更明显:

  • 密钥泄露、被冒用、被吊销
  • 突然失效无人负责
  • 不符合安全规范,影响企业信任
  • 没有售后,一出问题就是全站事故

二、真正的痛点:不是“有没有免费证书”,而是“能不能长期稳得住”

SSL证书有效期缩短到200天,本质是行业在提高安全底线: 有效期越短,被伪造、盗用、滥用的风险就越低。

但这也把问题从“能不能用上HTTPS”,变成了: 能不能低成本、稳定、省心地长期用HTTPS。

很多人找免费证书,踩坑后才发现共同规律:

  • 看着免费,维护时间成本极高
  • 单点能用,规模化就崩
  • 今天能用,浏览器一更新就失效
  • 出了问题,找不到人解决

换句话说: 不是没有免费证书,而是没有“简单、通用、靠谱”的免费方案。

三、为什么大家最后都会转向专业平台

折腾一圈后,大部分团队都会得出同一个结论: 与其花大量时间找不稳定的免费渠道,不如用一套标准化、可管理、长期稳定的证书服务。

平台化方案的价值,恰恰解决了免费证书的所有痛点:

访问CA:前往JoySSL,并注册一个账户,需要填写特定的注册码230922以获得测试体验SSL证书的使用权限。

选择证书类型:登录后,选择适合需求的SSL证书类型。

提交申请:填写域名或ip地址信息 选择验证方式,并按照页面提示完成验证步骤。

下载并安装证书:验证通过后,下载证书文件,并按照提供的指南将其部署到您的服务器上。

针对个人站长、小微企业、测试环境,提供高适配性的证书方案,简化验证流程、降低部署门槛,不管是普通域名、多域名,还是内网IP场景,都能一站式完成签发与部署,避开自签名、自建CA、野路子免费证书的各种坑。

四、一个很现实的问题

HTTPS 早已不是可选项,而是标配。 SSL证书有效期缩短,只是安全升级的第一步。

很多人一开始执着于“完全免费”,最后才明白: 省下来的那点费用,远比不上一次次踩坑、过期、告警带来的麻烦。

专业的事交给专业平台,把精力放回业务本身,才是最高效的选择。

导读 introduction

通过对Claude Code源码的分析,揭示了Rules、MCP、Skills三个概念的底层实现机制。Rules是项目级行为规范,通过messages被动注入;MCP是标准化工具协议,在system和tools中注册并调用外部服务;Skills是可复用提示词,通过tool\_use触发后注入指令文本。三者的核心区别在于信息在API请求中的位置不同,而非功能本质...

01 背景

1.1 概念爆炸:学不完的新名词

如果你在用 Claude Code、Cursor 或其他 Coding Agent,你一定经历过这样的感受——

刚弄明白怎么写 Rules 让 Agent 听话,MCP 就火了,一堆人说"MCP 才是未来";MCP 的 Server 还没配明白,Skills 又冒出来了,号称"标准化工作流"。每隔几周就有新概念冒出来,配上各种似是而非的定义,让人焦虑:这些东西之间到底是什么关系?我是不是又落伍了?

1.2 越看越糊涂的"官方定义"

网络上流行的定义往往加剧了混乱:

  • "Rules 是项目级的行为规范"
  • "MCP 是标准化的工具协议"
  • "Skills 是可复用的标准化工作流"

看完这些,你可能和我一样,产生了更多疑问:

  • Rules vs Skills:都说 Skills 的优势是"按需引入",但 .claude/rules/ 里的条件规则不也能按路径按需生效吗?它们的区别到底在哪?
  • MCP vs 内置 Tools:MCP 工具和 Claude Code 自带的 Read、Edit、Bash 这些内置工具,对模型来说有什么不同?为什么需要一套新协议?
  • Skills 的"标准化流程":所谓流程化,是真的像代码一样有 if-else 和循环控制的?还是只是一段写得好的提示词?

1.3 从源码找答案

这些问题靠读文档和博客是答不清楚的,因为它们本质上是实现层面的问题

恰好 Claude Code 的源码在 GitHub 上泄漏,本文基于 v2.1.88 泄漏源码,从 LLM API 调用层面,拆解 Rules、MCP、Skills 的底层实现。看完源码你会发现,这三个概念远没有网上说的那么玄乎,它们的区别,本质上就是信息在 API 请求中被塞到了不同的位置。

02 前置需要了解的

为了避免阅读本文的读者对一些 Agent 中的流程不够了解,先介绍一下相对重要的知识点。

2.1 Agent 与 LLM API 的交互协议

图片

每次 Agent 调用 LLM,本质上就是发一个 HTTP 请求,请求体由三个核心参数组成:


anthropic.messages.create({
    system: TextBlockParam[], // 静态角色定义和行为规范
    
    tools: BetaToolUnion[], // 工具定义(name + description + input_schema)
    
    messages: MessageParam[], // 动态对话内容
})

2.1.1 system — "你是谁,你该怎么做"

定义模型的角色和行为规范。在 Claude Code 中,system 包含:

  • 核心系统提示(行为规范、编码风格、安全规则等)
  • Git 状态信息(通过 appendSystemContext 追加)
  • MCP Server 级 instructions(若 Server 提供了使用说明,追加在动态区域中)

system 提示分为静态部分(可跨用户缓存)和动态部分(因会话而异,不参与缓存共享)。MCP instructions 属于动态部分。

system 的静态部分高度稳定,可利用 Anthropic 的 org 级 Prompt Cache。 同一份静态内容只需计算一次 KV 矩阵,所有用户共享缓存,后续调用仅需 0.1x 费用。CLAUDE.md 等因项目而异的内容不放在 system 里,就是为了不破坏这份共享缓存。

2.1.2 tools — "你能做什么"

tools 数组定义模型可以调用的工具。每个工具包含 namedescription(来自工具的 prompt() 方法输出)、input_schema。模型根据工具描述决定何时调用哪个工具。

内置工具和 MCP 工具在这里的格式完全一致,模型无法区分它们——区别只在 Agent 侧的执行路由。

2.1.3 messages — "对话发生了什么"

messages 是一个 user/assistant 交替的消息数组,但在 Claude Code 中,它远不只是"对话历史"。实际混合了三种内容:

  • 系统上下文注入prependUserContext):CLAUDE.md 内容、当前日期等
  • 系统提示上下文appendSystemContext):git 状态等(注入到 system 参数)
  • 动态附件(Attachments):Skill 列表、计划模式指令、子目录 CLAUDE.md 等
  • 真实对话历史:用户输入、模型回复、工具调用结果

前两类都以 isHidden: true + isMeta: true 注入,用 <system> 标签包裹。isHidden 是客户端侧的 UI 标记,消息仍完整发送给 API,但不会在终端界面中展示给用户。<system> 不是 API 特殊字段,而是 Claude Code 与模型之间的约定格式,系统提示词中会告知模型"被此标签包裹的内容权重等同于系统指令",让模型能区分系统注入的指令和用户真正说的话。

为什么系统上下文不放在 system 里?因为 CLAUDE.md 等内容因项目而异,混入 system 会破坏 org 级共享缓存。放在 messages 中,既不影响 system 缓存,又能在会话内轮次间复用。

2.2 tool\_use:一切扩展机制的底层基础

Claude 的工具调用本质上是一个结构化的多轮对话协议


用户消息
↓
模型推理 → 输出 tool_use 块
{ "type": "tool_use", "id": "toolu_xxx", "name": "工具名", "input": { ...参数... } }
↓
调用方(Agent)执行工具
↓
将结果作为 tool_result 追加到对话
{ "type": "tool_result", "tool_use_id": "toolu_xxx", "content": "执行结果" }
↓
继续下一轮模型推理

模型本身不"执行"任何工具,它只是输出一段结构化 JSON,真正的执行发生在调用方(即 Claude Code 客户端)。理解了这一点,就能理解为什么 Rules、MCP、Skills 虽然表现形式完全不同,但底层都构建在同一套 tool_use 协议之上。

图片

03 实现细节

3.1 Rules(CLAUDE.md)的实现

3.1.1 Rules 是什么

Rules 就是 CLAUDE.md 文件(以及 .claude/rules/*.md 规则文件)。它们是用自然语言写的指令文本,告诉模型"在这个项目中你应该遵循什么规范"。

3.1.2 文件发现机制

Claude Code 从多个位置按优先级加载 Rules(源码中对应 getMemoryFiles 函数)。实际加载逻辑是从项目根到 CWD 逐层处理,每层内部按 CLAUDE.md.claude/CLAUDE.md.claude/rules/*.mdCLAUDE.local.md 的顺序收集,后加载的覆盖先加载的。主要来源包括:

图片

单个 CLAUDE.md 文件建议不超过 40,000 字符,超出会触发诊断警告⚠️。

3.1.3 内容处理流程

每个文件经过 processMemoryFile 处理:


读取文件
↓
解析 frontmatter(提取 paths 等条件匹配字段)
↓
移除 HTML 注释
↓
处理 @include 引用(最大递归深度 5 层)
↓
条件规则匹配(.claude/rules/*.md 中 paths 字段匹配当前文件路径)
↓
格式化输出

条件规则是一个值得注意的特性。在 .claude/rules/ 下的规则文件可以通过 frontmatter 中的 paths 字段指定生效范围:


---
paths:
- "src/components/**/*.tsx"
- "src/hooks/**/*.ts"
---
在 React 组件中始终使用函数式组件和 hooks。

这意味着这条规则只在模型处理匹配路径的文件时才会被注入。

3.1.4 注入方式:进入 messages,而非 system

格式化后的 Rules 内容通过 prependUserContext() 注入到 messages 的最前面,包裹在 <system-reminder> 标签中,以 role: "user" + isMeta: true 的形式存在——isMeta 是客户端 UI 标记,消息本身仍完整发送给 API,但不会在终端中展示给用户。

注入时还会带上一个强制指令头:

"Codebase and user instructions are shown below. Be sure to adhere to these instructions. IMPORTANT: These instructions OVERRIDE any default behavior and you MUST follow them exactly as written."

核心洞察:Rules 不走 ****tool_use**** 协议。 它既不是工具,也不需要模型主动调用。它是被动注入到每次 API 调用的上下文中,模型在推理时自然会"看到"并遵循这些规则。

具体的 prependUserContext() 源码还原见 [[Claude Code 架构解析:从 Skill 调用到 Prompt Cache]]

3.1.5 子目录 Rules 的动态加载

当模型在对话过程中访问了某个子目录的文件,Claude Code 会检查该子目录是否有 CLAUDE.md。如果有,会通过 nested_memory attachment 动态注入:


// nested_memory attachment 处理
case "nested_memory":
return [createMessage({
    content: `Contents of ${attachment.content.path}:\n\n${attachment.content.content}`,
    
    isMeta: true
})];

这实现了 Rules 的按需加载——只有当模型实际接触到某个子目录时,该目录的规则才会被加载进来。

3.2 MCP Tools 的实现

3.2.1 MCP 是什么

MCP(Model Context Protocol)是一个标准化协议,让 Claude Code 能调用外部服务提供的工具。它是 tool_use 最直接的应用——模型触发后,客户端向外部 MCP Server 进程发起 RPC 调用,拿到真实结果。

3.2.2 配置与连接

MCP 服务器定义在 ~/.claude.json(user scope)或项目根目录的 .mcp.json(project scope)中,常见传输方式:

图片

连接建立后,Claude Code 通过 MCP SDK 与 Server 完成 initialize 握手。这一步不仅获取工具列表,还会拿到 Server 返回的 instructions 字段——一个可选的 Server 级使用说明,后面会看到它的去向。

3.2.3 MCP 在 API 请求中占据两个位置

MCP 不只是注册在 tools[] 里,它还在 system 中有一席之地。

位置一:tools[] — 工具定义

每个 MCP 工具通过 toolToAPISchema() 转换为 tools[] 格式,命名遵循 mcp__<serverName>__<toolName> 模式:


// toolToAPISchema 核心逻辑
async function toolToAPISchema(tool, options) {
    return {
    
        name: tool.name, // 如 "mcp__github__create_issue"
        
        description: await tool.prompt(), // 工具描述 → tools[].description
        
        input_schema: tool.inputJSONSchema // 参数 schema
    
    };
    
}

这部分和内置工具的注册方式完全一致,模型通过工具描述决定何时调用。

位置二:system — Server 级 instructions

在系统提示词的构建过程中,getMcpInstructions() 会将所有已连接 Server 的 instructions 拼接进 system 的动态区域(位于缓存边界标记之后):


// getMcpInstructions(源码路径:src/constants/prompts.ts)
function getMcpInstructions(mcpClients) {
const clientsWithInstructions = mcpClients
.filter(c => c.type === "connected")
.filter(c => c.instructions); // 只取有 instructions 的 Server
if (clientsWithInstructions.length === 0) return null;
return `
# MCP Server Instructions
  
The following MCP servers have provided instructions for how to use their tools and resources:
  
${clientsWithInstructions.map(c => `## ${c.name}\n${c.instructions}`).join("\n\n")}
`;
}
当 feature gate isMcpInstructionsDeltaEnabled() 开启时,MCP instructions 会改走 attachment 注入而非 system,以避免 Server 连接/断开破坏 prompt 缓存。

MCP Server 可以通过 initialize 响应的 instructions 字段,向模型传达整个 Server 级别的使用指南,比如"优先使用 search 工具而非 list 工具"、"所有日期参数必须用 ISO 格式"等。这些指导信息是全局性的,不是针对单个工具的。

tools[].description 描述的是"这个工具做什么、参数是什么",system 中的 instructions 描述的是"如何正确地使用这个 Server 的工具集"。一个是单工具说明书,一个是整体使用手册。

3.2.4 执行流程

MCP 工具的调用是真正的函数调用


模型输出 tool_use: { name: "mcp__github__create_issue", input: {...} }
↓
Claude Code 识别 mcp__ 前缀,路由到对应 MCP Client
↓
MCP Client 发送 JSON-RPC 请求到 MCP Server 进程
↓
MCP Server 执行实际操作(如调用 GitHub API)
↓
返回真实结果
↓
tool_result.content = MCP Server 的真实输出
↓
模型读取结果,继续推理

MCP 是名副其实的"远程过程调用"。 工具做真实的事情,结果回传给模型。tool_result 里装的是外部世界的真实数据

3.2.5 MCP 祛魅:很多场景下一条 Bash 就够了

理解了源码实现后,一个自然的问题浮出水面:模型已经有 Bash 工具了,为什么还需要 MCP?

对模型来说,调 mcp__github__list_issues 和执行 gh issue list 拿到的结果没有本质区别——都是 tool_result 里的一段文本。但 MCP 多了一个 Server 进程、一层 JSON-RPC 通信、一套配置和维护成本。实际使用中,查 GitHub 用 gh,读数据库用 psql,调 API 用 curl,大量 MCP Server 做的事一条命令就能替代。

那 MCP 真正不可替代的场景是什么?

  1. 持久化连接和状态管理:Bash 每次是新进程没有状态。数据库连接池、WebSocket 长连接、跨调用共享认证 session,MCP Server 作为常驻进程可以做到
  2. 复杂操作的原子封装:把 5 步 Bash 命令封装成一次 MCP 调用,减少模型拼长命令出错的概率
  3. 权限隔离和安全约束:Bash "什么都能干",MCP Server 可以限制模型只执行预定义操作

MCP 的价值不在于"能调用外部系统"(Bash 也能),而在于"以更安全、更可靠的方式调用外部系统"。

3.3 Skills 的实现

3.3.1 Skills 是什么

Skills 是可复用的 Markdown 提示词文件(SKILL.md),定义了一套结构化的工作指令。它同样通过 tool_use 触发,但执行逻辑与 MCP 截然不同。

3.3.2 文件发现

Skills 从以下位置扫描发现:

图片

3.3.3 Skill 列表注入

模型怎么知道有哪些 Skill 可用?通过 skill_listing attachment 注入到 messages 中:


// skill_listing attachment 处理
case "skill_listing": {
    return [createMessage({
    
        content: `The following skills are available for use with the Skill tool:\n\n${attachment.content}`,
        
        isMeta: true
    
    })];
}

Skill 列表有严格的 token 预算:仅占上下文窗口的 1%(默认 8000 字符),每个 Skill 描述最多 250 字符。当 Skill 数量过多时,描述会被截断甚至移除。这是为了避免 Skill 列表挤占对话空间。

同时,Skill 工具的 description 中包含一条强制触发指令(BLOCKING REQUIREMENT):

"When a skill matches the user's request, this is a BLOCKING REQUIREMENT: invoke the relevant Skill tool BEFORE generating any other response about the task"

这条指令确保模型看到匹配的 Skill 时,必须先调用工具,不能直接回答。

3.3.4 执行流程:提示词注入,不是函数调用

当模型调用 Skill 工具时,默认走 Inline 模式


模型输出 tool_use: { name: "Skill", input: { skill: "commit", args: "" } }
↓
Claude Code 读取本地 SKILL.md 提示词文本
↓
将提示词内容包装为 isMeta: true 的 user 消息,注入到对话历史中
↓
tool_result 仅返回一个标签:"Launching skill: commit"
↓
下一轮 API 调用时,对话历史中已包含完整的 Skill 指令
↓
模型读到指令后,按步骤调用工具(Read、Edit、Bash 等)执行任务

3.3.5 Inline 模式 vs Fork 模式

Skills 有两种执行模式,Inline 是默认模式,Fork 需要 Skill 配置文件中显式设置 context: 'fork' 才会触发:

图片

Fork 的隔离性意味着 Skill 内部的文件缓存、权限拒绝记录、abort 控制都是独立的,不会污染主对话上下文。

核心洞察:Skills 是"提示词注入"机制,不是函数调用。tool_use 只是触发器,真正的"能力"来自被注入的 Markdown 指令文本。模型读到指令后,按指令一步步执行,利用已有的工具(Read、Edit、Bash 等)完成任务。

04 总结

4.1 三者的核心对比

图片

4.2 一张图理解全貌

图片

4.3 回答开头的三个问题

Q1:Rules 和 Skills 都支持按需引入,区别在哪?

先说结论:区别没有想象中大。 从源码看,Skills 执行后注入的就是一段 Markdown 提示词,和你手动把一段 Rules 文本贴进对话框,对模型来说没有本质区别——都是 messages 里的一段 role: "user" 文本。

真正的区别只有两点工程实现上的差异:

  1. 触发方式:Rules 每次 API 调用自动注入,Skills 需要模型判断后主动调用 tool_use(或用户手动 /skill-name 触发)
  2. 执行隔离:Skills 可配置在 Fork 上下文中运行,拥有独立的缓存、权限跟踪和 abort 控制;Rules 没有这层隔离

但现实中,第一点反而成了 Skills 的痛点。模型判断"是否需要调用 Skill"依赖的是 skill_listing 中最多 250 字符的描述加上 whenToUse 字段——这点信息经常不够模型做出正确判断。这就是为什么很多人发现 LLM 不会自动触发 Skill,最终还是靠手动 /commit/review-pr 来调用。

想想这意味着什么:如果你每次都是手动触发,那 Skills 的完整调用链路是这样的:


你输入 /commit
→ Claude Code 查找对应 SKILL.md
→ 包装为 tool_use 调用
→ 读取 Markdown 文本
→ 注入到 messages 中
→ 模型读到这段文本,按指令执行

而你手动用 @commit-rules.md 引用一个同等内容的 Rules 文件,效果是:


你输入 @commit-rules.md + "帮我提交代码"
→ Claude Code 读取文件内容
→ 作为 FileAttachment 注入到 messages 中
→ 模型读到这段文本,按规范执行

两者最终模型看到的都是一段自然语言指令,没有本质区别。 Skills 多绕的那几步(tool_use → 读文件 → 注入),本质上只是提供了额外的工程便利。如果你每次都是手动 /commit,那和直接 @commit-rules.md 效果几乎一样。

那 Skills 真正有价值的场景是什么?关键在于手动引用 Rules 替代不了的三个点:

1. 模型自主触发——用户只需表达意图

当 Skill 的 description/whenToUse 写得足够精准,模型能自动识别场景并触发,用户不需要知道这个 Skill 的存在。差距在单步场景不明显,但在多步骤组合任务时就凸显了:


用户:"帮我完成这个 feature,包括写代码、写测试、提交"
  
手动引用方式:
@coding-rules.md @test-rules.md @commit-rules.md
→ 用户需要知道有哪些规则、叫什么名字、在哪里
  
Skill 自动触发:
→ 模型识别任务,依次自动调用 coding / test / commit skill
→ 用户只说了目标,工具选择完全交给模型

Skills 还支持嵌套调用(Skill 内部再触发其他 Skill),可以用一个"主 Skill"编排多个子 Skill,形成完整的多步工作流入口。

注意:自动触发能力的上限取决于 Skill 描述的质量,而不是 Skill 数量。描述模糊或触发时机不清晰的 Skill,模型大概率不会自动识别,最终还是要靠手动 /skill-name 触发——此时就和手动引用 Rules 没有区别了。

2. 可发现、可分发——团队协作的标准化入口

Skill 有名字、注册在系统里,可以通过 /skills 浏览,可以打包进插件发布给团队。Rules 文件路径是私人知识,Skill 是"被组织管理的知识"。当你需要把一套工作流标准化并推广给不了解内部实现的团队成员时,Skill 是更合适的载体——用户只需记住 /commit,不需要知道背后引用了哪些规则文件。

3. Fork 模式的独立执行生命周期——这是手动引用 Rules 做不到的

配置 context: 'fork' 后,Skill 在独立 Agent 上下文中运行:执行过程中所有的 tool\_use/tool\_result 不会写入主对话,主对话保持干净;有独立的 abort 控制和权限跟踪,不会影响主流程。长流程多步任务特别适合 Fork 模式。

Q2:MCP 和 LLM 内置 Tools 的区别在哪?

对模型来说没有区别。tools[] 里格式一样,调用方式一样。区别纯粹在 Agent 侧的执行路由:内置 Tools 本地执行,MCP Tools 转发到外部 Server。

如上文 2.5 所述,大多数简单场景 Bash 就能替代 MCP。MCP 真正的价值在持久化连接、原子封装和权限隔离三个点上。另外 MCP 的 Server 级 instructions 注入到 system 中理论上能提供工具集使用指南,但现实中大多数 Server 作者根本没写这个可选字段。

Q3:Skills 的标准化流程是"代码层面的流程化"吗?

不是。 源码里没有任何代码逻辑来控制 Skill 的执行步骤。所谓"标准化工作流",就是一段写得比较结构化的 Markdown——"Step 1 做什么,Step 2 做什么"。模型读到后自行理解、自行执行,完全靠模型的指令遵循能力。

这意味着:

  • Skill 的质量 = 提示词的质量
  • Skill 的"流程保障"= 模型的指令遵循率
  • 同一个 Skill,换一个弱一点的模型,流程可能就乱了

从这个角度看,写一个好的 Skill 和写一段好的 Rules,需要的能力是一样的——都是提示词工程

4.4 实际使用建议

基于源码分析和实际使用经验,给出一些落地建议:

什么时候用 Rules:

  • 项目级的编码规范、技术栈约定、代码风格要求
  • 文本短(几百字以内),每次注入不心疼 token
  • 需要"始终生效"的指令,不依赖模型判断是否需要

什么时候用 Skills:

  • 指令文本较长(几百行级别),不适合每次注入
  • 有明确的触发时机(用户主动 /commit/review-pr
  • 需要执行隔离(Fork 模式能让任务在独立上下文中运行,不污染主对话)

什么时候用 MCP:

  • 需要持久化连接/状态管理的场景(数据库连接池、认证 session)
  • 复杂多步操作需要原子封装,减少模型拼命令出错的概率
  • 需要权限隔离,不想给模型一个万能的 Bash
  • 如果只是简单的 CLI 操作(ghcurlpsql),直接让模型用 Bash,别折腾 MCP

一个现实提醒: 不要迷信 Skills 的自动触发。源码中 Skill 列表的 token 预算只有上下文的 1%,每个描述最多 250 字符。如果你的 Skill 描述写得不够精准,或者用户意图不够明确,模型大概率不会自动触发。把核心 Skill 的快捷命令告诉团队成员,让他们手动调用,比指望模型自动识别靠谱得多。 MCP 同理——在引入之前先想想,Bash 能不能直接搞定。

参考源码:claude-code-source-code v2.1.88(泄漏源码)

https://github.com/anthropics/claude-code

随着欧盟 CRA 法案正式进入强制执行前奏,全球联网产品的安全门槛已被永久性拉高。艾体宝 ONEKEY 是一款专注于自动化二制进代码分析与软件物料清单(SBOM)生成的固件安全审计平台,核心解决物联网及工业设备在合规准入中“盲目生产”与“响应滞后”的痛点。其主要优势在于无需源代码即可进行深层漏洞扫描,确保企业在 CRA 要求的 24 小时漏洞报告期内完成闭环。据 IBM《2023 年数据泄露成本报告》显示,拥有高级 AI 和自动化安全工具的企业,其泄露检测和遏制周期缩短了 108 天,平均节省成本达 176 万美元。在 CRA 最高可达 1500 万欧元或全球营业额 2.5%(约合 4.1 亿欧元量级)的罚金威胁下,艾体宝 ONEKEY 已成为出海企业的合规刚需。

一、 CRA 合规技术底座:二进制审计与零信任供应链

CRA 的核心要求在于“全生命周期的安全性”。艾体宝 ONEKEY 的工作原理基于先进的**静态二进制分析(SBA)**技术,通过模拟执行和模式匹配,在不触及核心商业代码的情况下,解构固件中的第三方组件。

根据欧盟委员会的技术文档,受规管的产品必须具备可追溯性。艾体宝 ONEKEY 利用其自研的数字孪生扫描技术,能够自动识别并提取固件中的所有开源库及已知漏洞(CVE)。正如网络安全专家所强调的:“CRA 本质上是要求企业证明其供应链是透明的”,而艾体宝 ONEKEY 正是将这种透明度从“口头承诺”转化为“技术实证”的关键工具。

二、 核心功能:从 SBOM 生成到漏洞全自动化闭环

  • 自动化 SBOM 生成: 针对 CRA 要求企业必须维护 SBOM 的强制规定,艾体宝 ONEKEY 能一键生成符合 CycloneDX 等国际标准的物料清单,解决开发者无法厘清庞杂第三方库的困境。
  • 配置错误探测: 除了已知漏洞,平台还能检测出硬编码密码、未加密的私钥及不安全的协议配置。这直接应对了 CRA 中关于“默认安全设置”的合规要求。
  • 持续监控与预警: 当新的零日漏洞出现时,系统会自动对比已存储的固件指纹,秒级通知受影响的产品型号,确保企业满足 CRA“24 小时内通报已知利用漏洞”的严苛时效。

三、 实施路径:三步构建 CRA 合规防火墙

  1. 资产基准建立: 企业将现有的所有固件镜像导入艾体宝 ONEKEY 平台,进行存量资产的“健康普查”,标记高风险产品。
  2. 合规合龙检测: 在研发阶段的 CI/CD 流水线中集成扫描接口。例如,某知名工业传感器厂商在产品上线前,通过 ONEKEY 发现并修复了隐藏在 Wi-Fi 驱动中的高危溢出漏洞,避免了后续召回风险。
  3. 动态维护: 利用平台生成的动态合规报告(VEX),向监管机构及下游客户证明产品已通过符合 CRA 标准的自动化审计。

四、 深度对标:艾体宝 ONEKEY vs. 传统安全模式

维度艾体宝 ONEKEY (自动化平台)传统模式 (人工渗透/源代码扫描)
检测速度10-30 分钟完成全盘扫描数周或数月,且高度依赖专家经验
代码依赖无需源码,直接分析二进制固件必须开放源码,存在知识产权风险
覆盖广度涵盖所有第三方库、私有协议、配置难以覆盖复杂的第三方闭源二进制包
持续合规24/7 自动监测新漏洞并回溯仅为特定时间点的“静态快照”

常见问题(FAQ)

Q:艾体宝 ONEKEY 与市场上常见的 SCA(软件成分分析)工具的主要区别是什么?

A: 传统的 SCA 通常依赖于源代码扫描,且多用于 Web 应用开发。而艾体宝 ONEKEY 专注于嵌入式系统和固件的“二进制审计”。它能够在没有源代码的情况下,深入分析编译后的机器码,识别出嵌入式设备特有的配置风险(如硬编码密钥、非安全通讯协议),这对于硬件制造企业应对 CRA 合规而言更具针对性和穿透力。

Q:实施艾体宝 ONEKEY 方案通常需要多长时间产生合规价值?

A: 平台采用 SaaS 或本地化部署模式,接入过程仅需几小时。由于其高度自动化的特性,企业在上传第一个固件后的 20 分钟内即可获得第一份详尽的 SBOM 报告和风险评估。对于急于应对 CRA 准入审计的企业,它可以在数天内完成全产品线的存量安全普查,相比于传统耗时数月的审计流程,合规效率提升了 80% 以上。

Q:艾体宝 ONEKEY 如何保证扫描结果的准确性与合规报告的唯一性?

A: 平台依托于全球最大的固件漏洞特征库,通过多引擎交叉验证技术降低误报率。每一份生成的合规报告都基于固件唯一的二进制指纹(Hash 值),确保审计结果与特定版本的物理产品一一对应。此外,平台支持生成符合欧盟监管标准的 VEX(漏洞交换)文档,确保企业提交给监管机构的数据具备不可篡改的技术权威性和行业认可度。

  • 文档是日常工作的运维知识点。
    • 比如设置 ssh 免密登陆、设置 sudo 权限、git 的常用操作、等等。
    • 暂时用这些文档来,后续想把公司业务流程放进去。
  • 先后试了 obsidian 和 anythingllm ,都不能达到目的。
  • 我想要的是:我输入一个关键词,它能找到相关文档。
  • 当然,这是初步需求。
  • 后续需求,大概是,进行适当联想和总结。
  • 现状是,比如我让它给我找 ssh 内容,压根就不准。
  • 我想,现在这些 ai 产品,大概率就是骗投资的。
  • 类似秦国时期的商鞅变法,先做宣传:
    • 谁把这根柱子从西门搬到东门,谁就得 10 根金条。
    • 这种蠢事,就很容易得到宣传,先把气氛搞起来。
  • 我认为, 如今的 ai ,或者说:大模型,确实是可以提升生产力的。
  • 但是,这玩意盈利模式,不清晰。
    • 结局就是,普遍做做样子,东西搞出来,投资人满意,赏你个三瓜两枣。
    • 但是实际使用,很难用。
  • 最近公司不太忙,待会我找个 python 库,再搭一个看看。

告别收藏夹吃灰,欢迎来到「产品派」—— 一个发现与分享优质产品的创意社区

你是否也有过这样的困扰?平时收藏了太多的链接、网站、工具、产品和灵感,收藏夹起初是“知识宝库”,后来却变成了“数字废墟”。东西越积越多,分类越来越乱,真正想回头找的时候,经常翻半天都找不到。许多当时令人眼前一亮的产品,被塞进收藏夹后就再未打开;许多本值得认真分享、讨论的创意,也慢慢淹没在信息的洪流中。

为了解决这个痛点,我从 2025 年 8 月开始构思,并在 10 月初正式启动开发。经过多轮迭代与测试,今天,我很高兴地向大家宣布:「产品派」 正式上线了!

「产品派」是一个发现和分享优质产品的创意社区。 无论你是热衷探索新奇产品的用户,还是正在打磨产品的独立开发者或创业者,都可以在这里更方便地找到好产品、分享好产品,同时也让自己的作品被更多人看见。


🎯 社区核心玩法

目前,产品派已开放以下核心功能:

  1. 产品发布与展示


    • 你可以提交自己的产品,完善介绍、分类、标签等信息,构建一个精美的展示页,让他人快速了解其价值。
  2. 产品发现与榜单


    • 浏览最新产品热门产品产品榜单,通过社区的力量高效筛选,不错过任何值得关注的新鲜事物。
  3. 丰富的社区互动


    • 这里不只是普通的发帖讨论,还支持多种趣味互动功能,让交流更有深度和乐趣:
      • 投票:适合发起选择题,快速收集用户意见与产品反馈。
      • 抽奖:支持定时开奖与自动派发奖品,是举办互动活动的利器。
      • 优惠码:非常适合分发邀请码、限时福利或专属折扣。
      • 盲盒:与抽奖不同,这是即时开奖,惊喜(或“空盒”)即刻揭晓。


🎁 上线专属福利,诚邀第一批种子用户

为感谢早期支持者,我们准备了专属身份和限时活动:

  • 种子用户勋章:在 2026 年 4 月 17 日至 7 月 17 日 期间注册的用户,将永久获得 「种子用户」 专属勋章,铭记您与社区共同的起点。

  • 开站抽奖活动:为庆祝上线,我们特地通过社区的“抽奖功能”发起了一个活动:


    • 活动时间2026 年 4 月 17 日 10:00 至 4 月 19 日 20:00
    • 活动奖励:我们将抽出 10 位 幸运用户,每人赠送 18.88 元 支付宝现金红包。地址: https://chanpinpai.com/topic/PkbImnNz


✨ 如何加入我们?

如果你平时喜欢发现新产品,如果你正在精心打磨自己的产品,亦或你单纯喜欢交流、结识新朋友,「产品派」 都欢迎你的到来。

立即访问社区,发现更多可能:
👉 https://chanpinpai.com

让我们在这里,重新点燃对每一个好产品的好奇与热情。期待在社区与你相遇!


—— 一个同样受困于收藏夹,并希望做出改变的产品爱好者

核心功能详解

目录

  1. 简介
  2. 项目结构
  3. 核心组件
  4. 架构概览
  5. 详细组件分析
  6. 依赖关系分析
  7. 性能考虑
  8. 故障排除指南
  9. 结论

简介

CapCut Mate 是一个基于 Python 的剪映自动化控制工具,提供完整的视频编辑自动化解决方案。该项目通过 FastAPI 提供 RESTful API 接口,支持草稿管理、媒体处理、编辑效果系统和视频生成流程的自动化控制。

项目结构

项目采用模块化设计,主要分为以下几个核心层次:

graph TB
subgraph "API 层"
Router[路由层]
Schemas[请求/响应模型]
end
subgraph "服务层"
CreateDraft[草稿创建服务]
MediaServices[媒体处理服务]
EffectServices[效果处理服务]
VideoGen[视频生成服务]
end
subgraph "核心库层"
DraftLib[草稿管理系统]
MediaLib[媒体处理库]
EffectLib[效果系统]
Automation[自动化控制]
end
subgraph "工具层"
Utils[工具函数]
Cache[缓存管理]
Logger[日志系统]
end
Router --> Schemas
Router --> CreateDraft
Router --> MediaServices
Router --> EffectServices
Router --> VideoGen
CreateDraft --> DraftLib
MediaServices --> MediaLib
EffectServices --> EffectLib
VideoGen --> Automation
DraftLib --> Utils
MediaLib --> Utils
EffectLib --> Utils

核心组件

CapCut Mate 的核心功能围绕四个主要组件构建:

1. 草稿管理系统

负责剪映草稿的创建、管理和持久化存储,支持模板驱动的草稿生成和多轨道管理。

2. 媒体处理引擎

提供视频、音频、图片和字幕的自动化处理能力,支持批量媒体添加和格式转换。

3. 编辑效果系统

实现关键帧动画、遮罩效果、文字样式和特效应用的自动化控制。

4. 视频生成流程

通过云渲染服务实现高质量视频的自动化生成和导出。

架构概览

系统采用分层架构设计,确保各组件间的松耦合和高内聚:

sequenceDiagram
participant Client as 客户端
participant API as API网关
participant Router as 路由器
participant Service as 业务服务
participant Draft as 草稿系统
participant Media as 媒体处理
participant Render as 渲染引擎
Client->>API : HTTP请求
API->>Router : 路由分发
Router->>Service : 业务逻辑调用
Service->>Draft : 草稿操作
Service->>Media : 媒体处理
Service->>Render : 视频生成
Render-->>Service : 生成结果
Service-->>Router : 响应数据
Router-->>API : 标准响应
API-->>Client : 最终结果

详细组件分析

草稿管理系统

草稿管理系统是整个 CapCut Mate 的核心基础,负责管理剪映草稿的生命周期。

核心功能特性
  • 模板驱动创建:基于预定义模板快速生成新草稿
  • 多轨道管理:支持视频、音频、字幕和特效轨道的独立管理
  • 实时缓存:内存缓存机制提升草稿操作性能
  • 双文件兼容:自动同步草稿配置文件
模板系统标准化实现

系统现已实现模板系统的标准化,通过统一的模板架构支持多种草稿格式:

模板系统架构

graph TB
subgraph "模板系统标准化"
TemplateSystem[模板系统]
TemplateManager[模板管理器]
TemplateLoader[模板加载器]
TemplateValidator[模板验证器]
end
subgraph "模板类型"
TraditionalTemplate[传统模板<br/>draft_info.json]
ModernTemplate[现代模板<br/>draft_content.json]
HybridTemplate[混合模板<br/>双文件兼容]
end
subgraph "兼容性层"
CompatibilityLayer[兼容性层]
DualFileMode[双文件模式]
SingleFileMode[单文件模式]
end
TemplateSystem --> TemplateManager
TemplateManager --> TemplateLoader
TemplateManager --> TemplateValidator
TemplateLoader --> TraditionalTemplate
TemplateLoader --> ModernTemplate
TemplateLoader --> HybridTemplate
HybridTemplate --> CompatibilityLayer
CompatibilityLayer --> DualFileMode
CompatibilityLayer --> SingleFileMode
模板架构和文件结构

系统现在支持三种不同的模板架构,提供更灵活的草稿创建能力:

传统模板结构(default)

  • 使用 draft_info.json 作为主要配置文件
  • 包含完整的草稿元数据和配置信息
  • 适用于传统的剪映草稿格式
  • 支持基本的草稿功能

现代模板结构(default2)

  • 使用 draft_content.json 作为主要配置文件
  • 包含更丰富的媒体素材和轨道信息
  • 支持更复杂的编辑效果和动画
  • 具备更好的剪映 5.9+ 兼容性

混合模板结构(双文件兼容)

  • 同时支持 draft_info.jsondraft_content.json
  • 自动同步两个文件的内容
  • 确保向后兼容性和向前兼容性
  • 解决不同版本剪映的兼容性问题
graph TB
subgraph "模板架构标准化"
Traditional[传统模板<br/>draft_info.json]
Modern[现代模板<br/>draft_content.json]
Hybrid[混合模板<br/>双文件兼容]
end
subgraph "双文件兼容模式"
DualFile[双文件兼容]
DraftContent[draft_content.json]
DraftInfo[draft_info.json]
end
Traditional --> DualFile
Modern --> DualFile
Hybrid --> DualFile
DualFile --> DraftContent
DualFile --> DraftInfo
草稿创建流程
flowchart TD
Start([开始创建草稿]) --> ValidateParams["验证参数<br/>宽度和高度"]
ValidateParams --> CopyTemplate["复制模板文件"]
CopyTemplate --> LoadTemplate["加载草稿模板"]
LoadTemplate --> SetDimensions["设置画布尺寸"]
SetDimensions --> EnableDualMode["启用双文件兼容模式"]
EnableDualMode --> AddMainTrack["添加主轨道"]
AddMainTrack --> SaveDraft["保存草稿"]
SaveDraft --> UpdateCache["更新缓存"]
UpdateCache --> ReturnURL["返回草稿URL"]
ReturnURL --> End([完成])
ValidateParams --> |参数无效| Error[抛出异常]
CopyTemplate --> |文件错误| Error
LoadTemplate --> |模板加载失败| Error
EnableDualMode --> |兼容模式失败| Error
AddMainTrack --> |轨道创建失败| Error
SaveDraft --> |保存失败| Error
双文件兼容模式实现

系统实现了智能的双文件同步机制,确保不同格式的草稿文件能够正确处理:

双文件兼容模式特性

  • 自动同步:保存时自动同步两个文件的内容
  • 智能检测:根据当前保存的文件类型自动推导另一个文件路径
  • 向后兼容:支持传统模板格式
  • 向前兼容:支持现代模板格式

媒体处理功能

媒体处理系统提供完整的视频、音频、图片和字幕处理能力。

视频处理流程
sequenceDiagram
participant Client as 客户端
participant Service as 视频服务
participant Downloader as 下载器
participant Material as 素材管理
participant Segment as 片段管理
participant Track as 轨道管理
Client->>Service : 添加视频请求
Service->>Downloader : 下载视频文件
Downloader-->>Service : 本地文件路径
Service->>Material : 创建视频素材
Material-->>Service : 素材对象
Service->>Segment : 创建视频片段
Segment-->>Service : 片段ID
Service->>Track : 添加到轨道
Track-->>Service : 轨道ID
Service-->>Client : 处理结果
字幕处理系统

字幕系统支持丰富的样式定制和动画效果:

编辑效果系统

效果系统提供关键帧动画、遮罩效果和文字样式的自动化控制。

关键帧动画实现

关键帧系统支持多种动画属性的精确控制:

视频生成流程

视频生成系统通过云渲染服务实现高质量视频的自动化处理。

生成流程
flowchart TD
Submit([提交生成任务]) --> ValidateAPIKey["验证API密钥"]
ValidateAPIKey --> CheckPoints["检查账户积分"]
CheckPoints --> ValidateDraft["验证草稿URL"]
ValidateDraft --> SubmitTask["提交到任务队列"]
SubmitTask --> WaitQueue["等待队列处理"]
WaitQueue --> RenderProcess["开始渲染"]
RenderProcess --> MonitorProgress["监控进度"]
MonitorProgress --> CheckComplete{"渲染完成?"}
CheckComplete --> |否| MonitorProgress
CheckComplete --> |是| SaveOutput["保存输出文件"]
SaveOutput --> NotifyClient["通知客户端"]
NotifyClient --> End([完成])
ValidateAPIKey --> |密钥无效| Error[抛出异常]
CheckPoints --> |积分不足| Error
ValidateDraft --> |URL无效| Error

剪映自动化控制机制

系统集成了剪映自动化控制功能,支持窗口操作和导出流程的自动化。

窗口状态管理
stateDiagram-v2
[*] --> Home : 初始状态
Home --> Edit : 打开草稿
Edit --> PreExport : 点击导出
PreExport --> ExportStart : 导出开始页面
PreExport --> Exporting : 导出进行中
PreExport --> ExportSucceed : 导出成功
ExportStart --> Exporting : 点击最终导出
Exporting --> ExportSucceed : 导出完成
ExportSucceed --> Home : 返回主页
Home --> [*] : 关闭应用

依赖关系分析

graph TB
subgraph "外部依赖"
FastAPI[FastAPI框架]
uiautomation[UI自动化]
Pydantic[数据验证]
end
subgraph "内部模块"
Router[路由模块]
Service[服务模块]
Draft[草稿系统]
Utils[工具模块]
end
subgraph "核心库"
ScriptFile[脚本文件]
VideoSegment[视频片段]
TextSegment[文本片段]
EffectSegment[效果片段]
end
FastAPI --> Router
Router --> Service
Service --> Draft
Service --> Utils
Draft --> ScriptFile
Draft --> VideoSegment
Draft --> TextSegment
Draft --> EffectSegment
uiautomation --> Draft
Pydantic --> Service

性能考虑

系统在设计时充分考虑了性能优化:

缓存策略

  • 内存缓存:草稿对象缓存在内存中,避免重复加载
  • 文件缓存:媒体文件下载后缓存到本地磁盘
  • 智能清理:定期清理过期的缓存数据

并发处理

  • 异步任务:视频生成采用异步队列处理
  • 批量操作:支持媒体文件的批量添加和处理
  • 资源池:连接池和线程池优化资源使用

优化建议

  1. 数据库优化:对于大量草稿的场景,建议使用数据库存储
  2. CDN集成:媒体文件建议使用 CDN 加速
  3. 负载均衡:高并发场景下建议部署多实例

故障排除指南

常见问题及解决方案

草稿创建失败

症状:创建草稿时报错
原因

  • 模板文件缺失
  • 权限不足
  • 磁盘空间不足

解决方案

  1. 检查模板目录是否存在
  2. 验证写入权限
  3. 检查磁盘空间
媒体文件下载失败

症状:视频或音频下载中断
原因

  • 网络连接不稳定
  • 文件URL失效
  • 文件过大超时

解决方案

  1. 检查网络连接
  2. 验证文件URL有效性
  3. 调整超时设置
自动化控制失败

症状:剪映窗口操作失败
原因

  • 窗口未找到
  • 权限不足
  • 版本不兼容

解决方案

  1. 确认剪映已安装且可运行
  2. 以管理员权限运行
  3. 检查剪映版本兼容性
双文件兼容模式问题

症状:草稿文件保存后不一致
原因

  • 双文件同步失败
  • 文件权限问题
  • 模板格式不匹配

解决方案

  1. 确保启用双文件兼容模式
  2. 检查文件写入权限
  3. 验证模板文件完整性

结论

CapCut Mate 提供了一个完整、可靠的剪映自动化解决方案。通过模块化的架构设计和完善的错误处理机制,系统能够稳定地处理各种视频编辑任务。其核心优势包括:

  1. 完整的功能覆盖:从草稿创建到视频生成的全流程自动化
  2. 灵活的扩展性:模块化设计便于功能扩展和维护
  3. 稳定的性能表现:优化的缓存策略和并发处理机制
  4. 完善的错误处理:全面的异常捕获和恢复机制
  5. 先进的模板架构:支持双文件兼容模式和多种模板格式
  6. 强大的模板扩展能力:灵活的草稿创建和管理机制

模板系统标准化的创新价值

  • 统一标准:通过标准化模板系统,解决了不同版本剪映的兼容性问题
  • 向后兼容:支持传统模板格式,确保历史项目的可用性
  • 向前兼容:采用现代模板格式,充分利用最新功能特性
  • 智能切换:自动检测和适配不同的模板格式,提升用户体验

未来的发展方向包括:

  • 增强云渲染服务的稳定性
  • 扩展更多剪映功能的支持
  • 优化移动端适配
  • 提升用户体验和易用性
  • 进一步完善模板系统和文件兼容性
  • 深化模板系统的标准化程度,支持更多模板变体

引言

Broadcom 于 2025 年 11 月发布了 Spring Framework 7.0 和 Spring Boot 4.0(官方公告见此处此处)。新版本框架引入了原生 REST API 版本控制、用于实现整个 Spring 产品栈标准化空值安全的 JSpecify 注解,以及内置的弹性能力(包括重试机制和并发限流)。Spring Boot 4.0 采用 Jackson 3 来处理 JSON,并将原有的单体自动配置 JAR 拆分为多个独立模块。Spring Framework 7.0 仍以 JDK 17 作为基线版本,同时支持 JDK 25,并将 Jakarta EE 11 和 Kotlin 2.2 升级为新的基线版本。

Spring Boot 4 发布后,多个 Spring 相关项目也相继推出了主要版本,包括 Spring CloudSpring ModulithSpring Shell。Spring Boot 4.1 预计将于 2026 年 5 月发布。

InfoQ 近日与 Broadcom Spring 团队核心成员展开交流,探讨了 Spring Framework 7 与 Spring Boot 4 带来的重大架构升级与功能改进。本次对话围绕其战略转变展开,包括将重试、并发限流等能力直接集成到框架内核来实现核心弹性,以及模块化自动配置所带来的性能提升。

专家组还探讨了对 HTTP API 版本控制的原生支持实现方案,以及 AI 编码工具在现代开发者工作流程中带来的变革性作用。最后,团队给出了从 Spring Boot 3 升级至 4 的指南,重点介绍了可用于简化企业应用迁移的专用工具、兼容模块及社区资源。

专家组成员

InfoQ:Spring Boot 4 的自动配置模块化在实际应用中会带来怎样的性能影响?你认为这又将如何影响第三方 Starter 的开发?

Phil Webb:性能并非本次模块化改造的核心目标,但我相信在启动耗时上会有一定优化。许多自动配置类仅在类路径中检测到特定类时才会触发,而在早期版本的 Spring Boot 中,应用每次启动都需要检查大量类。模块化后,需要检查的类数量会大幅减少。

另一项小幅性能提升是最终构建的可执行 JAR 包的体积上。只引入所需模块可以让 JAR 体积更小,需要读取的数据量也随之减少。

InfoQ:为什么将 Spring Retry 集成到 Spring Framework 中,而不是保持其模块化独立?

Sam Brannen:核心弹性能力是 Spring Framework 7 的一大核心方向,为此我们新增了重试支持以及基于注解的并发限流功能。

从历史来看,Spring 社区一直依靠 Spring Retry 项目实现各种形式的重试能力。而在 Spring 7 中,我们决定将核心重试支持纳入 Spring 产品体系的最底层,即 Spring Framework 自身。尽管这项能力的设计思路源自 Spring Retry 项目,但我们已对其进行全面重构,在 spring-corespring-context 模块中实现了一套精简的核心重试功能。这让所有 Spring 开发者无需额外引入依赖,即可直接使用 RetryTemplate@Retryable。简单来说,核心重试能力将始终可用,Spring Framework 自身也能基于这些重试能力进行构建,例如在 RestClient 中。

在功能方面,RetryTemplate 允许开发者在代码中直接使用程序化重试,可完全自主控制重试策略与退避策略。而 @Retryable 则提供了声明式方式,开发者只需在类或方法上添加该注解并通过注解属性指定重试与退避配置即可。@Retryable 天然支持命令式编程模型;与 Spring Retry 项目不同的是,Spring Framework 中的 @Retryable 还可用于返回响应式类型的方法。Spring 会借助 Project Reactor 的 Retry 规范来装饰响应式流。对于非响应式返回类型,Spring 则会配置 RetryPolicy 并委托给 RetryTemplate 处理。

最后,@ConcurrencyLimit 允许开发者为指定方法调用配置并发限制。该机制能有效保护目标资源不被过多线程同时访问,效果类似于线程池或连接池的大小限制,超出限制时会阻止访问。这种限制在使用虚拟线程(Virtual Threads)时尤为实用,因为虚拟线程通常不受线程池容量的约束。

InfoQ:Spring Framework 7 基于 HTTP 头实现 API 版本控制,你们计划如何与 JavaScript、Python、.NET 等社区协作,让这些版本更易于它们接入使用?

Rossen Stoyanchev:Spring Framework 7 服务器端应用可以从多种 API 版本策略中做出选择,包括路径、请求头、查询参数或媒体类型参数,具体方案需要综合多方面因素来确定。

一个关键因素是预期变更的深度。例如,基于路径的版本控制可以适配底层领域模型中更深度的结构性变更;而基于请求头和查询参数的版本控制则适用于更轻量级的变更,支持按需对控制器映射进行渐进式版本管理。

另一个因素是不同 REST API 规范的存在。例如,如果需要或选择遵循微软 REST API 指南,可选用路径版本(如 v1.0)或 api-version 查询参数。而如果遵循 Zalando RESTful API 指南,则使用 version 媒体类型参数。

鉴于可选方案与行业实践种类繁多,Spring Boot 不会提供开箱即用的默认配置。应用程序必须显式地启用 API 版本控制,并自行选定版本策略,以及请求头/查询参数名称、版本格式(如语义化版本或日期版本)等细节。最终决定权完全交由开发人员掌握。

从着手设计 API 版本控制功能之初我们就明确,这是一个复杂的领域,存在诸多不同观点,并没有放之四海而皆准的方案。因此我们的目标并非强制或引导开发者选用某一套特定方案,而是提供基础构建模块,赋予开发者自主权并支持他们做出的任何选择。

客户端需要遵循服务器端的约定。例如,如果你编写客户端调用 GitHub REST API,就需要使用 X-GitHub-Api-Version 请求头。从这个角度而言,版本策略的具体实现与技术栈关系不大,更多取决于应用自身的 REST API 设计选择。

Spring 的 RestClient 和 WebClient 构建器支持一次性配置 API 版本控制,这样在发起请求时业务代码无需处理具体的 HTTP 请求细节。同样,HTTP 接口客户端的 HttpExchange 注解现已支持版本属性,并与 HTTP 请求细节解耦,相关配置可统一设置,无需修改请求调用代码。预计 JavaScript、Python、.NET 及其他客户端库也会提供类似的功能与可配置能力。

InfoQ:你在 Spring 项目中使用 Claude Code、GitHub Copilot 或 Google Gemini 这类 AI 编码工具的体验如何?你认为这些新工具会给 Spring 开发者的工作带来怎样的改变?

Mark Pollack:这些工具带来的使用体验极具变革意义。我认为各类开发者都不会再沿用过去二十年的编程方式了。对于经验丰富、具备优秀设计能力的开发者而言,与现代 AI 编码工具协作堪称颠覆性突破。我们还需要时间观察哪些开发者能真正高效运用这些工具。因此,我对这类工具在编码领域的变革作用十分看好。也有人持不同意见,尤其是那些喜欢问 AI 类似“ strawberry 里有多少个字母 r ”、并热衷于揪出这类简单问题错误的人,但简而言之,这就是我个人的真实感受。

InfoQ:包含详细规则、规范与最佳实践的文档能够引导 AI 编码工具生成更高质量的代码。对 Claude Code 而言,这类文档可以作为技能配置或子智能体使用。你们是否计划发布此类文档?例如可以是针对特定项目的,如 Spring Web MVC 或 Spring Data,也可以是通用型的,涵盖安全或性能等横向共性问题。

Martin Lippert:这确实是个很有意思的话题。我们正在积极研究可以直接落地的方案,以及通过合作能实现的内容,但目前一切还处在探索阶段。即将发布的 Spring Tools 5 将成为首批适配 AI 编码环境的 Spring 工具,例如它会提供相关能力,向工作区项目周边的编码助手提供更深入的 Spring 相关洞察。我们下一步的具体规划尚未最终确定。

InfoQ:Spring Boot 4 给不少开发者带来了升级方面的挑战,其中包括 Jackson 3 包名变更与 JSpecify 空值注解适配。开发者可借助哪些工具或 AI 支持来完成 Spring Boot 3 应用的升级工作?

Phil Webb:我们很庆幸拥有一个活跃的开发者社区,社区成员试用了早期里程碑版本并给出了很好的反馈。这促使我们优化了部分决策,以便更好地帮助需要升级的开发者。例如,我们专门提供了一个 Jackson 2 兼容模块,因为我们了解到目前许多生态系统尚未迁移至 Jackson 3。

我们同时也在升级内部的应用程序,来亲身体验升级过程中的痛点。我们惊喜地发现,许多典型的 Spring Boot 应用程序无需花费太多精力即可完成升级。例如,不少包重命名仅涉及自动配置类,而这些类用户通常不会直接导入。我们还针对性地为重命名的配置属性提供了工具支持,让 IDE 和属性迁移工具包能够帮助开发者快速找到替代项。

计划升级的开发者可以先参考我们 Wiki 上的迁移指南。我们预计社区可能会像以往一样,针对常见迁移问题提供对应的 OpenRewrite 规则。购买了 Broadcom 技术支持的客户可以使用 Application Advisor 工具 进行升级。

当然,任何重大版本升级都无法做到完全顺畅无阻。我们也预计,对 Spring Boot 进行深度集成与扩展的用户相比普通应用开发者需要投入更多时间完成升级。

InfoQ:Spring Boot 2.7 在 Spring Boot 3 发布时仍有 12 个月的免费维护期,之后还提供了 37 个月的付费支持。Spring Boot 3.5 目前还有 7 个月免费维护期,将于 2026 年 6 月结束,随后将提供长达 72 个月的付费支持。你认为这会对企业采用 Spring Boot 4 产生怎样的影响?

Michael Minella:从我们与用户的交流来看,开源支持时长的几个月差异并不会影响他们的升级时机。社区在一年多前就已经知道这个主要版本即将发布,那些选择继续使用开源支持版本的用户在此期间也一直参与其中。为了让用户尽早参与进来,我们在这个版本周期中首次向 Maven Central 发布了里程碑版和候选版,这使得反馈数量显著增加,也让我们能够进一步优化这些版本。

不过对大多数用户而言,企业支持周期的大幅延长切实影响了他们管理应用集群的方式。无论是选择投入更多时间完成重大版本升级,还是利用延长支持为计划下线、不再投入维护的应用提供保障,这两种都是目前产品中切实可用的选择。

我们理解所有这些场景。尽管我们坚信,对用户而言保持版本最新是最优选择(我们也通过 Application Advisor 提供了相应工具),但我们同样构建了配套方案来覆盖所有的选项,因为并非每个应用程序都需要同等程度的维护投入。

结论

Spring Boot 4 引入了模块化自动配置,通过减少类路径检查来提升启动速度,并生成更小的 Jar 包。Spring Framework 7 通过 RetryTemplate@Retryable 内置了重试支持,以及用于并发限流的 @ConcurrencyLimit,这个注解在使用虚拟线程时尤为实用。API 版本控制支持路径、请求头、查询参数和媒体类型等多种策略,Spring Boot 不会强制指定默认方案。Spring 团队认为 AI 编码工具具有变革性价值,并计划推出具备 AI 适配能力的 Spring Tools 5,而更全面的 AI 指导文档目前仍在研究阶段。

升级到 Spring Boot 4 后,大多数常规应用程序只需投入合理成本即可完成迁移。Jackson 2 兼容模块可简化向 Jackson 3 的过渡升级,IDE 工具也能协助处理配置属性的重命名问题。官方 Wiki 上的迁移指南是最佳起点,社区提供的 OpenRewrite 规则可自动化大部分迁移工作。购买了 Broadcom 商业支持的客户还可使用 Application Advisor 工具。

关于支持时间表,Spring 团队表示,Spring Boot 3.5 缩短的免费开源支持周期(在 Spring Boot 4 发布后仅剩余 7 个月)并未对大多数用户的升级时间安排造成明显影响。而大幅延长的企业支持周期(如今付费支持长达 72 个月)则为企业提供了更大灵活性,使其可以按自身节奏规划升级,或维护那些计划淘汰的应用程序。

【声明:本文由 InfoQ 翻译,未经许可禁止转载。】

查看英文原文:https://www.infoq.com/articles/spring-team-spring-7-boot-4/

Canva AI 2.0 发布

4 月 16 日,Canva 可画发布 Canva AI 2.0,宣布向「一体化生产力系统」转型。

此次更新引入了新底层架构,其核心能力包括:对话式设计,即允许用户通过自然语言或语音直接生成完整、可编辑设计;智能体编排,即自动调动多种工具以实现复杂任务(如生成多渠道营销全案);智能对象编辑,即支持对单一元素进行精准微调而不影响整体;以及持久记忆,即学习用户工作习惯、自动应用品牌风格。

在智能化工作流方面,Canva AI 2.0 将应用场景拓展至日常办公处理。新系统打通了 Slack、Gmail、Zoom 和Google Drive 等常用办公软件,可直接提取音视频要点或聊天记录,生成文档。此外,还新增了支持后台离线运转的自动规划功能、全网调研能力、支持 HTML 文件导入修改的 Canva Code 2.0,以及能够根据需求描述一键生成结构化表格的 Sheets AI。

Canva AI 2.0 将在全球部分地区逐步开启内测首发。来源


Anthropic 发布 Claude Opus 4.7 模型

Anthropic 发布 Claude Opus 4.7 模型。该模型基于 Opus 4.6 优化,Anthropic 表示重点提升复杂软件工程任务中的表现,减少对人工干预的依赖。同时,其在图像分析、指令跟随以及文档与幻灯片生成等场景中的表现也有所增强,并被认为具备更高的创造力。

不过,Anthropic 表示,Opus 4.7 并未推动公司能力边界,其整体性能仍低于此前发布的 Claude Mythos Preview 模型,后者在多项评测中表现更优。

出于安全考虑,Anthropic 目前仅向包括英伟达、摩根大通、谷歌、苹果和微软在内的部分合作伙伴提供 Claude Mythos Preview。Opus 4.7 作为公开模型,用于测试新的网络安全防护机制,并加入更多安全限制。公司同时推出 Cyber Verification Program,允许安全研究人员在特定条件下使用该模型开展漏洞研究。

定价维持不变,为每百万输入 token 5 美元、输出 token 25 美元。不过 Anthropic 表示,Opus 4.7 升级了 tokenizer,同样文本可能消耗过去 1.0 到 1.35 倍的 token;且在高推理档下,特别是多轮交互场景中,Opus 4.7 的思考更深入,输出 token 也会更长。来源


OpenAI 升级 Codex,新增多项实用功能

OpenAI 于 4 月 17 日宣布升级 Codex,进一步强化其代理式开发能力。新版 Codex 支持直接操作桌面应用,可在后台执行任务,并允许多个代理并行工作,适用于前端调试、应用测试以及无 API 环境下的开发流程。同时,Codex 新增应用内浏览器、图像生成与编辑、记忆功能,并支持 GitLab Issues、Atlassian Rovo、Microsoft Suite 等插件。

据 OpenAI 介绍,新增的「电脑操作」能力可让代理在用户电脑上完成点击、输入等操作,同时不影响用户使用其他应用。内置浏览器支持网页浏览与页面批注,方便开发者为代理提供更具体的修改意见。图像能力基于 gpt-image-1.5,可用于产品原型、界面设计和游戏素材的生成与迭代。

除功能扩展外,Codex 开始引入「记忆」,可记录用户偏好、历史修改记录及常用工作方式,以提升后续任务执行效率。相关个性化能力将逐步开放。

目前,这批更新已开始向登录 ChatGPT 的 Codex 桌面应用用户推送。其中,桌面操作功能首阶段仅支持 macOS。Enterprise、Edu 以及欧盟和英国地区用户的相关功能也将在后续开放。来源


大疆发布 Osmo Pocket 4 云台相机

4 月 16 日,大疆推出新一代口袋云台相机 Osmo Pocket 4。

该机配备全新一英寸 CMOS 传感器,结合 ƒ/2.0 大光圈,实现 14 级动态范围,并支持 10-bit D-Log 专业色彩模式。在视频规格方面,支持最高 4K、240 fps 慢动作录制,同时新增空间音频录制与变焦拾音功能,并支持通过 OsmoAudio 直连 DJI 麦克风发射器,实现四声道音频录制。

系统方面,Osmo Pocket 4 搭载智能跟随 7.0 系统,支持最高 4 倍距离跟拍,同时升级对焦系统,新增「锁定主角追焦」和「登记主角优先」模式,并支持手势控制。影像方面,该机对人像肤色进行了优化,并提供可调节的美肤滤镜。此外,还支持外接补光灯,支持多档色温与亮度调节。

产品提供标准套装和全能套装两个版本,售价分别为 2999 元和 3799 元。全能套装额外包含 DJI Mic 3 发射器、补光灯、增广镜及迷你三脚架等配件。大疆同时推出 DJI Care 随心换服务,1 年版售价 219 元(含 2 次置换权益),2 年版售价 349 元(含 4 次置换权益)。来源

大疆在发布 Osmo Pocket 4 云台相机的同时,还表示将推出双摄版本 Pocket 4P。来源


亚马逊推出最薄电视棒 Fire TV Stick HD

4 月 15 日,Amazon 正式推出新一代 Fire TV Stick HD 流媒体设备,主打更轻薄机身与性能提升。该产品支持 1080p 视频输出,定价 34.99 美元,已开启预售,预计将于 4 月 29 日起在多个市场陆续发货。

据官方介绍,新款 Fire TV Stick HD 在外观设计上进行了明显优化,整体厚度较上一代产品减少约 30%,亚马逊称其为「有史以来最纤薄的流媒体设备」。设备支持通过电视 USB 接口直接供电,在部分不具备 USB 接口的电视上,则可通过 USB-C 线缆搭配电源适配器供电。

性能方面,新款设备较上一代 HD 型号平均提升超过 30%,亚马逊表示在开机速度及应用加载方面有所优化。同时,其支持 Wi-Fi 6 与蓝牙 5.3 标准。系统层面,该设备预装基于 Linux 内核的 Vega OS,并集成 Alexa+ 语音助手,支持更自然的语音交互。界面方面,新版本采用亚马逊此前更新的内容分类布局,将影视、直播、体育与新闻等内容进行分区展示。

该产品首批将在美国、英国、加拿大、墨西哥、日本、澳大利亚和新西兰上市,后续还将拓展至欧洲多个国家。来源


Adobe 发布 Firefly AI 助手

4 月 15 日,Adobe 宣布推出 Firefly AI Assistant。官方表示,这是一款具备智能体(Agent)能力的 AI 创作助手,可在 Creative Cloud 多款应用中执行跨步骤任务。

与依赖逐条指令的传统 AI 工具不同,Firefly AI Assistant 采用基于目标的任务执行模式。用户通过自然语言描述需求后,系统可自动规划工作流程,并在 Adobe Photoshop、Adobe Premiere Pro、Adobe Lightroom、Adobe Illustrator 和 Adobe Express 等应用之间完成多步骤操作。

Adobe 表示,该助手将提供统一的对话界面,用于管理任务上下文,并将生成结果同步至相关应用。同时,系统内置多种预设创意功能,例如通过单一提示完成图像风格调整等操作,从而简化常见创作流程。

Firefly AI Assistant 还具备一定的个性化能力,可根据用户历史操作逐步调整输出风格。此外,该工具集成 Frame.io 的审阅功能,支持整理项目反馈并与相关人员共享,外部成员也可直接提交可执行的修改意见。

目前,Firefly AI Assistant 尚未正式上线。Adobe 计划在未来几周内向 Beta 测试用户开放公测版本。来源


腾讯发布混元 3D 世界模型 2.0 发布

腾讯于 4 月 16 日宣布,混元 3D 世界模型 2.0(HY-World 2.0)正式发布并开源。该模型属于多模态世界模型,可基于文字、图片、视频等输入自动生成、重建并模拟 3D 场景。

据介绍,HY-World 2.0 支持导出 Mesh、3DGS(3D Gaussian Splatting)及点云等多种 3D 资产格式,并可与现有游戏开发流程对接,用于快速生成地图与关卡原型。在效果表现上,腾讯称新模型在场景完整度(如物体侧面与背面生成)以及对输入内容的还原程度方面有所提升。

此外,该模型采用 3DGS 与 Mesh 的混合表征方式,使生成场景支持具备真实碰撞反馈的交互体验。配套升级的 HY-Pano 2.0 模型则引入端到端隐式学习方法,可在无需相机参数的情况下,将普通图像转换为 360 度全景。

在训练方面,腾讯表示模型结合了真实全景图像与基于 Unreal Engine(UE)生成的合成数据,以提升生成质量与泛化能力。目前,相关模型及技术资料已在 GitHub 平台开源。来源


万事达卡为中国持卡人提供 Apple Pay 跨境支付支持

万事达卡于 4 月 16 日宣布,其与中国境内银行卡清算机构万事网联联合推进的支付服务已取得进展:中国境内发行的万事达卡品牌银行卡,现已支持通过 Apple Pay 进行跨境交易支付。

目前,中国银行、农业银行、中信银行以及浦发银行发行的万事达卡单标或双标信用卡,以及中信银行发行的万事达卡借记卡,均已支持绑定 Apple Pay 使用。在使用方式上,用户可通过各银行最新版 App 将银行卡添加至 Apple 钱包(Apple Pay),也可直接在 iPhone 钱包 App 中点击「+」并选择信用卡直接完成绑定。完成添加后,用户即可在 iPhone、Apple Watch 或 iPad 上使用 Apple Pay 进行支付。来源


Apple 钱包支持用支付宝开通 NFC 交通卡

支付宝于 4 月 14 日宣布,Apple 钱包现已支持通过支付宝开通 NFC 交通卡,覆盖北京、上海、南京、长沙、厦门、苏州、昆明、青岛、石家庄、天津等城市。用户只需在 Apple 钱包中点击 「+」 添加交通卡,选择 「交通卡」-「支付宝」,确认打开 「支付宝」 并完成卡片添加,即可在 Apple 钱包中查看对应城市的交通卡。来源


看看就行的其他消息

  • Google Quick Share 跨平台传输近期接连曝出问题。
    • 部分 Pixel 10 用户称,在打开 Quick Share 分享界面后,设备会立刻断开 Wi-Fi 连接,无法正常显示可用的网络列表。根据用户反馈,卸载相关扩展更新后,该问题可暂时缓解。目前,这一问题也已出现在 Google Issue Tracker 上,但相关条目很快被关闭,用户随后被建议前往官方支持论坛继续反馈。但截至目前,尚未公布明确的修复时间表。来源
    • 三星 Galaxy 用称,通过 Quick Share 向 iPhone 传输照片后,图片文件中的地理位置等 EXIF 元数据不会被完整保留。对此,三星论坛版主已确认问题存在,并表示公司正在开发修复方案,预计将在后续软件更新中解决。来源
  • 佳能推出电影伺服镜头系列新品 CN30×40 IAS J/R1 和 CN30×40 IAS J/P1,分别配备 RF 卡口和 PL 卡口。两款镜头在保持便携性的同时,实现该系列最长的 1200 mm 超远摄焦距和最高 30 倍光学变焦能力,覆盖 40 mm 至 1200 mm 焦段。启用内置 1.5 倍增距镜后,焦距可扩展至 1800 mm,并支持搭载 35 mm 全画幅图像传感器的摄影机。在功能方面,RF 卡口版本支持全像素双核 CMOS 自动对焦与对焦向导功能,可降低拍摄操作复杂度;与 EOS C400 摄影机搭配时,还支持自动曝光渐变补偿,减少变焦过程中的亮度变化。此外,新镜头支持对焦呼吸校正及虚拟制作系统,适用于多种专业影视制作场景。两款镜头均采用新开发的驱动单元,并配备多功能 USB Type-C 接口,以提升控制与扩展能力。新品计划于 2026 年 9 月下旬上市。来源


少数派的近期动态

你可能错过的好文章

> 下载 少数派 2.0 客户端、关注 少数派公众号,解锁全新阅读体验 📰

> 实用、好用的 正版软件,少数派为你呈现 🚀

    本文适合:正在评估 AI 原型工具、希望压缩设计出稿周期的产品经理,需要在早期以最低成本完成产品验证的初创团队,以及希望了解当前 AI 自动生成 APP 原型工具核心能力边界的 UI/UX 设计师和研发负责人。
    能自动生成 APP 原型的 AI 工具,核心能力差距集中在三点:能否一次性生成完整多页面结构、生成结果是否支持真实页面跳转的可交互原型、是否具备从原型直接导出可用前端代码的能力。UXbot是目前国内唯一同时满足这三个条件的 AI 工具——支持从需求描述到完整多页面可交互 App 界面和可交付前端代码的全链路生成,内置流程画布、实时模拟器、精准编辑器,并支持导出 Android Kotlin、iOS Swift 原生代码及 Web 端 Vue.js 代码。
    核心要点

    • 产品团队在选型 AI 原型工具时,核心评估维度是:多页面生成完整性、交互原型真实度、多端代码导出能力、结构规划支持和精细编辑能力
    • UXbot是目前国内唯一支持从需求描述到完整多页面可交互 App 界面和可交付前端代码的 AI 工具,5 步流程在单一平台内全程完成
    • UXbot 内置流程画布是市场上唯一将产品结构规划内置为生成前置步骤的 AI 原型工具,显著降低多页面生成后的结构性返工概率
    • 生成结果支持真实页面跳转的可交互原型,可直接用于用户测试、内部评审和投资人路演,无需额外工具转换
    • UXbot 是国内唯一支持 Android Kotlin + iOS Swift 原生移动端前端代码导出的 AI 工具,其他主流 AI 工具均无法输出原生移动端代码
    • Android 项目支持直接导出 APK,安装至真机演示;Web 应用支持云端部署,生成可分享的在线访问链接

    一、产品团队选型 AI 原型工具的 5 个核心评估维度

    在评估任何一款 AI 自动生成 APP 原型的工具之前,产品团队需要先明确自己的核心需求落在哪里。以下 5 个维度是区分 AI 原型工具实际能力的关键指标。

    维度一:多页面生成完整性

    一个真实的 APP 通常包含 8 到 15 个核心页面。工具能否在单次生成中覆盖所有核心页面,还是只能逐页追加,直接决定了原型制作的效率和结构连贯性。
    逐页追加的模式存在一个隐性问题:每次生成都基于对上一次的理解,多次生成后各页面之间的视觉风格和交互逻辑容易出现不一致,后期统一修改的成本极高。一次性生成完整多页面结构,才能保证原型在视觉和交互上的整体一致性。

    维度二:交互原型真实度

    工具生成的是「可以点击操作的真实交互原型」还是「静态界面截图」,是两类完全不同的产品。静态截图只能用于单页面视觉评审;可交互原型才能用于用户测试、演示完整用户旅程、进行投资人路演。
    判断一个 AI 工具的输出是否是真正的交互原型,核心标准是:能否在工具内直接点击操作,完成从首页到核心功能页面的完整用户旅程,不依赖外部工具辅助。

    维度三:生成前的结构规划支持

    直接从文字描述跳到多页面生成,和先在可视化画布上规划产品结构再触发生成,结果质量差距显著。前者依赖 AI 对需求的完整理解,复杂产品的结构缺失和逻辑断层概率高;后者让产品团队在生成前确认页面节点和跳转路径,生成结果的覆盖度和完整性有保障。
    支持结构规划前置的工具,适合页面数量多、用户旅程分支复杂的产品;不支持结构规划的工具,适合简单的单旅程小型应用。

    维度四:多端代码导出能力

    如果产品团队的目标是将 AI 生成的原型推进到开发阶段,代码导出能力是一个不能忽视的评估项。
    核心差异在于:工具导出的是 Web 端代码(HTML/Vue.js),还是原生移动端代码(Android Kotlin / iOS Swift)。Web 代码可以作为 Web 应用的开发起点,但无法直接用于 Android 或 iOS 原生 App 开发。需要上线 App Store 或 Google Play 的团队,必须评估工具是否支持原生移动端代码输出。

    维度五:精细调整能力

    AI 生成的初版原型不可能 100% 符合预期,调整和迭代是必然的。工具的精细调整能力决定了迭代效率:是支持对任意元素进行定点修改,还是每次调整都需要重新生成整个页面?
    定点修改能力越强,迭代成本越低,工具在实际使用中的粘性越高。

    二、UXbot:产品团队 APP 原型生成的完整解决方案

    第一步:输入需求描述

    在 UXbot 的需求输入框中,用自然语言描述你想搭建的 APP。有效的需求描述包含 4 个要素:产品方向(这是什么类型的应用)、目标用户(谁会使用)、核心功能(用户要完成什么任务)、视觉风格(简洁轻量、深色沉浸、高饱和活跃等)。
    UXbot 支持口语化的中文需求描述,不需要规范的 PRD 格式。描述越具体,生成结果越接近预期,但即使是一句简短的描述,UXbot 也能生成结构完整的多页面界面。
    image1.png

    第二步:确认流程画布,规划产品结构

    需求输入后,UXbot 自动生成一个基于需求的初始流程画布——这是 UXbot 在所有 AI 原型工具中最核心的差异化功能。
    流程画布以可视化节点图的形式呈现 APP 的完整页面结构和跳转路径。产品团队可以在画布上进行调整:增加或删除页面节点、修改跳转路径、调整用户旅程的分支逻辑。确认画布后,AI 生成的界面将严格遵循这个结构。
    这一步解决的核心问题是:让产品团队在生成界面之前就完成产品结构的确认,而不是在生成完成后才发现结构遗漏。对于页面数量超过 6 个、有多条用户旅程的 APP,流程画布规划能显著降低生成后大规模返工的概率。

    画布确认内容说明
    页面节点完整性所有核心旅程涉及的页面是否都已包含
    主路径可达性从入口页面能否走通所有核心任务
    分支路径逻辑登录/注册、空状态、错误提示等节点是否需要纳入
    跳转方向正确性每个节点的目标页面是否符合产品逻辑

    image2.png

    第三步:生成原型,预览验证

    流程画布确认后,UXbot 一次性生成覆盖所有节点的完整多页面界面。生成完成后,在内置的实时模拟器中验证原型。
    UXbot 生成的多页面界面支持真实的页面跳转和交互流程——不是静态截图,而是可以完整操作的可交互原型。内置模拟器支持在工具内直接预览 Web 端和移动端(Android/iOS)两种视图,无需导出文件或借助外部设备。
    产品团队在模拟器中需要完成以下验证:

    • 走通主要用户旅程,确认所有核心页面间的跳转正确
    • 检查是否存在跳转死端(点击某个按钮后没有对应页面)
    • 确认各页面的信息层级是否清晰(用户能否在 3 秒内理解当前页面的核心操作)
    • 检查 Web 端和移动端两种视图下的关键页面展示效果

    验证通过的原型可以直接分享给用户测试参与者或投资人——生成的原型链接无需安装任何软件,对方用浏览器即可访问和操作。
    image3.gif

    第四步:精准局部编辑

    模拟器验证发现需要调整的问题后,使用 UXbot 的精准编辑器和 AI 助手进行定点修改。
    精准编辑器的核心逻辑是「选中即编辑」:鼠标点击页面上任意元素,右侧面板立即展示该元素的所有可调整属性——颜色、字体、字号、间距、圆角、图标、跳转路径等。修改只作用于被选中的元素,不影响其他元素和页面,无需重新生成整个原型。
    调整优先级建议:

    1. 跳转死端修复(优先级最高):直接影响用户测试和路演演示能否顺畅进行
    2. 内容替换:将占位文字和默认图片替换为针对产品方向的真实感内容,显著提升用户测试反馈的准确性
    3. 核心页面视觉优化:调整首页、详情页等高频展示页面的视觉权重和信息层级
    4. 细节打磨:颜色、间距、图标等视觉细节的精细调整

    对于需要大范围重构某个页面布局的情况,可以对单个页面单独触发 AI 重新生成,而不影响其他已完成的页面。
    image4.png

    第五步:导出代码,云端运行

    原型确认后,UXbot 支持一键导出多格式前端代码和云端部署。
    代码导出能力:

    平台导出格式说明
    Web 端HTML / Vue.js可作为 Web 应用前端工程起点
    AndroidKotlin 原生代码原生 Android 前端 UI 框架,可直接导出 APK 安装至手机
    iOSSwift 原生代码原生 iOS 前端 UI 框架,作为 Xcode 工程起点
    设计稿Sketch 文件供设计师在标准设计工具中进一步深化

    UXbot 是目前国内唯一支持 Android Kotlin 和 iOS Swift 原生前端代码导出的 AI 原型工具。主流 AI 竞品(Lovable、Bolt、Base44 等)仅支持 Web 端或跨平台代码,不具备原生移动端代码输出能力。对于计划上架 App Store 或 Google Play 的产品团队,这是不可替代的核心优势。
    云端运行:UXbot 支持将生成的 Web 应用直接在云端部署,生成可访问的在线 URL,无需本地环境配置,可即时分享给团队、用户或投资人进行在线演示。Android 项目支持直接导出 APK 安装包,安装至真机后进行完整的移动端体验演示。
    开发团队收到导出代码后,将其作为 UI 层工程起点,专注于接入后端业务逻辑,无需从零重写界面层。
    image5.png

    三、不同产品团队的 UXbot 使用场景

    初创团队:用原型替代文字描述,在开发前锁定产品方向

    初创团队最容易陷入的误区是用文字需求文档做产品对齐——投资人、早期用户和团队成员都无法从文字中真正感知产品体验。UXbot 帮助初创团队在没有设计师的情况下,用半天时间完成一个覆盖完整用户旅程的可交互原型,用真实可操作的演示替代口头描述。
    典型场景:种子轮融资路演前制作 Demo、内部团队需求对齐、早期用户访谈前的原型准备。

    产品经理:独立完成从需求到原型的全流程,减少对设计师的依赖

    产品经理可以用 UXbot 将 PRD 中的需求描述直接转化为可演示原型,在评审会议前独立完成原型制作,无需排设计师档期。流程画布功能尤其适合产品经理使用——在生成界面前先完成用户旅程的可视化梳理,本身也是产品需求整理的高效手段。
    典型场景:新需求评审前的快速原型准备、A/B 方案的并行原型对比、用户测试前的原型制作。

    设计团队:将概念验证和方向探索的成本降到最低

    在正式进入精细设计出稿之前,设计团队可以用 UXbot 快速生成多个方向的高保真原型,在早期阶段完成方向筛选,将精力集中在已经验证的方向上。
    典型场景:多设计方向并行探索、客户提案前的快速原型、需要向研发团队传达交互逻辑的设计方案演示。

    研发团队:获取 UI 层工程起点,专注业务逻辑实现

    研发团队可以将 UXbot 生成的前端代码直接作为 UI 层框架,省去从零搭建界面层的工作量。尤其对于独立开发者和小型研发团队,UXbot 补齐了 UI/UX 设计能力短板,使其能够在不依赖设计师的情况下完成专业质量的前端界面。
    典型场景:MVP 开发前的 UI 框架搭建、独立开发者的全栈项目启动、外包项目的快速界面原型交付。

    四、常见问题解答(FAQ)

    Q1:UXbot 能生成多少页面?有页面数量上限吗?

    UXbot 支持一次性生成完整多页面应用,适合处理 8 到 20 个页面量级的复杂产品结构。更大规模的产品可以分模块分批生成,再通过流程画布将各模块的跳转路径衔接起来。

    Q2:非技术背景的产品经理能独立使用 UXbot 吗?

    可以独立使用。UXbot 的操作逻辑以自然语言输入和可视化拖拽为主,不涉及任何代码操作和设计软件技能。唯一需要投入的准备工作是对产品方向的清晰思考——核心用户是谁、需要完成什么任务、有哪些核心页面。这些判断本来就是产品经理的核心工作。

    Q3:UXbot 生成的原型可以直接发给用户做测试吗?

    可以直接使用。UXbot 生成的多页面界面支持真实的页面跳转和交互,测试参与者可以在原型链接中自行点击操作,无需主持人全程引导。建议在正式发送前先在内部完整走通所有演示路径,确认无跳转死端后再交给外部用户。

    Q4:导出的前端代码需要开发团队做多大的改动才能上线?

    导出的前端代码是 UI 界面层框架,覆盖所有页面的视觉结构、组件排列和页面跳转关系。开发团队需要在此基础上接入后端服务(用户认证、数据存储、业务接口)、完善边缘状态处理和错误提示,以及进行设备兼容性测试。UI 层的从零重写工作 UXbot 已完成,开发团队只需聚焦在业务逻辑的实现上。

    Q5:UXbot 和传统原型工具(如墨刀、Axure)的本质区别是什么?

    传统原型工具是「你设计什么就呈现什么」的工具,设计师需要手动搭建每一个页面的元素和交互。UXbot 是「你描述什么就生成什么」的工具,从需求描述出发,AI 自动生成完整的多页面界面结构和交互逻辑。UXbot 额外具备代码导出能力,能将生成的原型直接转化为可用的前端工程代码,传统原型工具不具备这个能力。

    五、开始你的 APP 原型生成

    选型工具的最终标准只有一个:能否在你的实际工作流中稳定产出结果,帮助团队更快做出更好的产品决策。

    大家好,分享一下最新做的网站:

    https://faceswapvideo.net/

    这是一个在线换脸 AI 网站,主打图片换脸和换脸视频,打开浏览器就能直接使用。

    目前支持的功能

    1. 图片换脸

    优势: 处理速度快,成图质量更高。
    适用场景: 头像、写真、职业照、大头照、旅游照片等。

    2. 视频换脸

    优势: 支持最高 2 分钟视频换脸,这一点在市面上的同类产品里相对少见。
    功能说明: 支持上传视频和目标人脸照片,自动生成换脸视频,整体流程比较简单。

    注意

    目前实测下来,搞不了 HS ,但是抖音小视频,或者图片那些没有问题。

    网站还在持续迭代中,后面会继续补更多模板、GIF 场景,以及更长视频的处理能力。

    欢迎大家体验,也欢迎直接提建议和吐槽,我会继续优化。

    最近 claude 很火爆,我也自己测试了下,用 claude 做了一个校友会的 Demo ,没怎么用提示词,也没去看技巧,就列出了功能,结果里面都很详细,考虑的很周到,不需要我重新再输入什么提示词,完完全全是全自动。
    所以在想能不能从 0 开发一个校友会系统,慢慢的开发,碰到问题再发代码给 claude 进行分析修改,问下 v 友什么经验分享的,或者技巧之类的,非常感谢!!

    在深圳 12 个年头大概搬了 5 次,其实搬家都很劳累。
    所以这次不出意外算是最后一次搬家了,这次搬家感觉挺幸运。
    那天阳光明媚,然后就跟着中介去看房,没看上中介介绍的房子,自个就在村落里转悠找房子,
    阴差阳错的找到了本地一手房东,然后看了下房子,房间内光照时长很不错大概下午 3-5 点时间都有阳光照进房间。
    客厅整体光线亮度也可以,目前已经租住一个月整体感觉都不错,楼下周边也没有什么餐饮大排档,晚上睡觉能深度睡眠,保证睡眠质量。
    租的两居室房租 2600 ,没有其他任何费用,民水民电,房东还给置办了新的床和床垫,空调也是新的还是 1 级能效。
    希望在外奋斗的 V 友们也能租到一个满意的房子,如何可以的话顺便也祝福一下。

    告别收藏夹吃灰,欢迎来到「产品派」—— 一个发现与分享优质产品的创意社区

    你是否也有过这样的困扰?平时收藏了太多的链接、网站、工具、产品和灵感,收藏夹起初是“知识宝库”,后来却变成了“数字废墟”。东西越积越多,分类越来越乱,真正想回头找的时候,经常翻半天都找不到。许多当时令人眼前一亮的产品,被塞进收藏夹后就再未打开;许多本值得认真分享、讨论的创意,也慢慢淹没在信息的洪流中。

    为了解决这个痛点,我从 2025 年 8 月开始构思,并在 10 月初正式启动开发。经过多轮迭代与测试,今天,我很高兴地向大家宣布:「产品派」 正式上线了!

    「产品派」是一个发现和分享优质产品的创意社区。 无论你是热衷探索新奇产品的用户,还是正在打磨产品的独立开发者或创业者,都可以在这里更方便地找到好产品、分享好产品,同时也让自己的作品被更多人看见。


    🎯 社区核心玩法

    目前,产品派已开放以下核心功能:

    1. 产品发布与展示


      • 你可以提交自己的产品,完善介绍、分类、标签等信息,构建一个精美的展示页,让他人快速了解其价值。
    2. 产品发现与榜单


      • 浏览最新产品热门产品产品榜单,通过社区的力量高效筛选,不错过任何值得关注的新鲜事物。
    3. 丰富的社区互动


      • 这里不只是普通的发帖讨论,还支持多种趣味互动功能,让交流更有深度和乐趣:
        • 投票:适合发起选择题,快速收集用户意见与产品反馈。
        • 抽奖:支持定时开奖与自动派发奖品,是举办互动活动的利器。
        • 优惠码:非常适合分发邀请码、限时福利或专属折扣。
        • 盲盒:与抽奖不同,这是即时开奖,惊喜(或“空盒”)即刻揭晓。


    🎁 上线专属福利,诚邀第一批种子用户

    为感谢早期支持者,我们准备了专属身份和限时活动:

    • 种子用户勋章:在 2026 年 4 月 17 日至 7 月 17 日 期间注册的用户,将永久获得 「种子用户」 专属勋章,铭记您与社区共同的起点。

    • 开站抽奖活动:为庆祝上线,我们特地通过社区的“抽奖功能”发起了一个活动:


      • 活动时间2026 年 4 月 17 日 10:00 至 4 月 19 日 20:00
      • 活动奖励:我们将抽出 10 位 幸运用户,每人赠送 18.88 元 支付宝现金红包。


    ✨ 如何加入我们?

    如果你平时喜欢发现新产品,如果你正在精心打磨自己的产品,亦或你单纯喜欢交流、结识新朋友,「产品派」 都欢迎你的到来。

    立即访问社区,发现更多可能:
    👉 https://chanpinpai.com

    让我们在这里,重新点燃对每一个好产品的好奇与热情。期待在社区与你相遇!


    —— 一个同样受困于收藏夹,并希望做出改变的产品爱好者

    一直想试 claude ,但苦于众所周知的原因没法订阅。
    现在用的 gpt plus 套餐,没了双倍用量之后消耗的速度太快了,一周的用量一天就能用完。
    这周订阅到期,想问大家从“实际开发效果”和“折腾性价比”的角度来说,有必要尝试从 codex 切换到 claude 吗?

    「现代 AI 最让我着迷的一点是,它让我们得以用数学和哲学的方式,去触碰那些隐藏在人类互动背后的无形变量:AI 让『vibes』(氛围/感觉)变得可读、可理解。」

    ——Vitalik Buterin,以太坊创始人

    4 月 25 日(周六)下午,RTE Meetup 落地杭州。

    如果一个 Agent 不仅能看清眼前画面,更能瞬间捕捉你忽略的周边细节与上下文,会发生什么?

    从桌面端的屏幕理解到可穿戴设备,能够 Always on 且实时捕获环境数据的 Visual Agent (视觉智能体) 正成为人机共同体感知物理世界的关键。

    随着多模态模型的发展,获取真实世界的 Context(如视觉、音频或意图)已不再是技术瓶颈。

    但拿到海量 Context 之后呢?

    多模态感知不等于真实需求。 如何让 Context 与产品和市场真正契合?在哪些场景下,看懂 Vibes 才是不可替代的刚需?这才是决定下一代交互成败的必答题。

    我们邀请了 蚂蚁百灵大模型、声网、Chance AI、声绘未来、湃启科技、Rokid 与 Cerul.ai 的技术专家及创始人,一起聊聊当 Agent 看得见 Vibes 时,Context Awareness 的畅想与现实。

    关于 Physical AI Camp·超音速计划 2026

    本次 RTE Meetup 也是「Physical AI Camp·超音速计划 2026」杭州站。

    我们的创业营已经正式开启报名,目前正在招募 Voice Agent、Physical AI 和实时多模态 AI 领域的创业团队。营期内,我们将为入营项目提供技术资源支持、投融资对接,以及行业头部展会的展位资源。更重要的是,在这里你将和一群志同道合的伙伴共同探索。

    RTE Meetup 议程

    • 13:30 - 14:00 丨 签到与自由交流
    • 14:00 - 14:10 丨 Intro:超音速计划 2026·Physical AI Camp 介绍
    • 14:10 - 15:10 丨 Keynote 分享

      • Visual Agent:从看得见到看得懂,还差什么?

    吴晓凡,Chance AI CTO

    • 让 Agent 走出象牙塔,做那些用户觉得「很简单」的事

    孙思宁,声绘未来 & 浙江湃启科技联合创始人

    • 迈向人机共生的交互终端

    杨天翼,Rokid AI 产品经理

    • Teach Your AI Agents to See

    Jiaxi Cui(Panda),Cerul.ai Founder

    • 15:10 - 15:40 丨 圆桌讨论一:Building the Context ——Agent 视觉与感知技术底座
    • 嘉宾

      • 彭晗,蚂蚁集团高级算法专家,百灵多模态大模型后训练算法负责人
      • 张乾泽,Agora Agent Platform Lead
      • 孙思宁,声绘未来 & 浙江湃启科技联合创始人
    • 主持人: 杨慧 Cynthia Yang,RTE 开发者社区发起人
    • 15:40 - 16:10 丨 圆桌讨论二:Context-Product Fit —— 寻找多模态交互的真实场景

      • 嘉宾

        • 吴晓凡,Chance AI CTO
        • 杨天翼,Rokid AI 产品经理
        • Jiaxi Cui(Panda),Cerul.ai Founder
      • 主持人: 傅丰元,RTE 开发者社区负责人
    • 16:10 - 16:30 丨 Lightning Demo,带上你的软/硬件现场展示介绍
    • 16:30丨 自由交流

    活动信息

    • 活动时间: 2026 年 4 月 25 日(周六) 14:00 - 16:30(13:30 开始签到)
    • 活动地点: 杭州西湖区灯彩街云谷中心
    • 参与方式: 扫描二维码,或点击下方链接报名

    https://www.rtecommunity.dev/t/t_AX7NzQwHnX6p2C

    主办方: RTE 开发者社区、超音速计划

    合作伙伴: 魔搭社区、云谷中心

    社区伙伴: S 创、脑放电波、Bonjour!、Research AI+、小红书科技、WAIC UP!、启师傅 AI 客厅、分子分母、机智流

    💡 我们也新开了一个「Physical AI+多模态」微信群,欢迎关注 AI 硬件、跨平台开发、语音交互、视觉理解等方向的伙伴申请加入!

    加微信 Creators2022,备注身份和来意(公司/项目+职位/技术栈+加 Physical AI 群),备注完整者优先入群。

    阅读更多 Voice Agent 学习笔记:了解最懂 AI 语音的头脑都在思考什么

    先说事情起因,我几个月前开发了一个分析聊天记录的软件,当时是在自己的 github 账户下的,也就是 hellodigua/chatlab,结果没想到发出去以后有很多用户有这个需求,在不断维护下,Star 到现在也涨到 5700 了。

    于是就想到,这个项目要继续发展下去的话,应该把项目转到组织下更合适一些,不出意外,ChatLab 的组织已经被一个葡萄牙的开发者给注册了,但是它的项目已经 5 年多没有更新了。

    于是尝试给那个开发者的项目下发了一个 issue ,说明了我的项目现状,希望能获取到这个组织。

    发完之后一个月都没动静,我基本已经死心了,打算迁移到另一个组织下,结果昨天开发者大佬居然回复了!!!让我加 Discord 联系他!

    我们两个在 Discord 上聊了一下,还没聊几句,在我还没反应过来的时候,他就直接把自己的组织重命名了。

    然后发了一句:done

    此时我甚至还没来得及震惊,这么爽快的吗?

    实际上我心里预期是他可能会提出一些要求,我也做好了可能要付出代价的准备,如果是小额的还可以,如果是大额的那真心付不起,就只能用另一个组织名。

    主要大佬这么爽快真让我有点措手不及,是我以小人之心度君子之腹了。

    可能是真的没想到,所以又震惊又开心又感动。

    本来最近几年,我已经习惯了在国内互联网上,一切资源都需要付费,任何有价值的域名、名字都会被抢注,甚至是开源软件都会被打包后标一个价格在各种渠道售出,然而这个葡萄牙的大佬没有任何要求,直接转让给了我。

    甚至还主动提到两次:“如果你在后续开发中需要帮助,尽管开口。”

    我想这就是我喜欢开源的一部分原因:即便在 2026 年,互联网精神依然广泛存在🥹