演示站点部署好了😁
接上篇帖子NginxPulse 开源了,项目目前已经有 132 个 star 了,感谢大家的支持。
有不少好兄弟反馈说没有演示站缺少灵魂,现在补齐了,欢迎大家体验: https://nginx-pulse.kaisir.cn/
xiaohack博客专注前沿科技动态与实用技术干货分享,涵盖 AI 代理、大模型应用、编程工具、文档解析、SEO 实战、自动化部署等内容,提供开源项目教程、科技资讯日报、工具使用指南,助力开发者、AI 爱好者获取前沿技术与实战经验。
接上篇帖子NginxPulse 开源了,项目目前已经有 132 个 star 了,感谢大家的支持。
有不少好兄弟反馈说没有演示站缺少灵魂,现在补齐了,欢迎大家体验: https://nginx-pulse.kaisir.cn/
微软2026年1月"补丁星期二"修复3个零日漏洞及114处缺陷
比利时AZ Monica医院遭网络攻击后关闭所有服务器
Target员工确认泄露源代码真实性
Betterment在加密货币诈骗邮件浪潮后确认数据泄露事件
ConsentFix事件分析:新型OAuth钓鱼攻击的深度洞察
Reprompt攻击使黑客可劫持Microsoft Copilot会话
Pok Pok推出售价仅60美元的教育型屏幕游戏
云市场Pax8意外泄露1800家MSP合作伙伴数据
AI智能体已迅速从实验性工具转变为安全、工程、IT和运维等日常工作流的核心组件。最初作为个人生产力助手的工具——例如个人代码助手、聊天机器人和协同编程工具——现已演变为嵌入关键流程的、全组织共享的智能体。这些智能体能够跨多个系统编排工作流,例如:
为实现规模化价值,组织级AI智能体被设计为服务于多用户和多角色。与个人用户相比,它们被授予更广泛的访问权限,以便获取高效运作所需的工具和数据。
这些智能体的应用已带来切实的生产力提升:更快的分类处理、减少人工操作、简化运维流程。但这些早期成果伴随着隐性成本。随着AI智能体功能日益强大、集成度不断加深,它们也成为了访问中介。其宽泛的权限可能模糊实际访问者、访问内容及访问权限的边界。许多组织在追求速度与自动化的过程中,忽视了由此产生的新型访问风险。
组织级智能体通常被设计为跨越多资源运作,通过单一实现服务多用户、多角色和多工作流。这些智能体并非绑定于个人用户,而是作为共享资源,能够响应请求、自动化任务,并代表多用户跨系统协调操作。这种设计使智能体易于部署并具备组织级扩展性。
为实现无缝运作,智能体依赖共享服务账户、API密钥或OAuth授权来与交互系统进行身份验证。这些凭证通常长期有效且集中管理,使得智能体无需用户介入即可持续运行。为避免操作阻碍并确保智能体能处理广泛请求,其权限往往被宽泛授予,覆盖的系统、操作和数据范围通常远超单个用户所需。
尽管这种方法最大化了便利性与覆盖范围,但这些设计选择可能无意中创建出强大的访问中介,从而绕过传统的权限边界。
组织级智能体通常以远宽于个人用户的权限运行,使其能够跨越多个系统和工作流。当用户与这些智能体交互时,他们不再直接访问系统,而是通过智能体代为执行请求。这些操作以智能体身份而非用户身份运行。这打破了传统访问控制模型——在传统模型中,权限是在用户层级实施的。权限有限的用户通过智能体间接触发操作或获取数据时,可能获得其直接访问未授权的资源。由于日志和审计记录将活动归因于智能体而非请求者,这种权限提升可能在缺乏清晰可见性、问责机制或策略执行的情况下发生。
智能体驱动的权限提升风险往往体现在细微的日常工作中,而非明显的滥用行为。例如,对财务系统访问权限有限的用户可能通过组织级AI智能体请求"总结客户表现"。拥有更宽权限的智能体从计费、CRM和财务平台提取数据,返回用户本无权直接查看的分析结果。
另一种场景中,没有生产环境访问权限的工程师要求AI智能体"修复部署问题"。智能体使用其提升后的凭证调查日志、修改生产环境配置并触发流水线重启。用户从未直接接触生产系统,但生产环境已因其请求而被更改。
这两种情况下都没有违反显式策略:智能体已获授权,请求看似合法,现有IAM控制在技术上也被执行。然而,由于授权是在智能体层级而非用户层级评估,访问控制实际上已被绕过,从而产生无意且通常不可见的权限提升。
传统安全控制围绕人类用户和直接系统访问构建,难以适应智能体中介的工作流。IAM系统基于用户身份执行权限控制,但当操作由AI智能体执行时,授权评估针对的是智能体身份而非请求者身份。因此,用户层级的限制不再适用。日志和审计记录将活动归因于智能体身份,进一步加剧了问题,掩盖了动作发起者及其意图。在智能体介入的场景中,安全团队已无法有效执行最小权限原则、检测滥用行为或可靠归因操作意图,导致权限提升发生时无法触发传统控制机制。缺乏准确归因还会增加调查复杂性、延缓事件响应,并在安全事件中难以确定意图或影响范围。
Microsoft 2026年1月补丁星期二修复3个零日漏洞和114个安全缺陷
比利时AZ Monica医院遭网络攻击后关闭服务器
Target员工确认泄露源代码为真实数据
Betterment在加密货币诈骗邮件浪潮后确认数据泄露
ConsentFix事件分析:新型OAuth钓鱼攻击的深度洞察
Reprompt攻击使黑客能够劫持Microsoft Copilot会话
Pok Pok以60美元提供寓教于乐的生活化屏幕游戏体验
云市场平台Pax8意外泄露1,800家MSP合作伙伴数据
Microsoft 2026年1月补丁星期二修复3个零日漏洞和114个安全缺陷
比利时AZ Monica医院遭网络攻击后关闭所有服务器
Target员工确认泄露源代码为真实数据
Betterment在加密货币诈骗邮件浪潮后确认数据泄露
ConsentFix深度解析:新型OAuth钓鱼攻击的启示
重提示攻击使黑客能劫持Microsoft Copilot会话
Pok Pok以60美元提供寓教于乐的数字生活体验
云市场Pax8意外泄露1800家MSP合作伙伴数据
IP 地址 / 子网计算

超网拆分

路由汇总(算法对比)


进制转换

历史记录(导入 / 导出)

过去一年,特朗普政府推行了一系列令人震惊的政策转向,这些举措可能削弱美国应对广泛技术挑战的能力与意愿——从网络安全、隐私保护到打击虚假信息、欺诈和腐败。这些转变,连同总统限制言论自由和新闻自由的努力,推进速度如此之快,以至于许多读者可能尚未完全意识到其影响。
言论自由
特朗普总统多次声称,他在2020年大选中失利的主要原因是社交媒体和大型科技公司合谋压制保守派声音并扼杀言论自由。因此,总统在第二任期的本能反应是利用联邦政府的权力杠杆,试图限制普通美国公民以及希望访美外国人的言论。
今年9月,唐纳德·特朗普签署了一项名为NSPM-7的国家安全指令,要求联邦执法官员和情报分析人员针对"反美"活动进行监控,包括涉及欺诈国税局的极端主义团体的任何"税务犯罪"。根据记者Ken Klippenstein的深入报道,该指令重点关注那些表达"反对法律和移民执法、支持大规模移民和开放边境的极端观点、信奉激进性别意识形态"的群体,以及"反美主义"、"反资本主义"和"反基督教"立场。
本月初,司法部长帕姆·邦迪发布备忘录,建议联邦调查局编制一份"可能构成国内恐怖主义"的美国公民名单。邦迪还命令联邦调查局建立"现金奖励制度",鼓励公众举报可疑的国内恐怖主义活动。备忘录指出,国内恐怖主义可能包括"反对法律和移民执法"或支持"激进性别意识形态"。
随着总统继续加强对外国游客的旅行限制,特朗普政府还计划对游客实施社交媒体限制。根据美国海关与边境保护局(CBP)的通知,包括来自英国、澳大利亚、法国和日本等国的游客很快将被要求提供五年内的社交媒体历史记录。
CBP表示还将收集"多个高价值数据字段",包括申请人过去10年的电子邮件地址、过去5年使用的电话号码以及家庭成员姓名和详细信息。《连线》杂志10月报道称,美国CBP在今年前三个月执行的边境设备搜查次数超过以往任何季度。
CBP的新要求为第14161号行政令充实了具体内容。该行政令以打击"外国恐怖主义和公共安全威胁"为名,授予了广泛的新权力。民权组织警告称,这可能基于意识形态认知重启旅行禁令并扩大签证拒签或驱逐范围。批评者指出,该行政令关于"公共安全威胁"的模糊表述为针对特定政治观点、国籍或宗教的个人留下了操作空间。目前至少有35个国家受到某种形式的美国旅行限制。
犯罪与腐败
今年2月,特朗普命令行政机构停止执行《美国反海外腐败法》,此举冻结了海外贿赂调查,甚至允许对既往"不当"执法行动采取"补救措施"。
白宫还解散了盗贼统治资产追回倡议和盗贼捕获特别工作组——这两个机构在腐败案件和没收受制裁俄罗斯寡头资产方面证明了其价值——并将资源从调查白领犯罪中转移出去。
同样在2月,司法部长帕姆·邦迪解散了联邦调查局的外国影响力特别工作组,该机构成立于特朗普第一任期,旨在应对外国政府对美国政治的影响。
2025年3月,路透社报道称,美国多个国家安全机构已停止协调应对俄罗斯破坏活动、虚假信息和网络攻击的工作。在美国情报机构警告俄罗斯正在升级对西方国家的影子战争之际,前总统乔·拜登曾命令其国家安全团队建立工作组监控该问题。
在一次检察独立性的考验中,特朗普的司法部命令检察官撤销对纽约市长埃里克·亚当斯的腐败指控。影响立竿见影:多名高级官员辞职抗议,案件被重新分配,纽约南区联邦地区法院(SDNY)陷入混乱——该机构历来是美国追查公共腐败、白领犯罪和网络犯罪案件最积极的部门之一。
在加密货币领域,政府已将美国证券交易委员会(SEC)的监管重点从执法转向为这个长期受骗局、欺诈和拉地毯跑路困扰的行业摇旗呐喊。2025年,SEC系统性地减少了对加密货币运营商的执法行动,撤销了对Coinbase、Binance等平台的主要案件。
或许最令人不安的例子涉及加密货币公司Tron的华裔创始人孙宇晨。2023年,SEC指控孙宇晨涉嫌欺诈和市场操纵。随后孙宇晨向特朗普家族的世界自由金融(WLF)代币投资7500万美元,成为$TRUMP迷因币的最大持有者,并获得了与总统共进私人晚宴的席位。
基础功能和市面上所有“划词助手”类的工具一样,选中一段文本后出现一个工具栏,可以配置一些自定义动作:


