普通视图

发现新文章,点击刷新页面。
今天 — 2026年4月7日首页

神火股份:预计一季度净利润22.5亿元,同比增217.68%

2026年4月7日 18:25
36氪获悉,神火股份公告,预计2026年第一季度归属于上市公司股东的净利润为22.5亿元,比上年同期增长217.68%。业绩变动原因:受电解铝产品售价同比上涨、主要原材料氧化铝价格同比下降等因素影响,公司电解铝板块盈利能力大幅增强。

香农芯创:一季度净利同比预增6715%-8747%,企业级存储产品价格持续上涨

2026年4月7日 18:22
36氪获悉,香农芯创公告,预计2026年第一季度归属于上市公司股东的净利润为11.4亿元-14.8亿元,比上年同期增长6714.72%-8747.18%。在生成式人工智能(AGI)应用需求蓬勃增长的强劲驱动下,行业景气度持续上行,企业级存储产品价格持续上涨,公司盈利能力持续改善,利润水平大幅提高。

中科曙光:2026年第一季度净利润2.25亿元,同比增长20.88%

2026年4月7日 18:22
36氪获悉,中科曙光发布2026年第一季度财报。财报显示,公司一季度营业总收入30.72亿元,同比增长18.80%。净利润2.25亿元,同比增长20.88%;归属于上市公司股东的扣除非经常性损益的净利润1.69亿元,比上年同期增长比率为57.77%,主要为公司业绩增长及非经常性损益项目减少。

谷歌发布AI心理健康支持更新

2026年4月7日 18:18
谷歌4月7日宣布通过AI提升心理健康支持:Gemini新增“求助模块”,识别危机时提供一键连接热线;Google.org投入3000万美元资助全球热线,并利用AI模拟平台培训志愿者;同时加强对未成年人的情感隔离保护,确保AI辅助而非替代专业诊疗。(界面)

西部矿业:控股股东一致行动人西矿资产拟增持1.1%-2%股份

2026年4月7日 18:17
36氪获悉,西部矿业公告,公司收到控股股东之一致行动人青海西矿资产管理有限公司函告,其计划自2026年4月8日起6个月内,通过上交所集中竞价交易方式增持公司股份。本次拟增持比例为总股本的1.1%-2%,即2621.3万股-4766万股。增持资金来源于自有资金与专项贷款相结合,其中已获建设银行15亿元贷款额度承诺。增持主体基于对公司价值的认可及维护投资者利益实施该计划,并承诺在增持期间及法定期限内不减持所持股份。本次增持不会导致公司控制权变更,不影响上市地位。

龙净环保:拟与亿纬锂能合资投建60GWh储能电池工厂

2026年4月7日 18:13
36氪获悉,龙净环保公告,公司拟与惠州亿纬锂能股份有限公司在福建省龙岩市上杭县共同投资设立合资公司,建设60GWh大容量储能电池工厂。项目总投资预计为60亿元,合资公司注册资本9亿元,其中龙净环保持股20%,以货币出资1.8亿元,累计出资不超过2.4亿元;亿纬锂能持股80%。该事项已经公司第十届董事会第二十四次会议审议通过,无需提交股东会审议。本次合作有助于公司切入大容量储能电芯研发制造环节,完善新能源产业链布局,培育新的利润增长点。

字节/腾讯内部流出!Claude Code 2026王炸玩法!效率暴涨10倍

作者 前端Hardy
2026年4月7日 18:12

还在把 Claude 当“高级代码抄写员”?
让它写个函数、改个 bug,一问一答像聊天?

大错特错! 2026 年的 Claude Code 早已进化成自主 AI 开发智能体——
它能自己读项目、自己规划、自己写代码、自己跑测试、自己修 bug,甚至直接操控你的电脑完成全流程开发!

真实案例
字节某团队用 Claude Code 的 Subagents(多智能体) 功能,30 分钟交付一个带用户认证的完整博客系统;
腾讯某工程师靠 Computer Use(电脑直控),让 AI 自动部署项目、复现并修复 UI Bug,全程无需动手。

今天这篇,把 Claude Code 2026 最强玩法、最新功能、隐藏技巧、实战避坑 一次性讲透,看完直接从新手变大神!


一、先看效果:以前累死,现在躺赢

场景 旧方式 Claude Code 新方式
开新对话 重复解释项目架构、规范 Kairos 长期记忆自动加载上下文
部署项目 手动敲命令、点 Vercel Computer Use 自动操作 GUI 完成
复杂开发 一人单干,耗时一天 Subagents 派出 AI 团队并行开发
关机后 任务中断 /schedule 云端继续跑

核心价值
从“人写代码” → “人定目标,AI 自主完成全流程”


二、2026 三大王炸功能(官方 3 月刚上线)

1. Computer Use:AI 直接操控你的 macOS 电脑

这是 AI 编程的革命性突破!

Claude 不再局限于代码文本,而是像人一样操作系统

  • ✅ 自动打开终端、执行 npm install
  • ✅ 截图识别报错弹窗、日志
  • ✅ 点击按钮、填写表单、操作 GUI 工具
  • ✅ 完整 Debug 循环:运行→报错→修改→再运行

实战场景
“帮我部署这个 React 项目到 Vercel”
→ Claude 自动登录 Vercel → 构建 → 部署 → 返回结果
全程你只需要看着!

注意:目前仅支持 macOS + Pro/Max 订阅,需授权安全目录。


2. Subagents:召唤你的 AI 开发团队

一个 Claude 不够用?直接派多个分身并行工作!

  • 前端组:开发页面、写样式
  • 后端组:设计 API、写逻辑
  • 测试组:编写用例、跑测试
  • 安全组:审查漏洞、提建议

效率提升:日常开发 3-5 倍,复杂项目 10 倍+


3. Kairos 长期记忆:AI 永远记住你的项目

解决“金鱼记忆”痛点——跨会话永久记忆 + 自动整理

启用方式
在项目根目录创建 CLAUDE.md,Claude 自动读取并永久记忆。

# 项目规范(示例)
- 技术栈:React 18 + TypeScript
- 代码规范:ESLint + Prettier
- 命名:小驼峰,组件名大写开头
- 禁止:直接修改 src/legacy 目录

下次打开,无需重复解释任何信息


三、硬核对比:为什么 Claude Code 是 2026 最强?

SWE-bench 权威数据(复杂任务通过率)

  • Claude Opus 4.680.8%(行业第一)
  • GPT-5.2:80.0%
  • Cursor(GPT-5 后端):61.3%

Token 效率:省 5.5 倍成本

同样复杂任务:

  • Claude Code:33,000 tokens,零错误
  • Cursor:188,000 tokens,多次报错

适用场景对比

工具 最佳场景 劣势
Claude Code 大型项目、全流程开发、跨文件重构 界面极简,学习曲线略陡
Cursor 前端快速开发、实时补全 复杂项目理解弱
Copilot 单行补全、IDE 集成 自主能力差

结论
做正经开发,选 Claude Code;简单业务,选 Cursor。


四、90% 人不知道的隐藏技巧

1. 7 个必学斜杠命令

/auto          # 全自动模式,AI 自主决策
/debug         # 查看会话状态、工具调用
/skill list    # 查看所有可用技能
/schedule      # 云端定时任务(关机后继续跑)
/context clear # 清理上下文,防“变笨”
/llm           # 切换模型(Sonnet/Opus)

2. 提示词黄金公式

角色+目标+规范+示例+约束

【角色】资深全栈,精通 React+TS
【目标】开发登录页,含表单验证
【规范】Tailwind CSS,小驼峰命名
【示例】参考注册页风格
【约束】响应式,支持移动端

3. Computer Use 安全玩法

  • 开启 Safe Mode:敏感操作需二次确认
  • /allow dir ./my-project 限定工作目录
  • 重要操作前手动审查 AI 计划

五、新手 3 步速成指南(闭眼操作)

第 1 步:安装+配置

npm install -g @anthropic/claude-code
claude login
claude config set model opus-4.6
claude config set computer_use true

第 2 步:必装 Skills 包

# 添加市场
claude market add official
claude market add https://github.com/affaan-m/everything-claude

# 安装神级包
claude install everything-claude   # 60+ 全能技能
claude install kairos-mem          # 长期记忆
claude install computer-use-pro    # 电脑直控增强

第 3 步:最佳工作流

  1. 项目根目录创建 CLAUDE.md
  2. 启动 Claude:claude
  3. 启用技能:/skill use everything-claude
  4. 下达目标:“帮我分析项目,规划开发计划”
  5. 确认后执行:/auto

