RoPE旋转位置编码——让大模型"记住"字词顺序的旋转魔法:读《RoFormer》论文有感
一、为什么大模型需要"位置"?作为一名长期写 C++ 和关注大模型的工程师,我最早对**位置编码(Positional Encoding)**产生兴趣,是因为一个看似反直觉的问题: Transformer 本身,是"看不见顺序"的。 自注意力机制(Self-Attention)计算的是两个 token 之间的"相关程度": 1Attention(Q, K, V) = softmax(Q·Kᵀ / √d) · V 注意这个公式——Q·Kᵀ 是点积,衡量的是内容相似度。把"我爱你"和"你爱我"送进 Transformer,如果不加位置信息,模型看到的几乎是一模一样的东西。因为"我"和"你"不管谁在前谁在后,它们的点积都一样。 这就引出了一个大问题:语言是讲究顺序的。"猫追老鼠"和"老鼠追猫"完全是两回事。所以我们必须给每个 token 注入"它是第几个"的信息——这就是位置编码存在...
RAG原理就一句话——检索、拼接、加工:写给想祛魅的你
系列导读:本文是"检索与 RAG"系列的第三篇(收尾篇)——前两篇分别认识了 RAG、深挖了检索环节的坑,本篇回归本质,用一句话看穿 RAG 的骨架。本系列阅读顺序: 《RAG检索增强生成——让大模型学会翻书作答》(认识 RAG) 《权重大却不相关——BM25检索失效场景与两阶段救赎》(深挖检索环节) 本文《RAG原理就一句话——检索、拼接、加工》(回归本质,收尾) 一、RAG 被讲复杂了打开任何一篇 RAG 教程,你会看到:向量数据库、embedding、切分策略、重排、混合检索、RRF 融合、引用溯源、评估指标……名词堆成一座山。 但如果你剥掉所有包装,RAG 的原理真的只有一句话: 用传统软件工程的办法,把用户输入对应的知识搜索出来,拼到大模型的提示词里,让大模型帮你二次加工一下。 就这么简单。私域文件知识库问答是这样,联网搜索是这样,企业内部文档检索也是这样——框架完全同构。 这篇不教你搭系统,只帮你把 RAG 看穿:它到底是什么、每一环在干什么、为什么教程写得天花乱坠。 二、拆开看:三个环节,一个都不新RAG 的全流程可以拆成三个环节: ...
RAG检索增强生成——让大模型学会翻书作答:读《Retrieval-Augmented Generation》论文有感
系列导读:本文是"检索与 RAG"系列的第一篇——先认识 RAG 是什么(为什么需要它、它的架构是什么)。本系列共三篇,阅读顺序如下: 本文《RAG检索增强生成——让大模型学会翻书作答》(认识 RAG) 《权重大却不相关——BM25检索失效场景与两阶段救赎》(深挖检索环节的坑) 《RAG原理就一句话——检索、拼接、加工》(回归本质,一句话看穿 RAG) 一、大模型的知识困境作为一个 C++ 工程师,我一直在思考一个问题:为什么大语言模型知道很多东西,但又常常"胡说八道"? 比如,如果你问 GPT-3 "2024年美国总统是谁",它可能会给你一个错误的答案——因为它的知识截止到2021年。更糟糕的是,它可能会编造一个不存在的事实,还说得煞有介事。 这就是大模型的"知识困境": 知识过时:训练完成后,参数就被冻结了,无法获取最新信息 容易幻觉:经常生成看似合理但实际上错误的内容 缺乏可解释性:无法追溯答案的来源 专业知识不足:对于冷门或专业领域的知识,模型的准确性大打折扣 这正是《Retrie...
思维链提示——让大模型学会推理的神奇方法:读《Chain-of-Thought Prompting》论文有感
一、为什么大模型需要"思考"作为一个 C++ 工程师,我一直在思考一个问题:为什么大语言模型在处理简单任务时表现出色,但在需要多步推理的复杂问题上却常常翻车? 比如这个数学题: "小明有5个苹果,小红比小明多3个苹果,小李的苹果是小红的2倍。问小李有多少个苹果?" 标准提示下的模型可能会直接给出答案,但不一定正确。而如果让模型"一步一步思考",结果就会大不相同。 这正是《Chain-of-Thought Prompting Elicits Reasoning in Large Language Models》这篇论文要解决的问题。 二、什么是思维链提示(Chain-of-Thought Prompting)2.1 核心思想思维链提示(Chain-of-Thought Prompting,简称 CoT)的核心思想非常简单: 在提示中加入一些包含中间推理步骤的示例,让模型学会"一步步思考"。 对比一下两种提示方式: 标准提示(Standard Prompting): 12Q: 小明有5个苹果,小红...
Codex Desktop gpt-5.5调用失败解决方案
一、遇到问题今天在使用 Codex Desktop 0.142.2 时,发现一个非常令人困扰的问题:当我切换到 gpt-5.5 模型时,每次发送请求都会立即失败,错误信息是: 1This model is not supported when using X-OpenAI-Internal-Codex-Responses-Lite. 具体表现就是: 在 Windows 上打开 Codex Desktop,进入某个线程 切换模型到 gpt-5.5 发送任何提示词,请求都会立刻失败 没有任何助手回复产生 最奇怪的是,同一台机器上的 gpt-5.4 模型完全正常,而且就在同一天稍早的时候,gpt-5.5 在其他线程里还正常工作过。这说明不是简单的配置问题,而是某个动态变化导致的。 二、我的排查过程2.1 从错误信息入手看到这个错误信息,我首先注意到了 X-OpenAI-Internal-Codex-Responses-Lite 这个 HTTP 头。从命名来看,这应该是一种"轻量级响应模式"。 问题很明显:Codex 在请求时发送了这个 Lite 头,但 gpt...
算法早已实现:读AI寓言故事有感
一、迷雾森林里的算法灵魂最近让AI写了几篇关于算法的寓言故事,读来颇有感触。故事里,林大山在迷雾森林里"乱走"着探路,扔下石子做记号,碰到树就绕过去——这不就是RRT算法吗?当我看到这个隐喻时,忽然意识到:计算机算法并不是凭空创造的,它们早就以某种形式存在于我们的生活中。 我们总觉得算法是高深的、抽象的、只存在于代码世界里的东西。但事实上,算法的本质就是解决问题的方法和步骤。人类在几千年的生存实践中,早就摸索出了各种各样的算法,只是我们没有用"算法"这个词来称呼它们。 二、生活中的算法原型细细想来,生活中的算法无处不在。猜数字游戏是二分查找,每次将搜索范围缩小一半;找零钱是贪心算法,每一步都选择当前最优方案;地图导航是Dijkstra算法,从起点逐步扩展到终点;人生决策是动态规划,将大问题分解为子问题求解;手机通讯录是哈希表,通过哈希值直接定位存储位置。 算法的发展,其实是一个从生活到代码的抽象过程:观察现象 → 总结规律 → 形式化表达 → 代码实现 → 优化改进。以RRT算法为例,林大山在迷雾森林里随机探路是生活原型,通过随机采样快速探...
一次与 AI 的代码重构对话实录:十一个决策如何成形
一、起点代码库主体为 C++,约 2000 行核心业务逻辑,运行在 ARM 嵌入式和 x86 双平台上,通过 MQTT 与远程设备通信,串口与多个外设交互。我在这个项目上工作了一年,近期整理出一份架构重构计划(Strand + Offload 模式),但缺少外部视角的校验。 我将代码库和重构计划一并提交给 AI,要求其以独立视角进行全面审查。AI 的初始动作是并行扫描目录结构、核心文件、依赖关系和 CMake 构建系统,在五分钟内建立起对代码库的整体理解。 二、第一轮:信息差暴露AI 输出了涵盖十个维度的架构评估报告——线程模型、瓶颈识别、改进方案、组件交互优化、可扩展性增强、第三方库集成策略、Device/DeviceNode 关注点分离、SystemFactory 设计模式改进、实施路线图、风险矩阵。 覆盖全面,但有三处与实际情况不符: 计算卸载方案中 ComputePool 的设计是冗余的。项目已引入 ZLMediaKit,其内置的 WorkThreadPool 可直接复用。 第三方库仅有 x86 预编译版本,而目标平台为 ARM,跨架构编译的管理策略未被考虑...
Vibe Check 即一切:读 Olshansky《Vibe Checks Are All You Need》
一、你每天都在做 Vibe Check,只是不承认Olshansky 在他的文章《Vibe Checks Are All You Need》里扔出了一个让人不太舒服但难以反驳的判断:日常实践中 ~99% 的 LLM "评估"本质上都是 vibe check——直觉驱动的、主观的、非量化的感受判断。 什么叫 vibe check?就是你打开 ChatGPT/Claude/Gemini,扔一个问题进去,看一眼输出,然后心里给出一个模糊结论:"还行""不太行""这次挺聪明""刚才那段胡说八道"。这个过程没有评分量表,没有对照基线,没有统计显著性计算——它纯粹是你作为人类用户对模型输出的一次主观感受采样。 大多数人不会把这种体验称为"评估"。他们会说"我只是在试用""我在了解这个模型""我先随便玩玩"。但 Olshansky 的观点是:别骗自己了,你就是在做评估——只不过用的是最原始的方式。...
DeepSeek v4 Pro 在 TRAE 中输出乱序问题的最终解决
四月底,我写了一篇《DeepSeek v4 Pro 在 TRAE 中输出乱序问题分析与解决》,详细记录了 DeepSeek v4 Pro 在 TRAE IDE 中出现词级/片段级输出乱序的问题,并给出了一个核心推测:DeepSeek v4 Pro 作为推理模型,在 SSE 流中同时发送 reasoning_content 和 content 两种字段,而 TRAE 的解析器未能正确分离它们。 一个多月过去了,问题已经解决。本文是最终篇——记录根因的确认、修复的实际发生方式,以及一个耐人寻味的事实:整个过程中,我们从未收到任何一封邮件回复。 一、时间线回顾 时间 事件 4 月中旬 首次在 TRAE 中配置 DeepSeek v4 Pro,发现长回复几乎必然乱序 4 月 27 日 发布问题分析文章,向 TRAE 和 DeepSeek 双方提交 issue / 反馈 4 月底 — 5 月中旬 不定期复测,乱序问题仍然存在。未收到任何官方邮件或 issue 回复 5 月 20 日左右 TRAE 推送了一次版本更新(Windows 客户端 + 内...
公司即算法图:读 Daniel Miessler《Companies Are Just a Graph of Algorithms》
一、核心命题:一切皆算法Daniel Miessler 在《Companies Are Just a Graph of Algorithms》中提出了一个简洁而有力的框架:公司不过是一张算法图(Graph of Algorithms)。 他举了一个叫 "Memories" 的虚构公司案例——这家公司接收用户照片、修复、风格化、添加字幕、输出高清大图。整个业务流程可以拆解为一系列步骤: 1用户上传 → 高质量扫描 → 质量检查与修复 → 风格化处理 → 添加字幕 → 输出下载 每一步本身又是一个子算法,可以继续细拆。而支撑业务运转的还有更多并行流:公司注册、招聘、税务、基础设施、市场营销、客户支持——每一项都是一组算法节点,彼此用"发送到""接收自"的关系连线,构成一张完整的有向图。 这个视角并不新鲜——把企业看作输入-处理-输出的系统,是管理学和系统工程几十年前就在做的事情。但 Miessler 真正想说的是后半句:AI 即将让这张图变得完全透明,而透明是优化的前置条件。 二、"透明即燃料":为什么...
DeepSeek v4 Pro 在 TRAE 中输出乱序问题分析与解决
在 Windows 版 TRAE IDE 中通过 DeepSeek v4 Pro 模型辅助编程和写作时(通过 SSH 远程连接到 Linux 开发环境),我遇到了一个令人困扰的现象:模型的思考过程和编写过程出现严重的输出乱序——文字片段像被洗牌一样随机排列,完全无法阅读。 问题的诡异之处在于:不是偶尔乱序,而是几乎每次长回复都会出现。下面是一段真实的乱序输出: 真实的乱序输出示例: DeepekSe是模型Tra 通过界e面面的UI添加 ,的存储在别 ,的地方在你。TraIDE e看到中Deep-ekSe24 v ro-p正在并使用##。 DeepSe ek -v4的por乱序输出 原因深层的Deep Seek根本模型 原因是)流式响应(Streaming 机制 T与e ra IDE响应的 处理不兼容 : 可以看到,不同来源的文字被不规则地插花式交错在一起。这并非某一段落整体后移或前移,而是真正的词级/片段级交错——两个文本流被以非预期的方式交替拼接到了一行中。 本文将记录问题的完整排查过程、目前最合理的推断和实际可行的应对方案。需要说明的是,关于根因的分析目前仍...
EVA智能助手代码深度解析
一、引言在人工智能时代,智能助手已经成为我们日常生活和工作中的重要工具。今天,我将为大家解析一个名为 EVA 的智能助手项目,这是一个基于 LLM(大语言模型)的自主代理系统,具有执行命令、管理会话、进化学习等强大功能。 EVA 不仅是一个实用的工具,更是学习 Python 高级编程、LLM 集成和系统设计的优秀案例。通过深入分析其代码结构和实现原理,我们可以了解如何构建一个功能完整的 AI 代理系统。 二、项目概览EVA 是一个用 Python 编写的智能助手,主要特点包括: 基于 LLM:集成 DeepSeek 等思考型模型 跨平台支持:兼容 Windows 和 Linux 系统 自主代理:能够执行系统命令、管理文件 会话管理:自动保存和加载会话状态 记忆管理:智能记忆压缩和线索保存 进化能力:能够保存知识和技能,持续改进 三、核心模块解析3.1 导入模块EVA 使用了多个 Python 核心模块和第三方库,构建了完整的功能体系: 12345678910import osimport reimport jsonimport subprocessimport sysimpo...
Claude Code 工作原理:从按键到响应的完整流程
当你在 Claude Code 中键入消息时,背后究竟发生了什么?这个看似简单的操作,实际上涉及了一个复杂的系统,包括 agent loop、50+ 工具、多代理编排以及一些尚未发布的特性。本文将基于 ccunpacked.dev 的分析,为你揭示 Claude Code 的内部工作原理。 一、Agent Loop:从按键到响应的完整流程Claude Code 的核心是一个精心设计的 agent loop,它负责处理用户输入并生成响应。当你在编辑器中按下按键时,整个流程如下: 1. 输入处理 按键捕获:编辑器捕获你的按键操作 输入解析:系统解析输入内容,识别命令和代码片段 上下文构建:收集当前文件、项目结构和历史对话,构建完整的上下文 2. 代理处理 任务分配:根据输入类型,将任务分配给相应的代理模块 工具调用:根据需要调用各种工具,如文件操作、代码执行、搜索等 多代理协作:复杂任务可能需要多个代理协同工作 3. 响应生成 代码分析:对代码进行静态分析,识别错误和优化点 响应构建:生成符合上下文的响应内容 格式处理:确保代码格式正确,添加适当的注释和解释 4. 渲染与展示 ...
Claude Code 代理循环:从输入到响应的核心流程
一、 什么是代理循环(Agent Loop)?在 Claude Code 中,代理循环(Agent Loop)是整个系统的核心,它负责处理用户输入并生成响应。这是一个持续运行的循环过程,能够实时响应用户的操作,提供智能化的代码辅助功能。 二、 代理循环的完整流程当你在 Claude Code 编辑器中按下按键时,整个代理循环流程如下: 1. 输入处理阶段按键捕获 编辑器实时捕获用户的按键操作 记录输入内容和光标位置 检测特殊命令和快捷键 输入解析 系统解析输入内容,识别命令和代码片段 区分普通文本输入和特殊指令 提取关键信息和上下文 上下文构建 收集当前文件的完整内容 分析项目结构和相关文件 整合历史对话和操作记录 构建完整的上下文环境 2. 代理处理阶段任务分配 根据输入类型和上下文,将任务分配给相应的代理模块 确定处理优先级和执行顺序 评估任务复杂度和所需资源 工具调用 根据任务需求,调用相应的工具函数 如文件操作、代码分析、搜索等 处理工具返回的结果 多代理协作 对于复杂任务,多个专业代理协同工作 代码分析代理、调试代理、测试代理等各司其职 共享信息和结果,形成统...
Claude Skills 实现原理:注入调用阶段详解
一、从用户请求到 Skill 执行当用户在 Claude Code 中输入请求时,系统会进入注入调用阶段,这是 Skills 真正发挥作用的阶段。这个阶段负责将合适的 Skill 注入到对话中,并执行相应的操作。 1. 语义触发机制语义触发是 Claude Skills 的核心特性之一,它使得模型能够通过理解用户的自然语言请求,自动识别并调用合适的 Skill。 触发过程包括: 请求分析:模型分析用户的自然语言请求 意图识别:识别用户的真实意图和需求 Skill 匹配:从索引中查找最匹配的 Skill 触发决策:判断是否需要调用 Skill 语义触发的关键在于模型能够理解用户请求的语义,而不仅仅是关键词匹配。这使得 Skills 能够更智能地响应用户需求。 2. Prompt Blocks 生成当模型决定调用某个 Skill 后,系统会生成相应的 Prompt Blocks: 加载 SKILL.md:读取对应的 SKILL.md 文件 解析执行步骤:提取执行流程和指令 生成 Prompt 模板:根据 Skill 内容生成适合模型的 Prompt 注入上下文信息:将用户请求和...
Claude Skills 实现原理:加载阶段详解
一、从命令行到 Skill 加载要理解 Claude Skills 的实现原理,我们需要从系统启动开始,追踪整个加载过程。当用户在命令行中输入 claude 命令时,整个流程就启动了。 1. 启动入口:main() 函数系统的启动入口位于 src/main.tsx 文件中,main() 函数负责初始化整个应用程序,包括 Skills 的加载。 关键代码位置:src/main.tsx:1918-1932 启动过程中,系统会: 解析命令行参数 初始化应用程序环境 注册各种服务和组件 扫描并加载可用的 Skills 2. Skill 扫描与发现在启动过程中,系统会扫描指定目录下的所有 Skill 文件夹,识别有效的 Skills。 扫描过程包括: 遍历指定的 Skill 目录 检查每个目录是否包含 SKILL.md 文件 验证 SKILL.md 文件的格式和内容 构建 Skill 索引 3. SKILL.md 解析对于每个有效的 Skill,系统会解析其 SKILL.md 文件,提取关键信息: Skill 名称:用于标识和显示 描述:Skill 的功能和适用场景 触发条件:什...
Claude Skills 核心概念与组成
一、什么是 Claude Skills?根据前一篇文章的介绍,我们了解到 Claude Skills 是 LLM 发展的必然产物。那么,Skills 究竟是什么?我们可以给它一个简单而准确的定义: Claude Skills 是可被语义触发的能力包,它包含领域知识、执行步骤、输出规范与约束条件。 这个定义包含了 Skills 的几个核心特征: 可被语义触发:模型能够通过理解用户的自然语言请求,自动识别并调用合适的 Skill 能力包:它不是单一的功能,而是一个完整的能力集合 包含领域知识:内置了特定领域的专业知识 执行步骤:定义了完成任务的具体流程 输出规范与约束条件:确保输出符合预期格式和质量标准 二、Claude Skills 的组成结构一个完整的 Claude Skill 是一个文件夹,里面包含三个核心部分: 1. SKILL.md 文件这是 Skill 的核心,相当于「指令手册」,用自然语言编写。它包含以下内容: Skill 描述:这个 Skill 是做什么的,适用场景是什么 使用方法:如何调用这个 Skill,需要提供什么输入 执行步骤:完成任务的具体流程和步骤 ...
LLM 发展与 Claude Skills 的诞生
一、LLM 发展的四个阶段从 2022 年底 ChatGPT 爆火至今,大语言模型(LLM)的发展经历了四个重要阶段,每一个阶段都为最终 Claude Skills 的诞生奠定了基础。 1. 刀耕火种阶段(2022 年底)ChatGPT 的出现掀起了 AI 对话的热潮,当时与 AI 交流的核心是"如何说才能让它听话"。这个阶段的特点是: 高度依赖 Prompt 工程 知识高度碎片化,难以复用 程序逻辑从"代码逻辑"转变为"自然语言" 诞生了"Prompt 工程师"这一新兴角色 虽然这个阶段的技术还比较原始,但它彻底改变了人们与 AI 交互的方式,为后续的发展埋下了伏笔。 2. 开始规模化阶段(2023 年初)随着 Anthropic 发布 Constitutional AI 和 OpenAI 推出 Prompt Engineering 官方指南,LLM 开始进入规模化阶段: Prompt 开始沉淀成模板库和系统提示规范 诞生了 Prompt-Engineering、awesome-chatgpt...

