README · AI Agent 2

AI Agent 学习路线

这个目录的目标不是收集名词,而是把 Java 后端能力迁移成可落地的 AI Agent 工程能力。主线只有一条:

代码块TEXT · 8 行收起展开
Java 后端工程能力
-> LLM API / Prompt / Streaming
-> Tool Calling
-> MCP
-> RAG
-> Agent Workflow
-> Memory / Trace / Eval
-> Personal Knowledge Agent

一屏总览

mindmap
  root((AI Agent 工程))
    基础层
      LLM API
      Prompt
      Streaming
      Structured Output
    执行层
      Tool Calling
      权限
      审计
      错误恢复
    知识层
      RAG
      Obsidian
      Chunk
      Citation
    协议层
      MCP Client
      MCP Server
      Tools
      Resources
    运行层
      Workflow
      State Machine
      Memory
      Trace
    产品层
      Eval
      Cost
      Safety
      Deployment
AI Agent 能力雷达 LLM Tool MCP RAG Workflow Trace/Eval Memory 当前重点:PKA 优势迁移:Java 后端工程化 核心护栏:权限 / 审计 / 评测 最终作品:可演示、可复盘、可维护

推荐阅读顺序

阶段读什么目的产出
000-Java后端转Agent学习路线建立整体路线知道先学什么、后学什么
105-AI工程基础入门到精通补齐基础概念能解释 LLM/RAG/MCP/Agent
201-MCP专题学习笔记理解工具协议能设计只读 MCP Server
302-RAG与Agent工程理解知识增强能做 Obsidian RAG
403-项目实战清单选择项目有可落地作品集路径
504-每周推进计划排期执行每周有 demo、笔记、复盘
606-Agent CLI源码剖析-全局架构与数据流21-Agent CLI深水区-从输入到落盘全链路复盘源码级理解 Agent runtime能自己实现最小 Agent CLI
700-Agent Memory 21篇论文学习路线论文级理解 Agent Memory能设计长期记忆系统

目录地图

AI Agent 目录地图 入门主线 00-05 路线/基础/项目 01 MCP + 02 RAG 03 项目 + 04 周计划 源码主线 06-10 架构/工具/MCP 11-17 状态/编辑/权限 18-21 搜索/Trace/复盘 论文主线 essay/00 学习路线 01-21 记忆论文 Memory System Personal Knowledge Agent

使用方式与总验收表

这套笔记的读法是先跑通主线,再按薄弱点回到源码或论文。不要把 40 多篇笔记当成线性书籍硬读。

Reading Route 先跑主线,遇到缺口再回补专题。 Start 05 00 03 04 Gap? Build 01 / 15 02 / 18 06-21 essay Tool RAG Runtime Memory
学习动作看哪部分必须产出
补概念05概念到工程对象映射
定路线00当前阶段和交付物
做项目03 + 04本周 demo、trace、失败样本
补 MCP01 + 15只读 Notes MCP
补 RAG02 + 18Obsidian RAG eval
补 runtime06-21最小 Agent CLI
补记忆essayMemory schema 和写入策略
总能力合格证据关联笔记
LLM 接入/chat、stream、错误归一化、token 日志05, 06, 07
工具调用schema、权限、审计、结构化 result01, 08, 13
MCP 暴露initialize、list、call、白名单、错误码01, 10, 15
RAG 问答chunk、hybrid recall、rerank、citation、refusal02, 18
Workflow状态机、最大步数、失败出口03, 07, 12
Memory来源、置信度、更新、撤销、冲突处理14, essay
Eval/Traceeval set、debug report、失败归因04, 20, 21
产品交付README、demo、配置、限制说明03, 04

上线成熟度地图

这组笔记不是只为了“看懂 Agent”,最终要能判断一个 Agent 系统是否能上线。可以按下面这张表倒查缺口:

成熟度必须证明对应笔记不合格表现
能运行有可调用入口、固定请求/响应、错误归一05, 06, 07, demo只能在 Notebook 或临时脚本里跑
能控边界工具、路径、权限、输出都有硬限制08, 13, 17模型说要干什么就直接执行
能找证据RAG / 搜索结果可解释、可引用、可校验新鲜度02, 18拿过期 chunk 或无关文件回答
能复盘每次任务都有 trace、debug report、失败归因20, 21只保存最终回答,看不到中间决策
能回归prompt、RAG、tool schema 改动前后能跑 eval04, 20靠主观感觉判断“好像更好”
能降级超时、限流、成本、供应商故障有 fallback05, 16, 20provider 抖动时整条链路崩掉
能守隐私trace/log/memory 写入前有脱敏和保留策略05, 13, 14私有路径、密钥、原始 prompt 直接落盘
能运维有 SLO、告警、runbook、回滚版本05, 20, 21出事故后只能靠人工猜

读法:如果某一行做不到,就不要继续堆新功能,先回到对应笔记补工程对象、失败样本和验收证据。

内容使用决策树

不要按文件编号机械阅读。更有效的方式是先判断当前卡点,再回到对应笔记补足“原理、对象、失败、证据”四件事。

当前卡点先读必须补出的东西不合格信号
只知道名词,不知道系统怎么跑05一次请求的生命周期、核心对象、失败阶段能解释概念,但画不出数据流
Java 后端能力不知道怎么迁移00Controller/Service/DB/MQ 到 Agent runtime 的映射仍把 Agent 当普通 Chat API
项目不知道先做哪块03 + 04纵向切片、每周交付、验收证据一周结束只有阅读记录,没有可运行东西
工具调用不敢落地08 + 13schema、权限、审计、失败恢复模型输出什么参数就直接执行
MCP 和 REST 分不清01 + 10 + 15capability discovery、transport、tool/resource 边界把 MCP 当业务 API 重写一遍
RAG 回答不稳定02 + 18chunk、召回、rerank、引用、拒答检索到相似内容就直接回答
Agent 循环容易乱跑07 + 12状态机、maxSteps、stop reason、recover policy失败后继续让模型自由发挥
记忆不知道该存什么14 + essaymemory schema、来源、置信度、更新/撤销策略把聊天历史全文塞进 memory
改 prompt 后不知道好坏20 + 21eval case、trace、debug report、回归结论靠主观看两三个回答判断

三条主线要互相闭环:

主线解决的问题应该反哺到哪里
基础主线 00-05建立概念和工程对象项目切片、验收表、源码阅读问题
源码主线 06-21学 Agent runtime 怎样组织demo 的包结构、状态机、权限和 trace
论文主线 essay学 memory/agent 设计空间memory schema、长期上下文策略、eval 维度

当前可运行 Demo

路径:F:\2. ObsidianNotes\技术栈\AI Agent\demo,说明见 README

它不是最终产品,而是当前最小后端切片:

代码块TEXT · 7 行收起展开
HTTP request -> AgentService -> NoteSearchService -> grounded answer/refusal -> TraceService
EvalCase -> EvalService -> AgentService -> pass/fail reasons
ToolCallRequest -> ToolService -> search/read/trace/debug/eval -> ToolCallResponse
McpRequest -> McpService -> ToolService -> McpResponse
MemoryWriteRequest -> MemoryService -> data/memories.jsonl
TraceRecord -> TraceService -> data/traces.jsonl
TraceRecord -> DebugReportService -> DebugReport
能力当前 demo 是否覆盖验证方式
本地笔记检索已覆盖GET /API/notes/search?q=MCP&limit=2
带来源回答已覆盖POST /API/chat 返回 sources
无证据拒答已覆盖service test 覆盖 no-source refusal
代码块JAVA · 2 行收起展开
| trace 复盘 | 已覆盖 JSONL 持久化 | `GET /API/traces/{traceId}` 或 `.\trace-test.ps1` |
| debug report | 已覆盖最小失败归因 | `GET /API/traces/{traceId}/debug` 或 `.\debug-test.ps1` |