不同的是可定制程度更高,无论是触发方式、执行动作还是工具栏图标,全都支持自定义:


当然扩展商店也是有的,可以通过 剪贴板 + DeepLink 的方式快速安装到本体,目前扩展数量还比较少,逐步添加中:


PS:
做这个开源项目完全是机缘巧合,抱着学习 Rust + 骗 Star 的心态做的,做着做着就上头了
最初想实现的功能是同一快捷键根据不同文本触发不同动作,后来发现完全可以加一个工具栏,最终就变成了现在类似 PopClip 的模式
还要重点感谢 Cherry Studio,从它开源的划词实现中学了很多东西
最后放上仓库地址,希望能给我点个 Star 🫠
该攻击活动被发现分发多种恶意软件,例如Agent Tesla、CryptBot、Formbook、Lumma Stealer、Vidar Stealer、Remcos RAT、Quasar RAT、DCRat和XWorm。
恶意活动的目标包括石油天然气、进出口等工商业领域中财务、采购、供应链和行政部门的员工。诱饵文件使用阿拉伯语、西班牙语、葡萄牙语、波斯语和英语编写,表明攻击可能局限于特定区域。
攻击的关键在于将恶意版本的DLL文件与存在漏洞的可执行文件置于同一目录。利用搜索顺序劫持漏洞,系统会执行恶意DLL而非合法文件,从而使威胁攻击者获得代码执行能力。此次攻击活动中使用的"ahost.exe"可执行文件由GitKraken签发,通常作为GitKraken桌面应用程序的一部分分发。
对VirusTotal上相关样本的分析显示,该恶意软件以数十个文件名进行传播,包括但不限于:"RFQ_NO_04958_LG2049 pdf.exe"、"PO-069709-MQ02959-Order-S103509.exe"、"23RDJANUARY OVERDUE.INV.PDF.exe"、"sales contract po-00423-025_pdf.exe"以及"Fatura da DHL.exe"。这表明攻击者使用发票和报价请求(RFQ)等主题诱骗用户打开文件。
此消息披露之际,Trellix也报告了利用浏览器套浏览器(BitB)技术的Facebook钓鱼骗局激增。该技术通过模拟Facebook认证界面,欺骗不知情用户输入凭证。攻击者使用iframe元素在受害者合法的浏览器窗口内创建虚假弹窗,使得用户几乎无法区分真实与伪造的登录页面。
研究员Mark Joseph Marti表示:"攻击通常始于网络钓鱼邮件,这些邮件可能伪装成律师事务所的通信。邮件通常包含关于侵权视频的虚假法律通知,并内含伪装成Facebook登录链接的超链接。"
一旦受害者点击短链接,他们将被重定向至伪造的Meta验证码提示页面,该页面指示受害者登录其Facebook账户。这随即会触发一个采用BitB方法的弹窗,显示用于窃取凭证的虚假登录界面。
该社会工程活动的其他变种利用声称版权侵权、异常登录警报、因可疑活动导致账户即将关闭或潜在安全漏洞的网络钓鱼邮件。这些信息旨在制造虚假的紧迫感,诱导受害者访问托管在Netlify或Vercel上的页面以窃取其凭证。有证据表明此类钓鱼攻击可能自2025年7月起持续进行。
Trellix指出:"通过在受害者浏览器内创建定制化的虚假登录弹窗,此方法利用了用户对认证流程的熟悉度,使得凭据窃取在视觉上几乎无法被察觉。关键转变在于对受信任基础设施的滥用:利用Netlify、Vercel等合法云托管服务以及URL缩短器来绕过传统安全过滤器,并为钓鱼页面营造虚假的安全感。"
与此同时,研究人员还发现了一个多阶段钓鱼活动,该活动利用Python有效载荷和TryCloudflare隧道,通过指向包含互联网快捷方式(URL)文件的ZIP压缩包的Dropbox链接来分发AsyncRAT。该活动的详细信息由Forcepoint X-Labs于2025年2月首次记录。
此次攻击的一个突出特点是滥用了"无文件攻击"(LotL)技术,该技术利用Windows脚本宿主、PowerShell和原生工具,以及Cloudflare的免费层基础设施来托管WebDAV服务器并规避检测。
部署在TryCloudflare域上的脚本经过精心设计,用于安装Python环境、通过Windows启动文件夹脚本建立持久性,并将AsyncRAT shellcode注入"explorer.exe"进程。同时,攻击者会向受害者显示诱饵PDF文件作为干扰机制,误导其认为访问的是合法文档。
趋势科技表示:"本报告分析的AsyncRAT活动表明,威胁攻击者在滥用合法服务和开源工具以规避检测并建立持久远程访问方面日益成熟。通过使用基于Python的脚本并滥用Cloudflare免费层基础设施托管恶意有效载荷,攻击者成功将其活动隐藏在受信任域名下,绕过了传统安全控制。"
觉得这篇文章有趣吗?请关注我们的Google News、Twitter和LinkedIn,阅读我们发布的更多独家内容。
微软2026年1月补丁星期二修复3个零日漏洞和114个安全缺陷
比利时AZ Monica医院遭网络攻击后关闭服务器
Target员工确认泄露源代码为真实数据
Betterment在加密货币诈骗邮件浪潮后确认数据泄露
Reprompt攻击让黑客可劫持Microsoft Copilot会话
Pok Pok以60美元提供寓教于乐的屏幕游戏体验
云市场Pax8意外泄露1800家MSP合作伙伴数据
维多利亚州教育部称黑客窃取学生数据
XPoet/picx 项目用于存放、管理 GitHub 图床虽然已经很便利了,但仍有一些个人觉得一些的痛点:
以上,以及经历过不少组织、个人图床跑路,导致我的一些相关项目引用图片失效,所以必须拥有自己的图床。我的解决方案是: 自建 GitHub 图床 + picx 结合使用。
picx-images-hosting 是一款基于 GitHub Pages 构建的 Web 图床管理系统,搭配 PicX 达成无缝衔接高度定制化的个人公共图片上传及管理。
网页版图床是图片资产的管理后台,而 PicGo、PicList 等图床扩展软件是写作时的快捷生产工具。它们共享一个 GitHub 数据仓库,既能享受批量管理的便利,也能拥有写作时一键插图的畅快。
项目地址: https://github.com/hoochanlon/picx-images-hosting
这也是我第一个 web 项目,没有做国际化,没有框架,纯 js、css、html,写了好久了,一直没有时间整理发上来。
在线教程: https://hoochanlon.github.io/picx-images-hosting/tutorial.html
首页

上传

登录与 API 状态检查

教程页面

主要部署配置