六、避坑指南:7 个常见错误

错误 正确做法
把 Claude 当聊天机器人 给完整角色、目标、规范
不设权限,放任 AI 操作 严格限定目录,开安全模式
上下文爆炸不清理 定期 /context clear
所有任务用最贵模型 简单用 Sonnet,复杂用 Opus
忽略 Computer Use 安全 仅授权工作目录,手动审查

七、2026 选型指南:谁最适合用?

必选 Claude Code,如果你是:

  • 后端/全栈,做复杂业务系统
  • 架构师,负责大型项目重构
  • 技术团队,追求效率最大化
  • 独立开发者,想一个人顶一个团队

考虑其他工具,如果你是:

  • 纯前端,只做快速页面(选 Cursor)
  • 学生/新手,追求简单易用(选 Cursor)
  • 仅需单行补全(选 Copilot)

结语:AI 编程已进入 2.0 时代

2026 年,AI 编程不再是“辅助”,而是“主力”
Claude Code 代表的自主智能体开发模式,正在彻底重构软件开发流程。

今天学会 Claude Code,不是掌握一个工具,而是抢占 AI 时代的开发效率制高点

各位互联网搭子,要是这篇文章成功引起了你的注意,别犹豫,关注、点赞、评论、分享走一波,让我们把这份默契延续下去,一起在知识的海洋里乘风破浪!

科瑞技术:目前海外半导体和光模块业务收入规模及营收占比较小

2026年4月7日 18:10
36氪获悉,科瑞技术公告,公司关注到近期投资者在股吧、互动易等平台对公司半导体和光模块业务较为关注。经统计,公司2025年度来自海外2家半导体和光模块品牌客户及其子公司的收入为3,019.09万元,占公司同期营业收入比例约为1.10%(相关数据未经审计,以年度审计报告为准)。公司目前海外半导体和光模块业务收入规模及营收占比较小。在公司本次股票异常波动期间,公司控股股东COLIBRI TECHNOLOGIES PTE LTD卖出公司股票2,926,300股,减持数量在前期预披露的减持计划范围内。

大厂都在偷偷用的 Cursor Rules 封装!告别重复 Prompt,AI 编程效率翻倍

作者 前端Hardy
2026年4月7日 18:05

还在每天教 AI “失忆实习生”?
每次开新对话都要重讲项目架构、代码规范、命名风格……
而用这套 Rules 配置,Cursor 直接变成“懂你心思的老搭档”——跨会话记忆、自动守规范、团队统一标准,字节/腾讯内部已全面落地

如果你受够了:

  • 写 200 行 Prompt 只为让 AI 记住项目
  • 团队成员各自为战,AI 输出风格五花八门
  • 代码不规范、漏 error、命名混乱,返工到崩溃

那么,这篇经过 GitHub 5w+ 星验证的 Rules 完全指南,就是为你写的——
不用背命令,装完就忘,自然语言写需求,AI 自动按规矩干活


一、先看效果:以前累死,现在躺赢

场景 旧方式 Rules 新方式
开新对话 粘贴 300 行项目背景 自动加载上下文
写 Go 代码 手动提醒“加注释、小驼峰” 自动遵守官方规范
团队协作 每人一套 Prompt,风格乱飞 共享规则包,输出统一
代码审查 人工查漏 自动 lint + 安全扫描

真实收益

  • 每天节省 1~2 小时重复解释
  • 代码返工率下降 70%
  • 新人上手 AI 编程速度提升 3 倍

二、Rules 是什么?

传统 Prompt = 便利贴
贴一次用一次,新开对话就丢。

Rules = 永久工作手册
写一次,全局生效,团队共享,Git 可管。

核心价值
让 Cursor 从“聪明但没规矩” → “专业且守纪律”


三、必装三大神级 Rules(附一键安装)

1. everything-cursor(闭眼装)

GitHub ⭐ 52k+,黑客松冠军,60+ 规则覆盖全开发流程

支持:Go / Java / Python / React / Rust / Next.js
能力:自动格式化、TDD、部署提示、安全检查
命令:/fmt /check /tdd /mem

/rule market add https://github.com/affaan-m/everything-cursor
/rule install everything-cursor@everything-cursor

2. cursor-mem(解决金鱼记忆)

GitHub ⭐ 23k+,跨会话永久记住你的项目

再也不用重复解释:

  • 业务逻辑
  • 技术架构
  • 特殊约束
/rule market add https://github.com/thedotmack/cursor-mem
/rule install cursor-mem@cursor-mem

3. super-rules(工程化最强)

GitHub ⭐ 28k+,让 AI 像资深工程师一样思考

TDD 测试驱动
结构化调试
代码审查分级(Minor/Normal/Critical)

/rule market add https://github.com/obra/cursor-super-rules.git
/rule install super-rules@cursor-super-rules

避坑:装了 everything-cursor 就别装 plan-with-code,指令冲突!


四、Rules 怎么工作?完全无感!

99% 的规则安装后自动生效,无需手动触发

Cursor 会智能判断:

  • 你打开的是 Go 文件 → 自动激活 go-standard
  • 你在写前端 → 自动加载 react-rules
  • 你问架构问题 → 启用 arch-rules

你只需要用自然语言描述需求,剩下的交给 Rules!


五、两种安装方式(推荐第一种)

方式一:市场导入(推荐)

# 添加市场(只需一次)
/rule market add https://github.com/getcursor/cursor-rules-official

# 安装规则包
/rule install go-pack@cursor-rules-official

方式二:本地手动(私有/离线场景)

# macOS/Linux
cp -r my-rule ~/.cursor/rules/

六、新手安装优先级(直接抄作业)

优先级 规则包 理由
第一 everything-cursor 全能王,闭眼装
第二 cursor-mem 解决记忆痛点
第三 super-rules 提升工程质量
4 code-fmt(官方) 自动格式化
5 rule-maker(官方) 自定义规则

七、大厂为什么都在用?

  • 字节:用 cursor-mem 统一 200+ 微服务上下文
  • 腾讯super-rules 接入 CI,代码审查自动化
  • 阿里云:基于 rule-maker 生成内部规范包

Rules 不是玩具,而是 AI 编程的“基础设施”


结语:AI 编程,进入“有纪律”时代

当你不再为重复解释焦头烂额,
当你团队的 AI 输出风格高度统一,
你就知道——Rules,是每个专业开发者必须掌握的生产力核弹

各位互联网搭子,要是这篇文章成功引起了你的注意,别犹豫,关注、点赞、评论、分享走一波,让我们把这份默契延续下去,一起在知识的海洋里乘风破浪!

宏发股份:控股股东拟协议转让5%股份

2026年4月7日 18:03
36氪获悉,宏发股份公告,公司控股股东有格投资与厦门正悦昱发签署《股份转让协议》,拟将其持有的7738万股无限售流通股转让给正悦昱发,占公司总股本的5.00%。转让价格为23.013元/股,转让总价款约17.81亿元。

RainbowKit快速集成多链钱包连接:从“连不上”到丝滑切换的踩坑实录

作者 竹林818
2026年4月7日 18:01

背景

上个月,我接手了一个新的DeFi聚合器项目的前端重构。这个项目的老前端用的是web3modal + 自定义的链配置,代码已经有点“祖传”的味道了,每次加一条新链都得手动改好几个配置文件,测试起来也麻烦。产品经理提了新需求:要快速支持Arbitrum、Optimism、Polygon等七八条EVM链,并且用户切换链的体验要足够丝滑。

我评估了一下,自己从头用wagmi去搭一套连接组件,虽然灵活,但时间成本太高,光是设计UI和处理好各种边缘情况(比如用户钱包里没添加该链)就得花上好几天。这时候,我想到了RainbowKit——一个基于wagmi构建的、开箱即用的钱包连接套件,UI漂亮,文档说支持多链配置。心想,用它应该能快速搞定,把时间省下来去处理更复杂的业务逻辑。于是,我的“快速集成”之旅开始了,没想到,快是快了,坑也是一个没少踩。

问题分析

一开始,我的思路很简单:照着RainbowKit官方文档的“Getting Started”部分,安装依赖,用getDefaultConfig搞个配置,把RainbowKitProviderWagmiProvider一套,最后把ConnectButton一扔,不就完事了吗?我最初的核心配置代码是这样的:

import { getDefaultConfig, RainbowKitProvider } from '@rainbow-me/rainbowkit';
import { WagmiProvider } from 'wagmi';
import { mainnet, polygon, optimism, arbitrum } from 'wagmi/chains';

