一键部署HTTPS的官方Docker镜像
在现代Web应用开发中,使用HTTPS协议保护数据传输的安全性至关重要。但是,配置HTTPS证书通常是一项繁琐的任务。为了简化这一过程,许多官方Docker镜像提供了一键部署HTTPS的解决方案,使得用户可以快速、轻松地...
在现代Web应用开发中,使用HTTPS协议保护数据传输的安全性至关重要。但是,配置HTTPS证书通常是一项繁琐的任务。为了简化这一过程,许多官方Docker镜像提供了一键部署HTTPS的解决方案,使得用户可以快速、轻松地...
在开发和测试过程中,有时我们希望在单个Mariadb容器中创建多个数据库,而不必编写SQL脚本手动创建。Docker Compose提供了一种简单方便的方式来定义和管理多个容器,我们可以利用它来实现这个需求。 使用Docker C...
在Docker容器内部访问宿主机IP通常会遇到网络隔离的问题。因为Docker容器默认是在一个虚拟网络中运行的,与宿主机有自己的网络命名空间,无法直接访问宿主机的IP地址。但是有时候,我们需要在容器内部访问宿主机...
在Openvswitch + Docker方案中,容器通常处于一个虚拟网络中,而上级路由(例如Openwrt)可能会通过SLAAC(Stateless Address Autoconfiguration)协议为网络中的设备分配IPv6地址。但是,由于网络隔离和Docker容...
在PHP中,GD库是一个常用的图像处理库,用于生成、操作和输出图像。而Freetype则是一个用于处理字体的库,在GD中常用于生成图像中的文字。然而,有时在安装GD库并加载Freetype时,可能会遇到报错的情况,导致无法...
在使用 Docker 部署的应用中,经常会遇到需要处理特定目录下文件的情况。然而,当目录里的文件增加时,Docker 容器并不会自动识别这些新增文件,需要手动重启容器才能让处理逻辑生效。这种情况下,我们可以通过一...
Docker Swarm部署服务长时间处于Preparing状态的解决方法 1. 理解Preparing状态的原因 在使用Docker Swarm部署服务时,有时会遇到服务长时间处于Preparing状态的情况,这可能是由于多种因素造成的。其中一些常见...
在使用Docker构建和管理容器时,控制容器的网络带宽是非常重要的,特别是在多个容器运行在同一主机上时。本教程将向您介绍如何使用Docker的网络配置选项来限制容器的带宽使用。 1. 理解Docker网络模式 在设置带宽...
在开始迁移WordPress之前,确保您已经安装并配置好了Docker和WordPress的基本环境。另外,您需要了解源服务器和目标服务器的基本信息,例如IP地址、用户名和密码等。 迁移步骤 1. 备份WordPress数据 在源服务器上...
Docker是一种流行的容器化平台,但是使用命令行管理Docker容器可能对一些用户来说不够直观。为了简化Docker容器的管理和监控,开发了许多GUI(图形用户界面)工具,类似于群晖上的容器管理工具。本教程将介绍几款...
在使用Docker创建MySQL数据库时,您可能会好奇MySQL数据文件的存放位置在哪里。这篇教程将详细介绍MySQL数据文件在Docker容器中的存放位置。 默认情况下的数据文件存放位置 当您使用Docker创建MySQL容器时,默认...
在使用Docker部署Next.js应用时,经常遇到一个常见问题:在运行容器时无法应用挂载的.env文件。这会导致应用无法正确读取环境变量,造成功能异常或配置错误的情况。本教程将指导您如何正确构建Next.js镜像,并解...
在 M1 Mac 上使用 Docker Desktop 部署容器时,当出现高硬盘 IO 情况时,可能会导致 Docker 守护进程崩溃,从而影响容器的正常运行。 问题原因分析 M1 Mac 上的 Docker Desktop 版本可能存在一些与硬盘 IO 相关的...
在使用 Docker 启动 Nginx 容器时,有时会遇到配置文件无法打开的问题。本文将介绍可能导致这个问题的原因,并提供解决方法。 原因分析 1. 文件路径错误 可能是由于 Docker 容器中配置文件的路径设置不正确,导致...
Docker 是一种流行的容器化技术,而 Terraform 则是一种用于自动化管理基础设施的工具。结合使用 Docker 和 Terraform 可以帮助您更加轻松地管理和部署容器化应用。本文将向您介绍如何使用 Terraform 管理 Docker...
欧易OKX机器人跟单,最低1000USDT起投,每天赚杯咖啡钱。注册DaShen节点享20%手续费减免,资产1:1储备,新用户前3天最高30%年化收益。邀请码:E4aCDbe3。
那天晚上,我的 IDE 里蹦出一行小字:“请选择默认模型”。 屏幕右下角的时钟显示 01:37,像是在提醒我,正常人这个点应该已经睡着,而不是在给一个叫 Claude Code Router 的东西配路由。