git clone --filter=blob:none --no-checkout https://github.com/hoochanlon/picx-images-hosting.git
cd picx-images-hosting
git sparse-checkout set --no-cone '/*' '!/imgs/*'
git checkout master
config.js
修改以下配置:
VERCEL_API_BASE:你的 Vercel 部署地址GITHUB_OAUTH_CLIENT_ID:GitHub OAuth Client ID(如果使用 OAuth)PASSWORD:操作密码(如果使用密码认证)api-config.json
添加允许访问 API 的域名:
{
"allowedOrigins": [
"https://your-domain.com",
"https://your-name.github.io",
"https://your-vercel-app.vercel.app"
]
}
| 变量名 | 说明 | 必需 |
|---|---|---|
GH_TOKEN | GitHub Personal Access Token(需要 repo 权限) | ✅ |
GITHUB_OAUTH_CLIENT_ID | GitHub OAuth Client ID | ⚠️ 推荐 |
GITHUB_OAUTH_CLIENT_SECRET | GitHub OAuth Client Secret | ⚠️ 推荐 |
PASSWORD | 操作密码(备用认证) | ⚠️ 二选一 |
TINYJPG_API_KEY | TinyJPG/TinyPNG API Key(图片压缩功能) | ⚪ 可选 |
⚠️ 重要: 环境变量配置后必须重新部署才能生效!
picx-images-hostinghttps://your-vercel-app.vercel.apphttps://your-vercel-app.vercel.app/api/github-oauth?action=callbackconfig.js,将 Client ID 和 Secret 填入 Vercel 环境变量TINYJPG_API_KEYpnpm add -D vercel
复制 env.example 为 .env.local:
cp env.example .env.local
编辑 .env.local:
GH_TOKEN:GitHub Personal Access TokenAPI_BASE:http://localhost:3000(本地开发)vercel dev
访问 http://localhost:3000 查看应用。
访问 /status.html 查看详细的健康状态信息:
api-config.json 中包含所有需要访问的域名优先使用 GitHub OAuth(最安全)
密码认证(备用方案)
config.js 中| 问题 | 解决方法 |
|---|---|
| 页面无法加载 | 检查 Vercel 部署日志 |
| 环境变量不生效 | 重新部署项目 |
| API 请求失败 | 检查 api-config.json 中的 allowedOrigins |
| 问题 | 解决方法 |
|---|---|
| 认证失败 | 检查环境变量是否正确,是否已重新部署 |
| 上传失败 401 | 重新登录,检查认证状态 |
| OAuth 回调失败 | 检查回调 URL 是否与 GitHub OAuth App 配置一致 |
| 问题 | 解决方法 |
|---|---|
| 无法上传文件 | 检查 GH_TOKEN 是否有 repo 权限 |
| CORS 错误 | 检查 api-config.json 或 ALLOWED_ORIGINS 环境变量 |
| 密码验证失败 | 检查 Vercel 环境变量或 config.js 中的密码 |
| 问题 | 解决方法 |
|---|---|
| 健康状态显示"异常" | 检查 GH_TOKEN 环境变量是否正确配置 |
| GitHub API 连接失败 | 检查网络连接和 GitHub API 状态 |
| 仓库树 API 失败 | 检查仓库权限和分支名称是否正确 |
📝 注意: 图片压缩功能需要配置
TINYJPG_API_KEY环境变量。未配置时,压缩开关会被禁用或跳过压缩步骤。
.gitkeep 文件用于保持空目录,首次创建时会返回 404picx-images-hosting 可基于该项目进行二次开发,以支持七牛云、又拍云、B2、R2 等兼容 S3 的对象存储。以及通过 CF-Proxy-B2 来实现 100% 免流的目的。
无 AFF!!
看到佬这个帖子,本人自己在用
名字叫 AI TIMELINE,自己去 EDGE 或者谷歌插件库下即可。
时间戳功能:
主要功能:
复制 LaTeX 公式
智能识别任意网页上的公式。
复制:点击即可复制它的 LaTeX 格式。
可交互对话时间轴
把你跟 AI 的对话整理成可交互时间轴。
跳转对话:对话很长时方便在对话间快速跳转。
收藏:跨 AI 平台收藏对话。
提示词指令库
保存常用提示词。
使用快捷键 ‘/’ 快速访问已保存的提示词。
运行代码
在网页上运行简单的代码块,支持 JavaScript、TypeScript、Python、SQL、HTML、JSON、Markdown、Lua、Ruby。
AI 输入框 Enter 键换行
按下 Enter 键,AI 输入框中的文字实现换行,快速双击 Enter 键发送消息。
使用方法:
点击 "添加至 Chrome" 按钮进行安装。
打开任意 AI 平台,进行简单对话。
页面右侧会出现一个时间轴!
生成式 AI 的投资回报远超预期?Snowflake 调研全球 1900 位企业与 IT 专业人士后发现平均 ROI 高达 41%!点击下载完整报告 过去一年,Data + AI 的讨论正在悄然发生变化。 行业的关注点,逐渐从模型能力本身,转向企业是否真正具备承载 AI 的系统能力:数据是否准备充分,工程体系是否稳定,AI 是否真的进入业务流程并长期运行。这些问题开始频繁出现在一线实践中,也成为企业在推进 Data + AI 过程中无法回避的现实考验。 行业的变化并非源于某一次集中发布,而是在一次次真实落地、反复试错和持续修正中逐步显现。也正因为如此,2025 成为了一个值得回望的年份,许多重要判断,往往产生于具体实践中的“顿悟时刻”。 在这样的背景下,InfoQ 联合 Snowflake 发起了 「MAKE IT SNOW|2025–2026 Data + AI 年度时刻」 直播活动。 这一场围绕企业 Data + AI 战略展开的年度复盘与前瞻对话。活动邀请来自数据平台、开源社区,以及制造、医疗、汽车等行业的一线技术与业务负责人,围炉而坐,如老友般对谈 。我们将共同回到真实的问题本身,剖析企业在推进 Data + AI 规模化过程中遇到的关键抉择 。 每位嘉宾将回顾自己在 2025 年经历的 3 个关键认知转折点。 可能是一段产品体验、一次落地尝试,或是某个业务场景中的重新理解。正是这些具体经历,推动了对 Data + AI 的判断不断修正,也构成了企业能力演进的真实轨迹。 “十问 Data Strategy,AI Strategy ”环节,问题覆盖数据底座与 AI 融合架构、Agentic AI 与可信 AI、多云时代的数据治理、平台整合浪潮下的生态协同,以及工业、医疗、汽车等行业的落地实践。 这些问题没有预设答案,却直指企业当下面临的核心挑战,更接近真实决策场景中的思考方式。 这场直播的尾声,每位嘉宾将基于当下的判断,留下 一个关于 2026 的预测或猜想。 它可能并不成熟,也未必已经被验证,更像是一种站在当下时刻,对下一年走势的直觉判断。这些判断不会被立即评判对错,而是被完整地保存下来,等到 2027 年,我们会再度打开它们,回看哪些判断被现实印证,又有哪些想法在时间中发生了意料之外的转向。 这一刻行业领袖们的技术直觉,将成为未来回望时的重要坐标。 如果你正在思考企业 Data Strategy 与 AI Strategy 的下一步,这场对话,值得关注。 1 月 19 日 17:30-19:30,我们不见不散! 点击链接立即报名注册:Ascent - Snowflake Platform Training - China那个拨云见日的「Aha Moment」
用「年度十问」对齐关键判断
留待未来打开的「时间胶囊」


Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。
文章代表作者个人观点,少数派仅对标题和排版略作修改。
学而不思则罔,思而不学则殆。
对于「学习」这件事的思考,从古至今,从未中断。如果说《关于学习一些流传甚广的误读和迷思》主要在破除错误认知,那么这篇文章,我们就从最基础的问题,来聊聊「学习」到底是怎么一回事,以及和学习有关的一些关键词。
前两部分,关于学习的「哲学视角」和「微观机制」保留了一些学术概念和抽象术语,便于讲清楚学习为什么发生。如果对「如何学习」这个实践话题更感兴趣,可以跳过前两部分,从第三部分的应用板块直接看起。
在脑科学蓬勃发展之前,人们对心智、理解、知识就有不少思考。尤其是文艺复兴之后,欧洲进入启蒙时代,理性主义大行其道。这个时代的哲学主流思潮是「认识论」,核心主题就是去探索人类如何认识世界、如何学习和获取知识。其中有三个里程碑式的观点,构成了我们理解「人如何学习」的三种底层假设1,对后来的脑科学也影响重大。
第一种假设:大脑是一张白纸/白板,全靠后天经验。这个观点最有名的倡导者是英国经验主义哲学家洛克。他认为,人刚出生时,大脑就像一块空空的白板。我们拥有的知识,全都是后天通过感官体验,一笔一划写上去的。这个观点非常符合直觉,也是近代教育理论的主流——因为它暗示了每个人都是平等的,只要教育得当,任何人都能成才。
第二种假设:大脑有「天赋观念」,学习是对内在真理的挖掘。这个观点来自法国哲学家、数学家笛卡尔,还有那句著名的「我思故我在」。笛卡尔认为,感官经验是不可靠的(比如幻觉、错觉),上帝在造人时,已经把最完美的知识印在了我们的灵魂里,比如几何公理、因果律等,这些都是「天赋观念」。我们要做的,就是排除外界干扰,通过纯粹的理性思考(我思),去重新发现这些真理。不愧是数学家的世界观。
第三种假设:大脑预设了先天形式,内容依赖后天经验。德国哲学家康德在《纯粹理性批判》中做了一个精妙的综合。他认为,知识的内容来自后天的经验,但知识的形式来自先天的理性。换言之,大脑自带一套整理归纳的逻辑形式,就像一台电脑预装了操作系统。这其中包括时间和空间,这是我们感知的框架;还包括因果律等先验逻辑,这是我们思考的逻辑。只有依赖这些认知框架,我们才有可能从后天经验中积累具体知识。