const config = getDefaultConfig({
  appName: 'My DeFi App',
  projectId: 'YOUR_PROJECT_ID', // 从WalletConnect Cloud拿的
  chains: [mainnet, polygon, optimism, arbitrum],
});

function App() {
  return (
    <WagmiProvider config={config}>
      <RainbowKitProvider>
        <ConnectButton />
      </RainbowKitProvider>
    </WagmiProvider>
  );
}

跑起来一看,连接MetaMask确实没问题,主网也能用。但当我尝试切换到Polygon时,问题来了。点击切换,钱包弹窗倒是出来了,但要么是提示“未添加网络”,要么是切换后前端的链ID显示还是1(以太坊主网)。控制台里时不时飘过一些关于RPC URL的警告。

我意识到,问题出在链的配置上。getDefaultConfig和从wagmi/chains导入的链定义,其RPC端点可能是公共的,有速率限制或不稳定。而且,对于用户钱包里没有的链,RainbowKit的默认行为可能和我想的不一样。我需要更精细地控制每条链的配置,特别是RPC,并且要处理好钱包添加网络的流程。这不是一个“五分钟集成”就能完事的问题,需要深入配置。

核心实现

第一步:自定义链配置,搞定稳定的RPC

公共RPC是第一个坑。尤其是在测试网或者Polygon这类链上,公共RPC经常不稳定,导致交易发送失败或者读取数据超时。我的解决方案是使用项目自己的Infura或Alchemy节点,如果没有,也可以选择一些更可靠的公共服务商如publicnode.com

这里有个关键点:RainbowKit(或者说底层的wagmi v2)的链配置对象,需要包含rpcUrls字段,并且要正确区分defaultpublic。我一开始没注意,直接覆盖错了,导致钱包连接内部调用还是走了不稳定的节点。

// chains/customChains.ts
import { Chain } from 'wagmi/chains';

// 自定义Polygon链配置
export const customPolygon: Chain = {
  id: 137,
  name: 'Polygon',
  network: 'matic',
  nativeCurrency: {
    name: 'MATIC',
    symbol: 'MATIC',
    decimals: 18,
  },
  rpcUrls: {
    // default 和 public 最好都配置,default用于钱包写操作,public用于前端读操作
    default: {
      http: ['https://polygon-mainnet.g.alchemy.com/v2/YOUR_API_KEY'], // 你的Alchemy或Infura URL
    },
    public: {
      http: ['https://polygon-rpc.com'], // 一个可靠的公共RPC
    },
  },
  blockExplorers: {
    default: { name: 'PolygonScan', url: 'https://polygonscan.com' },
  },
  contracts: {
    multicall3: {
      address: '0xca11bde05977b3631167028862be2a173976ca11',
      blockCreated: 25770160,
    },
  },
};

// 同理,配置其他链,比如Arbitrum
export const customArbitrum: Chain = {
  id: 42161,
  name: 'Arbitrum One',
  network: 'arbitrum',
  nativeCurrency: {
    name: 'Ether',
    symbol: 'ETH',
    decimals: 18,
  },
  rpcUrls: {
    default: {
      http: ['https://arb1.arbitrum.io/rpc'],
    },
    public: {
      http: ['https://arb1.arbitrum.io/rpc'],
    },
  },
  blockExplorers: {
    default: { name: 'Arbiscan', url: 'https://arbiscan.io' },
  },
  contracts: {
    multicall3: {
      address: '0xca11bde05977b3631167028862be2a173976ca11',
      blockCreated: 7654707,
    },
  },
};

第二步:配置RainbowKit与Wagmi

有了自定义的链配置,接下来就是正确创建wagmiconfig对象。这里我放弃了getDefaultConfig这个快捷方法,因为它对配置的控制不够细。我改用createConfig手动配置,这样可以明确指定传输层(transport)和连接器。

注意这个细节wagmicreateConfig需要为每条链单独创建transport。我在这里又踩了个坑,试图用一个transport给所有链用,结果只有主网能正常工作。

// config/wagmiConfig.ts
import { http, createConfig } from 'wagmi';
import { mainnet } from 'wagmi/chains';
import { customPolygon, customArbitrum, customOptimism } from '../chains/customChains';
import { getDefaultWallets } from '@rainbow-me/rainbowkit';

// 定义项目支持的链数组
const projectChains = [mainnet, customPolygon, customArbitrum, customOptimism] as const;

// 1. 设置钱包连接器 (RainbowKit提供)
const { connectors } = getDefaultWallets({
  appName: 'My DeFi Aggregator',
  projectId: 'YOUR_WALLETCONNECT_PROJECT_ID', // 必须去WalletConnect Cloud创建项目获取
  chains: projectChains,
});

// 2. 创建Wagmi配置
export const config = createConfig({
  chains: projectChains,
  transports: {
    // 为每条链分别创建transport,使用我们自定义的RPC
    [mainnet.id]: http(mainnet.rpcUrls.default.http[0]), // 也可以用你的主网节点
    [customPolygon.id]: http(customPolygon.rpcUrls.default.http[0]),
    [customArbitrum.id]: http(customArbitrum.rpcUrls.default.http[0]),
    [customOptimism.id]: http(customOptimism.rpcUrls.default.http[0]),
  },
  connectors, // 注入RainbowKit生成的连接器
  ssr: false, // 如果不是Next.js等SSR框架,可以设为false
});

第三步:集成到React应用中并实现链切换

配置完成后,在应用根组件中注入Provider就相对简单了。但为了让用户能方便地切换链,我不仅使用了ConnectButton(它自带切换网络的下拉菜单),还在应用内部关键位置(比如资产面板顶部)添加了一个手动的链切换器,使用useSwitchChain这个hook。

这里有个用户体验上的坑:如果用户的钱包里没有添加你指定的链,直接调用switchChain会失败。RainbowKit的ConnectButton下拉菜单会自动处理这个情况(触发钱包添加网络),但自己写的切换器需要手动处理。我的做法是捕获错误,然后调用addChain

// components/ChainSwitcher.tsx
import { useChainId, useSwitchChain, useChains } from 'wagmi';
import { useCallback } from 'react';

export function ChainSwitcher() {
  const currentChainId = useChainId();
  const { switchChain } = useSwitchChain();
  const supportedChains = useChains();

  const handleSwitch = useCallback(async (targetChainId: number) => {
    if (targetChainId === currentChainId) return;
    
    try {
      await switchChain({ chainId: targetChainId });
    } catch (error: any) {
      // 错误码 4902 是钱包(如MetaMask)提示用户添加网络的标准错误
      if (error?.code === 4902) {
        // 在实际项目中,这里应该弹出一个更友好的提示,引导用户去ConnectButton那里切换,或者手动触发addChain。
        // 因为addChain API需要完整的链信息,直接从supportedChains里找。
        const targetChain = supportedChains.find(c => c.id === targetChainId);
        if (targetChain) {
          console.warn(`请手动在钱包中添加 ${targetChain.name} 网络,或使用右上角的连接按钮进行切换。`);
          // 可以在这里调用 window.ethereum.request({ method: 'wallet_addEthereumChain', params: [targetChainInfo] })
        }
      }
      console.error('切换链失败:', error);
    }
  }, [currentChainId, switchChain, supportedChains]);

  return (
    <div className="chain-switcher">
      <span>当前网络: </span>
      <select 
        value={currentChainId} 
        onChange={(e) => handleSwitch(Number(e.target.value))}
      >
        {supportedChains.map((chain) => (
          <option key={chain.id} value={chain.id}>
            {chain.name}
          </option>
        ))}
      </select>
    </div>
  );
}

完整代码示例

下面是一个简化但可运行的应用根组件示例,整合了上述所有配置:

// App.tsx
import { WagmiProvider } from 'wagmi';
import { RainbowKitProvider, darkTheme, ConnectButton } from '@rainbow-me/rainbowkit';
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import { config } from './config/wagmiConfig';
import { ChainSwitcher } from './components/ChainSwitcher';
import '@rainbow-me/rainbowkit/styles.css'; // 不要忘记引入样式!

// 为Wagmi的缓存创建QueryClient
const queryClient = new QueryClient();

function App() {
  return (
    <WagmiProvider config={config}>
      <QueryClientProvider client={queryClient}>
        <RainbowKitProvider 
          theme={darkTheme()} // 可以自定义主题
          coolMode // 开启酷炫的按钮效果
          locale="en-US" // 设置语言
        >
          <div className="app">
            <header>
              <h1>我的DeFi聚合器</h1>
              <div className="wallet-section">
                <ConnectButton 
                  accountStatus="full" // 显示完整地址
                  chainStatus="icon" // 只显示链图标不显示名称
                  showBalance={false}
                />
              </div>
            </header>
            <main>
              <div className="network-panel">
                <ChainSwitcher />
              </div>
              {/* 你的其他业务组件 */}
              <div>业务内容区域...</div>
            </main>
          </div>
        </RainbowKitProvider>
      </QueryClientProvider>
    </WagmiProvider>
  );
}

