学习心得
Eliza: 基于模式匹配 和 文本替换
- 缺乏语义理解
- 无上下文记忆
- 规则的扩展性问题
单一整体智能模型试图使用统一的表示和推理机制来解决所有问题,这是行不通的。现实世界是动态且复杂的,没有什么是永恒不变的。
涌现(Emergence)是理解心智社会理论的关键:当基层智能足够庞大,就会发生质的变化,量变引起质变。
利用海量互联网语料训练一个通用大数据模型,使用 自监督学习 方式进行 预训练,之后只需要使用 特定领域内的数据对模型进行微调,就可以得到特定领域的模型。
习题解答
1. 物理符号系统假说
- 充分性论断:任何物理符号系统都具有产生通用智能行为的充分手段。也就是说,只要系统能表示、组合并操作符号,原则上就能实现通用智能。
- 必要性论断:任何能够表现出通用智能行为的系统,本质上都必然是物理符号系统。即符号操作不仅足够,而且是智能不可缺少的基础。
对"充分性"的实践挑战主要包括:
- 知识获取瓶颈:规则和知识需要专家与知识工程师手工提取、编码,成本高且难以规模化。
- 常识问题 :现实中的大量背景常识难以穷举为
IF-THEN规则。 - 框架问题:环境变化时,系统难以判断哪些知识仍然有效、哪些状态需要更新。
- 脆弱性:遇到规则未覆盖的异常情形、模糊表达或开放环境时,系统容易失效。
- 封闭环境依赖:如 SHRDLU 在"积木世界"中表现突出,但这种成功难以直接迁移到开放、动态的真实世界。
这些现象未必从逻辑上彻底证伪"符号系统能否产生智能",但显著挑战了其强版本的工程可行性:仅靠人工构建符号与规则,难以获得稳健、可扩展的通用智能。
关于大语言模型驱动的智能体:应作宽、窄两种理解。
- 按狭义的经典符号主义理解,LLM 的核心不是显式规则库和符号推理机,而是通过神经网络参数学习到的分布式表示,因此并不等同于传统物理符号系统。
- 按宽泛理解,LLM 智能体仍处理离散 token、调用工具、读写代码和执行计划,也可参与符号推理;现代 Agent 因而更接近"神经---符号结合"的系统。
所以,LLM Agent 并非对物理符号系统假说的简单确认;它更说明智能可能同时依赖学习得到的表征、统计泛化、符号操作与环境交互。
2.专家系统MYCIN
- MYCIN 输的不是准确率,而是集成、责任与信任;今天的医疗/法律 Agent 依然卡在这三项。技术里程碑和产品落地之间,隔着的是制度与工作流,而不是算法。
- 加入上下文记忆防止遗忘,使用 RAG 动态学习新知识回答更准确。还可以加入不同的LLM安全Agent进行对抗审查,把结论审核权交给人类(Human in the loop)。建立更透明的推理观测流程,让Agent 的回答能被看见与溯源。
- 专家系统适合在结果必须可复现、可审计、可申诉,错误不可逆且必须归责,知识本身已经是成文文本的场景下使用,比如工业控制、合规基线检查、军事领域的导弹防御拦截解算等。
3. Eliza