以这三类观点为代表,后世对人如何认识世界的问题争论了数百年。
直到 20 世纪下半叶,随着脑成像技术和计算机科学的发展,终于迎来了科学的论断:洛克的「白板说」观点是错误的。相对而言,康德和笛卡尔的看法更接近真相。人类的大脑不仅有出厂设置,而且这套设置非常复杂。
现代神经科学证明,刚出生的婴儿就表现出惊人的能力——他们天生就有数感、懂得概率、甚至理解基本的物理定律,比如知道物体不会凭空消失。因此,学习并不是在一片空白上随意堆砌经验,而是基于我们的先天预装系统,通过与环境的互动,不断修正预测、调整参数的过程。
从这个角度来看,人脑可以说是一个「先天结构」与「后天可塑性」完美融合的精妙设计。如果没有先天的预装系统,全靠后天从零开始学习探索,人类很难在短短几年发展出语言、数学这类高级的智能。反之,先天的出厂设置把一切都规定得死死的,大脑就失去了更多的可能性,难以产生卓越的创造力。正是现有的大脑结构,才让我们既学得快,又能灵活适应各种复杂的环境。
高中生物告诉我们:大脑中的基本细胞结构是神经元,而神经元之间的信息传输,是通过突触完成的。这里面有两个关键信息。

神经元是我们大脑的出厂配置。人脑大约有 860 亿个神经元,这个数量在出生时差不多就定型了。尽管成年后部分脑区仍有生成新的神经元的能力,但它对总体数量来说影响不大。
神经元不是独立存在的,它们通过身上数量众多2的突触彼此联结,形成神经通路。有个很经典的比喻:每个神经元就像一个八爪鱼,有很多的触手。当两只八爪鱼的触角握在一起时(实际上不会完全接触,中间有小的间隙),这个连接部位就是「突触」。
突触的连接是高度动态,且后天可塑的。你可以把它理解为大脑的参数。每当我们学习时,突触及周围的结构就会进行相应的变化和调整。所以人的一生中,我们的突触一直在不断改变,而这些改变对应的现象,就是我们所说的「学习」。

这里有一个常见的误解:既然突触和学习有关,是不是随着大脑发育,突触数量也会随之增多呢?并非如此。大脑中的突触数量,不是随年龄越来越多,而是呈倒 U 型曲线。在 1~2 岁(婴儿时期)达到巅峰,这时的突触数量大约是成人的 1.5~2 倍左右。从 1~2 岁以后,一直到青春期,突触会遵循「用进废退」的法则:只有被频繁激活的突触才能存活下来,而那些没有用到的连接会被无情地修剪掉。尤其是青春期,大脑会以每秒钟 5000 个的惊人速度消除掉多余的突触。这个过程叫做「突触修剪」(Huttenlocher, 1979)。到成年早期,也就是 20~30 岁,突触数量基本定型,并保持一个相对稳定的数量,直到进入老年,突触才会有明显的下降趋势。

突触修剪看似反直觉,但自有其目的,那就是将有限的能量集中在最关键的神经回路上,提升和生存有关的信息处理的精准度和速度。简言之,大脑会根据环境,进行后天的「定制化」,优先保障最有可能会用到的知识。
最典型的例子是语言学习。刚出生的婴儿,清一色是语言天才,他们都有分辨世界上所有语音的能力。但成长过程中,如果母语环境没有某种发音,那么负责辨别这些语音的突触就会因为长期闲置而被修剪掉,从而换取母语处理的深度和速度。比如,说中文的人很难发好英语中清辅音 θ 和浊辅音 ð,说英语的人很难发法语中的元音 u、eu和汉语中带韵母 ü 、üe 的音,日语母语者则无法分辨 r 和 l 的区别,这个最经典的梗就是日本人分不清 election 和 erection,在克林顿丑闻上闹了笑话。
而且,这个进程比我们想象得要早很多:对元音来说是 6 个月,对辅音来说是12个月,也就是说,一岁大的婴儿就会受到母语影响,主动保留与自己生活环境中的语言相关的音素。这解释了为什么成年人学外语时,无论怎么努力,有些音就是听不准、发不好。因为大脑早早就删除了识别这些声音的神经连接,想要重建,可以说难上加难(但不是完全没有可能)。

还有一个很重要的概念叫「关键期」,家长和做儿童教育的朋友应该不陌生。关键期本质上就是突触连接的固化窗口期。过了关键期,相应功能未被激活突触就被修剪掉了,孩子有可能损失掉一部分的潜能。这和上面讲到的语言学习是一样的道理。不过,科学研究表明,关键期并不是绝对的,所以现在倾向于把它称为「敏感期」。家长们也不必太过焦虑。
既然神经元数量基本恒定、突触数量又在不断减少,「学习」是如何发生的呢?
首先是突触连接的强化。 神经科学中有个著名的「赫布定律」(Hebb, 1949):一同被激活的神经元,会连在一起(Fire together, wire together)。 它的意思是说,当我们不断重复学习某项技能、某个知识时,相关的神经元会被频繁地同时激活。这种高频的刺激,会让它们之间的突触连接变得更粗壮、更高效,信号传输的阻力越来越小。神经科学上把这叫做「长时程增强」(LTP)(Bliss & Lømo, 1973)。这是记忆形成的关键,也是学习最核心的环节之一。
除了突触的连接变强,大脑还有一种让学习更高效的方式,那就是「髓鞘化」。
如果说突触起到连接两个神经元的作用,那么髓鞘就是包裹在轴突外面的绝缘层。就像电线包了胶皮能防止漏电,髓鞘的形成能让信号的传输速度提升几十倍甚至上百倍。 当我们反复练习某个技能,比如弹钢琴或说外语时,大脑不仅会加固突触,还会给轴突这条神经通路裹上更厚的髓鞘。

所以,从微观层面,「学习」主要是基于大脑物理结构的两个进程:一方面是做减法——大脑会做「突触修剪」,保留环境中反复出现、对个体至关重要的神经连接,起到精简、降噪的作用; 一方面是做加法——通过「长时程增强」加固常用的连接,并通过「髓鞘化」把核心的通路包裹起来,起到提速、强化的作用。
这个过程就像在原始山林中开荒和修路。你既要挥起镰刀,砍掉那些用不着还挡路的杂草和枯树;又要夯实土地,把狭窄的土路铺成平整宽阔的高速公路。只有完成这两个步骤,并在后期不断维护,才能保证道路的畅通无阻,这就是我们所谓的「学会了」。
讲到这里,深奥的学习问题就变成了一个实际的操作问题:我们如何怎么做,才能最好地激活与要学的知识相对应的神经元,告诉它们——哪些东西应该被强化,哪些东西应该被修剪掉呢?3
这个部分我不打算重复造轮子,会直接引用权威认知科学家斯坦尼斯拉斯·迪昂在《精准学习》中总结的「学习的四大支柱」,来讲和学习有关的几个核心概念。当然,我会脱离书本,补充一些生活中的例子,还会补充一些关键词,帮助大家后续拓展阅读。
我们都有这种体验:网课开着,但你正开着小窗,和朋友聊得火热。虽然声音进入了你的耳朵,但其实什么都没听见。事实上,这种无效的学习状态在日常学习中占比很高,当你很困、很累、情绪很激动、边听讲边玩手机、听英语听力听到走神的时候,大脑并没有对这些信息进行加工(或加工效率极低),学习压根就没有发生。
几乎可以这样断言:没有注意,就没有学习。注意力是生物进化中一项古老且重要的信息筛选系统,它能帮助我们从嘈杂的环境中,迅速判断出大脑应该处理哪些信息。所以,不仅学习这种大脑高等功能需要它,发现危险、及时逃命这些生命本能也需要它。由于大脑的带宽有限,学习的过程,就可以看作理智大脑和原始大脑在抢夺控制权,夺取注意的过程。
「注意」绝对是一个值得专题来讲的话题,尤其是在短视频、手游当道的如今,我们每个人都在经历着不同程度的注意力问题,这对学习无疑是极度不利的。这里先解释几组基础概念:
很多人会混淆这两对概念。觉得我看视频、玩游戏的时候很专注啊,为什么一看书、一写东西,马上就走神了呢?其实,前者叫做被动注意,它不太消耗意志力,也不怎么费劲,因为我们天生都有被鲜艳的画面和巨大的声响吸引住的本能。而学习的时候需要的是主动注意,要有意识地控制自己的注意力,定向到学习这件事情上。这需要花费精力,通过努力才能达成,是相当脆弱和宝贵的。
还有一种注意叫「有意后注意」,是一种有特定的目的,但不太需要太多意志努力的注意。是经过学习、训练或培养兴趣后达到的高阶状态,后面会在「自动化」的地方提到。
既然主动注意需要消耗精力,自然没法长时间高强度运转。根据心理学研究,不同年龄人的注意时长遵循一个大略规律:3~5 岁大约5~10 分钟;6~8 岁(小学低年级)大约15~20 分钟;9~15 岁(小学高年级到初中)大约 25~30 分钟;成年人的注意时长和青春期孩子大体类似,至多也就 40~90 分钟 。