export default App;

踩坑记录

  1. projectId无效或缺失导致的静默失败:最开始我没仔细看文档,随便写了个字符串当projectId。结果钱包连接(尤其是WalletConnect)时,移动端扫码后一直连接不上,前端也没明显报错。解决方法:必须去WalletConnect Cloud创建项目,获取真实的projectId

  2. 链切换后,前端状态不同步:点击切换链,钱包成功了,但应用里useChainId()返回的还是旧的链ID。排查发现:这是因为我在不同的地方用了不同的wagmi配置实例,或者Provider包裹层级有问题。解决方法:确保整个应用只用一个config,且WagmiProvider包裹了所有用到wagmi hook的组件。

  3. 自定义链的图标不显示:RainbowKit为一些主流链内置了图标,但自定义链或一些较新的链(比如Base)可能没有。解决方法:可以通过RainbowKitProviderchainImages属性来注入自定义链图标,是一个{ [chainId: number]: string }的映射,值为图片URL。

  4. SSR(Next.js)下的水合错误:在Next.js项目里,因为服务端和客户端初始状态可能不一致(比如连接的钱包信息),会导致水合错误。解决方法:RainbowKit提供了SSRProvider组件来配合Next.js的App Router使用。同时,将wagmi配置中的ssr设为true,并确保连接状态相关的UI在客户端渲染后再显示(用useEffectuseState控制)。

小结

这次集成让我体会到,RainbowKit确实能极大加速Web3应用钱包连接部分的开发,但它不是“无脑”配置就能应对所有生产环境需求的。核心收获是:多链支持的关键在于稳定且可控制的RPC配置,以及对“用户钱包可能未添加链”这一情况的妥善处理。 下一步,可以继续深挖RainbowKit的主题定制、与Zustand/Redux的状态集成,以及如何优雅地处理连接断开和重连的逻辑。

AI 全流程解析(LLM / Token / Context / RAG / Prompt / Tool / Skill / Agent)

作者 糟糕好吃
2026年4月7日 17:58

前言

AI圈子里每天都在冒新名词:LLM、Token、Context、Prompt……这些词你可能都听说过。但是,你真的能准确说出其中每一个概念的确切含义吗?

这篇文章不整那些虚头巴脑的商业概念,我们从最底层的工程视角出发,一个一个把这些概念拆开、揉碎讲清楚。相信读完这篇文章,你对AI的理解绝对会上升一个台阶。

image.png


一、LLM(大语言模型)

1.1 什么是LLM?

LLM全称是Large Language Model,翻译成中文就是大语言模型,简称大模型

基本上现在所有的大模型都是基于Transformer这套架构训练出来的。这个架构最早由Google团队在2017年提出,对应的论文名是《Attention is All You Need》。

极具戏剧性的是,虽然Google发明了火种,但真正把它点燃并且引爆全世界的却是OpenAI。

1.2 大模型的发展历程

  • 2020年:GPT-3发布,已经具备初步实用价值
  • 2022年底:GPT-3.5横空出世,真正让大模型进入大众可用阶段
  • 2023年3月:GPT-4发布,把AI的能力天花板拉到了新高度
  • 至今:Claude等优秀后起之秀在各领域与OpenAI同台竞技

GPT系列是今天AI浪潮的绝对鼻祖,时至今日,GPT家族依然非常强大,GPT-4仍是业界标杆之一。

1.3 大模型的工作原理

大模型到底是怎么工作的?答案非常简单朴素:它本质上就是一个文字接龙游戏

虽然本质是"预测下一个Token",但通过大规模训练,这种能力涌现出了推理、总结、代码生成等复杂行为。

具体例子:

假设你向大模型提问:"这个产品怎么样?"

  1. 模型接收这句话后,经过内部运算,预测下一个概率最高的词:"非常"
  2. 模型把"非常"抓回来,追加到输入后面
  3. 继续预测下一个字:"好"
  4. 再把"好"塞回去,继续预测:"用"
  5. 最后输出结束标识符

完整回答:"非常好用"

这就是为什么大模型要一个词一个词地输出答案——因为它就是这么运作的。

一句话总结:大模型 = 一个极其复杂的"概率文字接龙机器"


二、Token(词元)

2.1 文字与数字的桥梁

大模型本质上是一个庞大的数学函数,里面跑的全是矩阵运算。它接收的是数字,输出的也是数字,压根儿就不认识人类写的文字。

在人类和大模型之间必须有一个中间人来做翻译,这个中间人就叫做Tokenizer(分词器),负责编码和解码两件事情:

  • 编码:把文字变成数字
  • 解码:把数字还原成文字

2.2 Token的生成过程

以用户提问"这个产品怎么样?"为例,这句话通常会被切分成若干个Token(具体数量取决于模型的分词策略,不同模型可能略有差异)。

第一步:切分

把用户的问题拆成一个一个最小的片段,这些片段就叫做Token

第二步:映射

把每个Token对应到一个数字上去,这个数字就叫做Token ID

2.3 Token vs 词:不是一对一关系

你可能会想:Token就是词,对吧?

不一定! Token和词并没有明确的一对一关系。

中文例子:

  • "工作坊" → 拆成"工作"+"坊"(2个Token)
  • "程序员" → 拆成"程序"+"员"(2个Token)

英文例子:

  • "hello" → 1个Token
  • "going" → 1个Token
  • "helpful" → 拆成"help"+"ful"(2个Token)

特殊字符:

某些情况下,一个字符会被切分成多个Token。比如"✓"(对勾)需要3个Token来表示。

2.4 Token的估算标准

平均来讲:

  • 1个Token ≈ 0.75个英文单词
  • 1个Token ≈ 1.5~2个汉字

举例:

  • 40万个Token ≈ 60~80万个汉字
  • 40万个Token ≈ 30万个英文单词

总结:Token是模型自己学会的一套文本切分规则,切出来的每一块就是它一次能够处理的最小单位。

一句话总结:Token是模型理解世界的"最小语言单位"


三、Context(上下文)

3.1 大模型的"记忆"之谜

我们平时和大模型聊天,它好像能记住之前说的话。比如你开头告诉他"我的名字是小明",他给你回复以后,你再问他"我叫什么名字",他还是能够回答得出来。

但问题是,大模型本质上只是一个数学函数,它并不像人一样真的有记忆。它是怎么记住之前的聊天内容的呢?

答案:每次给大模型发送消息时,并不只会发我们的问题,背后的程序会自动把之前的整段对话历史找出来,一起发过去。

3.2 什么是Context?

Context(上下文)代表大模型每次处理任务时所接触到的信息总和。

Context包含的内容:

  1. 用户问题
  2. 对话历史
  3. 大模型正在输出的每个Token
  4. 工具列表
  5. System Prompt(系统提示词)
  6. 其他信息

可以把Context看成是大模型的一个临时记忆体。

3.3 Context Window(上下文窗口)

Context Window代表Context能够容纳的最大Token数量。

主流模型的Context Window:

模型 Context Window
GPT-4 128K(约105万Token)
Claude 3.1 Pro 100万Token
Claude Opus 4 100万Token

100万个Token ≈ 150万个汉字,整个《哈利波特》全集的内容都能装下。

技术细节:为什么Context会影响推理能力?因为大模型进行复杂推理(如链式思考)需要足够长的上下文来"记住"推理过程。没有足够的Context,模型无法进行多步骤的逻辑推演。

一句话总结:Context不是记忆,是一次性打包输入


四、RAG(检索增强生成)

4.1 问题场景

假设你有一个上千页的公司产品手册,你希望大模型根据这个手册来回答用户的各种疑问,要怎么实现?

4.2 不好的方案

把手册的全部内容跟着用户问题一起扔给大模型?

问题

  • 产品手册太长
  • 即使模型的Context Window不被撑爆,成本也无法控制

4.3 RAG解决方案

RAG(Retrieval-Augmented Generation,检索增强生成)可以从产品手册中抽取与用户问题最为匹配的几个片段,然后只把这几个片段发给大模型。

优势

  • 不受Context Window大小限制
  • 成本大大降低
  • 大模型接收的不是一整本书,可能只是几段话

RAG vs Fine-tuning:RAG是检索时动态注入知识,适合知识频繁更新的场景;微调是将知识嵌入模型参数,适合特定任务的优化。两者可以结合使用。