| eval gate | 已覆盖 | POST /API/eval.\eval-test.ps1 | | tool schema | 已覆盖 | GET /API/tools.\tool-test.ps1 | | safe note read | 已覆盖 | read_note 拒绝路径逃逸 | | MCP transport | 已覆盖最小子集 | POST /mcp.\mcp-test.ps1 | | memory store | 已覆盖最小 JSONL slice | POST /API/memories.\memory-test.ps1 | | 真实 LLM | 暂不覆盖 | 后续接 ModelGateway | | 完整生产 MCP | 暂不覆盖 | 后续加 session、resources、prompts、streamable HTTP 细节 |

本地验收命令:

代码块POWERSHELL · 12 行收起展开
cd "F:\2. ObsidianNotes\技术栈\AI Agent\demo"
$env:JAVA_HOME='D:\JAVA_TechTool\JDKs\oracle-24.0.1'
$env:Path="$env:JAVA_HOME\bin;$env:Path"
.\mvnw.cmd test
.\mvnw.cmd spring-boot:run
.\smoke-test.ps1
.\eval-test.ps1
.\tool-test.ps1
.\mcp-test.ps1
.\memory-test.ps1
.\trace-test.ps1
.\debug-test.ps1

当前定位

已有基础迁移到 Agent 的位置需要补的 AI 工程意识
Spring Boot / MVC / MyBatisAgent API、任务服务、工具服务、权限服务模型输出不稳定,接口必须可校验
MySQL会话、任务、trace、索引元数据记忆需要来源、版本、置信度、撤销
Redis / MQ异步工具调用、任务队列、缓存工具调用有延迟、失败、重试和超时
JUC / 线程池并发检索、批量 embedding、eval runner需要限流和成本控制
设计模式Tool / Memory / Planner / Executor 抽象抽象必须服务可观测和可测试
日志 / 监控Trace / Eval / Debug report不能只看最终答案,要复盘全过程

能力成熟度

等级标志你能做什么不合格表现
L1 调模型能稳定请求 LLMChat API、Streaming只会复制 SDK demo
L2 接工具模型能调用后端能力Tool schema、权限、审计让模型执行任意命令
L3 接知识回答能引用私有资料Obsidian RAG、引用、拒答检索到什么就乱答
L4 接协议能暴露 MCP 能力Notes MCP、Project MCPMCP 和 REST/API 混着理解
L5 做工作流多步任务可控状态机、最大步数、失败恢复无限自循环
L6 做产品可评测、可部署、可维护eval、trace、成本、安全只靠“看起来还行”判断效果

Agent Memory 论文精读

论文区入口:00-Agent Memory 21篇论文学习路线

这一组笔记已经按“原文 + 中文精读 + 工程映射”的方式拆解。阅读时按下面的问题看,不要只背论文名:

问题阅读重点
这篇解决什么失败模式忘记、检索不准、写入污染、事实过期、技能无法复用
记忆是什么形态文本、图谱、技能、反思、隐藏状态、参数补丁
写入条件是什么每轮都写、surprise 写、失败后写、用户确认后写
怎么验证有效recall、answer correctness、update accuracy、latency、cost
怎么迁移到个人知识 AgentObsidian chunk、用户偏好、任务 trace、反思、技能库

最终作品形态

flowchart TD
    Notes["Obsidian Notes"] --> Indexer["Indexer"]
    Indexer --> Retriever["RAG Retriever"]
    User["User"] --> Agent["Personal Knowledge Agent"]
    Agent --> Retriever
    Agent --> Capability["Tools / MCP / Memory"]
    Capability --> Answer["Answer with citations"]
    Retriever --> Answer
    Agent --> Trace["Trace / Eval"]
    Trace --> Report["Debug Report"]

最终项目不是“聊天机器人”,而是:

Personal Knowledge Agent:基于 Obsidian 的个人知识库 Agent,支持 RAG 问答、MCP 工具暴露、学习计划生成、任务追踪、长期记忆、回答引用、trace 复盘和 eval 回归。

学习原则

  • 每个概念必须落到工程对象:类、表、接口、状态、日志、测试。
  • 每个 Agent 能力必须有边界:权限、最大步数、超时、失败处理。
  • 每个回答质量必须能验证:固定问题集、引用、trace、对比报告。
  • 每个笔记都要能服务实现:少口号,多流程图、表格、字段、伪代码、验收标准。