这就是为什么学校的一节课通常设置在 40 或 45 分钟,中间必须要有课间休息。而幼儿和小学低年级阶段,老师在课堂上纯讲课的时间更短,还要花大量时间和孩子互动、做游戏。此外,我们常用的番茄钟(25 分钟专注 + 5 分钟休息一个循环),也跟这个规律有关。
不过,注意时长存在明显的个体差异,尤其是 ADHD 患者,维持主动注意的生理机制存在一定障碍,建议适当降低专注时长,以免增加不必要的压力。
迪昂的书里引用美国心理学家波斯纳的理论(Posner, 1990),把人脑的注意机制分为三个方面:
这三件事听起来复杂,举一个例子就明白了:当我们说一个人注意力不好时,可能是他警觉度不够——太困了、太累了,没法保持清醒的状态,也可能是他定向能力弱——容易被干扰带跑、没法从一堆东西中找出目标,也可能是执行控制力差——管不住自己,不知道该先做什么,后做什么,难以把视线从手机移回书本。分清这三点,才能对症下药。

所以,大家在学习的时候,首先要保证良好的身体状态,维持相对平稳的情绪状态,生病、困乏、吃饱、情绪激动的时候都不适于学习;其次不要在学习的物理空间摆放杂物、搞花里胡哨的文具,同时还要做好隔音;最后,学习时一定不要把手机、pad 等电子设备放在身边,这些都是影响专注的典型原因。
知名 Coursera 课程 Learning How to Learn(《学会如何学习》)5里介绍了两种大脑处理信息的模式。
一种是专注模式,也就是我们要聚精会神的状态。它适合解决熟悉的、按部就班的问题,比如解一道练习题、背诵一个单词。另一种是发散模式,是指我们在发呆、放松、散步或洗澡时,那种思绪游走的状态。
反直觉的是,发散模式也是学习的关键一环。当我们在专注模式遇到瓶颈——怎么想都想不出来时,停下来,把问题交给后台运行,大脑反而能激活更广阔的区域。往往在不经意间,就会闪现灵感。所以,发呆和休息不是学习的对立面,而是深度学习必不可少的一部分。

关于注意的相关知识,以及如何保持注意,我手头有很多存货,后续有机会再讲。少数派之前有不少相关的好文章,如注意力使用不完全报告,欢迎自行阅览。
下面提供一些和「注意」有关的关键词,感兴趣的朋友可以更好地建立知识图谱:
前一篇文章在讲「学习金字塔」时,提到了季清华的 ICAP 理论 (Chi, 2014),以及主动学习的重要性。
「主动参与」这一点很好理解。只有当大脑处于活跃、生成、预测的状态时,才更有助于神经元建立新的连接。与之相反,像是听讲、阅读等被动的学习过程,大脑参与度有限,往往自我感觉良好,但实际效果不佳。
主动学习之所以有效,是因为它和几个重要的学习机制相关:
我们都知道,如果机械地背诵一个没有理解的定义,很快就忘了。如果在学一个新知识时,能补充几个生动的例子,和之前学过的概念进行辨析,再编个朗朗上口的顺口溜,理解清楚了就能记很长时间。
后一种情况叫作「深度加工」,原理是:当你学习新知识时,本质上是在激活一组新的神经元。如果只是死记硬背,这组神经元是孤立的、连接很弱的。但如果进行了深度加工,就等于让这组新的神经元和大脑里已有的神经网络建立起关联,促使它们之间生长出新的突触连接,建立丰富的神经通路。这就好比在大脑里留下了更多的钩子,回忆时更容易把这个知识给调出来。

像联想、对比、举例、画面想象、多感官参与、整理大纲/思维导图、以教促学(也就是常说的费曼法)这些主动参与的方法,本质上都是对知识的深度加工,心理学上也有一个类似的概念,叫「生成效应」,就是说自己生成的信息比单纯外界获得的信息记忆更牢固。
如果说「深度加工」在学习新知识时非常高效,那么在复习阶段,最好的方法就是主动提取。它的核心方法是:不要直接看答案。要先让自己主动提取大脑中的记忆,再检验它是否准确。
主动提取听起来很深奥,其实我们学习的时候天天都在用它,比如:解题、造句、默写、闪卡背单词、概括段落大意,它们和被动的复习笔记、反复朗读、重复刷一道题形成鲜明对比。
同样是主动提取,水平却千差万别。做选择题往往只需要再认,看到答案觉得眼熟,就能选出来;做填空题就要花点功夫去回想,很容易写不出来。所以,虽然做起来更困难,但尽可能选择提取难度高的方法,这样做学习效果更好。
还有一个方法。这几年很多人在提,就是写作/输出。不少人把写作看做是最高级的主动学习,这样说有一定的道理。面对一张白纸写作属于「自由回忆」,无论是主题、框架,还是行文内容,全部要从头开始。这个过程中,大脑必须高度依靠内部的神经通路,去检索并重构已有的知识,这会让神经元重新激发一次完整的回路,极大地强化记忆。同时它还会督促你查资料、查缺补漏、重新学习。所以,越是自己花多功夫、反反复复推倒重来写的文章,里面的观点、内容、结构记得尤其牢固。更关键的是,这个过程中,很多原本想得很浅、模糊不清的问题会终于弄清楚,无异于一次高强度的深度加工。

不过我有一个反面的感受:自己写出来的文章,很容易变成一种僵化的框架,后面再想同一个问题,会反复死守着这个思考框架,很难再做进一步突破和提升。想一想那些站在讲台上,翻来覆去讲同一套理论的专家教授就可以。这个现象有一个对应的术语叫「思维定式」(Luchins, 1942)。其实不光写作,任何学习都有可能导致这种情况。
想要突破已有的思维框架,就要不断补充吸收新的材料,同时引入下一个机制:错误反馈。
关于主动学习的关键词,除了正文中加粗的具体方法之外,还有以下一些关联概念:
关于错误反馈这一点,我觉得特别重要,也是现在教育不太重视的一点。从小我们就被教育少犯错、最好不要犯错,但在脑科学看来,没有错误,就没有真正的学习。
大脑的学习机制,本质上和 AI 训练很像。都是基于一个粗糙的模型,不断地提出预测,然后再通过外部反馈来调节参数(对应的物理结构就是突触),从而不断优化。迪昂用「贝叶斯模型」来类比人脑,这一点我觉得还是挺深刻的。
我们生活中都有这样的感受:如果一件事和你预想的一样,那么它只是稍稍强化了一下已有的观念,你从中很难学到太多东西。但如果一件事情,不断地给你错误反馈,每次都会推翻你预想的结果,那么,你就会从这个事情中学到有价值的经验教训。换言之,通过这件事,你会不断地调整、优化你的心理模型,和现实更好地做匹配。
学习中,讲到错误反馈,就不得不提到很多人讨厌的考试/测验。
很多讲学习的书都给「考试」这件事正过名。考试/测验有两个明显的好处。一个是上面讲到的主动提取。每一次考试,其实都是在通过主动提取,对神经回路的一次重塑和加固,提取时感到越费力,比如考试题很难,花了很多时间冥思苦想,神经元受到的刺激就越强,记忆留存的效果就越好。二是错误反馈。如果考试只是为了得到一个分数,那么它的作用就大打折扣,它更重要的作用是帮你找出错误,提供一个明确的反馈,打破「我都学明白了」的错觉。以前每次考完试,老师会上一节课专门讲评卷子,还有现在提倡学生做错题整理,都是有科学依据的。所以,大家不妨更平和地看待分数,把它当成是自己学习的一个实时反馈,无疑更有助于提升学习效果。
之前少数派有个高赞的文章:工作最忙的 78 天,我用 ChatGPT 考了 CFA,用到的就是这个方法,利用AI把「自我测验」作为一种学习工具,尤其对付短期突击、目标是合格的考试,效果无疑远超听课、看书等常规方法。不过学生党要注意,如果是要扎实掌握的基础知识,还要通过上面讲过的方法来辅助理解,做好深度加工。
错误反馈也可以解释一个现象,为什么我们都对好的游戏那么上瘾。
大多数游戏都是及时反馈,你遇见一个怪物,一刀砍下去,怪没死,反而把你秒了。界面上立刻出现一个巨大的「Game Over」,再点击屏幕,就可以无痛回到打怪之前的初始状态。然后,你的大脑就会迅速修正策略:这次不能直接硬刚,可以试试远程攻击……这种「预测-尝试-错误-即时反馈」的循环,是学习效率最高的模式。
在孩子玩游戏的问题上,我感觉多数家长还是持消极态度的。担心游戏成瘾、伤眼睛是一方面,另一方面在于,大多数游戏确实没有什么营养,除了氪金花时间,学不到什么真东西。但理想状态下,如果学习可以借鉴游戏的机制,能够利用游戏化的方式把学习错误反馈变得更及时、更有趣,那无疑是天下学子的福音。b 站上有个物理老师用《塞尔达传说》教孩子力学原理,算是一个相当不错的案例。而很多人推崇的多邻国在我心中不算优秀,因为这个软件只有游戏的机制,实际要学的干货知识太少,不适用于动真格的语言学习。如果大家有什么这方面好的案例,也可以和我分享。
关于「错误反馈」,再补充如下一些关键词:
巩固也是学习中的必要一环,这一点非常直观,无需过多解释。
一提到巩固,首先就会想到记忆。没有后面的巩固,印象再深的知识也容易遗忘,这是每个学习者的常识。从神经科学角度解释,记忆是一个动态的生物化学过程。刚接收到的信息只是临时的电信号,非常脆弱。要把这些信号转变为长期的物理连接,神经元需要时间来加固突触。
关于这个机制,有一个经典比喻:学习好比盖房子,既要往上垒砖瓦,又要在砖瓦缝糊上水泥加固。要想把房子盖得牢,拼命地往上面垒砖头是不行的。盖一阵子歇一阵子,然后等水泥凝固了,再往上盖,这样才能最稳固。对应在学习中,无论新知识的学习,还是复习巩固已有知识,相比集中强化学习,「分散学习」的长期记忆效果往往更好。
关于「分散学习」,最经典的应用就是间歇学习或复习,此外还有学习和测试相互交织的间隔训练等。
想必大家都听过,这个方法源自德国心理学家艾宾浩斯 19 世纪末绘制的「遗忘曲线」(Ebbinghaus, 1885),它告诉我们:新学的知识,最初的 20 分钟后就会遗忘 42%,一天后会遗忘 66%。如果不加干预,剩下的记忆都会随着时间迅速衰减,一个月后只记得 21%。但需要留意的是,艾宾浩斯做实验用的是无意义的字母组合,如 DAX, BOK, QUH, RUF,这和我们在课堂上学到的可理解、深加工的知识还是不太一样的。

