非参数学习:让 AI Agent 通过经验成长

一种不改模型权重、通过记忆和技能文件积累知识的 Agent 学习范式

一、什么是非参数学习?

1.1 核心定义

非参数学习(Non-Parametric Learning) 是一种 AI Agent 的学习范式:Agent 不通过修改模型参数(weights)来学习,而是通过在外部文件系统中积累经验、提炼规则、构建知识库来提升能力。

用人类的类比:

1.2 为什么叫"非参数"?

在统计学中,"非参数方法"指不预设数据分布形式,让数据自己说话(如 KNN、核密度估计)。类似地,非参数学习的 Agent:

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 自动化支撑

非参数学习不是纯手动的。自动化脚本负责:

人类和 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 体育交易系统的实践经验总结