非参数学习:让 AI Agent 通过经验成长
一种不改模型权重、通过记忆和技能文件积累知识的 Agent 学习范式
一、什么是非参数学习?
1.1 核心定义
非参数学习(Non-Parametric Learning) 是一种 AI Agent 的学习范式:Agent 不通过修改模型参数(weights)来学习,而是通过在外部文件系统中积累经验、提炼规则、构建知识库来提升能力。
用人类的类比:
- 参数学习 = 改变大脑的神经连接(fine-tuning、RLHF)
- 非参数学习 = 写笔记、建手册、总结经验教训(记忆文件、技能文件)
1.2 为什么叫"非参数"?
在统计学中,"非参数方法"指不预设数据分布形式,让数据自己说话(如 KNN、核密度估计)。类似地,非参数学习的 Agent:
- 不预设知识结构 — 知识随经验自然生长
- 不固定容量 — 文件可以无限扩展,不受模型上下文窗口限制
- 不需要训练 — 没有梯度下降、没有 epoch、没有 loss function
1.3 与传统方法的对比
| 维度 | 参数学习(Fine-tuning) | 非参数学习(File-based) |
|---|---|---|
| 知识存储 | 模型权重(黑箱) | 文件系统(明文) |
| 学习方式 | 梯度下降 | 记录 → 复盘 → 提炼 |
| 可解释性 | 低(为什么模型这么认为?) | 高(打开文件就能看) |
| 可编辑性 | 需要重新训练 | 直接改文件 |
| 可迁移性 | 绑定特定模型 | 换模型直接带走 |
| 成本 | 高(GPU、数据标注) | 低(只是读写文件) |
| 实时性 | 需要周期性重训 | 即时生效 |
| 遗忘风险 | 灾难性遗忘 | 文件不会遗忘 |
二、理论基础
2.1 知识的三层结构
非参数学习将 Agent 的知识分为三层:
┌─────────────────────────────────┐
│ Layer 3: 技能文件 (SKILL.md) │ ← 结晶化的专家知识
│ "做这类事情的标准流程" │ 可复用、可分享
├─────────────────────────────────┤
│ Layer 2: 长期记忆 (MEMORY.md) │ ← 提炼后的经验
│ "我学到了什么" │ 跨项目通用
├─────────────────────────────────┤
│ Layer 1: 日志 (memory/*.md) │ ← 原始经验记录
│ "今天发生了什么" │ 详细但冗余
└─────────────────────────────────┘
信息流向:原始经验 → 定期复盘 → 提炼为长期记忆 → 结晶为可复用技能
这模仿了人类的学习过程:
1. 经历(日记)→ 2. 反思(总结经验教训)→ 3. 内化(形成直觉/方法论)
2.2 学习循环
非参数学习的核心是一个反馈循环:
┌──────────┐
│ 行动 │ ← 基于当前知识做决策
└────┬─────┘
▼
┌──────────┐
│ 记录 │ ← 记录决策过程和结果
└────┬─────┘
▼
┌──────────┐
│ 复盘 │ ← 对比预期 vs 实际
└────┬─────┘
▼
┌──────────┐
│ 提炼 │ ← 更新规则/策略文件
└────┬─────┘
▼
┌──────────┐
│ 应用 │ ← 下次行动时参考新规则
└──────────┘
│
└──→ 回到"行动",循环往复
2.3 关键原则
原则一:外部化一切
> 不要"记住",要"写下来"。Agent 的上下文窗口是短期记忆,文件系统是长期记忆。
原则二:结构化存储
> 原始数据 ≠ 知识。需要有意识地组织和提炼。就像学生不是把教科书全抄一遍就学会了。
原则三:可回溯性
> 每个决策都应该可以追溯到其依据。"我为什么这么判断?" → 打开文件就能看到。
原则四:渐进式结晶
> 知识从模糊到清晰,从零散到系统。不要一开始就试图写完美的规则,让规则从经验中自然涌现。
原则五:人机协同
> 人类可以随时审查、修改、补充 Agent 的知识文件。这是参数学习做不到的。
三、实现架构
3.1 文件系统作为知识库
workspace/
├── MEMORY.md # 长期记忆(跨项目通用经验)
├── memory/
│ ├── 2026-02-17.md # 每日日志
│ ├── 2026-02-18.md
│ └── domain/ # 领域特定记忆
│ ├── case-001.md # 个案记录
│ └── case-002.md
├── skills/
│ └── trading/
│ └── SKILL.md # 结晶化的交易技能
├── data/
│ └── snapshots/ # 原始数据快照
└── reports/ # 分析报告
3.2 知识检索机制
Agent 在做决策时,按优先级检索知识:
1. 精确匹配 — memory_search("wolves vs arsenal") → 找到历史分析
2. 语义搜索 — memory_search("EPL injury impact") → 相关经验
3. 技能文件 — 读取 SKILL.md 获取标准流程
4. 外部搜索 — web_search 获取最新信息
3.3 自动化支撑
非参数学习不是纯手动的。自动化脚本负责:
- 数据采集 — 定时抓取、快照保存
- 变动检测 — 对比前后差异,生成告警
- 结果记录 — 自动记录预测 vs 实际
- 统计分析 — 生成校准曲线、命中率等指标
人类和 Agent 负责的是解读和提炼,而不是数据搬运。
四、实战案例
4.1 体育预测交易系统
场景:在 Polymarket 上进行 NBA 和英超的体育赛事预测交易。
传统做法:训练一个预测模型(需要大量历史数据、GPU 算力、持续重训)。
非参数学习做法:
第一阶段:积累(前 20 笔交易)
# memory/epl/wolves-vs-arsenal-20260218.md
## 赛前分析
- Arsenal 缺 Odegaard (核心中场)、Havertz (前锋)
- 市场定价: Arsenal 胜 76.5%
- 我的估计: 70-73%(基于伤病影响下调)
- Baseline 模型: 65.9%
- 决策: 买 Arsenal -1.5 NO @ 47.5%
## 赛后复盘
- 实际结果: [待填]
- 盈亏: [待填]
- 反思: [待填]
第二阶段:提炼(20-50 笔后)
# MEMORY.md 新增条目
## 经验教训
- 核心球员缺阵时,市场往往反应不足(2-3% 偏差)
- 亚洲让分盘 NO 的 edge 通常在 underdog 一侧
- 赛前 2-4 小时的赔率变动信号最强
第三阶段:结晶(50+ 笔后)
# skills/sports-trading/SKILL.md
## 标准分析流程
1. 获取 baseline 概率(Elo + 主客场 + 伤病)
2. 对比市场价格,计算 edge
3. 仅在 edge ≥ 5% 时考虑下注
4. 核心球员缺阵调整: -3% 到 -6%
5. 背靠背/密集赛程: -2%
## 已验证的 Edge 来源
- 伤病信息延迟(市场 1-2 小时才消化)
- 热门球队溢价(平均 2-3%)
- ...
4.2 编程 Agent
场景:帮助用户写代码、修 bug。
学习循环:
遇到 bug → 记录错误模式和解决方案 → 积累"踩坑手册"
→ 下次遇到类似问题,先搜索手册
→ 多次验证后,写入 SKILL.md
知识文件示例:
# memory/debug-patterns.md
## Python 编码问题
- 症状: UnicodeDecodeError on file read
- 原因: 文件不是 UTF-8
- 解决: open(f, encoding='utf-8', errors='replace')
- 学到次数: 5 次
- 置信度: 高
## Docker 网络问题
- 症状: container 之间无法通信
- 原因: 没在同一个 network
- 解决: docker network create + --network 参数
- 学到次数: 3 次
4.3 客服/销售 Agent
场景:处理客户咨询和投诉。
学习循环:
客户对话 → 记录成功/失败话术 → 标注客户类型和有效策略
→ 新客户来了,先搜索相似案例
→ 提炼为话术模板库
知识文件示例:
# skills/customer-service/objection-handling.md
## "太贵了"
- ❌ 失败话术: "我们的价格已经很优惠了"(3/10 次成功)
- ✅ 有效话术: "理解。我们来看看哪些功能对您最重要,找到最合适的方案"(7/10)
- 关键: 不要直接反驳价格,转向价值讨论
## "我再考虑考虑"
- ❌ 失败: 催促下单
- ✅ 有效: 提供限时优惠 + 约定回访时间
4.4 研究助手
场景:帮助研究员追踪文献、整理知识。
知识结构:
papers/
├── summaries/
│ ├── attention-is-all-you-need.md # 每篇论文的结构化摘要
│ └── scaling-laws.md
├── topics/
│ ├── transformer-architectures.md # 按主题归类的知识
│ └── in-context-learning.md
└── connections.md # 论文之间的关联
学习循环:
读论文 → 写结构化摘要(问题/方法/结论/局限)
→ 归类到主题文件
→ 标注与其他论文的关联
→ 定期更新"领域综述"
4.5 个人健康管理
场景:追踪用户的健康数据,提供个性化建议。
# memory/health/sleep-patterns.md
## 观察记录
- 2026-02-01: 睡 6h,第二天精神差 → 咖啡因 3 杯
- 2026-02-05: 睡 8h,状态好,运动 45min
- 2026-02-10: 睡 5h(熬夜写代码),第二天头疼
- ...
## 提炼规律
- 最佳睡眠: 7-8h(低于 6h 必然状态差)
- 咖啡因: 下午 3 点后喝会影响入睡
- 运动: 早上运动比晚上运动睡得更好
4.6 游戏 AI
场景:在策略游戏中持续提升。
# memory/game/opponent-profiles.md
## 玩家 "DragonSlayer99"
- 偏好: 早期 rush,兵种偏好骑兵
- 弱点: 中后期经济管理差
- 对策: 防守 + 拖到后期
- 战绩: 5 胜 2 负
## 通用规律
- 排位赛 1500-1800 分段,70% 玩家会在 10 分钟内进攻
- 最佳开局: 经济优先 → 防御塔 → 15 分钟后反攻
4.7 内容创作
场景:运营社交媒体账号,优化内容策略。
# skills/content/what-works.md
## 高互动内容特征(基于 50+ 篇帖子统计)
- 标题带数字: 平均互动 +40%
- 分享失败经验: 比成功经验互动高 2x
- 最佳发布时间: 工作日 9-10am,周末 11am
- 配图 vs 纯文字: 互动 +60%
## 低互动内容特征
- 纯观点输出(没有数据/案例支撑)
- 超过 500 字的长文(除非是教程)
- 周五下午发布
五、优势与局限
5.1 核心优势
1. 透明可审计
每个决策都有据可查。"你为什么这么判断?" → 打开对应的记忆文件。这在金融、医疗等需要合规审计的领域尤为重要。
2. 人机协同
人类可以随时介入:修改策略文件、纠正错误记忆、添加领域知识。这比重新训练模型高效几个数量级。
3. 跨模型可迁移
知识存在文件里,不绑定任何特定模型。今天用 Claude,明天换 GPT,后天用开源模型 — 知识文件直接带走。
4. 零训练成本
不需要 GPU、不需要标注数据、不需要训练 pipeline。一个文件系统 + 一个 LLM 就够了。
5. 增量式学习
不存在"灾难性遗忘"。新知识是追加到文件中的,不会覆盖旧知识。
6. 即时生效
修改文件后立刻生效,不需要等重训完成。
5.2 局限性
1. 检索依赖
Agent 需要知道"去哪里找"相关知识。如果记忆文件组织混乱,或语义搜索失败,知识等于不存在。
2. 上下文窗口限制
Agent 不能一次加载所有知识文件。需要策略性地选择加载哪些文件(通过搜索、分层加载等)。
3. 知识质量不保证
如果记录的经验本身就是错的(样本量小、归因错误),会导致"垃圾进垃圾出"。需要统计验证机制。
4. 无法学习隐式模式
有些知识难以用文字表达(如"这个代码风格看起来不对"的直觉)。参数学习可能在这类隐式模式上更强。
5. 维护成本
知识文件需要定期清理、去重、更新。如果放任不管,会变成信息垃圾场。
5.3 与参数学习的互补
非参数学习不是要替代参数学习,而是互补:
| 适合非参数学习 | 适合参数学习 |
|---|---|
| 需要可解释性 | 隐式模式识别 |
| 数据量小(几十到几百条) | 数据量大(几万到几百万) |
| 需要人类随时干预 | 全自动化 |
| 知识快速变化 | 知识相对稳定 |
| 个性化/定制化 | 通用化/标准化 |
理想组合:LLM 提供基础推理能力(参数学习),非参数学习提供领域知识和个性化经验。
六、实施指南
6.1 从零开始
Step 1: 建立文件结构
mkdir -p memory/ skills/ data/ reports/
touch MEMORY.md
Step 2: 定义记录模板
为每种类型的经验设计记录模板:
## [日期] [事件类型]
- 背景:
- 决策:
- 结果:
- 反思:
- 下次改进:
Step 3: 开始记录
每次行动后立即记录。不要等"以后再补"。
Step 4: 定期复盘
每周/每月回顾日志,提炼到 MEMORY.md。
Step 5: 结晶为技能
当某类经验积累到 20+ 条时,写成 SKILL.md。
6.2 质量控制
避免"垃圾进垃圾出"的关键机制:
1. Baseline 对照 — 每个判断都和机械基准比较
2. 样本量标注 — "基于 3 次经验" vs "基于 50 次经验"
3. 置信度分级 — 低/中/高,随数据积累升级
4. 定期回测 — 用新数据验证老结论是否还成立
5. 人类审查 — 关键规则变更需要人类确认
6.3 扩展策略
当知识量增大时:
- 分层加载 — 先读索引,按需加载详情
- 标签系统 — 给每条记忆打标签,方便检索
- 定期压缩 — 合并重复条目,删除过时信息
- 知识图谱 — 标注条目之间的关联
七、哲学思考
7.1 这是"真正的学习"吗?
有人会质疑:把东西写在文件里,然后读回来,这算"学习"吗?
反过来想:人类的学习也大量依赖外部存储 — 笔记、书籍、维基百科。没有人会说"查笔记不算学习"。学习的本质不是改变存储介质,而是通过经验改善未来行为。
7.2 知识的涌现
当零散的经验积累到足够多时,会涌现出模式和规律 — 这些是事先设计不出来的。就像 @swisstony 在 Polymarket 上的策略,不是从理论推导出来的,而是从几千笔交易中涌现的。
7.3 Agent 的身份连续性
对于 LLM Agent 来说,每次对话都是从零开始。非参数学习的记忆文件提供了身份连续性 — 让 Agent 知道"我是谁、我经历过什么、我学到了什么"。某种意义上,这些文件就是 Agent 的"灵魂"。
八、总结
非参数学习的核心信念:
> 知识应该是透明的、可编辑的、可迁移的。
它不是最强大的学习方法,但可能是最实用的 — 特别是对于需要快速上手、持续迭代、人机协同的场景。
与其花几周训练一个黑箱模型,不如花几小时建立一个好的记忆系统。前者可能更"智能",但后者你能理解、能控制、能信任。
在 AI Agent 的时代,可控性就是竞争力。
文档版本: 1.0 | 作者: Tony (TonyZH) | 日期: 2026-02-18
基于 Polymarket 体育交易系统的实践经验总结