实际学习中,如何设计间隔重复,并不一定要严苛地执行统一标准。一般来说,把同一节课重复学两次,只有当间隔时长达到 24 小时(一整天)后,才会观察到学习效果明显改善。如果是 GRE 单词级别、需要死记硬背的知识点,可以适当缩短一些复习时间,按个人习惯做适当调整。
如果追求高效率的记忆间隔,一个经验法则是,按照你期望的记忆留存时间(比如五个月后考试),取 20% 作为间隔长度来进行复习,也就是每月复习一次;如果想再科学一些,可以前期适当安排得紧密一些,从隔天复习,到三天后,再到一周后、两周后,后面每月再复习一次。这种策略能保持一个不错的记忆存储效果。细想想,我们上学时的课程设置:学习当晚做习题巩固、第二天老师上课抽查复习、周末做单元习题、每月小考、每学期期中、期末两次大考,其实还是挺科学的。
还有一个被吹爆的学习神器,就是睡眠——没错,高质量的睡眠,能够让学习者「躺赢」,这点绝非夸大其词。
关于睡眠影响学习效果的研究有很多。有研究发现,睡眠能增强记忆。当人睡着之后,前一天学到的知识会在大脑中继续巩固,第二天一早遗忘的程度很少,所以不少学习书会把「睡前学习」或睡前主动回想一天学的知识看做是一个黄金法则。还有一些研究发现,大脑在睡眠时,会清理白天积聚的有毒物质,修剪无关的突触,有助于发现一些醒着时难以注意的规律。很多时候,白天百思不得其解的难题,睡一觉起来突然有了灵感。最有名的就是苯环结构的发现。现在很多人都知道,考前与其通宵突击一晚,不如少学一点,早睡一点,效果有可能更好。
有关睡眠的研究很多,大家可以自行探索。其实记住一个原则就好:尊重作息规律,保护好睡眠,无论对身体健康,还是对学习,都有益无害。尤其是儿童和青少年,早点睡比多做几道题重要多了,家长一定要学会取舍。
迪昂的书里,提到另一种形式的巩固——那就是通过反复练习、不断强化,把需要大脑皮层来完成的功能,逐渐「自动化」,变成大脑下意识就能运转的技能。像是骑自行车、开车、母语阅读、九九乘法表……类似的基础知识都要经历这样一个过程,通常需要数月,甚至数年才能完成。
这样做的好处是,技能或知识一旦熟练以后,会转到后台处理,大脑的带宽和主动注意就能得到解放,可以更高效地同时处理其他信息。最直观的例子,莫过于我们在使用母语和外语时的巨大反差。阅读中文时,我们可以一目十行,而在阅读外语时,哪怕每个词都认识,大脑也需要额外的时间处理。这种微小的卡顿累积起来,就是巨大的认知负担。这就是为什么很多留学生会有「降智」的体验:明明逻辑清晰、学识渊博,但因为语言水平的限制,所有的注意力都花在了语言本身,显得反应迟钝、谈吐拙劣。要解决这个问题,没有任何捷径,唯有花大量的时间做好语言积累。
关于「自动化」的话题,看过畅销书《思考,快与慢》的朋友不会陌生。这本书里用「系统 1」和「系统 2」指代上面这两类思考,和以上的内容异曲同工。这本书的作者是丹尼尔·卡尼曼,是历史上第一位获得诺贝尔经济学奖的心理学家,书写得也很通俗,感兴趣的朋友可以拓展阅读。