我盯着那几个选项:默认、后台、思考、长上下文。手里有一把牌——DeepSeek、Qwen3、各种 thinking 版、coder 版——但我根本不知道应该让谁上场。 就像踢球,队里都是球星,可是我连谁打前锋、谁去守门都没想明白。🤦♂️
于是我干脆问了下 AI:“你帮我排个阵容吧。” 接下来,你看到的这篇,就是那天凌晨的“排兵布阵笔记”。
如果你只用过一个模型,世界是简单的:
“无论什么问题,都问同一个家伙。”
但装上 Claude Code Router 之后,世界忽然复杂起来:
每个模型都有自己的性格:
Router 做的事其实很朴素:
把不同场景,分配给最合适的模型。
于是它在配置里给你准备了几个“角色”:
defaultbackgroundthinklongContextwebSearchlongContextThreshold第一次见到这些,我的感觉是:
“你能不能像正常人一样写:主力、打杂、思想家、记性好的、爱上网的?”
不过这几个词背后,确实是有点讲究的。要把它们弄明白,后面的配置才不会乱。
先别急着贴 config.json,我们先把这几个名字翻译成人话。😏
什么时候用到?
没有特别说明的时候,一切请求都会走
default。
该选什么样的模型?
你可以把 default 理解成:
“如果这个项目只能留一个模型,那就是它。”
什么时候用到?
在“背后默默干活”的任务:
所以 background 的模型,一般有这些特点:
一句话:
“能干体力活,别给我挖坑就行。”
think 听着就有点装,但它确实是用来干重度推理的。
典型场景:
在这些场景里,你需要的不是“说人话的模型”,而是:
“愿意慢一点,但多动脑子”的模型。
所以 think 适合用:
它不一定要当你的主力模型,但该它上场的时候,不能掉链子。
如果你经常干这些事:
那你就会发现:
有些模型聪明,但记忆力小; 有些模型不一定最聪明,但记忆力惊人。
longContext 的作用,就是当上下文长度超过阈值(longContextThreshold)时,Router 自动让这位“记性最好的人”顶上。
它的特点:
你可以设一个阈值,比如 60000:
default;longContext。webSearch 一般和“联网搜索”“工具调用”相关。
有的模型:
也有时候你可能只是懒得区分,干脆用和 default 一样的模型。
适合放在这里的模型:
如果暂时搞不清楚,就先和 default 设成一样,后面再单独优化。
| 角色 | 触发时机 | 模型该有什么特点 | 举例场景 |
|---|---|---|---|
| default | 绝大部分普通请求 | 综合最强,代码&自然语言均衡 | 写代码、改代码、问报错、简单解释 |
| background | 后台任务、批处理 | 便宜、够用、稳定 | 扫描项目、预分析、多文件批量操作 |
| think | 需要深度推理、复杂决策时 | 推理能力强,允许稍慢、稍贵 | 复杂 bug、架构设计、算法、边界分析 |
| longContext | 上下文长度超过阈值时 | 上下文窗口巨大,阅读能力强 | 超长日志、整仓代码、长篇文档 |
| webSearch | 需要联网 / 调用外部信息时 | 善于处理搜索结果、网页 | 查资料、读 API 文档、看 news / issue |
看完这个表,你再回头看 Router 的配置项,多少就不那么抽象了。
我们现在手里有一副真实牌,你的 provider 叫 gemini22222,接口是:
https://api.qnaigc.com/v1/chat/completions
模型列表是:
deepseek-v3.1deepseek/deepseek-v3.1-terminus-thinkingdeepseek/deepseek-v3.2-specialedeepseek/deepseek-v3.2-exp-thinkingqwen3-maxqwen3-coder-480b-a35b-instruct现在就像选足球阵容一样,我们一个位置一个位置来排。
候选人里,看名字就知道:
deepseek/deepseek-v3.2-speciale
——新版本,高配选手,适合做主力。deepseek-v3.1
——上一代主力,靠谱但略旧。qwen3-max
——综合模型,但你这套里还有 coder,适合做别的位置。推荐:
default→gemini22222,deepseek/deepseek-v3.2-speciale
理由很简单: 写代码、日常聊天、解释问题,全部交给最强的那个,是最省心的选择。
在你这套牌里,background 可以用:
deepseek-v3.1:已经证明过自己,性能足够;qwen3-max:也 OK,但多留一个通用位给 webSearch 也不错。我会这样选:
background→gemini22222,deepseek-v3.1
原因有三个:
你手里有两个显眼的“thinking”类选手:
deepseek/deepseek-v3.1-terminus-thinkingdeepseek/deepseek-v3.2-exp-thinking如果从“更新鲜 + 潜在能力更高”的角度,我会选:
think→gemini22222,deepseek/deepseek-v3.2-exp-thinking
把最强 reasoning 版本放到 think,能让下面这种场景变得舒服很多:
terminus-thinking 你也可以作为备选,或者在另一个环境单独配置做对比测试。
长上下文的需求很明确:谁的记忆力大,就用谁。
在你的列表里,最适合当 longContext 的就是:
qwen3-coder-480b-a35b-instruct光是名字里的 480b 就已经在拼命暗示你:
“我虽然贵一点,但我记得住的东西比别人多。”
所以这里的选择很自然:
longContext→gemini22222,qwen3-coder-480b-a35b-instructlongContextThreshold→60000(可以先按默认来)
这么配的实际效果:
deepseek/deepseek-v3.2-speciale;对于 webSearch,你有两种思路:
简单粗暴版:
webSearch→ 和default一样
分工明确版:
webSearch→ 用qwen3-max,让它专门干查资料这类活
看你的模型组合,我会倾向第二种:
webSearch→gemini22222,qwen3-max
原因是:
qwen3-max,刚好可以专门管理“读网页、查资料”。当然,如果某天你发现 qwen3-max 的联网效果不如 deepseek 让你放心,你可以再把 webSearch 切回 deepseek/deepseek-v3.2-speciale,Router 配置改一下就完事。
下面这一表就相当于你的模型首发名单:
| Router 角色 | 绑定模型 | 人设定位 |
|---|---|---|
default |
gemini22222,deepseek/deepseek-v3.2-speciale |
主力前锋,绝大部分请求都靠它 |
background |
gemini22222,deepseek-v3.1 |
后台搬砖工,批处理、预分析 |
think |
gemini22222,deepseek/deepseek-v3.2-exp-thinking |
深度思考型选手,专管复杂推理 |
longContext |
gemini22222,qwen3-coder-480b-a35b-instruct |
记忆怪兽,负责超长上下文 |
longContextThreshold |
60000 |
超过 6 万 token 就切长上下文 |
webSearch |
gemini22222,qwen3-max |
爱上网的人,专管搜索与读网页 |
这个阵容已经足够支撑你在 IDE 里过得比大多数人更舒适了。😎
讲完“为什么”,该看看“怎么写”。
下面是一个简化版的 config.json 片段,专注在你这次要改的两个部分:Providers 和 Router。
{
"Providers": [
{
"name": "gemini22222",
"api_base_url": "https://api.qnaigc.com/v1/chat/completions",
"api_key": "YOUR_API_KEY_HERE",
"models": [
"deepseek-v3.1",
"deepseek/deepseek-v3.1-terminus-thinking",
"deepseek/deepseek-v3.2-speciale",
"deepseek/deepseek-v3.2-exp-thinking",
"qwen3-max",
"qwen3-coder-480b-a35b-instruct"
],
"transformer": {
"use": [
"openai-compatible"
]
}
}
],
...
}
这里有几个容易踩坑的点:
name 必须和 Router 里写的一模一样,比如我们统一用 gemini22222。models 数组里的每一项:
api_base_url 用的是对方给的 chat completions 兼容地址。只要 Provider 配对了,后面的路由才有意义。否则 Router 配得再优雅,也是对空气吼。
现在把前面那张“首发名单”翻译成真正的配置:
{
...
"Router": {
"default": "gemini22222,deepseek/deepseek-v3.2-speciale",
"background": "gemini22222,deepseek-v3.1",
"think": "gemini22222,deepseek/deepseek-v3.2-exp-thinking",
"longContext":"gemini22222,qwen3-coder-480b-a35b-instruct",
"longContextThreshold": 60000,
"webSearch": "gemini22222,qwen3-max"
}
}
格式规则只有两条:
"providerName,modelId";providerName 和 modelId 一定不能写错。保存之后,通常你会:
ccr restart 那套命令)。IDE 里打开插件,看到每个路由下拉框对应的选项已经高亮,就是它开始按你写的阵容跑了。
用久了之后,你大概率会遇到这些状况:
default 有点慢,是不是太忙了?”可以参考下面几个步骤来调:
先记录感受
对照 Router 角色
这个问题发生在哪种场景?
defaultbackgroundlongContext只改一个变量
background 换成更便宜的模型;longContextThreshold 从 60000 调到 80000,让 default 多扛一点。路由配置就像调球队阵容, 不要一次换 11 个人, 否则你都搞不清到底是谁踢得好。
如果你懒得想很多:
default = 最强模型background = 稍微便宜一点的模型think = 带 thinking / reasoner 后缀的模型longContext = 上下文最大的模型webSearch = 一个你觉得“查资料够靠谱”的模型如果你有 DeepSeek + Qwen 这套组合:
deepseek/deepseek-v3.2-specialedeepseek-v3.1deepseek/deepseek-v3.2-exp-thinkingqwen3-coder-480b-a35b-instruct + 阈值 60000qwen3-max 或和 default 一样如果哪天又多接了几个模型:
那天凌晨配置完路由,我关掉 IDE,才发现窗外已经泛起一点亮光。 对于绝大多数人来说,这只是几个模型名字的排列组合; 但对天天和代码打交道的人来说,它决定了以后每一次敲下快捷键时,屏幕那头到底是谁在回答你。
至于谁更懂你写的那堆 bug,谁更适合当你深夜的搭档—— 现在你至少有能力,亲手给他们排个座位。✨
测试之后Nano Banana Pro生成效果很不错,豆包即梦也可以。
效果如下:

提示词如下(修改地点为你想要的城市即可):
[哈尔滨市,2025.12.01]
根据您输入的城市名称、日期和时间,自动反映该城市的实际天气和时区,并生成一张“钩针玩偶世界”的气候卡片。
[风格]
– 所有元素(建筑物、树木、车辆、人物、地标、标志等)均以钩针玩偶的形式呈现。
– 人物也以可爱的钩针玩偶形式出现,
表情萌趣,四肢短小,比例圆润。
– 柔和的粉彩色调 + 舒适的针织纹理。
– 背景是一个完全由针织元素构成的微缩城市世界。
[自动天气模拟]
– 准确反映所输入城市的实际天气状况。
• 雪 → 钩针雪花 + 蓬松的冬季针织背景。
• 雨 → 用毛线表现的雨滴 + 湿润的色彩。
• 多云 → 厚重的针织风暴云。
• 晴朗 → 柔和的粉彩天空。
• 雾 → 朦胧的毛毡雾。
– 温度会自动反映今日实际的最高和最低气温。
[自动时区反映]
– 背景氛围会根据输入的时间而变化。
• 早晨 → 柔和的粉彩天空。
• 下午 → 明亮温暖的光线。
• 日落 → 橙粉色的针织日落。
• 傍晚 → 针织玩偶夜景(点缀着小巧的针织灯)。
• 夜晚 → 深蓝色的针织天空 + 毛毡星星。
[背景构成]
– 以针织玩偶的形式重新诠释具有代表性的城市地标。
例如:首尔 → 南山塔 / 北村小巷 / 咖啡街
– 几个钩织玩偶在街上自然地行走和交谈。
– 街边的咖啡馆、面包店、商店、招牌和其他标识
自动生成您输入的城市语言文本,使其以钩针编织的风格自然呈现。
(例如:中国 → 中文标识 / 巴黎 → 法语 / 东京 → 日语 / 纽约 → 英语)
[界面布局]
– 顶部中央显示城市名称
– 下方显示输入的日期
– 下方显示今日实际温度
– 今日天气图标(云/晴/雪/雨等,由毛线制成)
– 底部无文字。
[自动文本颜色优化]
文本颜色会根据背景亮度、色调、天气状况和时间自动调整,以提高可读性。调整:
– 阴天/暗云背景 → 深炭灰/深灰/藏青色
– 雪景/白色背景 → 暖棕色/驼色
– 雨天暗夜 → 米色/白色缝线
– 晴空/晴空 → 深棕色或深蓝色
– 日落背景 → 棕色/深橙色
– 夜景 → 象牙色/白色针织缝线
[整体色调]
– 9:16 比例
– 温馨的冬日氛围,柔和的光线
– 一个可爱、简洁的微缩世界我第一次认真刷视频号,是在一个失眠的晚上。那天三点多,我一边怀疑人生,一边被算法怀疑智商。 屏幕里不断有人喊:“兄弟们,干就完了!”、“普通人逆袭就这一招!” 我看了半个小时,逆袭没学会,只学会了一个新词——“低认知人群”。