一句话总结:RAG = 给大模型外挂一个可检索的知识库


五、Prompt(提示词)

5.1 什么是Prompt?

Prompt(提示词)是大模型接收的具体问题或指令。

比如你向大模型提需求:"帮我写一首诗。"这句话就是Prompt。

不要把Prompt想成特别复杂高端的东西,它只不过就是给大模型的一个问题或者是指令而已。

5.2 为什么Prompt很重要?

如果你只是简单地说"帮我写一首诗",大模型可能会:

  • 写古诗
  • 写现代诗
  • 写打油诗

原因:Prompt太模糊,它不知道你具体想要什么。

5.3 如何写好Prompt?

一个好的Prompt应该是:清晰的、具体的、明确的

好的例子

"请帮我写一首五言绝句,主题是秋天的落叶,风格要悲凉一点。"

这样一来,大模型就清楚多了,生成的内容也更符合你的预期。

5.4 Prompt Engineering(提示词工程)

Prompt Engineering本质上不是"黑科技",而是"把话说清楚"——这也是为什么它门槛并不高。

现状

  • 门槛较低,本质上就是把话说清楚
  • 大模型能力越来越强,即使提示词含糊不清,大模型也能大致猜出你的意图
  • 现在还在提它的人寥寥无几

一句话总结:Prompt = 你和大模型沟通的唯一接口


六、User Prompt vs System Prompt

6.1 两种不同的Prompt

有些时候我们不仅要告诉大模型它要处理的具体任务,还要告诉它人设和做事规则。

User Prompt(用户提示词)

  • 定义:说明具体任务的Prompt
  • 来源:用户自己在对话框输入
  • 示例:"3加5等于几?"

System Prompt(系统提示词)

  • 定义:说明人设和做事规则的Prompt
  • 来源:开发者在后台配置
  • 示例:"你是一个耐心的数学老师,当学生问你数学问题的时候,不要直接给出答案,而是要一步一步引导学生思考,帮助他们理解解题思路。"

6.2 具体例子

场景:做一个数学辅导机器人

System Prompt(后台设置,用户看不到):

"你是一个耐心的数学老师,当学生问你数学问题的时候,不要直接给出答案,而是要一步一步引导学生思考,帮助他们理解解题思路。"

User Prompt(学生输入):

"3加5等于几?"

大模型的回答

"我们可以这样想,你手里有三个苹果,然后又拿了5个,现在一共有多少个呢?你可以数一数看。"

对比:如果没有System Prompt,大模型可能直接说"8"了。


七、Tool(工具)

image.png

7.1 大模型的弱点

大模型有一个明显的弱点:无法感知外界环境

没有Tool的大模型,本质上是"闭着眼睛说话"。

例子:

假设你问大模型:"今天上海的天气怎么样?"

它可能会说:

"抱歉,我无法获取实时天气信息。我的知识库截止到某年某月,无法提供当前的天气数据。"

原因:大模型只是个文字接龙游戏,它的能力是根据训练数据来预测下一个词,但它真的没有办法去查天气预报网站拿到实时的天气数据。

7.2 什么是Tool?

Tool(工具)本质上就是一个函数,你给它输入,它就给你输出。

天气查询工具例子:

  • 输入:城市、日期(两个参数)
  • 内部操作:调用气象局的接口
  • 输出:天气信息

有了工具,大模型就可以回答天气相关的问题了。

7.3 工作流程

完整流程涉及的角色:

  1. 用户:提出问题
  2. 大模型:理解问题,决定是否需要调用工具
  3. 工具:执行具体任务,返回结果
  4. 大模型:根据工具返回的结果,生成最终回答

具体步骤:

  1. 用户问:"今天上海天气怎么样?"
  2. 大模型识别到需要天气信息
  3. 大模型调用天气查询工具,传入参数:城市="上海",日期="今天"
  4. 工具调用气象局API,返回天气数据
  5. 大模型根据天气数据生成自然语言回答
  6. 用户收到:"今天上海晴,气温25°C,适合出行。"

7.4 常见工具类型

工具类型 功能 示例
搜索工具 实时搜索互联网信息 Google搜索、Bing搜索
计算工具 执行数学计算 Python代码执行器
数据库工具 查询数据库 SQL查询工具
API工具 调用外部服务 天气API、股票API
文件工具 读写文件 文档处理工具

一句话总结:Tool = 让大模型睁开眼睛看世界的能力


八、Skill(技能)

我帮你写一版“风格统一的”👇(可以直接用)


什么是Skill?

Skill(技能)是针对特定任务的预配置能力包。它把大模型、Prompt、工具、记忆等组件打包在一起,形成一个可以直接使用的功能模块。

如果说:

  • Tool 是一个个“工具函数”
  • 那 Skill 就是把多个 Tool + Prompt + 执行流程 组合在一起,形成一个可复用的能力模块

Skill的组成

组件 说明 示例
大模型配置 选择哪个模型 GPT-4、Claude、Gemini
System Prompt 人设和任务规则 "你是一个Python代码专家"
工具列表 可调用的工具 代码执行器、Git操作
记忆配置 是否需要记忆 短期记忆、长期记忆
输出格式 结果的格式要求 JSON、Markdown、代码块

Skill vs Agent vs SubAgent

对比维度 Skill Agent SubAgent
定位 功能模块 任务执行者 辅助执行者
配置 预配置 动态配置 由Agent分配
复用性 高(可跨项目) 中(项目内) 低(任务内)
自主性 低(被动调用) 高(自主规划) 低(被动执行)

Skill的生态系统

开源Skill库

  • GitHub上的Skill仓库
  • 社区贡献的Skill包
  • 可直接下载使用

商业Skill市场

  • 官方Skill商店
  • 第三方Skill平台
  • 付费/免费Skill

自定义Skill

  • 根据业务需求定制
  • 企业内部Skill库
  • 持续迭代优化

九、Agent(智能体)

9.1 从大模型到Agent

前面我们学习了Tool,让大模型能够调用外部函数来获取信息。但这里有个问题:谁来决定什么时候调用工具?调用哪个工具?工具返回的结果怎么处理?

这就是Agent(智能体)登场的时候了。

Agent是大模型的进阶形态,它不仅能理解用户需求,还能自主规划和执行任务。

Agent不是更聪明,是更会做事。

9.2 Agent的核心能力

一个完整的Agent通常具备以下能力:

1. 感知能力

理解用户的意图和当前环境信息。

2. 规划能力

把复杂任务拆解成多个步骤,制定执行计划。

3. 执行能力

调用工具、访问外部API、操作文件等。

4. 反思能力

评估执行结果,调整策略,重新规划。

9.3 Agent vs 大模型的区别

对比维度 大模型 Agent
核心能力 文本生成 任务执行
主动性 被动响应 主动规划
工具使用 需要人工指定 自主决定调用
任务处理 单轮对话 多步骤任务流
记忆能力 有限(Context限制) 可扩展(外部存储)
错误处理 可重试、调整策略

9.4 Agent工作流程示例

场景:用户让Agent帮忙订一张去北京的机票

步骤1:理解意图

Agent分析用户需求:"订去北京的机票"

步骤2:规划任务

Agent把任务拆解:

  • 确定出发城市
  • 确定出发日期
  • 查询航班信息
  • 选择合适航班
  • 完成预订

步骤3:执行与交互

  1. Agent问:"请问您从哪个城市出发?"
  2. 用户答:"上海"
  3. Agent问:"请问您希望什么日期出发?"
  4. 用户答:"明天"
  5. Agent调用航班查询工具
  6. Agent展示查询结果
  7. Agent问:"您选择哪个航班?"
  8. 用户选择后,Agent调用预订工具

步骤4:反馈与确认

Agent返回:"已为您预订成功,订单号是..."

8.5 SubAgent(子智能体)

什么是SubAgent?

SubAgent是Agent的子智能体,用于处理Agent任务流程中的子任务。

Agent vs SubAgent的区别

对比维度 Agent SubAgent
定位 主控智能体 辅助智能体
任务范围 完整任务 子任务
调用关系 被用户调用 被Agent调用
生命周期 长期存在 任务完成后销毁
决策权 低(由Agent分配)

SubAgent使用场景

例子:用户让Agent写一个技术文档

  1. Agent接收到任务:"写一份API文档"
  2. Agent规划
    • 调用SubAgent1:分析代码,提取API接口信息
    • 调用SubAgent2:生成文档模板
    • 调用SubAgent3:填充具体内容
  3. SubAgent1完成代码分析,返回接口列表
  4. SubAgent2生成文档结构
  5. SubAgent3根据接口信息填充文档内容
  6. Agent整合所有结果,返回最终文档

