
这周想聊的话题很“老”但放在 2025 年看又格外应景一份 1965 年的 PDF 文献Hubert Dreyfus 写下的《Alchemy and AI》。你可能会想一篇六十年前的论文跟现在的大模型、Agent、AI 编程工具能有什么关系实际上当时这篇文章提出的质疑几乎预言了今天 AI 工程里最让人头疼的几个问题模型幻觉、常识缺失、调参像炼丹、演示很酷但一上生产就崩。如果你关心的是“怎么把模型部署起来”“显存够不够”“API 怎么接”这篇文章不会直接给可执行的部署脚本。我把它当一份“AI 能力评估的历史样本”来拆先讲 Dreyfus 为什么用“炼金术”形容 AI再对照今天的大模型和 Agent 工程实践最后给一套用 Python 处理这份 PDF、把历史文献接入本地检索的最小示例。整个过程不依赖云服务纯本地跑。1. 核心信息速览项目内容文献标题Alchemy and AI流传版本中也有 Alchemy and Artificial Intelligence 的写法作者Hubert L. Dreyfus年份1965文档类型PDF学术论文或机构技术报告形式主题对早期人工智能“符号处理”出发点的系统性质疑核心关键词AI、符号主义、炼金术、常识推理、具身智能、AI 评估与现代 AI 的关联大模型幻觉、AI Agent 规划、AI 工程实践、模型评测是否包含可部署代码原文献不涉及本文会补充 PDF 文本提取和本地检索示例适合读者AI 工程师、算法工程师、大模型应用开发者、技术决策者这篇文献没有安装包没有 API也不需要 GPU。它的价值在于提供了一个很稳定的“反方向坐标”当所有人都在往前赶进度的时候它提醒你去问一句我们到底在做什么哪些能力是真的哪些能力是演示出来的。2. 为什么今天要读1965年的AI批评先明确一下背景。1965 年的 AI 研究还处在一个非常乐观的上升期。那时候的主流思路是符号主义研究者普遍认为只要把人类的知识和推理过程写成规则再让计算机按规则执行就能造出“会思考的机器”。机器翻译、下棋、定理证明是当时最有代表性的几个方向。Dreyfus 不是从 AI 内部提出改进方案而是从更根本的层面质疑整个研究框架。他借用了“炼金术”这个词炼金术有清晰的目标有完整的操作流程也确实炼出过一些有用的副产品但它的底层世界观是错的。Dreyfus 认为当时的 AI 研究在结构上很像炼金术——方法精致目标宏大但对“智能是什么”这个核心问题理解偏了。放到今天的工程语境里看这个批评不算过时。现在很多大模型应用仍然处于“实验室效果好、线上效果崩”的状态。模型在精心构造的评测集上表现很好一旦遇到真实业务里的长尾输入就开始一本正经地胡说八道。Dreyfus 的批判提供了一种思考路径与其不断把测试样例做得更像演示不如停下来想一想系统里到底缺了什么底层能力。3. Dreyfus在批判什么符号主义与“可形式化智能”3.1 物理符号系统假设早期 AI 的一块基石是“物理符号系统假设”。这个假设认为智能行为可以被视为对符号的操作只要符号足够多、规则足够完备计算机就能模拟人的思维。Dreyfus 对这一类假设保持高度怀疑。在他看来人类的大量智能活动并不以“显式规则”的形式存在。你会说母语但你很难把语法规则完整讲出来你会骑自行车但你无法用几句话解释清楚肌肉协调的细节你一眼能认出朋友的脸但这个识别过程很难拆解成一条条逻辑判断。这些能力在哲学里叫 know-how可以翻译成“技能性知识”它和“事实性知识”know-that 是两类东西。3.2 玩具任务与真实世界Dreyfus 批评的另一个点是早期 AI 的研究对象大多是被简化过的“玩具任务”。比如在一个封闭棋盘上下棋在限定词汇表里做翻译在人工标注的数理逻辑题里找证明。这些任务规则清晰、边界明确所以计算机很容易表现得很聪明。但真实世界不是这样的。真实世界充满歧义、隐喻、省略和上下文依赖。一个句子单独看可能有好几种含义只有在具体场景里才能确定。Dreyfus 认为符号系统处理不了这种“背景知识”和“情境理解”问题所以 AI 只能停留在实验室里无法进入真实世界。3.3 智能的“身体性”与“情境性”这一点是 Dreyfus 思想里最有争议也最有穿透力的部分。他认为人类的智能不是悬浮在真空里的逻辑运算而是和一个有身体、有感知、有情绪、有历史经验的整体绑定在一起。我们理解世界不是先收集所有事实再逐一推理而是直接在一个情境里“看到”某件事的可能性。举例来说一个熟练的医生看 X 光片不是先在脑子里跑一遍教科书规则而是直接“看出”病灶一个围棋高手落子也不是穷举所有可能而是靠大量对局积累出的局面直觉。Dreyfus 强调这种直觉不是非理性而是一种高度压缩、无法完全规则化的判断能力。4. 当时与后来的争议Dreyfus 的这篇文章在当时引起了不小反弹尤其是 MIT 等符号主义重镇的研究者。反对意见主要有两类一类认为“你只是个哲学家不懂具体技术细节”另一类认为“短期存在问题不代表长期方向错误AI 需要时间”。从后来的历史看这两边都有对的部分。Dreyfus 确实预判到了机器翻译等方向会撞墙1966 年美国自动语言处理咨询委员会ALPAC的报告基本否定了早期机器翻译项目的盲目投入。但另一方面他也没预料到深度学习后来能用统计拟合的方式把很多过去被认为“无法形式化”的任务做得相当好。今天的图像识别、语音识别、机器翻译都远远超出了 1965 年最乐观的预期。所以更合理的态度不是把 Dreyfus 当成“预言家”也不是把他当成“失败者”而是把他当成一个反复提醒问题的评估者。他的贡献不在于否定 AI而在于给 AI 研究增加了一个评测维度你到底是在真正解决问题还是在解决一个自己设计出来的简化版本问题。5. 对照现代AI大模型、Agent与“炼金术”的影子5.1 大模型幻觉常识被“统计”取代大语言模型的幻觉问题就是 Dreyfus 式批判在现代最典型的映射。模型可以流畅地生成一段代码、一篇论文、一份合同但它并不真的拥有与真实世界互动的经验。它只是在海量文本中学到了“下一个词”的统计规律。这导致一个结果模型在熟悉的模式上表现接近人类一遇到训练数据里少见或矛盾的情况就可能生成非常自信但完全错误的结论。这种“自信的错误”非常像 Dreyfus 说的一个人掌握了大量规则却缺少对规则适用边界的判断。你会发现模型知道很多事实但不知道自己在什么时候不应该回答。5.2 Agent任务规划能力与真实反馈现在的大模型 Agent 试图用工具调用、代码执行、浏览器操作等方式把模型的“知识”和真实世界连接起来。这个方向其实已经在回应 Dreyfus 的问题仅靠模型内部的参数记忆不够必须引入外部反馈。但工程实践中仍然困难重重。Agent 可以拆解任务、调用 API、读取文件但一旦中间步骤出现模糊反馈或者工具返回结果和预期不一致很多 Agent 就会陷入死循环。这是“推理能力”和“环境交互能力”之间的差距和 Dreyfus 当年批评“玩具任务与真实任务”的逻辑非常相似。5.3 AI编程、AI绘画、AI视频工具化之后今天的 AI 编程工具已经能自动生成大量代码AI 绘画和 AI 视频生成也能做出很惊艳的片段。但稍微复杂一点的业务改造依然需要人来理解上下文、确认需求、修复边界情况。AI 绘画经常在整体构图合理的情况下出现局部失真AI 视频生成也容易出现前后帧不一致。这些现象提醒我们模型擅长的是“看起来合理”而不是“真正理解”。Dreyfus 说的技能性知识和情境理解依然是 AI 系统最难跨越的部分。我们可以靠更多数据、更大模型去压缩更多模式但真实世界的反馈、身体性经验和对语义边界的判断不能单靠文本拟合来解决。6. 技术演示把这份PDF接入本地文本处理与检索这一段是针对开发者的实操部分。假设你已经通过合法渠道拿到了一份《Alchemy and AI》的 PDF想把它读进去或者做成一个可检索的知识库条目下面是一套最简流程。6.1 安装依赖建议先新建一个独立 Python 环境避免污染全局环境python -m venv venv source venv/bin/activate # Windows 下为 venv\Scripts\activate然后安装 PDF 解析和检索相关依赖pip install pymupdf pdfplumber rank-bm25pymupdf的速度较快适合批量提取文本pdfplumber对版面还原更友好rank-bm25提供一个不需要 GPU 的本地检索方案。6.2 提取PDF全文把 PDF 文件放在当前目录下命名为dreyfus_1965_alchemy_ai.pdf然后执行下面代码import fitz # PyMuPDF pdf_path dreyfus_1965_alchemy_ai.pdf doc fitz.open(pdf_path) full_text [] for page_num in range(len(doc)): page doc[page_num] text page.get_text() full_text.append(text) print(f--- Page {page_num 1} ---) print(text) doc.close()如果提取出来的 text 为空说明这份 PDF 可能是扫描图片版本没有文字层需要先做 OCR。6.3 关键词统计与段落定位提取完文本后可以用正则统计关键词快速定位“alchemy”“intuition”“rule”“embodied”等核心词出现的位置import re from collections import Counter text_all \n.join(full_text) # 统计高频词 words re.findall(r\b[A-Za-z]\b, text_all.lower()) word_counts Counter(words) print(Top 20 words:, word_counts.most_common(20)) # 定位包含 alchemy 的段落 paragraphs [p.strip() for p in text_all.split(\n\n) if p.strip()] alchemy_paras [p for p in paragraphs if alchemy in p.lower()] for para in alchemy_paras[:5]: print(----) print(para)这一步很适合做文献速读。你不用从头到尾读完先看关键词和组织结构就能判断这篇文章的核心论点和论证节奏。6.4 建立最小检索服务如果想把这个 PDF 的内容加入本地知识库可以用 rank-bm25 做最朴素的检索不依赖外部 API也不涉及任何网络请求from rank_bm25 import BM25Okapi # paragraphs 可以由上一节文本切分得到 tokenized_corpus [p.split() for p in paragraphs] bm25 BM25Okapi(tokenized_corpus) query artificial intelligence and alchemy scores bm25.get_scores(query.split()) top_indices sorted(range(len(scores)), keylambda i: scores[i], reverseTrue)[:5] print(query:, query) for idx in top_indices: print(score:, round(scores[idx], 3)) print(paragraphs[idx]) print(-----)BM25 的优点是快、可解释性强、不依赖模型。缺点是没有语义理解同义词和近义词匹配效果差。如果后续需要更强的语义检索可以在本地换成sentence-transformers加向量库但那是另一个更大的工程。6.5 合规注意事项这段技术操作有几个边界要提醒只处理你合法获得的 PDF 文件。不要随意二次分发受版权保护的历史文献。如果只是个人学习可以提取文本做分析如果要批量发布、商用请先确认版权状态。涉及模型生成内容时同样要遵守授权边界避免把来源不明的历史材料直接灌给线上服务。7. 从文献讨论提炼的AI工程实践清单读完这篇文献再对照今天的大模型开发可以提炼出下面几条工程原则评测集不能只看“答对率”要专门构建边界样例和反事实样例观察模型在模糊输入上的表现。凡是模型要做“知识输出”的地方必须考虑幻觉风险。高风险场景要加检索验证或人工审核。Agent 项目要设计“反馈失败”的机制。模型调用工具失败后不应该无限重试而应该主动请求人工介入。不要把“演示成功”等同于“能力可靠”。演示只能选最有利路径工程要覆盖所有可能的正常路径和异常路径。可复现优先于调参技巧。记录每个 prompt、每个模型版本、每个数据切片否则就是在炼丹。大模型的“知道”和人的“知道”不是一回事。工程上要区分“模型记忆”和“业务知识”后者应该尽量落在数据和系统流程里。这些原则并不是 Dreyfus 当年的原话但它们和 Dreyfus 的核心提醒一脉相承不要因为局部成果而忽略整体假设的脆弱性。8. 常见问题与排查方法问题现象可能原因排查方式解决方案提取 PDF 后文本为空扫描版 PDF没有文字层检查page.get_text()返回是否为空换 OCR 流程例如 PaddleOCR 或 Tesseract提取文本存在乱码PDF 字体编码异常抽样打印前 50 个字符更换 pdfplumber 重新提取或用 pdfminer 调整参数关键词搜索不到单词分页被拆分或大小写不一致统一转小写后搜索先合并所有文本再做正则或全文检索BM25 检索结果不理想分块过粗或过细检查段落切分逻辑按章节或固定长度分块增加人工清洗pip 安装失败Python 版本或依赖冲突查看 pip 报错信息使用虚拟环境固定 Python 3.9 以上版本检索系统回复内容不准确检索片段与问题不匹配查看检索返回的片段调整检索算法或增加 rerank 步骤9. 从“炼金术”到“炼丹术”的提醒现代 AI 圈喜欢用“炼丹”来形容训练模型这个说法和 Dreyfus 用的“炼金术”非常接近。当年炼金术的问题是目标清晰但方法论不牢靠现在训练大模型大多数团队同样依赖试错、经验和少量公开的配方而不是一套完整的理论体系。这并不完全是坏事。深度学习本身就是一门实验科学很多工程进步来自大量实验的积累。但问题在于如果团队完全依赖“调参手感”缺少可解释的评估、可复现的实验流程和对模型失败边界的理解项目风险会指数级上升。Dreyfus 的文章给我们的提醒是当你发现一个方法在某个领域“总是差一点”的时候可能不是参数不够好而是框架本身有未解决的假设。对于今天的 AI 团队比较务实的做法是定期把“模型为什么失败”作为一个正式议题而不是每次失败都归结为“数据不够多”“prompt 不够好”。如果失败模式非常集中而且都指向某一种底层能力缺失那就要考虑调整技术路线而不是继续叠模型层数。10. 总结与下一步这篇 1965 年的《Alchemy and AI》不会教你配置 GPU也不会告诉你怎么调 API。它最有价值的地方是让你在技术冲刺的过程中偶尔停下来重新思考 AI 项目里哪些能力是真实解决了的哪些能力只是被演示掩盖了。如果你想按上面的代码把这本 PDF 接进本地知识库建议从第 6.2 节开始跑先确认文本提取成功再做关键词定位和 BM25 检索。最容易踩的坑有两个扫描版 PDF 没文字层还有分块切得太碎导致检索结果碎片化。先把这两步跑顺其他功能都好加。再往后可以把这套检索流程扩展成公司内部的知识库服务加向量检索、加 rerank、加权限控制最后接到 Agent 工具链里。不过那一步就要换一个话题了。