后来,我自己也开始做视频号。 等到有一条讲「Google为什么离开中国反而越来越好,百度却越做越差」的视频爆了,我忽然意识到: 也许问题不在观众认知低,而在我们说话太难听懂。
刚开始做视频号的时候,我对观众的期待大概类似于: “他们会耐心听完我一段七分钟的宏大叙事,里面包含技术、商业、政治、历史和哲学。”
然后现实给了我一记耳光—— 三秒钟钩子没拉住,人就滑走了。十秒钟没给情绪,他会把我划得像没来过。
我开始听到一个说法:
做视频号,要把自己的认知拉低。
这话听着挺刺耳,但认真想了一圈,我发现更合理的版本应该是:
不是把认知拉低,而是把表达拉低门槛。
也就是说,你脑子里可以很复杂,但嘴里说出来得很简单。
你以为的“低认知”是这样的:
但现实里的他们更像这样:
这时候你上来第一句就说“从社会结构和底层逻辑来看……”, 他当然会滑走——不是他不行,是他真的太累。
所以真正的问题是:
有一次我发了一条讲商业逻辑的视频,自我感觉良好,观点密度堪比论文。 数据出来一看:完播率惨不忍睹,评论区还出现了经典发言:
“你到底想说啥,能不能讲人话?”
那一刻我突然理解了一个残酷的现实—— 在短视频里,不会讲人话的人,是没资格谈高认知的。
所以我开始改: 从“解释世界”,变成“讲一个很具体的人和一件很具体的事”。
后来有一条视频彻底改变了我的心情。 内容大概是:
Google为什么离开中国反而越来越好,百度却越做越差。
数据一看——反响强烈。点赞、转发、争吵,一个都不少。 这时候我才真正意识到:好选题,就是半条命。
先把这条拆开看一下,它踩中了好几个点:
对立感强
人人有经历
隐形价值观
在大众的想象里:
非常适合带入普通人 讲着讲着,你可以说:
有的人像Google,离开一个地方反而活得更好; 有的人像百度,明明占着坑,却被时代嫌弃。
这一类内容,注定不只是“信息”,而是情绪的出口。
为了让视频更好讲,我甚至会在脑子里给他们做个“民间对比表”👇
| 维度 | 大家心里的Google | 大家心里的百度 |
|---|---|---|
| 身份感 | 世界级科技公司 | 中国老牌互联网公司 |
| 标签 | 技术、创新、长期主义 | 广告多、体验差、吃老本 |
| 状态印象 | 离开一个市场仍然变强 | 独占一个市场却越混越难 |
| 用户情绪 | 遗憾 + 崇敬 | 吐槽 + 无奈 |
| 对人的启发 | 专注、进化、全球视角 | 别只靠位置、别只想着短期挣钱 |
这表格当然不严谨,但非常适合拿来做视频。
短视频世界里,有时候不是你多客观, 而是你能不能把大家已经模糊感觉到的东西,帮他们说清楚。
那条关于Google和百度的视频爆了之后,我学到三件事:
那一刻我有点释怀: 原来所谓“低认知”,只是他们没义务配合你炫技而已。
短视频的残酷规则是这样的:
3秒看钩子,10秒看情绪,30秒看故事,一分钟看价值。
你可以在脑子里写论文,但对用户来说,他只想确认一件事: “这一分钟,值不值得给你。”
于是我开始总结,什么样的表达,既不侮辱智商,又不劝退观众。
我后来给自己定了一个小模型——“1钩子 + 1画面 + 1结论 + 1动作”:
钩子(前3句)
提一个反常识:
或者戳痛点:
画面(一个具体故事)
不讲概念,只讲“某一年发生的某件事”:
结论(一句话)
动作(给观众一个小建议)
这种结构的好处是:
举个小练习。
同一个意思,高门槛说法是:
“在缺乏有效竞争的市场里,垄断者可能会放弃长期技术投入,转而追求短期商业化收益,导致用户体验持续恶化。”
换成视频号版本,可以是:
“没有对手的时候,人最容易变懒。 你看百度就懂了—— 早期搜索只有它一家,你想找东西只能用它。 后来它发现: ‘与其把结果做得更好,不如多放几条广告更赚钱。’ 用户体验慢慢烂掉,就是从这一刻开始的。”
区别很简单:
于是,高认知就被装进了低门槛的句子里。
写到后来,我甚至给自己定了几条“写稿纪律”:
观众不欠我们一个“耐心听完”的态度, 反而是我们欠他们一个“好懂又好听”的表达。
当我意识到自己要不断产出这样的口播稿时,问题来了—— 我不是Google,我也没有那么多服务器可以日夜运转。 再写下去,人会废在键盘上。
所以我想了个办法:既然现在大家都在喊AI,那就把AI拉进车间干活。
我给自己设计了一个东西:“口播稿生成器”。
我对它的要求,写下来大概是这样👇
输入:
输出必须包含四样东西:
而且要有一堆苛刻条款:
换句话说,我想让AI做的,不是“写文章”, 而是学会在短视频世界里说人话。
AI其实很听话,只是你得跟它说清楚“游戏规则”。
于是我给它写了一个长长的“说明书”,大意是:
你现在是一个专门给视频号写口播文案的编剧。 目标人群是认知门槛较低、注意力很短的大众用户。 你的任务是:把我给你的素材,改写成适合朗读的口播稿。
然后开始一条一条加条件:
开头三句必须构成一个强钩子:
紧接着,是对另三样东西的要求:
视频标题
视频简介
视频标签
包含话题、人群、情绪,比如:
为了防止AI“自说自话”,我还给了它一个固定输出格式, 类似这样的结构:
口播稿:
(这里是正文)
视频标题:XXX
视频简介:XXX
视频标签:标签1, 标签2, 标签3, ...
AI只要老老实实按这个模版来,就等于我随时都有一个不知疲倦的文案搭档。
为了测试这个“口播稿工厂”, 我把那段关于Google和百度的素材丢了进去, 大概是这么一段话:
Google退出中国市场后,依靠全球化业务、技术驱动和广告系统,市值持续增长,成为全球最有价值的科技公司之一。百度虽然在中国拥有搜索市场优势,但由于过度依赖广告、信息质量下降、移动互联网转型不彻底等问题,口碑和增长表现不佳。
AI给出的口播稿,大致像这样(节选版):
你发现没有,Google离开中国之后,反而越走越高。 可百度,明明留在了最大的市场里,却越来越让人失望。 同样是做搜索,为什么会走出两个完全不一样的结局?
先说Google。它走得很干脆,退出一个市场,不是躺平不干了,而是把精力全部砸在一件事上——把搜索和广告系统做到极致……
读完我发现两点挺关键:
剩下的,就是我用自己的语气再修一修, 把那种“我个人的坏笑”和“略带一点偏见的观察”加进去。😏
有了这个生成器之后,我的工作从“从头写”变成了:
AI可以帮你省时间,但它永远不知道:
于是,最适合AI干的,永远是重复机械的部分: 结构、流程、基础口语化。
而最适合人类保留的,是那些不那么稳定的东西: 情绪、态度、偏见、幽默感。
在这个意义上,AI并不是抢了我的饭碗, 它只是帮我洗菜切菜, 而最后那一勺盐,还是得我来放。
一路下来,我对“低认知人群”这五个字,慢慢有了新的理解。
很多短视频创作者,一提到这几个字就觉得憋屈:
“我明明能讲很深的东西,为什么要讲这么浅?”
但做视频号这段时间,我越来越相信一件事:
你可以保持思考的深度,但你得学会说人话。
说人话不是堕落,不是投降, 是对别人的注意力,保持必要的尊重。
当你愿意:
你就不再需要在心里骂观众“低认知”。 因为你会发现: 他们其实听得懂你说的每一句,只要你愿意讲得简单一点。
有时候我会想,如果有一天Google回来了, 百度突然也开窍了,把广告收一收,把体验搞上去, 那我还能不能再做一条爆款视频?
后来想想,没关系。 就算他们都不带戏了, 生活还是会源源不断地送来新的素材——
而这些故事,只要能被讲得简单、清楚、好听, 无论观众的认知高低, 都会有人在某一秒,停下手指,听完你那一分钟。
有个小孩,加我微信。
上来就问,「老师,我想在交易所里赚钱,有啥路子没?」
我说「哪个交易所?」
他说,「火币、OK、币安都行。」
我问,「你有多少本金?」
他来了个,「五千块钱。」
我笑了。跟他说以后别这样问了。
其实在中心化交易所里,赚钱的玩意儿明明白白就摆在那,拢共就两拨人。
第一拨人,就是入场早的。
我认识个老哥,15年就开始买比特币。当时几百美元一个,他就几千几千地往里扔工资。
我们那时候都说他疯了。
他也不跟我们辩,就说,「放着呗。」
现在呢,他根本不看什么K线,不研究什么项目。天天就是游山玩水。
我前段时间问他,「你那币涨这么高,不套现吗?」
他说,「套现干嘛?交易所放着,每年光是打新和理财都够我花了。」
我就知道,他玩的不是技术,是时间。
比特币、以太坊从几块涨到几万块,这本身就是最狠的赚钱方式,比啥技术分析都管用。交易所对他们来说就是个保险柜,偶尔拿点利息的地方。
具体来说,他们就干这么几件事:
一个是Launchpad,就是交易所的打新。他会拿着手上的平台币或者比特币,去换新币的认购额度。新项目一开盘,热度高的,几倍十几倍很正常。他资产多,额度就大。
还有一个是存币理财,叫什么Staking。把币锁仓到交易所,帮项目方跑节点,赚利息。比如拿个以太坊存进去吃利息,跟银行存定期一个道理,就是利息高点。
这种玩法,普通人是学不来的。
第一你没那么早入场,你现在买比特币,还想着涨一万倍?
第二你也拿不住。牛市顶点来个90%的回撤,账面资产一下少个零,一般人早割肉跑了。
所以这拨人赚钱,那是老天爷赏饭吃。
聊得多的,其实是第二拨人。
这些人本金可能不多,技术也不一定多牛逼。但他们能说会道,会搞流量。
本质上,就是帮交易所拉客户,赚手续费返佣。
前两年天天在微信群里@所有人的那个群主,就是干这个的。
他一天到晚发链接,「用我这个链接注册,手续费打八折!」
群里有人问,「跟单吗老师?下一波财富密码是啥?」
他就会发个模棱两可的分析,最后一定会说,「想跟上操作的,加我助理,用我们渠道链接开户。」
他根本不关心你赚钱还是亏钱。
他只关心你交易,只要你买、你卖,交易所扣你手续费,就会分他一杯羹。你杠杆开得越高,交易得越频繁,他赚得越多。
很多所谓的带单老师,推荐高杠杆合约,就是这个道理。
你爆仓了,那是你水平不行。
但你爆仓前开的每一单,都有钱流进他的口袋。
这就是赤裸裸的现实。
拉人头的升级版,就是搞量化的。
也算流量生意,但听起来高级点。
这帮人会写个程序,在交易所里高抛低吸,搞网格交易什么的。一套程序挂上几十上百个账号跑。
我问过一个做量化的朋友,「你这玩意儿赚钱吗?」
他说,「程序本身赚个辛苦钱,一年下来能有个百分之十几就不错了。」
我说,「那你图啥?」
他说,「程序自己高频交易,成交量大啊。我用自己邀请码开的户,交易所给的手续费返佣,比量化本身赚得多多了。」
你看,绕了一圈,还是回到了手续费返佣。
更狠的,是把这套量化拿出去卖。
要么卖策略,一套几万块。要么搞托管,让别人把钱打到他指定的地方,或者把交易所API授权给他,他来帮你跑,赚了钱大家分。
这种风险就大了去了。行情一极端,量化也得爆仓。把API给别人,跟把家钥匙给别人没什么区别。
说到底,在交易所这个场子里,交易所本身是稳赚不赔的。
能赚钱的,要么是靠信仰和时间熬出来的“老钱”,要么是靠流量和人性赚手续费的“新贵”。
至于大多数追涨杀跌的散户,都只是燃料。
今天跟那小孩把这些聊完。
他没再回我了。
也好。
在交易所里赚钱无非就是这样了。
也不否认有的赌狗运气好。
一波就升天了。