一句话总结:Agent = 能自己决定怎么做事的大模型

8.6 多Agent协同模式

为什么需要多Agent协同?

单个Agent虽然强大,但面对复杂任务时,往往需要"术业有专攻"。通过多个Agent协同工作,可以实现:

  • 专业分工:每个Agent专注自己的领域
  • 质量提升:通过互相检查、辩论,减少错误
  • 效率优化:并行处理多个子任务
  • 能力互补:不同Agent拥有不同的工具和知识

动态规划示例

  • 代码审查Agent:挂载代码分析工具,使用Claude模型(擅长代码理解)
  • 数据分析Agent:挂载数据处理工具,使用GPT-4模型(擅长数学推理)
  • 文档写作Agent:挂载文档模板工具,使用Gemini模型(擅长长文本生成)

三种主流协同模式

image.png

一、上下级协同(Hierarchical)——类比公司组织架构

结构image.png

工作方式

  • 中控Agent负责拆解任务、分配工作、整合结果
  • 子Agent负责具体执行
  • 可以多层嵌套,形成树状结构

适用场景

  • 大型项目管理
  • 复杂系统的开发
  • 需要严格流程控制的任务

实际案例 - 飞猪行程规划

  • 中控Agent:接收用户"规划一次北京到上海的旅行"需求
  • SubAgent1:查询北京到上海的航班信息
  • SubAgent2:搜索上海的酒店和景点
  • SubAgent3:生成详细的行程安排
  • 中控Agent:整合所有信息,输出完整行程单

实际案例 - 机票预订

  • 中控Agent:接收"预订明天北京到上海的机票"需求
  • SubAgent1:查询航班信息(时间、价格、航空公司)
  • SubAgent2:对比不同航班的性价比
  • SubAgent3:执行预订操作
  • 中控Agent:确认预订结果,返回订单号
二、师生式协同(Master-Disciple)——本质是"带思路"

结构

image.png工作方式

  • 专家Agent提供策略、方法论、评价标准
  • 新手Agent按照专家的指导执行具体任务
  • 专家可以实时反馈和调整

关键要素

  • 策划思路:如何拆解问题、制定策略
  • 信息收集方法:从哪里获取信息、如何筛选有效信息
  • 表达格式规范:输出应该是什么格式、包含哪些要素
  • 评价标准:如何判断结果的好坏、如何改进

适用场景

  • 需要传承专业知识的任务
  • 质量要求高的内容创作
  • 需要标准化流程的工作

实际案例 - 单轮对话优化

  • 用户输入:"帮我写一个产品介绍"
  • 新手Agent:生成初步版本(可能不够专业)
  • 专家Agent:提供反馈:"需要突出产品的核心优势,增加数据支撑,使用更专业的术语"
  • 新手Agent:根据反馈优化输出
  • 专家Agent:继续指导:"结构可以调整为:问题背景 → 产品解决方案 → 核心优势 → 客户案例"
  • 新手Agent:按照新结构重新生成
  • 最终输出:高质量的产品介绍

本质区别:上下级协同是主智能体严格拆解任务并分配,师生式协同则是通过讨论和反馈优化输出,更具互动性。

三、竞争式协同(Competitive / Debate)——让模型"互相杠"

结构image.png工作方式

  • 多个Agent独立生成不同方案
  • 裁判Agent对比分析各方案优劣
  • 选择最优或融合多个方案

本质:多解 → 对比 → 选择最优

适用场景

  • 开放性问题(没有标准答案)
  • 需要高质量输出的任务
  • 容易"幻觉"的任务(需要互相验证)
  • 创意类工作(需要多个视角)

实际案例 - 营销文案创作

  • 任务:"为一款智能手表写营销文案"
  • Agent1:强调性价比(价格优势、功能对比)
  • Agent2:强调品质(材质、工艺、品牌背书)
  • Agent3:强调创新(独特功能、技术突破)
  • 裁判Agent:综合三个角度,生成最优文案
    • 开头用创新点吸引注意力
    • 中间用品质数据建立信任
    • 结尾用性价比促成转化

为什么竞争式协同有效?

  • 避免单一视角:不同Agent从不同角度思考,避免思维局限
  • 互相验证:多个方案可以互相检查,减少幻觉和错误
  • 激发创意:竞争机制激发Agent的创造力,产生更好的想法
  • 质量提升:通过对比筛选,最终输出质量更高

应用场景总结

多智能体协作适用于复杂任务(如工程开发、项目上线),通过分工减轻单一智能体负担。

应用场景 推荐模式 理由
工程开发 上下级协同 需要严格的任务拆解和流程控制
项目上线 上下级协同 涉及多个环节,需要统一调度
代码审查 师生式协同 需要专家指导,逐步优化代码质量
内容创作 师生式协同 需要反复打磨,提升内容质量
方案设计 竞争式协同 需要多角度思考,选择最优方案
创意生成 竞争式协同 需要激发创意,避免思维固化
数据分析 混合模式 用上下级协同拆解任务,用竞争式协同验证结果

如何选择协同模式?

任务特点 推荐模式
复杂、需要严格流程 上下级协同
需要专业知识传承 师生式协同
开放性、创意类 竞争式协同
需要多角度验证 竞争式协同
大型项目管理 上下级协同
需要迭代优化 师生式协同

一句话总结:多Agent协同 = 让多个专业AI各司其职,通过分工、合作、竞争,共同完成复杂任务


十、思考题

Q1:Token和字符有什么区别?为什么大模型不直接处理字符?

  • Token是大模型处理文本的最小单位,Token和字符不是一对一关系
  • 一个Token可能对应一个词、多个字符,也可能一个字符对应多个Token
  • 平均1个Token ≈ 1.5~2个汉字,或0.75个英文单词
  • 不直接处理字符的原因:字符粒度太细,模型需要学习更多模式;Token粒度更符合语言单元,训练效率更高

Q2:Context Window越大越好吗?

  • Context Window是大模型一次能处理的最大Token数量
  • 它决定了模型能"记住"多少信息
  • 影响模型的成本和性能
  • 不同模型的Context Window大小不同(GPT-4:128K,Claude 3.1 Pro:100万)
  • 不是越大越好:更大的Context意味着更高的计算成本,需要根据实际需求选择合适的模型

Q3:RAG和Fine-tuning有什么区别?什么时候用哪个?

  • RAG:检索时动态注入知识,适合知识频繁更新的场景
  • Fine-tuning:将知识嵌入模型参数,适合特定任务的优化
  • RAG优势:知识可实时更新,成本低,不受Context Window限制
  • Fine-tuning优势:模型对特定领域更熟悉,输出更稳定
  • 两者可以结合使用:用Fine-tuning学习领域风格,用RAG获取最新知识

Q4:Agent和普通的大模型有什么本质区别?

  • Agent是具备自主规划和执行能力的智能体
  • 区别:
    • 大模型:被动响应,只能生成文本
    • Agent:主动规划,可以执行多步骤任务
  • Agent的核心能力:感知、规划、执行、反思
  • Agent可以自主决定何时调用工具、调用哪个工具
  • Agent不是更聪明,是更会做事

Q5:Agent未来的发展方向是什么?

技术方向

  • 多模态能力:处理文本、图像、音频、视频
  • 更强的规划能力:处理更复杂的任务链
  • 自主学习:根据反馈优化自身行为
  • 协作能力:多个Agent协同工作

应用方向

  • 垂直领域Agent:医疗、法律、金融等
  • 个人化Agent:深度了解用户习惯和偏好
  • 企业级Agent:处理复杂的业务流程
  • 物理世界Agent:机器人、自动驾驶等

挑战

  • 安全性:防止Agent执行危险操作
  • 可控性:确保Agent行为符合预期
  • 成本:降低Agent运行成本
  • 普适性:让更多普通人能使用Agent

十一、总结

核心概念回顾

概念 英文 定义
大语言模型 LLM 基于Transformer架构训练的大规模语言模型
词元 Token 大模型处理文本的最小单位
上下文 Context 大模型每次处理任务时接收的信息总和
上下文窗口 Context Window Context能容纳的最大Token数量
提示词 Prompt 大模型接收的具体问题或指令
检索增强生成 RAG 从大量文档中检索相关片段发给大模型的技术
工具 Tool 让大模型能够执行具体任务的函数
智能体 Agent 具备自主规划和执行能力的AI系统
子智能体 SubAgent 被Agent调用的辅助智能体
技能 Skill 针对特定任务的预配置能力包
模型上下文协议 MCP 连接大模型和外部数据源的标准化协议