其他相关词汇:
《关于「学习」一些流传甚广的误读和迷思》一文得到如此多的认可,谢谢大家的鼓励。
坦率讲,要把「学习」这么一件复杂的事情讲清楚并非易事。写作过程中,我深感自己能力的局限,为此查阅了大量资料,输出倒逼输入:)除了迪昂的《精准学习》,还有前后两篇文章提及的书目以外,微观机制的部分还参考了电子工业出版社引进的《神经科学——探索脑(第4版)》这本大部头教材。如有错漏,还请大家多多批评和指正。
下一节,我想先讲一讲学习中特别重要的一环「记忆」。如果有对其他话题的朋友,也请留言推荐。
看了很多佬们对 gemini business 的注册和 2api 的开发。但是始终没有发现一个能够同时满足标题全部需求的东东。
于是乎我选择把下面各位大佬的东西直接缝合起来弄成一个平台:
【Gemini-Business2api】支持多账户轮询、账户监控日志、画图(返回 url)、HuggingFace 部署
Gemini Business 注册机
合并实现了以下功能:
邮箱配置需要额外使用 GitHub - dreamhunter2333/cloudflare_temp_email: CloudFlare free temp domain email 免费收发 临时域名邮箱 支持附件 IMAP SMTP TelegramBot
需要配置 AI 提取验证码、ADMIN 凭证来提取邮箱密码。
关于部署,目前还没有测试过能否在 huggingface 来部署,因为包含了 chrome 的镜像略大不确定能不能布上去。
项目地址:
最后的最后,再次感谢各位大佬提供的方案和思路:CooooooKK, SnapSheep
在使用 Claude code 一个好的状态栏工具,可以更好提高开发者效率,现在分享两个状态工具安装分别是 cline 和 claude-hud
0: 效果展示:
cline
claude-hud
效果说明:如果你更看中工具的调用建议使用 claude-hud,如果你侧重简洁高可配使用 cline
一:安装 ccline (CCometixLine)
npx zcf
Ok to proceed? (y) y 请选择功能
L. CCometixLine - 基于 Rust 的高性能 Claude Code 状态栏工具,集成 Git 信息和实时使用量跟踪
请输入选项,回车确认(不区分大小写) L
请输入选项,回车确认(不区分大小写) 1 返回主页使用Q退出
二:安装 Claude-hud
在 Claude Code 终端里依次输入
第一步:添加 marketplace
/plugin marketplace add jarrodwatts/claude-hud
第二步:安装插件
/plugin install claude-hud
第三步:初始化配置(可能失效或者找不命令,看第四步手动配置)
/claude-hud:setup
(可选)第四步:在 claude 的 enabledPlugins 配置
正确加载检查
在 Claude Code 终端里输入 /plugin 回车
注意事项
Claude Code 的 statusLine 配置只支持一个命令,无法同时运行两个状态栏程序
所以可以使用脚本切换
主要就是手动控制 statusLine 的 command 位置
switch-to-ccline.ps1
$settingsPath = "$env:USERPROFILE\.claude\settings.json" $json = Get-Content $settingsPath -Raw | ConvertFrom-Json
$json.statusLine.command = '%USERPROFILE%\.claude\ccline\ccline.exe' $json | ConvertTo-Json -Depth 10 | Set-Content $settingsPath -Encoding UTF8
Write-Host "Switched to ccline. Please restart Claude Code." switch-to-hud.ps1
$settingsPath = "$env:USERPROFILE\.claude\settings.json" $json = Get-Content $settingsPath -Raw | ConvertFrom-Json
$json.statusLine.command = 'node "C:\Users\Administrator\.claude\plugins\cache\claude-hud\claude-hud\0.0.4\dist\index.js"' $json | ConvertTo-Json -Depth 10 | Set-Content $settingsPath -Encoding UTF8
Write-Host "Switched to claude-hud. Please restart Claude Code." 自己注意路径,正确的话就能手动切换
效果说明:如果你更看中工具的调用建议使用 claude-hud,如果你侧重简洁高可配使用 cline
如果有用请点个赞 ,让我今天不用吃低保
最近发现 ComfyUI 终于支持 AMD 显卡了,之前都是在 Debian 用 ROCm 跑这个,但是双系统有点麻烦,发现 ComfyUI 支持之后,就赶紧体验了一下,下载了 ComfyUI Desktop。
结果跑了好几个模板工作流都不行,表现为:点击运行后,提示 disconnect,再点击运行就提示 TypeError: Failed to Fetch,日志也无法查看,此时就推测是后端崩溃了,但是 Desktop 版本不够灵活,好像没办法直接看 ComfyUI 后端,于是切换了 GitHub 上构建的 Portable 版本。
切换到 Portable 版本后,发现问题还是一样,点击运行后,确定后端崩溃,但是没有任何报错,就像程序被正常退出一样,此时就感觉有点迷惑,不知道怎么定位问题,然后就去问了下 Gemini , Gemini 的回答是 Python 是 静默崩溃 (Silent Crash) , 底层 C++ 库(PyTorch/ROCm)崩溃或者显卡驱动触发了保护机制(TDR)强制杀死了进程 ,要嘛是显存爆了,要嘛就是 bf16 兼容性问题,然后给了一些没啥用的解决方案。
没办法,只能老办法,去 GitHub 上看 issue ,看看有没有相同情况的人,幸运的是正好找到了差不多情况的,Confyuai AMD GPU crash - AMD Radeon RX 6650 XT: failed to run amdgpu-arch binary not found. · Issue #11524 · Comfy-Org/ComfyUI · GitHub , 看到下面有个回复说到他的 RX6600XT 用了别人构建的 ROCm 运行的很好,于是我就想到了极有可能是 Python 的 cuda 模块并不能正常运行,我就用 Portable 内嵌的 Python 环境(也就是 ComfyUI 使用的 Python 环境)进行了测试:
#ComfyUI_windows_portable\python_embeded>python.exe print(torch.cuda.is_available()) # True print(torch.cuda.get_device_name(0)) # AMD Radeon RX 6600 XT 这么一看,好像 cuda 没有什么问题?但是当我换另外一种方法测试,就发现问题所在了:
x = torch.rand(50000, 30000).cuda()
print(x) # 崩溃了! 这下可以确定是 cuda 的问题了,直接用 GitHub - guinmoon/rocm7_builds: My own ROCm windows builds from TheRock repository for various architectures such as 680m, 780m, rx6600, etc. 重装 ROCm 和 torch。
#注意用 ComfyUI 内嵌的 Python 环境去安装依赖
ComfyUI_windows_portable\python_embeded\python.exe -m pip install "rocm-7.2.0.tar.gz" "rocm_sdk_libraries_custom-7.2.0-py3-none-win_amd64.whl" "rocm_sdk_devel-7.2.0-py3-none-win_amd64.whl" "rocm_sdk_core-7.2.0-py3-none-win_amd64.whl"
ComfyUI_windows_portable\python_embeded\python.exe -m pip install "torch-2.9.1+rocmsdk20251203-cp312-cp312-win_amd64.whl" "torchaudio-2.9.0+rocmsdk20251203-cp312-cp312-win_amd64.whl" "torchvision-0.24.0+rocmsdk20251203-cp312-cp312-win_amd64.whl"
安装完之后,重试一下
x = torch.rand(50000, 30000).cuda()
print(x) # 正常输出 完美解决,ComfyUI 也能正常生图了,不会再出现静默崩溃的情况了。
之前分享了一个 opencode 的配置,大家也给我提了很多意见,感谢大家!!!
但是我在使用 opencode 的时候当上下文快满的时候自动进行上下文压缩,但是会报错,然后我尝试了手动压缩 /compact 指令,我发现了一个很有意思的现象,当我不使用工具调用的时候可以正常压缩,但是我只要使用工具调用就报错:Bad Request: Improperly formed request. 所以我就猜测是因为思考块里面带了工具调用,致使 CPA 不支持,所以我就开始改 CPA,修复逻辑如下
然后吭哧吭哧改了两天,调了很多次,最后可以正常压缩了,但是工具调用的时候一直循环,无奈宣告失败。。。
但是,我在查文档的时候发现压缩上下文的也是一个子代理,默认使用的是主模型,那既然这样,我换一个模型不就行了,直接开干,因为我设置了 google 的 api 所以我用的是 google 模型。
正常工作,果然,opencode 的高自定义程度名不虚传,好玩爱玩,如果有佬有更好的方法,欢迎分享,在此献上我的 opencode.json 文件,大家可以看看:
{
"$schema": "https://opencode.ai/config.json",
"model": "cpa-claude/kiro-claude-opus-4-5-agentic(high)",
"agent": {
"compaction": {
"model": "google/antigravity-gemini-3-pro-low"
}
},
"plugin": [
"oh-my-opencode",
"opencode-antigravity-auth@1.2.8",
"opencode-openai-codex-auth@4.3.0"
],
"provider": {
"cpa-claude": {
"npm": "@ai-sdk/anthropic",
"name": "cpa-claude",
"options": {
"baseURL": "http://127.0.0.1:8317/v1"},
"models": {
"gemini-claude-opus-4-5-thinking(high)": {
"name": "gemini-claude-opus-4-5-thinking(high)",
"limit": {
"context": 204800,
"output": 65535
},
"modalities": {
"input": [
"text",
"image",
"pdf"
],
"output": [
"text"
]
},
"options": {
"thinking": {
"type": "enabled",
"budgetTokens": 16000
}
}
},
"gemini-claude-sonnet-4-5-thinking(high)": {
"name": "gemini-claude-sonnet-4-5-thinking(high)",
"limit": {
"context": 204800,
"output": 65535
},
"modalities": {
"input": [
"text",
"image",
"pdf"
],
"output": [
"text"
]
},
"options": {
"thinking": {
"type": "enabled",
"budgetTokens": 16000
}
}
},
"kiro-claude-sonnet-4-5-agentic": {
"name": "claude-sonnet-4-5-nothinking",
"limit": {
"context": 204800,
"output": 65535
},
"modalities": {
"input": [
"text",
"image",
"pdf"
],
"output": [
"text"
]
}
},
"kiro-claude-sonnet-4-5-agentic(high)": {
"name": "claude-sonnet-4-5",
"limit": {
"context": 204800,
"output": 65535
},
"modalities": {
"input": [
"text",
"image",
"pdf"
],
"output": [
"text"
]
},
"options": {
"thinking": {
"type": "enabled",
"budgetTokens": 16000
}
}
},
"kiro-claude-opus-4-5-agentic(high)": {
"name": "claude-opus-4-5",
"limit": {
"context": 204800,
"output": 65535
},
"modalities": {
"input": [
"text",
"image",
"pdf"
],
"output": [
"text"
]
},
"options": {
"thinking": {
"type": "enabled",
"budgetTokens": 16000
}
}
}
}
},
"cpa-gemini": {
"name": "cpa-gemini",
"options": {
"baseURL": "http://127.0.0.1:8317/v1"
},
"models": {
"gemini-3-pro-preview": {
"name": "gemini-3-pro-preview",
"limit": {
"context": 1048576,
"output": 65535
},
"modalities": {
"input": [
"text",
"image",
"pdf"
],
"output": [
"text"
]
},
"options": {
"thinking": {
"type": "enabled",
"budgetTokens": 16000
}
}
},
"gemini-3-flash-preview": {
"name": "gemini-3-flash-preview",
"limit": {
"context": 1048576,
"output": 65536
},
"modalities": {
"input": [
"text",
"image",
"pdf"
],
"output": [
"text"
]
},
"options": {
"thinking": {
"type": "enabled",
"budgetTokens": 16000
}
}
}
}
},
"google": {
"name": "Google",
"models": {
"antigravity-gemini-3-pro-high": {
"name": "Gemini 3 Pro High (Antigravity)",
"thinking": true,
"attachment": true,
"limit": {
"context": 1048576,
"output": 65535
},
"modalities": {
"input": [
"text",
"image",
"pdf"
],
"output": [
"text"
]
}
},
"antigravity-gemini-3-pro-low": {
"name": "Gemini 3 Pro Low (Antigravity)",
"thinking": true,
"attachment": true,
"limit": {
"context": 1048576,
"output": 65535
},
"modalities": {
"input": [
"text",
"image",
"pdf"
],
"output": [
"text"
]
}
},
"antigravity-gemini-3-flash": {
"name": "Gemini 3 Flash (Antigravity)",
"attachment": true,
"limit": {
"context": 1048576,
"output": 65536
},
"modalities": {
"input": [
"text",
"image",
"pdf"
],
"output": [
"text"
]
}
}
}
},
"openai": {
"name": "OpenAI",
"options": {
"reasoningEffort": "medium ",
"reasoningSummary": "auto",
"textVerbosity": "medium ",
"include": [
"reasoning.encrypted_content"
],
"store": false
},
"models": {
"gpt-5.2": {
"name": "GPT 5.2 (OAuth)",
"limit": {
"context": 272000,
"output": 128000
},
"modalities": {
"input": [
"text",
"image"
],
"output": [
"text"
]
},
"variants": {
"none": {
"reasoningEffort": "none",
"reasoningSummary": "auto",
"textVerbosity": "medium "
},
"low": {
"reasoningEffort": "low",
"reasoningSummary": "auto",
"textVerbosity": "medium "
},
"medium ": {
"reasoningEffort": "medium ",
"reasoningSummary": "auto",
"textVerbosity": "medium "
},
"high": {
"reasoningEffort": "high",
"reasoningSummary": "detailed",
"textVerbosity": "medium "
},
"xhigh": {
"reasoningEffort": "xhigh",
"reasoningSummary": "detailed",
"textVerbosity": "medium "
}
}
},
"gpt-5.2-codex": {
"name": "GPT 5.2 Codex (OAuth)",
"limit": {
"context": 272000,
"output": 128000
},
"modalities": {
"input": [
"text",
"image"
],
"output": [
"text"
]
},
"variants": {
"low": {
"reasoningEffort": "low",
"reasoningSummary": "auto",
"textVerbosity": "medium "
},
"medium ": {
"reasoningEffort": "medium ",
"reasoningSummary": "auto",
"textVerbosity": "medium "
},
"high": {
"reasoningEffort": "high",
"reasoningSummary": "detailed",
"textVerbosity": "medium "
},
"xhigh": {
"reasoningEffort": "xhigh",
"reasoningSummary": "detailed",
"textVerbosity": "medium "
}
}
},
"gpt-5.1-codex-max": {
"name": "GPT 5.1 Codex Max (OAuth)",
"limit": {
"context": 272000,
"output": 128000
},
"modalities": {
"input": [
"text",
"image"
],
"output": [
"text"
]
},
"variants": {
"low": {
"reasoningEffort": "low",
"reasoningSummary": "detailed",
"textVerbosity": "medium "
},
"medium ": {
"reasoningEffort": "medium ",
"reasoningSummary": "detailed",
"textVerbosity": "medium "
},
"high": {
"reasoningEffort": "high",
"reasoningSummary": "detailed",
"textVerbosity": "medium "
},
"xhigh": {
"reasoningEffort": "xhigh",
"reasoningSummary": "detailed",
"textVerbosity": "medium "
}
}
}
}
}
}
}
除了使用 google/antigravity-gemini-3-pro-low 还可以使用 opencode 提供的免费模型,比如 GLM4.7。
当然,这个只是一个曲线救国的方法,如果有佬有更好的方法,欢迎分享!!!
配置问题可以看看之前那个帖子
风佬巨作,相比 zcf 轻量不少,如果你没有 gemini 和 codex 需求,请看推荐二
但是 github 星星太少了,你们快去点它!:
现在我用 风佬 CCG 开发 / 更改功能,优雅如下:
1. 阶段 1:研究与分析 (如果你提供的提示词不精确,它会找你回复需要补充信息)
补充信息后:计划方案 -> 用户选择方案A/B/C
2. 阶段 2:开始构思 -> Gemini 前端分析已完成✅ Codex 后端分析已完成✅
3. 阶段 3:详细规划 -> Gemini 前端规划完成✅ Codex 后端规划完成✅
Claude请你批准计划 -> 用户回复 "批准" 或提出修改意见
--提出批准好,claude差不多200k上下文已经满了,现在自动压缩--
═══ Conversation compacted · ctrl+o for history═════
⎿ Read scripts/add_query_type_to_saved_queries.sql (25 lines)
⎿ Read .claude/plan/用户查询界面优化-方案2-实施计划.md (268 lines)
⎿ Read static/js/orders.js (146 lines)
⎿ Read static/js/users.js (247 lines)
⎿ Read utils/CLAUDE.md (95 lines)
⎿ Todo list read (5 items)
4. 自动压缩后,自动开始进行已经规划好的开发阶段
为了避免花费宝贵的时间去折腾免费公益的 api key,建议大家购买中转站,充值 10 元先试试感觉
废话: 在本站爬楼了 2 天,终于找到我想要的 ai 方式,一周前我发的贴,差点被 ai 气死
因为我经常换新环境,重装的话,要找很多帖子,索性自己写一个安装记录
本贴适用于 vscode 类似编辑器 或 liunx
主要目的:
我就以 linux vps 为例(winodws 配置环境安装略复杂,另外中转站几乎都有对应的教程)
Ubuntu/Debian 更新包列表:
sudo apt update
安装 Node.js:
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt-get install -y nodejs
安装 npm
apt install -y npm
验证安装:
node --version
npm --version 如果 node 版本 < 20,还需要升级一下:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
source ~/.bashrc
nvm install 22
nvm use 22 node -v
npm -v
如报错,问 gpt
因为 200k 上下文太让我难受了,然后我就看上了 gemini 的 1m,但是 gemini 写代码又没 claude 爽,因为我就在论坛爬楼了。然后找到了风佬的项目
(liunx 为例,winodws 配置文件位置不通用,另外中转站几乎都有对应的教程)
1.1 打开终端,执行以下命令:
npm install -g @anthropic-ai/claude-code
验证安装:
claude --version 1.2 settings.json 配置(推荐,永久生效)
配置位置:~/.claude/settings.json(这玩意中转站会提供配置)
{ "env": { "ANTHROPIC_AUTH_TOKEN": "粘贴为Claude Code专用分组令牌key", "ANTHROPIC_BASE_URL": "中转站api域名" } } 2.1 全局安装 CodeX
sudo npm install -g @openai/codex@latest 验证安装
codex --version 如报错,问 gpt
2.2 创建配置文件:
cd 一下在 root 目录,创建 CodeX 配置目录
mkdir -p ~/.codex
cd ~/.codex
2.3 创建 config.toml 文件(这玩意中转站会提供配置)
# 创建配置文件
cat > config.toml << 'EOF'
model_provider = "fox" # 可配置gpt-5或gpt-5-codex
model = "gpt-5.2-codex" # 可配置high medium low minimal
model_reasoning_effort = "high"
disable_response_storage = true
[model_providers.fox]
name = "fox"
base_url = "中转站api"
wire_api = "responses"
requires_openai_auth = true
EOF
2.4 创建 auth.json 文件
# 创建认证文件 cat > auth.json << 'EOF'
{
"OPENAI_API_KEY": "粘贴为CodeX专用分组令牌key"
}
EOF
3.1 创建 .gemini 文件夹
mkdir -p ~/.gemini
cd ~/.gemini
3.2 创建 .env 文件
在 .gemini 文件夹中创建 .env 文件:
cat > .env << 'EOF'
GOOGLE_GEMINI_BASE_URL=https://jp.duckcoding.com
GEMINI_API_KEY=粘贴为Gemini CLI专用分组令牌key
GEMINI_MODEL=gemini-3-pro-preview
EOF
3.3 创建 settings.json 文件
在 .gemini 文件夹中创建 settings.json 文件:
cat > .settings.json << 'EOF'
{
"ide": {
"enabled": true
},
"security": {
"auth": {
"selectedType": "gemini-api-key"
}
}
}
EOF
注意: 不知道为啥,配置文件需要放在项目文件夹才不会有提示,cp 一下即可
cp -r /root/.gemini 项目文件夹路径
终于到正片啦
npx ccg-workflow
安装 15 个命令 和 环境变量
重启 claude 生效
进入 claude 输入:
测试 codex和gemini协作 的 skills
/ccg:workflow 任务描述
自动执行 6 阶段工作流:Prompt 增强 → 代码检索 → 并行分析 → 原型生成 → 实施 → 审计
我现在是已经 claude 200k 上下文开发出来的屎山,使用这个命令只需要跟 claude 周旋 1-2 次即可解决问题
#问题诊断+修复
/ccg:debug 问题描述
更多使用命令详细请前往风佬贴,去 github 点星星,我求你啦:【开源】CCG v1.7.24 : Claude Code 编排三 CLI 协作 | Codex + Gemini + Claude
我主要使用的工具:CCometixLine 状态栏、MCP 服务集成、ZCF 六阶段工作流、Git 智能命令
运行命令,然后跟着教程初始化流程,能装的都装了。
npx zcf
如果是中转站,就不需要配置 api 或 ccr 代理
200k 上下文吐槽
claude 运行完成后发消息通知你,这样你就可以不用盯着它了
欢迎大家一起讨论,我使用 zcf 和风佬的工作流不过也才一周时间