- 使用内存缓存映射 + Json 文件实现简单的记忆系统,记忆用户的个人信息。
差异对比
| Eliza | ChatGPT | |
|---|---|---|
| 知识基座 | 大量规则 | 海量互联网语料,千亿级向量数据 |
| 上下文记忆 | 缺乏长程记忆,只能记忆关键信息 | 对话记忆、记忆压缩 |
| 泛用性 | 弱 | 强 |
4.心智社会
- 失去 Garsp 智能体就无法完成取目标物体的操作。去中心化的优势就是高耦合,可以作为基础智能体进行迁移使用。劣势就是如果脱离系统就无法发挥任何作用。
- 智能涌现是相通的,通过很多基层智能体的协作,得到更强大的智能联盟,就像人的大脑一样,从单个神经元来看是不成文章的,神经元经过突触的链接就像有了生命一样,智能是无意识的。涌现形容的很恰当,在现代依然适用,单智能体只能解决一部分问题,比如当前的多模态模型,原本的文字大模型一旦加上了视觉感知,智能程度得到了极大的提高。明斯基的心智社会与现代的智能体不同的地方在于,单智能体的智能程度、智能体驱动方式等。
5. 强化学习与监督学习
AlphaGo 的"试错学习"
AlphaGo 先利用人类棋谱进行监督学习,获得初始的落子策略;随后通过大量自我对弈进行强化学习。
每一局棋可看作一次完整试验:
- 状态:当前棋盘局面;
- 动作:选择一个落子位置;
- 奖励:最终胜负,例如获胜为正奖励、失败为负奖励;
- 更新:提高导致胜利的策略被选择的概率,降低导致失败的策略概率。
它不需要每一步都有"标准答案",而是根据长期结果------最终是否赢棋------反过来调整前面一连串决策。这正是强化学习的试错机制。
为什么强化学习适合序贯决策
序贯决策中,一个动作会改变后续状态,并影响未来可选动作和最终结果。强化学习直接优化长期累计回报,可形式化为:

其中,r是每一步奖励,γ 表示对未来奖励的折扣。
与监督学习的核心区别是:
- 监督学习需要大量"输入---正确标签"样本,例如"局面 A 应该走 B"。
- 强化学习只需通过与环境交互获得状态、动作和奖励;奖励可以延迟到任务结束才出现。
超级马里奥例子
若采用监督学习,需要收集大量高质量示范数据,例如:
{游戏画面/状态,玩家按键动作}
这本质上是模仿玩家。它的上限常受示范质量限制,且当智能体进入训练数据中没有出现过的局面时,容易产生误差累积。
若采用强化学习,需要游戏环境能够提供:
- 观察:画面、位置、速度、剩余生命等;
- 动作:左、右、跳跃、加速等;
- 奖励:前进距离、通关、获得金币、死亡惩罚等。
通常强化学习更适合该任务,因为马里奥是典型的长期序贯决策问题:当前是否跳跃、何时加速,会影响之后是否避开障碍、能否到达终点。监督学习可用于提供初始化策略或演示数据,强化学习再通过交互优化。
强化学习在大语言模型训练中的作用
什么是预训练:预训练是"先用海量无标注数据学通用能力,再迁移到具体任务"的范式。它的本质是把数据规模转化为可复用的先验知识,而现代 AI 的进展很大程度上就是这一范式的规模化结果。
预训练主要让模型学习语言规律、世界知识与基础能力;强化学习通常不负责从零"灌输知识",而主要用于对齐。
典型做法是 RLHF:由人类比较多个回答的质量,训练奖励模型,再用强化学习优化模型,使它更倾向于生成有帮助、符合指令、较安全且表达更合适的回答。换言之:
- 预训练回答"模型知道什么、会怎样生成语言";
- 强化学习更侧重回答"模型应优先生成什么样的回答"。
6.预训练-微调范式
符号主义试图手动编码的常识,为每一个任务都要手工标注数据集,并且难以迁移到其他模型的训练上,适配性较低。预训练通过自监督学习得到一个包含互联网级别数据的具有通用知识的基座模型作为其他模型的训练基座,大大提高了模型训练效率和泛化性。但是预训练大模型中的数据由于是来自于互联网,存在数据质量低、有毒数据、不合规数据、数据量庞大等问题,需要做严格的数据清洗,并且在训练的时候需要极高的数据存储成本。目前"预训练-微调"范式还是非常好用的办法,成本低。"预训练--微调"作为具体的技术流水线会被大幅改写,但它作为经济学结构会长期存在。 因为通用能力的获取极贵,任务适配极便宜,所以把二者分层是理性选择。只要这个不对称还在,分层就会以某种形式保留。
7.代码审核智能体设计
- 符号主义需要定义好处理逻辑,比如代码规范、命名规范、代码行数、代码注释量、函数依赖程度,根据具体的代码评审逻辑进行代码质量评审。规则数量庞大,维护难度大,可以把"可形式化的质量检查"做到 70 分,但"逻辑概括 + BUG 发现"接近 0 分,且永远停在 70 分------因为改进的唯一路径是继续手工加规则。
- 没有大语言模型的深度学习时代,每个子任务训练一个专用模型,但数据集是瓶颈,不同语言的模型无法复用,这些模型是孤立的窄任务组件,无法组合成"一个会评审的助手"------不会调工具、不会跨文件推理、不会与作者交互、也不会解释自己为什么这么判断。质量检查要靠人再拼装,端到端仍然不可行。
- 智能体时代就是基于通用大模型底座,使用质量优秀代码领域的大模型做评审。
按照Agent = Model + Harness 来做设计: 优秀的提示词是基础,能力强的大模型打底,接上 工具(MCP + Skill),上下文记忆系统,沙箱环境,可观测链路。
1)接入与触发层 GitHub/GitLab Webhook、CI 集成;拉取 PR 的 diff、commit 历史、Issue
描述、仓库配置。触发策略:只在变更行附近分析(控制成本),大 PR 走分层处理。
2)上下文构建层(感知) Diff 解析:定位变更
hunk 与影响面; 代码库检索(RAG):向量检索 + 符号检索(LSP、调用图、定义/引用)找到相关函数、类型、测试、历史相似 PR;
规范注入:团队编码规范、历史评审意见、项目约定(把它变成可检索的长期记忆,而不是硬编码规则)。
3)规划层(Planner) 任务分解:把
PR 拆成"逐文件 → 逐维度(正确性/可读性/性能/安全/测试)",决定每个子问题是否需要调用工具、调用哪个。可选
Plan-and-Execute 或 ReAct 式交错推理。
4)记忆层 短期:当前 PR 的上下文窗口状态;
长期:代码库知识图谱、团队规范、历史评审结论、作者的历史问题模式(用于个性化建议)。
5)工具层(这是相比前两个时代最本质的突破) 静态分析
/ SAST / lint / 类型检查器:提供 grounded 证据,把 LLM 的"猜"变成"查"; 测试执行 +
沙箱:必要时代码上跑单测、跑 fuzz,验证可疑点; 符号/图工具:调用图、数据流,回答"这个改动影响谁"; MCP / Skill
封装:统一工具契约,便于替换与扩展。
6)推理核心 通用大模型打底 +
代码领域数据继续预训练/指令微调;检索到的上下文与工具返回结果共同进入推理。
7)反思与验证层(最容易被忽略、但决定可信度)
多智能体交叉审查:一个"找问题",一个"反驳/证伪",减少幻觉;
置信度门控:每条意见附证据来源(工具输出/代码行号),无证据的低置信度发现直接丢弃; 误报过滤:宁可少报,不可乱报------误报会摧毁开发者信任。
8)输出与人审回路 结构化评审意见(问题 + 证据 + 建议 + 优先级)、PR
摘要(实现逻辑概括)、可点击到行的评论;必须保留开发者采纳/驳回的反馈闭环,反馈回流到长期记忆。
9)可观测与评估层 全链路
trace(Prompt/工具调用/耗时/成本);指标:评审接受率、误报率、漏报率、覆盖的 BUG 类型、每 PR
成本与延迟。没有这层,系统无法迭代上分。
- 前两个时代失败的原因是一样的------任务本身要求同时具备程序语义理解、自然语言规范理解、自然语言生成、以及多步骤工具编排,而它们各自只能覆盖其中一小块。LLM 第一次把这四件事统一到同一个表示空间,智能体架构则负责把它们组织成可执行、可验证、可观测的流程。所以这不是"某个模型变强了",而是能力结构从"拼不起来的碎片"变成了"可编排的整体"。