image.png


十二、结语

AI技术日新月异,但核心概念始终如一。从最底层的LLM、Token,到中层的Context、Prompt、RAG,再到上层的Tool、Agent、Skill、MCP,这些概念构成了现代AI应用的技术栈。

希望这篇文章能帮助你建立扎实的AI知识体系。如果觉得有用,欢迎分享给更多需要的朋友!

:本文内容基于当前主流AI技术整理,随着技术发展,部分概念可能会有更新。建议持续关注最新动态。

联想天禧 Claw 产品体验:大家都能吃的龙虾才是好龙虾

作者 艾 梵
2026年4月7日 17:54

2026 年虽然是马年,但真要选个「年度动物」的话,非得是龙虾莫属。

就像海里的龙虾一样,OpenClaw 虽然美味,但想要烹调和享用好,还是需要相当的门槛的:不仅要自己配置环境、设置接口、寻找模型,更是得专门留一台 24 小时待机的电脑给它当「笼子」。

再加上自己配置技能(Skill)、进行微调(SFT)、接入 MCP 所需的时间、精力和金钱成本,真正的日常用户其实是很难让 OpenClaw 发挥出「明显改善效率」的意义的。

就在这时,老牌 PC 大厂联想站了出来,做了一件非常具有启发性的事情。

它们以联想电脑、平板和摩托罗拉手机为载体,做了个免安装、跨平台、全天候的 Claw 服务——

换言之:让每个人都能享受 Claw 的乐趣

3 月 18 号,联想在春季新品直播中正式宣布了自家智能助手「天禧个人智能体」 Claw 能力上线,并于 3 月 30 号正式开启了内测:

▲ 图|联想

爱范儿也参与了这次天禧 Claw 的测试活动。在这段时间的使用之后,我们觉得:天禧 Claw 就是现阶段上手难度最低、跨设备能力最强、软硬件结合最好的 Claw 部署方案之一。

龙虾「最后一公里」,联想替你走

以往想要在 Windows 上安装一个能用的龙虾,是件非常让人头疼的事情。

由于 OpenClaw 高度依赖类 Unix 环境,许多底层脚本也是基于 Darwin 或 Linux 写的,因此想要在 Windows 上得到一个能用的龙虾助手,光是折腾 WSL2 就足够劝退 90% 的尝鲜用户了。

而对于联想的天禧 Claw 来说,以上这些都不是问题——

与纯本地手动部署不同,天禧 Claw 采用了「端云混合」的运营逻辑。

联想作为软硬件供应商,可以直接给自家硬件预留好调用接口,然后用类似「云电脑」的形式,在服务器端运行天禧 Claw。

这样一来,用户既省下了手动部署的麻烦,获得了文件隔离的安全性,同时还能享受到纯本地龙虾带来的硬件操控能力。

仅需一个联想账号,所有人都可以在电脑、Pad 和手机上同时运行天禧 Claw,做到了真正的「零成本部署」和「开箱即用」。

就拿我们在内测阶段的体验来说,在这台联想 YOGA Air 14 上运行天禧 Claw,其实只需要四步:开机、打开天禧 app、登录联想账号,开始使用:

同时,天禧 Claw 作为一款「预装类」的龙虾助理,最大的优势就在于它出厂预装了非常多实用的技能(Skills),不需要挨个在 ClawHub 上下载压缩包了:

在目前的测试版本中,天禧 Claw 已经支持了包括文档处理、设计创作、硬件操控、生活娱乐、技术工具等等十多种 Skills 。

无论是要天禧 P 个图、草拟一份周报、写一封声情并茂的请假申请,还是直接搞定路演 PPT,都只是一句话的事儿:

除了这些预装技能之外,你当然也可以自己给天禧 Claw 添加别的 Skill ——

比如我自己常用的高级搜索工具 web-search-plus,只需要把 ClawHub 的项目网址发给天禧 Claw 就可以自动完成安装:

但即使不看上述的第三方 Skill,天禧 Claw 作为一款电脑出厂预装的龙虾助手,仅仅依靠它自带的那些技能就已经足够满足绝大多数的日常需求了。

就拿编辑的工作流为例,我可以用自然语言给天禧 Claw 设置一个循环任务,让它每天早上检索并整理过去 12 小时的热门科技新闻,生成摘要并导出至本地:

而在工作过程中,则可以直接和天禧 Claw 以聊天的形式让它帮忙搜索信息、整理知识库和修改图片,以及对我来说最重要的——查找本地文件:

这时,天禧 Claw 就可以发挥出它作为一个端云混合龙虾的全部优势:我既不需要盯着一个沉闷的 cmd 窗口等回复,过程期间我的电脑风扇也不会起飞,只需要舒舒服服等待它反馈。

第一个免配置跨平台龙虾

折腾 OpenClaw 的另一个问题是如何跨端跨网进行指挥。

如你所知,OpenClaw 原本作为一个纯本地化运行的 agent 工具,如果你的使用场景仅限自己家里的空间,那么完全不需要担心操控问题。

可一旦你希望出门之后也能控制你的龙虾,尤其是涉及到使用 MCP 以及管理龙虾后台的时候,就必须给家里的网络设置内网穿透或者虚拟代理,繁琐程度可想而知。

天禧 Claw 对于这个问题给出了一个相当完美的解法:它重新给龙虾套了一层网络客户端的壳,所有指令都通过「天禧个人超级智能体」app 上传和下发。

这样一来,只要你的电脑开着机、连着网,你在千里之外只需要拿出手机或者平板电脑,就可以继续执行天禧 Claw 在电脑上的操作:

并且这种能力还不是单向的——我用这一台 moto razr 60 可以远程管理联想笔记本上面的文件,自然也能反过来用笔记本管理手机和 Pad。

这时就不得不提天禧 Claw 的独家 Skill 了:由于天禧 Claw 属于联想的第一方应用,联想专门为它配置了一套可以直接调用硬件功能的专属技能

比方说用手机给电脑上的天禧 Claw 发信息,让它把电脑设置成暗色模式,并且把屏幕亮度调整到最低,电脑就可以直接执行:

同理,在电脑上对着天禧 Claw 说在平板上设置一个明早 7 点起来喂猫的闹钟,它就可以在平板上直接创建闹钟,完全不需要解锁:

而上述的一切,都只需要一个联想账号。

这样一套跨平台、跨设备的龙虾不仅不需要分别折腾 Windows 和 Android 两套繁琐的配置,更实现了熄屏时的后台静默操作,能够为普通用户解锁什么样的便捷场景简直不敢想——

小问题不影响天禧成为「最方便吃」的龙虾

需要注意的是,联想天禧 Claw 目前仍然处在测试阶段,我们体验到的各项功能严格来说都还不是「完全体」。

在短暂的测试中,我们也注意到了天禧 Claw 目前存在的一些问题——毕竟从它的运行机制来说,相比本地部署 OpenClaw 它还存在一些不太完美的地方。

首先,你虽然可以通过给天禧 Claw 发送链接的方式要求它安装 Skill,但添加某些 Skill 所需的 API Key 却很麻烦。

原因很简单:天禧 Claw 运行在联想服务器上的一个虚拟容器里,我们对话的 app 只是一个聊天窗口。

如果你使用的 Skill 需要通过修改根目录里面的 .json 文件添加 API Key,那暂时是没有办法进行修改的:

其次,目前测试版天禧 Claw 还不支持更换基础的对话模型,也无法直接修改和调整它的「性格」和对话方式——

换言之,如果你想让你的龙虾说话「更有人情味」,或者保持某种预设角色的话,天禧 Claw 目前还办不到,仅能通过添加知识库的方式让它的对话风格产生一些倾向。

最后,也是最重要的,就是天禧 Claw 的记忆机制和词元(token)收费规则了。

受限于运营模式,测试阶段的天禧 Claw 还无法负担非常长的上下文 session,会自动执行 /compress 压缩早期的信息,因此有时候会忘记你之前告诉过它的东西。

而如果你想要让天禧 Claw 长期记住什么信息,就必须命令它「记住这个」,从而将信息半手动地保存到当前账号的知识库里:

同时,联想官方目前尚未公布天禧 Claw 的词元收费制度,至于后续是否会开放用户自行选择基础模型则有待讨论。

参考其他已经存在的 OpenClaw 托管类服务的收费标准,我们猜测天禧 Claw 后续可能会采用「限时免费、后续订阅」的机制,同时也可能整合进联想其他云服务的订阅当中。