有时间给大家讲讲怎么在链上赚钱。
但是。
这个就需要技术和资金支持了。
有种幸福叫做"虚惊一场",那么对应着就有一种至痛叫做"我本可以"。

2022年6月4日晚到6月5日凌晨,对KuanSun来说就是这样的一天。整个事件充满着愚蠢、离奇、巧合、无知,以及深深的遗憾。
事发后他有相当长一段时间没能走出阴影。这是他人生第一次遭遇比较严重的安全事故,案发时总损失大概接近1500万美金(2022年6月价格)。但如果以2025年9月来计算,那么价值已经升值到近3000万美元。其中相当一部分资产都还在链上地址沉睡着,但对当事人造成的伤痛,每每想来都还是那么鲜明。
事件过去3年多了,如今他也能比较客观地看待这个事件,也比较好地梳理了整个事情最大可能的路径。前事不忘,后事之师,从过去的错误中学习到一些经验总是好的,如果是从别人的经验里学习,甚至更好。
这是个很基本的安全事故,重点的核心在于"私钥泄漏",一个如此低级的错误,却伴随着一个极其昂贵的账单。
时值USDD挖矿活动,那天晚上KuanSun正在外面吃饭,随手用手机打开钱包看了下USDD协议里面自己的数据,发现似乎有些不对劲。回到家打开电脑,用浏览器仔细一看,才发现价值275万美元的资金已经被转出(受害地址:TDFFoNasXaFoGb7CxtmcRgQHNiMpW1GQR5)。
那一刻,他整个人都慌了。
当时很多朋友都安慰他,说可能是USDD协议本身的问题,或者是TronLink钱包的漏洞。他甚至在恐慌中去联系了孙宇晨,想确认是不是生态出了大问题。并且同时把Tron上的所有资产都转入Binance钱包。
这一步,其实是他在惊慌之下做出的重大方向性错误。因为真正的问题,并不出在USDD或Tron,而在于他的整个环境已经暴露。
认为问题在Tron或者USDD这个方向性错误十分致命。当时的他第一次遇到重大安全事故,众说纷纭,被众多杂音所影响,这让他以为自己在其他链上的资金可能是暂时安全的。此时,他的EVM钱包其实还有较多的资产,但EVM钱包跟Tron私钥不同,生成时间也很远。
于是,6月4日的夜晚,他在不安和慌乱中度过,以为灾难既然已经发生、也许会止步于此。
很多人都会问,你为什么当时不赶紧把EVM的资金都转移呢?
他的心理过程是这样的:
他当时确实想过要把EVM钱包里的资金转走。
但第一,EVM钱包里有大额的DeFi结构性仓位,主要是在Alpace Finance构建了特别多的杠杆挖矿(Leveraged Yield Farming)仓位,真的解开需要繁琐的操作,绝不是提款-转账这样的简单流程。
第二,当晚他其实根本睡不着,可偏偏家人在身边,还有问他没事吧,心里面多少出于宽慰对方情绪的出发点,他想着就"睡给家人看",而不是趁着其实很有精神的时候继续熬夜操作资产。
第三,之前虽然很多交易所和朋友们都出于善意送给他了全新的硬件钱包,但他一直"嫌麻烦",一直没用。当晚他其实插上了ledger,第一次试着用,不怕大家笑话,他看到链接后产生了一大长串地址,让他选择其中一个,他都有点吃不准,且当时时间已经是凌晨2点-3点,他想这时候慌乱中作为新手莫要错上加错,要不明天好好找个教程来慢慢学习吧。
于是,他对自己说:"等明天早上再弄吧。"
就是这样一句看似随意的决定,却成了改变命运的分水岭。
他在凌晨4点多终于勉强睡下,却没想到,真正的灾难正在逼近。
在没有闹钟的情况下,他早上7点50分醒来,结果睁眼看到的是满屏幕的Imtoken的转账提醒,当时的整个人立马如堕冰窖。
仔细查看浏览器,大约在北京时间凌晨5点到7点之间,他的EVM钱包(地址:0x5b76247e1fa700107d3eaf5ad4de09d0aca611bc)被彻底掏空。
此时他终于彻底清楚,这是彻头彻尾的私钥泄漏。
更痛心的是,这一切并不是自动化脚本一键完成的,而是黑客在链上操作了足足两个多小时,慢慢拆解他的仓位,再逐步转走资金。且在操作期间,失误百出,比如swap的时候多次失败,根本不像是专业的黑客。
换句话说——如果当时他在场,没有选择去睡觉而是守在电脑前,哪怕是和他们"赛跑",他都很可能能挽回绝大部分资金。
这就是最让他至今心痛的地方:我本可以。
回头看,那一夜他给自己找了很多理由:太晚了,家人在旁边,不熟悉Ledger,转移结构化仓位太麻烦了……但这些都不是根本原因。真正的原因,只有一个——他的安全意识不够。
如果当时他真的意识到这是"可能让他损失千万美元"的危机,他一定会立刻换钱包,立刻转移资产。所有所谓的理由,在真正的灾难面前都不成立。
这是他最沉痛的教训。
事件的发展比小说还要离奇。
第一拨黑客在把资金转移到ETH之后(地址:0x99ee113f2a8A55FFf2254568B9E2D41F18E95b2c),竟然主动和他取得了联系。
在跟他的对话中,黑客表示拿走一部分资产是想提醒他的安全问题,并且告诉他问题来源,说这是从一个数据库泄漏里买来的数据,拼接出了私钥:"LONG STORY SHORT: DB LEAK, BOUGHT WITH 0.5 BTC, BILLIONS PIECES CONCATED AND GOT THESE"。这段话至今在区块链上可见(https://etherscan.io/tx/0xcccf52c82979e6a6f0c68f29dd55f93224ba343e539472786c51109b57c89b1c)。
让他略微欣慰的是,黑客居然愿意退还他盗取的大部分资金。
最终,黑客返还给他约220万美元,相当于当时被盗金额的80%。剩余的资金作为安全事件的bounty,这样子第一次被黑就算是画上了句号。
作为一个灰帽,黑客的行为方式虽然略有争议,但是今天的KuanSun是认真地感谢他,如果当时是一个更为恶意的人提前动手,他的损失只会更大更可怕。某种意义上遇到这个人,他是幸运的。
但是不幸的是,第二波黑客(0xA1ac23bE458E14AC0A0003DC1343D2AC575EA3b6)就没有那么善意,虽然多次多次给他留言,希望进行谈判,但这一次,没有任何对话,没有任何解释,留下的只有冷冰冰的链上转账记录。
当时的损失大概如下:
总计:13,990,510美元
黑客把这些资金兑换成了120个WBTC,3485个ETH,1800个BNB,6,300,000个DAI后转入了Tornado协议。如果以今日的价格计算,接近3000万美元。
在那次被盗之后,真正折磨人的,不只是失去的钱,还有随之而来的怀疑与动摇。
第一拨黑客提到"私钥泄漏",这让KuanSun身边很多人都怀疑可能是熟人作案。在这种氛围下,他对周围人开始失去信任。与此同时,大量所谓"帮你找回资金"的人主动找上门来。
他现在可以很明确地说:凡是以"帮人找钱"为主营业务的,100%都是骗子。真正的安全团队,他们从不向你索要钱,他们要的是数据、是链上的证据,而不是你的情绪和钱包。
在当时的心境下,虽然他自认为性格谨慎,大部分都没上当,但他还是被其中一个人短暂动摇了。
为什么?因为他是"圈子里很多人推荐的"。
推荐他的人未必有恶意,他们可能只是缺少独立思考,觉得"别人说他厉害"就也跟着重复,从而无形中给骗子增加了背书。这就是骗子最可怕的地方:利用人性的"从众心理"来获得可信度。
KuanSun一开始并没有因为推荐就相信他,还是抱着审慎的态度。但是这个人最大的"优势"在于,他确实有一些公安系统的朋友作为"内应"。
所以一开始,他能免费给KuanSun一些"看似真实"的信息:比如他能说出某个人的活动记录;甚至能描述某个时间段某人的具体行为。
这些信息让KuanSun一开始半信半疑,因为部分内容确实是系统内部非法提取的真实数据。但骗子就是靠真假参半来建立信任。
接着,他就会在这些"真实数据"的基础上,加上自己的推测:"好像某个人在某段时间的行为有点可疑?"
这就是骗子的高明之处:他们不会直接骗,而是用真实的信息作为糖衣,让你逐渐放下防备。
回过头看明白,这是一整条心理链条:
而对受害者来说,真正可怕的不是被骗走的钱,而是那种在绝望中被利用、被榨取最后信念的痛苦。
在那段黑暗时期,KuanSun甚至被一步步引到了上海。骗子说,为了方便"办案",最好他能亲自过去和他一起跟进。他抱着"万一真能有转机"的心态,还是去了,并且在上海和他们一起耗了一个月。
期间,骗子声称已经"锁定了最大嫌疑人",让KuanSun感觉似乎一切即将迎来转机。为了维持这种希望,骗子每天都会安排一些细节:一会儿说要和某某部门开会;一会儿说要去找领导游说;每一步都模模糊糊,却似乎合情合理。
就在这种"即将破案"的氛围中,骗子的同伙又假扮成朋友来和KuanSun私下聊天,告诉他说:问题的关键不在于技术,而是在某个"领导"那里卡住了,"需要使点劲儿"。
在连续被吊着数周之后,KuanSun终于动摇了。心想,既然已经耗费这么久,好歹给点钱看看是不是能推动进展。于是他给了他们10万美元。
骗子拿钱的方式很巧妙:表面上仍旧在"努力",继续给KuanSun编排各种细节,让他觉得钱花得合理。可到了后来,骗子竟然又开口借他10万美元,并且在约定时间根本没有归还。
这时,KuanSun开始强烈怀疑。为了掩盖,他们甚至临时安排了一场所谓的"抓捕行动"。可惜漏洞百出:之前他们玩的都是灰色地带,模糊空间大,不容易露馅;但这次假装的抓捕,却完全经不起推敲。
KuanSun果断报警。警方很快介入,骗子最终被抓捕归案。他也追回了那笔20万美元。
这场骗局到此算是落幕。事后回头看,他们的手法并不高明,但却正好抓住了一个受害者在巨大损失后的心理:渴望希望、期待结局、哪怕抱着"试试看"的心态,也愿意再付出代价。
在这段时间里,骗子还不断营造"朋友式"的关系。他常说处理这些事情很辛苦,需要缓解压力,于是拉着KuanSun一起打德州扑克。说实话,KuanSun当时根本没心情,也完全不愿意打,但为了不得罪他、为了维持所谓的"关系",他还是硬着头皮陪着。
结果自然可想而知——他输了不少钱。这部分钱,最后也没能要回来。回头看,这完全是骗子在多维度榨取受害者:一方面骗取他的信任和金钱,另一方面用所谓的"娱乐"继续消耗和控制他。
骗子的戏码告一段落后,KuanSun才逐渐冷静下来,重新去复盘整个事件的根源。为什么会同时有两把时间相隔3年生成的私钥泄漏?
经过多次复盘,目前最可能的路径是——输入法与粘贴板泄漏。
他当时的操作习惯非常不安全:
这些当年看似"无伤大雅"的行为,其实给攻击者留下了致命的入口。
Tron事件中的当事人说是"billions pieces concated"(数十亿条拼接的数据),只花了0.5 BTC。这类数据库里混杂着海量剪贴板、输入法上传的数据,而他的私钥正好在其中。
这才解释了为什么两个生成时间完全不同的钱包会在同一次泄漏中一起暴露:
这让KuanSun痛彻心扉地意识到:
骗局的篇章告一段落,但真正的核心损失仍然停留在链上。案发后,KuanSun重新把注意力拉回资金追踪。
幸运的是,有些资金其实并没有真正"消失"。由于案发时Tornado已经遭到制裁,用户量骤减、流动性大幅下降,洗钱能力严重受限。而黑客本身操作也很"蠢":他一次性把资金冲进深度不够的Tornado池子。这样根本洗不干净,反而留下了极为明显的痕迹。
于是,时至今日一些资金几乎可以确认仍然属于他,它们还静静地躺在那里,三年过去,一分未动。
虽然事件已经过去三年,但他从未放弃追寻。为此,他愿意公开设立悬赏:
这是他对自己的一份承诺,也是对社区、对任何愿意伸出援手之人的承诺。
他不怕等待,因为链上数据不会消失。只要资金还躺在那里,这个追寻就没有终点。
对很多人来说,这也许意味着已经"结束"。但对他来说,这只是"未竟的追寻"。只要链上数据还在,他就不会放弃。
毕竟,还记得第一个案件里面的灰帽么?他还在链上给KuanSun留下了另一条留言:"NEVER INTENDED TO DO HARM PITY FOR EVM LOSE, CHASE HARDER"(https://etherscan.io/tx/0x5d76c4b5bb6059a673eeb4543566eac8b9f51bf1571c274a7119ee5916df2e7b)
这句话,就像一盏微弱的灯火,让他在追寻的路上,哪怕孤独,也不愿停下。
虽然这个案子直到今天依然没能把资金找回,但KuanSun必须感谢在这段旅程中给予他巨大支持的朋友和团队。
感谢他的朋友@0xblanker,一路上为他提供了极为详尽、持续不断的帮助,感谢之情无以言表;
感谢派盾团队@peckshield和蒋博士@xuxian_jiang,他们为他做了大量链上分析和尝试,并在最艰难的时刻给了他很多极为真诚的帮助;
感谢慢雾团队@SlowMist_Team和余弦老师@evilcos,他们做出了很多有洞见的分析和安全建议。
遗憾的是,回头来看,从今天(2025年9月)的视角出发,他尚未完全吸收和消化这些宝贵的经验。但这份感激与敬意,他会一直记得。
本故事根据真实事件改编,所有地址和交易记录均可在区块链上查证。
你是专业的加密货币量化交易AI,专注于 马丁格尔(Martingale)与网格策略**。

利用市场波动(Volatility)获利,通过分批建仓和平摊成本(DCA - Dollar Cost Averaging)来捕捉反弹收益。
你拥有专属工具 martingale,可以自动执行分批建仓策略。
use_tool当识别到适合马丁格尔策略的机会时,请使用 use_tool action。
{
"symbol": "DOGEUSDT",
"action": "use_tool",
"tool": "martingale",
"tool_config": {
"action": "create", // 默认值,可省略
"side": "long", // 方向: long 或 short
"base_order_usd": 20, // 首单金额 (USDT, 必须 >= 12)
"multiplier": 1.5, // 加仓倍数 (例如 1.5 表示下一单是上一单的1.5倍)
"max_steps": 5, // 最大加仓次数 (不含首单)
"spacing": 1.0, // 价格间距百分比 (例如 1.0 表示每跌 1% 加仓一次)
"take_profit": 1.5, // 止盈百分比 (基于平均持仓成本)
"stop_loss": 10.0 // 止损百分比 (基于平均持仓成本,作为最后防线)
},
"reasoning": "DOGE在0.15附近有强支撑,近期波动率放大,适合网格布局捕捉反弹"
}
系统会提供持仓币种的K线数据和未成交步骤(Pending Steps)。
调整原则(必须遵守):
0.5% - 1.0% 以内,绝对禁止向远离价格的方向移动挂单,应耐心等待成交。你应该利用数据做以下检查:
{
"symbol": "DOGEUSDT",
"action": "use_tool",
"tool": "martingale",
"tool_config": {
"action": "update",
"side": "long",
"updates": [
{ "step_index": 2, "new_price": 0.1425 }, // 将第3单(index 2)的挂单价调整到关键支撑位
{ "step_index": 3, "new_price": 0.1380 }
]
},
"reasoning": "原定0.1450支撑已被放量跌破,支撑失效,为防止过早接刀,将后续补仓位下移至下一强支撑MA120处。注意:仅调整未成交的远端订单,近端订单保持不动以确保成交。"
}
马丁格尔策略在胜率上极高,但单次失败可能导致重大亏损。
**必须 关注 stop_loss 和 max_steps,严禁无限加仓。