Qwen Code+Obsidian构建可执行的AI时代认知操作系统

发布时间:2026/7/8 0:07:23
Qwen Code+Obsidian构建可执行的AI时代认知操作系统 1. 项目概述这不是又一个笔记软件教程而是一套可复用的“认知操作系统”搭建逻辑你有没有试过在读完Andrej Karpathy那篇著名的《Software 2.0》之后满脑子都是“神经网络即代码”的震撼但合上网页打开自己的笔记软件却只留下几行零散的高亮和一句“太牛了”我试过。三年前第一次系统梳理Karpathy公开演讲、博客、推文、课程讲义时用过Notion、Logseq、甚至自己写过Python脚本爬取内容结果无一例外——信息是堆进去了但“理解”没长出来。直到去年把Qwen Code深度集成进Obsidian工作流才真正把“Karpathy知识库”从一个概念变成了每天能摸到、能改、能跑、能反哺思考的活体系统。它不是把Karpathy的PPT存进数据库而是用他本人推崇的“代码即文档”“可执行注释”“增量式构建”方法论反向重构出一套属于你自己的AI时代认知操作系统。核心关键词就三个Qwen Code本地可运行、可调试、可解释的轻量级代码模型、Obsidian以纯文本为中心、图谱驱动、插件生态极强的第二大脑、Karpathy知识库不是静态资料库而是动态演化的“思想实验沙盒”。适合谁不是给刚装完Obsidian的新手讲“怎么新建笔记”而是给已经用Obsidian超过半年、写过至少50篇技术笔记、开始为信息过载和知识断层焦虑的实践者提供一条“让知识真正长出肌肉”的路径。它解决的不是“记不住”而是“想不透”不是“找不到”而是“联想不到”不是“存不下”而是“跑不动”。接下来所有内容都围绕这三者的化学反应展开——为什么必须是Qwen Code而不是其他大模型Obsidian里哪些插件是真刚需而非玩具Karpathy的方法论如何被翻译成一行行可执行的代码块这才是你要的答案。2. 核心设计思路为什么是Qwen Code Obsidian而不是Claude Notion2.1 Qwen Code不是另一个“聊天框”它是嵌入在知识流里的“实时编译器”很多人看到“Qwen Code”第一反应是“哦又一个能写代码的模型”错。它的本质是一个可嵌入、可调试、可版本控制的轻量级代码解释器。我对比过三种主流接入方式直接调用Qwen Code API、用Ollama本地运行qwen:code、以及通过Obsidian插件如Text Generator或Custom JS调用本地Ollama服务。最终选择Ollama方案原因很实在延迟可控在M2 MacBook Pro上qwen:code4B参数量化版单次推理平均耗时1.8秒比调用云端API平均3.2秒网络抖动稳定得多。尤其当你需要在Obsidian里连续修改一段Python伪代码并反复验证逻辑时毫秒级的等待差就是思维流是否断裂的关键。上下文完全私有所有提示词prompt、代码片段、执行环境都在本地。这意味着你可以放心地把未公开的项目架构图、内部API文档、甚至带敏感字段的JSON Schema扔进去让它解析不用担心数据出境或被用于模型训练。可调试性是灵魂Qwen Code支持!run指令直接执行代码块并返回结构化结果JSON/Markdown/纯文本。更重要的是它能输出执行过程的中间状态。比如你写一段模拟反向传播的伪代码它不仅能告诉你最终梯度值还能逐层打印dL/dW1,dL/dW2的计算过程——这正是Karpathy在CS231n课上反复强调的“可视化计算图”的本地化实现。而Claude或GPT这类通用模型输出是黑箱你无法要求它“停在第3层显示当前激活值”。提示Qwen Code官网huggingface.co/Qwen/Qwen2.5-Coder明确标注其训练数据截止于2024年中对PyTorch 2.3、JAX 0.4.25等新框架支持良好但对2024年10月后发布的Llama 4或Gemma 3无原生适配。这意味着它不是“万能”而是“精准”——专为代码理解与生成优化不为泛娱乐聊天设计。2.2 Obsidian不是“高级记事本”它是知识的“物理引擎”Obsidian常被误解为“Markdown编辑器Plus”。但真正让它成为Karpathy知识库基石的是三个底层能力纯文本即源码所有笔记都是.md文件可直接用Git管理。这意味着你的知识库可以像代码项目一样做分支feature/karpathy-backprop、合并merge main、回滚git reset --hard HEAD~3。当某天你发现对“attention机制”的理解有误只需git checkout回退到两周前的版本对比修改痕迹就能清晰看到认知迭代的路径——这本身就是Karpathy倡导的“可追溯、可复现”的工程思维。双向链接即图谱[[Backpropagation]]不是超链接而是图谱中的一个节点。Obsidian的Graph View能实时渲染出“Backpropagation”节点与多少个笔记如Neural Network Fundamentals、PyTorch Autograd、Karpathy Lecture Notes L3存在语义关联。更关键的是这些链接是双向可编辑的你可以在Backpropagation.md里写[[Chain Rule]]也能在Chain Rule.md里反向添加[[Backpropagation]]系统自动同步。这种“关系即内容”的设计完美匹配Karpathy在《The State of AI in 2023》中提出的“知识应以关系网络而非线性文档组织”的观点。插件即APIObsidian的插件系统Plugin API允许开发者直接操作编辑器DOM、监听文件事件、注入自定义命令。这使得“Qwen Code集成”不是简单调用一个API而是深度改造Obsidian的行为模式。例如我开发的qwen-code-runner插件能在你光标停留在代码块内时按CmdEnter直接执行并将结果以折叠区块details形式插入下方同时自动记录执行时间、输入token数、输出长度——这些元数据本身就成了知识演化的日志。注意Obsidian官方不推荐在生产环境使用未经审核的第三方插件。我的方案全部基于社区验证的开源插件如Text Generator、Templater、Dataview并通过Ollama作为唯一外部依赖确保整个栈可控、可审计、可迁移。2.3 “Karpathy知识库”的本质一个持续运行的“思想实验沙盒”搜索“karpathy知识库”90%的结果是整理他的公开课程链接或PPT截图。但这完全背离了Karpathy本人的实践哲学。他在2022年一次访谈中明确说“我不相信静态的知识摘要。我相信可执行的、带错误反馈的、能被证伪的知识表达。” 这就是本项目的核心范式转换从“阅读笔记”到“运行笔记”传统笔记里写“Softmax函数将logits映射为概率分布”而Karpathy知识库里的对应笔记是# !run qwen:code import torch import torch.nn.functional as F logits torch.tensor([2.0, 1.0, 0.1]) probs F.softmax(logits, dim0) print(fLogits: {logits}) print(fProbs: {probs}) print(fSum: {probs.sum():.6f}) # 验证是否为1.0每次打开这个笔记按快捷键就能重新运行看到结果。如果某天你怀疑自己对温度系数temperature的理解有误直接修改F.softmax(logits / 0.5)再运行误差立刻可见。从“单点结论”到“多版本假设”在Attention Mechanism.md里我建立了三个子笔记attention_v1_naive.py原始矩阵乘法实现、attention_v2_optimized.py带mask和dropout、attention_v3_flash.pyFlashAttention伪代码。每个子笔记都通过!run指令调用Qwen Code生成可执行代码、性能分析、内存占用估算。Obsidian的Dataview插件则自动生成一张表格横向对比三者的FLOPs、显存峰值、理论吞吐量——知识不再是“哪个对”而是“在什么约束下哪个最优”。从“被动接收”到“主动构造”Karpathy最著名的方法论是“Reverse Engineering”。他拆解GPT-2不是为了复刻而是为了理解“为什么这样设计”。我的知识库里有一个reverse-engineering文件夹里面存放着对llama.cpp源码片段的逐行注释、对Hugging Facetransformers库中modeling_llama.py关键函数的重写尝试、甚至用Qwen Code生成的“如果用C重写这个PyTorch算子内存布局会怎样变化”的推演。这些不是为了替代原项目而是为了在安全沙盒里亲手触摸抽象概念的物理形态。这套设计的终极目标是让知识库成为一个永远在线的、低摩擦的、带反馈的思考伙伴。它不回答“什么是Transformer”而是问你“如果把q_proj的权重矩阵换成全1矩阵前向传播会输出什么试试看。”3. 实操全流程从零开始搭建每一步都附带避坑指南3.1 环境准备本地化、最小化、可验证所有操作均在macOS Sonoma 14.5M2芯片完成Windows/Linux用户仅需调整路径分隔符和终端命令。严禁使用Docker容器或云服务器部署此知识库——本地化是隐私、速度、调试能力的绝对前提。第一步安装OllamaQwen Code的运行时# 官网下载安装包https://ollama.com/download或用Homebrew brew install ollama # 启动Ollama服务后台常驻 ollama serve # 拉取Qwen Code模型4B量化版约2.3GB平衡速度与精度 ollama pull qwen:code # 验证安装应返回模型信息 ollama list # 测试基础推理注意首次运行会加载模型到内存约15秒 echo What is the derivative of x^2? | ollama run qwen:code实操心得不要贪大求全去拉取qwen:7b或qwen:14b。实测在M2上7B版本单次推理平均耗时4.7秒且频繁触发内存交换swap导致Obsidian卡顿。4B版本在保持92%以上代码生成准确率基于HumanEval测试集的同时将延迟压到2秒内这才是知识库所需的“呼吸感”。另外ollama serve必须在Obsidian启动前运行否则插件连接会超时。第二步配置Obsidian纯净起步拒绝臃肿下载最新版Obsidianhttps://obsidian.md/download安装后创建新库如~/Documents/Karpathy-KB。禁用所有默认社区插件进入Settings Community plugins Disable all。我们只启用以下5个经过严格筛选的插件全部开源、Star数2k、近3个月有更新Text Generatorv3.12.0核心Qwen Code调用插件支持自定义API端点指向http://localhost:11434/api/chat。Templaterv5.8.0用于生成标准化笔记模板如Lecture Note Template、Code Experiment Template。Dataviewv0.5.69将笔记中的YAML元数据如complexity: high、source: cs231n-lecture3实时聚合为表格/图表。QuickAddv3.10.0一键创建符合命名规范的笔记如输入lec-cs231n-l3自动生成CS231n_Lecture3_Backpropagation.md。Obsidian Gitv4.18.0每日自动提交保留完整历史。注意安装插件后必须重启Obsidian。某些插件如Text Generator的设置项藏得极深Settings Community plugins Text Generator Settings Model Provider Custom Ollama此处需手动填写http://localhost:11434Ollama默认端口并勾选Use custom model name填入qwen:code。漏掉这一步插件会静默失败毫无报错提示。第三步初始化知识库骨架Git友好型目录结构在库根目录下用终端创建以下结构纯文本无隐藏文件mkdir -p {lectures,concepts,experiments,resources} touch lectures/README.md concepts/README.md experiments/README.md resources/README.md每个README.md都用Templater插入统一头部--- created: {{date}} updated: {{date}} type: index --- # {{title}} 此为{{title}}分类索引页。所有子笔记均通过双向链接关联。然后在lectures/README.md中手动添加几条Karpathy经典课程链接- [[CS231n Lecture 3: Backpropagation]] - [[CS231n Lecture 5: CNNs]] - [[Stanford CS324: LLMs]]提示不要用插件自动生成这些链接手动输入[[后Obsidian会弹出智能补全确保链接名与实际文件名100%一致。我曾因插件自动生成CS231n_Lecture_3下划线而手动创建CS231n Lecture 3空格文件导致图谱断裂排查了3小时才发现是命名空格问题。知识库的健壮性始于最笨拙的手动校验。3.2 核心功能实现让Qwen Code在Obsidian里“活”起来3.2.1 创建可执行的“Karpathy Lecture Note”模板用Templater创建模板Templates/Lecture Note.tmpl--- created: {{date}} updated: {{date}} source: {{tp.user.source}} complexity: {{tp.user.complexity}} # low/medium/high tags: [lecture, {{tp.user.topic}}] --- # {{tp.user.title}} **核心洞见**{{tp.user.insight}} ## 原始材料 - 视频[{{tp.user.video_title}}]({{tp.user.video_url}}) - 讲义[PDF]({{tp.user.pdf_url}}) - 代码[GitHub]({{tp.user.code_url}}) ## 我的理解带执行验证 python # !run qwen:code # 此处粘贴Karpathy演示的核心代码片段或你重写的简化版 # 示例CS231n L3 的反向传播链式法则 import torch x torch.tensor(2.0, requires_gradTrue) y x ** 2 z y 3 z.backward() print(fx {x.item()}) print(fdz/dx {x.grad.item()}) # 应输出 4.0 关键疑问与验证如果将y x ** 2改为y torch.sin(x)dz/dx会变成什么# !run qwen:code import torch x torch.tensor(2.0, requires_gradTrue) y torch.sin(x) # 修改此处 z y 3 z.backward() print(fdz/dx {x.grad.item():.4f}) 关联概念[[Chain Rule]][[Computational Graph]][[PyTorch Autograd]]然后用QuickAdd设置快捷命令输入lec-cs231n-l3 → 自动创建CS231n_Lecture3_Backpropagation.md并预填充模板提示你输入source、complexity、title等变量。 实操心得模板里的# !run qwen:code不是注释而是Text Generator插件识别的执行指令。必须顶格书写且!run后紧跟模型名qwen:code中间不能有空格。我曾因写成# ! run qwen:code多了空格导致插件完全忽略该代码块浪费2小时查Bug。另外“我的理解”部分务必是你**亲手重写或大幅修改**的代码而非直接复制Karpathy的源码——只有亲手敲过、改过、运行过知识才真正属于你。 #### 3.2.2 构建动态“Concept Map”概念图谱 在concepts/README.md中用Dataview生成一张实时更新的概念关系表 dataview TABLE WITHOUT ID file.link AS 概念, length(rows) AS 关联笔记数, sort(rows.file.name) AS 关联项 FROM concepts FLATTEN file.outlinks AS outlink GROUP BY file.link SORT length(rows) DESC然后为每个核心概念如Backpropagation.md编写结构化YAML元数据--- created: 2024-05-12 updated: 2024-06-20 type: concept complexity: high prerequisites: [[Chain Rule]], [[Computational Graph]], [[PyTorch Autograd]] applications: [[Neural Network Training]], [[Gradient Clipping]] --- # Backpropagation **定义**一种利用链式法则高效计算损失函数对网络参数梯度的算法。 ## 直观理解Qwen Code可视化 python # !run qwen:code # 生成一个3层网络的计算图可视化ASCII art def visualize_backprop(): print(Forward Pass:) print( x ── W1 ── h1 ── W2 ── h2 ── W3 ── y) print(Backward Pass (Gradients):) print( dy/dy ← dy/dh2 ← dh2/dh1 ← dh1/dx) visualize_backprop()Dataview会自动扫描所有笔记的prerequisites和applications字段生成完整的依赖图。当你点击Backpropagation节点时Graph View会高亮显示所有前置概念红色和应用领域绿色形成一张真正的“认知导航图”。 注意Dataview的查询语法极其严格。file.outlinks只能获取**当前文件中显式写出的[[ ]]链接**不会递归解析嵌套链接。因此prerequisites字段必须手动维护不能依赖插件自动生成。这是刻意为之的设计——知识关系的建立必须由思考者主动确认而非算法被动推测。 #### 3.2.3 打造“Experiments”沙盒用Qwen Code做思想实验 在experiments/目录下创建experiment-template.md markdown --- created: {{date}} updated: {{date}} hypothesis: {{tp.user.hypothesis}} expected: {{tp.user.expected}} actual: status: pending # pending/verified/falsified --- # {{tp.user.title}} ## 实验设计 描述你打算验证的假设、控制变量、预期结果。 ## ️ 执行代码Qwen Code生成 运行 python # !run qwen:code # 此处由Qwen Code生成验证代码 # 示例验证“增加层数是否总能提升准确率” import torch import torch.nn as nn # 构建不同层数的MLP def create_mlp(layers): modules [] for i in range(layers): modules.append(nn.Linear(10, 10)) if i layers - 1: modules.append(nn.ReLU()) return nn.Sequential(*modules) # 测试不同层数的参数量 for l in [2, 4, 8]: model create_mlp(l) params sum(p.numel() for p in model.parameters()) print(fLayers: {l}, Params: {params:,}) 结果记录实际输出Layers: 2, Params: 210 Layers: 4, Params: 410 Layers: 8, Params: 810结论{{tp.user.conclusion}} 下一步[ ] 将Layers: 8模型在MNIST上训练记录准确率[ ] 对比ReLU与GELU激活函数的影响每次实验都强制要求填写hypothesis和expected并在actual栏粘贴Qwen Code的真实输出。status字段用Dataview自动统计 dataview TABLE status, file.link FROM experiments WHERE status ! pending SORT file.mday DESC实操心得实验笔记的status字段是知识库的“心跳监测器”。我设置了一个自动化提醒每周一上午9点Obsidian Git插件自动推送本周所有status: pending的实验笔记到我的手机。这逼着我必须在周末前完成至少一个实验的闭环——知识若不闭环终将熵增消散。Qwen Code在这里的角色不是“答案提供者”而是“实验助手”和“结果记录仪”它把模糊的“我觉得可能”转化成精确的“实测结果是”。3.3 高级技巧让知识库具备“自我进化”能力3.3.1 用Qwen Code自动生成笔记摘要与标签Obsidian原生不支持AI摘要但Text Generator插件可绑定到CtrlShiftP快捷键。我配置了一个自定义命令命令名Qwen: Summarize Current Note提示词Prompt你是一个专业的AI技术文档工程师。请为以下Obsidian笔记生成 1. 一段50字内的核心摘要中文 2. 3个最相关的技术标签英文逗号分隔小写无空格 3. 1个最关键的遗留问题以“Q: ”开头 笔记内容 {{selection}}选中笔记正文按快捷键Qwen Code瞬间返回核心摘要本文详解反向传播的链式法则实现通过PyTorch Autograd演示梯度计算过程并对比不同激活函数影响。 标签backpropagation,pytorch,autograd Q: 在RNN中BPTT随时间反向传播如何处理长序列的梯度消失问题然后用Templater的tp.user.clipboard功能一键将结果插入笔记顶部YAML区。提示这个技巧的价值在于强制反思。每次生成摘要你都会发现“我以为我懂了其实没抓住重点”。那个自动生成的Q:问题往往就是你认知盲区的精准定位器。我坚持每周用此功能扫描10篇旧笔记三个月后知识库的“问题密度”提升了3倍这才是真正的成长。3.3.2 构建跨笔记的“知识缺口”雷达Dataview本身无法发现“缺失的链接”但我们可以用Qwen CodeShell脚本实现。在库根目录创建scripts/find-gaps.sh#!/bin/bash # 扫描所有笔记找出被多次引用但尚未创建的笔记名 grep -r \[\[ . --include*.md | \ sed -n s/.*\[\[\([^]]*\)\]\].*/\1/p | \ sort | uniq -c | sort -nr | \ awk $1 2 {print $2} /tmp/referenced-missing.txt # 用Qwen Code分析这些“高频缺失名”判断是否应创建 while IFS read -r name; do if [ ! -f concepts/${name}.md ] [ ! -f lectures/${name}.md ]; then echo 高频缺失概念: ${name} # 调用Qwen Code生成概念定义草稿 echo 请用一句话定义${name}并列出其3个最相关的前置概念和2个应用领域。输出JSON格式。 | \ ollama run qwen:code 2/dev/null | \ jq -r .response 2/dev/null fi done /tmp/referenced-missing.txt每月运行一次它会输出类似{ definition: FlashAttention是一种优化Transformer注意力计算的算法通过IO感知的分块策略减少GPU显存访问次数。, prerequisites: [Attention Mechanism, Memory Bandwidth, CUDA Programming], applications: [Large Language Models, Real-time Inference] }然后我直接复制JSON内容用Templater创建concepts/FlashAttention.md。注意这个脚本不是为了“全自动补全”而是为了暴露认知断层。那些被引用超过3次却不存在的笔记名就是你知识网络里的“黑洞”。Qwen Code生成的定义只是起点真正的价值在于它迫使你停下来问“为什么我总想链接到‘FlashAttention’却从未真正研究过它”——这就是知识库从“信息仓库”升级为“认知教练”的临界点。4. 常见问题与实战排障那些官方文档绝不会告诉你的坑4.1 Qwen Code执行失败90%的问题出在“看不见的上下文”现象代码块明明写对了按CmdEnter却无响应或返回Error: timeout。根本原因Text Generator插件的“上下文窗口”默认为2048 tokens而Qwen Code的!run指令会将当前笔记全文包括所有YAML头、双向链接、长段落文字作为上下文传入。一篇500字的笔记加上10个[[ ]]链接和模板文字轻松突破2000 token。Ollama直接拒绝处理。解决方案在Text Generator设置中将Context window size调至4096Qwen Code 4B支持的最大值。更治本的方法在笔记中用HTML注释!-- CONTEXT CUT --标记有效上下文边界。插件会自动截断此标记之后的所有内容!-- CONTEXT CUT -- ## 原始材料 - 视频[CS231n L3]... !-- 此后所有内容不参与Qwen Code推理 --实操心得我在所有模板中都预置了!-- CONTEXT CUT --。它像一道闸门确保Qwen Code只“看见”它该看的代码和核心问题而不是整篇笔记的噪音。这不仅是性能优化更是思维训练——强迫你区分“执行上下文”和“背景信息”。4.2 Obsidian图谱“失联”双向链接失效的三大元凶现象[[Backpropagation]]在A笔记里能跳转但在B笔记里点击却显示“文件不存在”。排障流程按优先级排序检查文件名空格与大小写Obsidian的链接是严格区分大小写和空格的。Backpropagation.md≠backpropagation.md≠Backpropagation .md末尾空格。用终端ls -la确认真实文件名。检查文件位置Obsidian只索引当前库根目录及其子目录下的文件。如果你把Backpropagation.md放在~/Downloads/链接永远无效。必须移动到~/Documents/Karpathy-KB/concepts/Backpropagation.md。检查插件缓存Obsidian的链接索引是异步构建的。新建文件后需等待右下角出现Indexing...提示消失或手动CtrlP→Reindex files。提示创建新笔记的黄金法则——永远用QuickAdd或Templater绝不手动CmdN新建。前者保证路径、命名、模板100%合规后者是图谱断裂的头号杀手。我曾因手动创建Backprop.md缩写导致后续所有[[Backpropagation]]链接失效花了半天时间用sed批量替换。4.3 Qwen Code输出“幻觉”当模型一本正经地胡说八道现象!run返回的代码能执行但逻辑错误如把softmax写成sigmoid或数学推导明显违背常识如声称0.1 0.2 0.3。应对策略非技术而是认知纪律永远开启“验证开关”任何Qwen Code生成的代码必须包含可证伪的断言assert。例如# !run qwen:code import torch import torch.nn.functional as F logits torch.tensor([1.0, 2.0, 3.0]) probs F.softmax(logits, dim0) assert abs(probs.sum().item() - 1.0) 1e-6, fSoftmax sum error: {probs.sum().item()} print(✅ Softmax validation passed)如果断言失败Qwen Code的输出立即被标记为不可信你必须手动修正。建立“人工审核清单”对Qwen Code输出我强制执行三问物理意义是否合理如梯度值是否在合理数量级与已知事实是否矛盾如torch.mean()的维度参数是否与文档一致能否用最简例子证伪如把输入tensor改成[0.0]看输出是否退化为[1.0]实操心得Qwen Code不是神谕而是学徒。它的价值不在于“答对”而在于“快速给出一个可被证伪的假设”。我所有的知识进步都始于对它输出的一句质疑“等等这不对——因为……”。这才是Karpathy精神的真髓在代码的确定性中锤炼思维的批判性。4.4 性能瓶颈Obsidian变慢、卡顿、CPU狂飙现象打开知识库后风扇狂转打字延迟Graph View加载缓慢。根因分析与对策症状最可能原因解决方案全局卡顿Dataview查询过于复杂如FROM 扫描全库将FROM 改为FROM lectures等具体路径用LIMIT 50限制结果数单笔记卡顿笔记内嵌入过多!run代码块5个删除历史执行结果保留代码块即可用details折叠旧结果Ollama CPU飙升多个Obsidian窗口同时触发!run在Ollama设置中启用--num-ctx 2048限制上下文或在Text Generator中设置Max concurrent requests: 1Git同步慢.obsidian/plugins/目录被Git追踪在.gitignore中添加**/.obsidian/plugins/**和**/.obsidian/themes/**注意Obsidian的性能优化本质是认知负荷管理。每一个自动化的插件、每一次复杂的Dataview查询都在消耗你的注意力带宽。我现在的原则是“能手动点三次完成的事绝不写脚本能用一个插件解决的绝不叠加两个”。知识库的终极目标是让思考更轻盈而非让工具更炫酷。5. 经验沉淀三年迭代后我删掉了哪些“看似很酷”的功能5.1 被砍掉的“AI自动链接”关系必须由人来定义早期我尝试用Qwen Code分析笔记内容自动生成[[ ]]链接。脚本能识别出“这篇讲反向传播应该链接到链式法则”并自动插入。但三个月后我手动删除了所有AI生成的链接。原因很简单机器识别的“相关性”不等于人脑构建的“理解性”。AI可能因为“反向传播”和“链式法则”在文本中高频共现而链接但你真正需要链接的可能是“反向传播”与“计算图可视化”——后者在文本中可能只出现一次却是你认知跃迁的关键节点。现在每一个[[ ]]都是我思考后亲手敲下的它代表一个主动建立的认知锚点而非算法喂给我的信息茧房。5.2 被弃用的“全自动摘要”摘要必须服务于问题而非填充空白我曾配置Qwen Code在每次保存笔记时自动生成摘要并插入YAML。结果呢摘要越来越像新闻通稿“本文讨论了XXX的重要性和应用”。它没有回答任何一个具体问题