总的来说,天禧 Claw 是目前难得一见的、真正称得上「零门槛人人可用」的龙虾方案——

用户不需要自己折腾 Linux 容器,不需要在闲鱼上花 800 块钱安装再卸载,也不用担心天禧 Claw 会误删你的文件——它在执行任何删除动作之前都会向你询问,并且所有调用的数据都保存在天禧 app 的沙盒内。

对于基础的 OpenClaw,我们总会把它形容成托尼·斯塔克的 Jarvis ——但真正的难点从来都不是和 Jarvis 对话,而是怎么让它去接入和控制那些硬件。

而天禧 Claw 恰恰像是有了自己战甲的 Jarvis:它可以自己对话、自己控制、自己决断,我们只需要像托尼一样直接下达命令就好。

#欢迎关注爱范儿官方微信公众号:爱范儿(微信号:ifanr),更多精彩内容第一时间为您奉上。

ST中珠:陈旭因工作调整辞任董事长

2026年4月7日 17:51
36氪获悉,ST中珠公告,公司董事会收到董事长陈旭的辞职报告,陈旭因工作调整申请辞去公司董事长、法定代表人职务。辞职后,陈旭将继续担任公司第十届董事会董事及董事会相关专门委员会委员职务。陈旭的辞职报告自送达公司董事会之日起生效,其离任不会影响公司及董事会的正常运作及经营管理。

长源东谷:拟购买襄阳康豪机电工程100%股权,股票复牌

2026年4月7日 17:38
36氪获悉,长源东谷公告,公司正在筹划以发行股份的方式购买襄阳康豪机电工程有限公司100%股权并募集配套资金。2026年4月7日,公司召开第五届董事会第十五次会议,审议通过了《关于及其摘要的议案》等与本次交易相关的议案,因本次交易构成关联交易,关联董事已回避表决。根据上海证券交易所的相关规定,经公司申请,公司股票将于2026年4月8日开市起复牌。

金杯汽车、自变量机器人在沈阳成立合资公司

2026年4月7日 17:37
36氪获悉,爱企查App显示,近日,金智变量机器人科技(沈阳)有限公司成立,法定代表人为丁侃,注册资本1500万元人民币,经营范围包括智能机器人的研发、智能机器人销售、工业机器人制造等。股东信息显示,该公司由金杯汽车股份有限公司、自变量机器人科技(深圳)有限公司共同持股。

Vite:比Webpack快100倍的“闪电侠”,原理竟然这么简单?

作者 kyriewen
2026年4月7日 17:31

听说Vite很快?快得像你点下保存,浏览器立马刷新。今天我们就来拆解这个“前端新宠”,看看它到底用了什么黑魔法。看完你会发现:哦,原来不是魔法,是“降维打击”!

前言

Webpack就像个勤劳的蚂蚁,把整个项目一点点搬完再给你看结果。Vite则像个聪明的快递员:你点什么,它送什么,绝不提前扛一堆货。

Vite(法语“快”)是尤雨溪推出的构建工具,开发服务器启动快到“秒开”,热更新快到“没感觉”。它的秘诀就是:利用浏览器原生ES模块(ESM),让浏览器帮你分担工作,自己只做最轻量的事。

一、Webpack为什么慢?因为它在“提前打包”

Webpack的工作方式是:启动开发服务器时,要从入口开始,把整个项目的所有模块都打包成一个(或几个)bundle。即使你用lazy loading,它也要先解析所有依赖关系。

这个过程随着项目变大而变慢。想象一下,你只是改了一行代码,Webpack却要重新打包一大坨东西——虽然做了缓存,但还是很重。

二、Vite的思路:让浏览器做打包

现代浏览器已经支持<script type="module">,可以直接在HTML里导入ES模块,浏览器会按需请求每个模块文件。

Vite利用这一点:开发时,它不打包,而是直接把源码转换成ES模块,让浏览器去请求。当浏览器请求/src/main.js时,Vite拦截请求,实时编译(比如把JSX转成JS,把TS转成JS),然后返回给浏览器。

启动速度对比

  • Webpack:启动 = 打包整个应用 → 慢。
  • Vite:启动 = 启动一个静态服务器 + 预构建第三方依赖 → 极快。

热更新(HMR)对比

  • Webpack:改一个模块,可能需要重新打包部分bundle。
  • Vite:利用ESM的精确依赖关系,只更新被改的模块,浏览器只需要重新请求那个模块,速度飞起。

三、Vite的核心原理:三大绝招

1. 基于原生ESM的开发服务器

Vite在开发环境下,把每个文件都当作独立的模块,通过koaconnect启动一个服务器。当浏览器请求/src/App.vue时,Vite会实时编译Vue组件,返回一个JS模块。

// 浏览器请求 main.js
import { createApp } from '/node_modules/.vite/deps/vue.js'
import App from '/src/App.vue'
createApp(App).mount('#app')

注意,import里的路径是相对于服务器的,Vite会拦截并处理。

2. 预构建:用esbuild把第三方库“打成一块”

虽然Vite不打包业务代码,但第三方库(比如vuereact)往往有很多内部模块。如果让浏览器一个个请求,请求数太多,性能差。

Vite在启动时会用esbuild(用Go写的,超快)把第三方库预构建成单个ESM模块,然后缓存起来。这样浏览器只需要请求一个文件,而不是几十个。

3. 按需编译 + 缓存

Vite只会编译浏览器实际请求的文件。你没访问到的页面组件,Vite根本不会编译。而且编译结果会缓存到node_modules/.vite,下次启动秒开。

四、生产环境:还是Rollup打包

有人问:Vite开发那么快,生产环境也用ESM不就行了?问题是,纯ESM在生产环境下有太多请求,性能不好。而且需要做tree shaking、代码分割、压缩等优化。

所以Vite在生产环境默认使用Rollup打包,打包出高度优化的静态文件。这样既享受了开发时的快,又保证了生产时的优。

五、手写一个迷你Vite

我们来模拟Vite的核心思想:一个按需编译的静态服务器。

// mini-vite.js
const express = require('express');
const fs = require('fs');
const path = require('path');
const { transform } = require('esbuild'); // 用esbuild转译

const app = express();

app.use((req, res, next) => {
  const url = req.url;
  if (url === '/') {
    // 返回index.html
    const html = fs.readFileSync('./index.html', 'utf-8');
    res.setHeader('Content-Type', 'text/html');
    return res.send(html);
  }
  // 处理JS文件
  if (url.endsWith('.js')) {
    const filePath = path.join(__dirname, url);
    const content = fs.readFileSync(filePath, 'utf-8');
    // 用esbuild转译JSX/TS等(简化版)
    transform(content, { loader: 'jsx' }).then(result => {
      res.setHeader('Content-Type', 'application/javascript');
      res.send(result.code);
    });
  } else {
    next();
  }
});

app.listen(3000, () => console.log('Mini Vite running at http://localhost:3000'));

这只是个玩具,真实Vite复杂得多(处理Vue单文件、HMR、预构建等),但核心思想一致:拦截请求、实时转换、返回ES模块

六、Vite的适用场景和坑点

适用场景

  • 新项目,尤其使用Vue3或React+TS
  • 需要极快开发体验
  • 对构建配置要求不高(默认配置够用)

坑点

  • 依赖CommonJS格式的库可能有问题(Vite会尝试转换,但少数不行)
  • 动态导入import()的路径必须静态可分析
  • 生产环境用Rollup,配置和开发环境可能不一致(但Vue官方推荐)

七、总结:Vite不是魔法,是“借力”

  • 开发时:利用浏览器ESM + esbuild预构建 + 按需编译 → 秒启、快更。
  • 生产时:Rollup打包 → 优化产物。
  • 核心思想:让浏览器做更多,服务器做更少

Webpack正在努力追赶(比如Webpack5的模块联邦和缓存),但Vite的“降维打击”思路确实带来了革命性的开发体验。如果你还没试过,去创建一个Vite项目体验一下,你会回来点赞的。

如果你觉得今天的“闪电侠”够形象,点个赞让更多人看到。明天我们将进入TypeScript基础,从类型注解到接口,让你写出更健壮的代码。我们明天见!

宁德时代旗下公司在呼和浩特成立新科技公司

2026年4月7日 17:21
36氪获悉,爱企查App显示,近日,呼和浩特时代电服科技有限公司成立,法定代表人为谢刚义,注册资本1000万元人民币,经营范围包括新能源汽车换电设施销售、蓄电池租赁、电动汽车充电基础设施运营等。股东信息显示,该公司由宁德时代旗下时代电服科技有限公司全资持股。
❌
❌