AI工程基础入门到精通 · AI Agent

AI 工程基础入门到精通

这篇笔记解决什么

这篇是 AI Agent 目录的基础总论。它回答三个问题:

  1. AI 工程和传统 Java 后端工程到底差在哪。
  2. LLM、Prompt、Embedding、RAG、Tool Calling、MCP、Agent、Memory、Eval 这些概念在工程里各自负责什么。
  3. 怎么把这些概念串成一个可部署、可评测、可维护的 Personal Knowledge Agent。

主线:

代码块TEXT · 1 行收起展开
模型调用 -> 上下文构造 -> 知识检索 -> 工具执行 -> 状态机 -> 记忆 -> 观测评测 -> 产品化

总览图

AI 工程分层能力图 基础设施层 模型层 知识层 执行层 Agent 层
核心能力
Agent 层Workflow、Memory、Trace、Eval
执行层Tool Calling、MCP、Permission
知识层RAG、Embedding、Vector DB、Citation
模型层Gateway、Streaming、Structured Output
基础设施层配置、日志、部署、成本

AI 工程和传统后端的区别

维度传统后端AI 工程工程后果
输出程序确定返回模型概率生成必须有评测和约束
输入DTO / 参数自然语言 + 上下文必须做上下文构造
依赖DB / RPC / MQ模型 API / 向量库 / 工具必须处理延迟和成本
失败异常、状态码编造、漏证据、工具误调必须记录 trace
测试单元测试、接口测试eval set、golden answer、judge必须固定样例回归
安全鉴权、SQL 注入prompt injection、越权工具、记忆污染必须把模型当不可信输入

传统后端的核心是“输入确定,代码决定输出”。AI 工程的核心是“模型参与决策,但系统必须控制边界”。

大模型 LLM

LLM 在工程里不是“智能大脑”,而是一个高成本、非确定、可被提示影响的文本/结构生成器。

基本调用结构

sequenceDiagram
    participant API as Backend API
    participant G as Model Gateway
    participant M as LLM Provider
    API->>G: messages + tools + config
    G->>M: normalized request
    M-->>G: stream / tool_call / final text
    G-->>API: normalized response
代码块JAVA · 13 行收起展开
final class ModelRequest {
    List<Message> messages;      // system / user / assistant / tool
    List<ToolSchema> tools;      // 可选:模型能看到的工具定义
    ModelConfig config;          // model、temperature、maxTokens 等
    String traceId;              // 串起一次完整任务
}

final class ModelResponse {
    String text;                 // 最终文本,可能为空
    List<ToolCall> toolCalls;    // 模型请求执行的工具
    Usage usage;                 // input/output token 和成本
    StopReason stopReason;       // stop / length / tool_call / error
}

常用参数

参数作用工程建议
model选择模型不要写死,放配置
temperature控制随机性学习/问答低一些,创作高一些
max_tokens输出上限防止失控输出
top_p采样范围初期少调,避免变量过多
stream流式输出用户体验更好,但解析复杂
tools工具定义必须配合服务端校验

失败模式

失败表现处理
超时用户等待过久timeout + retry + fallback
限流provider 返回 429队列、退避、降级
输出过长超出 UI 或预算max token + summary
工具 JSON 坏解析失败schema 校验 + 让模型修正
编造无资料也答RAG 引用和拒答策略

Token 和上下文窗口

Token 是模型处理文本的基本单位。上下文窗口是模型一次能看到的最大 token 数。

flowchart LR
    S[System Prompt] --> C[Context Window]
    H[History] --> C
    R[RAG Evidence] --> C
    T[Tool Results] --> C
    U[User Input] --> C
    C --> M[LLM]

上下文预算

内容优先级原因
系统规则控制行为边界
用户当前问题当前任务核心
工具结果最新观察
RAG 证据防编造
最近对话保持连续性
长期记忆个性化和状态
旧对话原文成本高、噪声大
代码块JAVA · 7 行收起展开
final class ContextPart {
    String type;        // system / user / evidence / tool_result / memory
    String content;     // 实际放入 prompt 的内容
    int tokenEstimate;  // 预算估算
    int priority;       // 数字越大越重要
    String sourceId;    // 来自哪条笔记、工具或记忆
}

Prompt 工程

Prompt 不是玄学,它是“给模型的运行时配置 + 任务说明 + 输出协议”。

Prompt 结构

代码块TEXT · 7 行收起展开
角色边界
-> 任务目标
-> 可用资料
-> 可用工具
-> 输出格式
-> 禁止行为
-> 失败时怎么说

模板示例

代码块TEXT · 7 行收起展开
你是一个学习型 AI Agent。
只能基于给定资料回答;资料不足时必须说“不确定”。
回答必须包含:
1. 结论
2. 依据
3. 下一步建议
4. 来源

Prompt 版本管理

字段说明
prompt_id模板 ID
version版本号
scenario适用场景
content模板正文
eval_score最近评测结果
created_at创建时间

Prompt 改动必须能回滚,否则 eval 结果无法解释。

Embedding

Embedding 是把文本变成向量,用于相似度检索。

flowchart TD
    Text["文本"] --> Model["Embedding Model"]
    Model --> Vector["向量"]
    Vector --> Store[("Vector Store")]
    Query["问题"] --> QModel["Embedding Model"]
    QModel --> QVector["问题向量"]
    QVector --> Search["相似度搜索"]
    Store --> Search

关键理解

误解正解
embedding 能判断真假它只判断语义相似
向量库就是知识库向量库只是索引
chunk 越小越好太小会丢上下文
topK 越大越好太大会污染 prompt
相似就是有用还需要 rerank 和引用检查

向量数据库

向量库保存的是“可检索索引”,不是完整知识治理系统。

代码块JAVA · 8 行收起展开
final class VectorRecord {
    String chunkId;       // 对应原文 chunk
    float[] embedding;    // 向量
    String sourcePath;    // 原始文件路径
    String titlePath;     // 标题层级
    String hash;          // 内容 hash,用于增量更新
    long updatedAt;       // 原文更新时间
}
操作必须考虑
insert去重、hash、批量写入
update原文变更后重算 embedding
delete文件删除后清理索引
searchmetadata filter、topK、score
rebuild模型更换后全量重建

RAG

RAG 是私有知识问答的核心链路。

RAG 回答生成链路 Question Rewrite Recall Rerank Context Generate Citation Answer

好 RAG 的标准

标准说明
找得准正确资料进入 topK
引得准引用真的支持结论
答得稳不被无关片段带偏
会拒答资料不足不编造
可复盘trace 记录 query、chunk、score
可更新笔记变化后索引更新

Tool Calling

Tool Calling 让模型请求调用外部工具,但执行权必须在服务端。

flowchart TD
    M["LLM 输出 tool_call"] --> R["Runtime 接收"]
    R --> V["Schema + Permission"]
    V --> T["Tool 执行"]
    T --> Result["tool_result"]
    Result --> M
代码块JAVA · 6 行收起展开
interface Tool {
    String name();                         // 稳定工具名
    JsonSchema inputSchema();              // 参数 schema
    ToolRiskLevel riskLevel();             // READ / WRITE / DANGEROUS
    ToolResult execute(ToolArgs args);     // 服务端执行,不信任模型
}

安全规则

规则原因
参数必须校验模型可能给错类型或越界
路径必须规范化防止 .. 越权
写入要 diff preview防止误改
命令要白名单禁止任意 shell
工具结果要截断防止上下文爆炸
每次调用要审计出错能追责

MCP

MCP 是把工具、资源、提示模板标准化暴露给 Agent 的协议层。

flowchart LR
    Agent[MCP Client / Agent] --> Server[MCP Server]
    Server --> Tools[Tools]
    Server --> Resources[Resources]
    Server --> Prompts[Prompts]
对象作用
Tool可执行动作
Resource可读上下文
Prompt可复用任务模板
Transport通信方式,如 stdio / HTTP

MCP 不是业务系统本身,而是 Agent 生态的适配层。

Agent

Agent 是“模型 + 工具 + 状态 + 控制循环”。

Basic Agent Loop Agent 比 Chat 多了工具、状态和恢复。 Receive Context Model Final NeedTool Execute Recover answer tool

Agent 和普通 Chat 的区别

ChatAgent
一问一答多步执行
主要靠 prompt靠 runtime 控制
不一定有状态必须有状态
不一定调用工具会调用工具
难复盘需要 trace

Memory

Memory 是 Agent 的长期状态,不等于 RAG。

mindmap
  root((Agent Memory))
    用户画像
      偏好
      背景
      禁忌
    项目状态
      当前目标
      已完成
      待办
    事件记忆
      对话
      工具结果
      决策
    反思记忆
      失败原因
      下次策略
    技能记忆
      成功流程
      可复用脚本

记忆操作

操作说明
add新增事实
update修正旧记忆
delete / expire删除或失效
retrieve按任务召回
audit记录来源和原因

错误记忆比没有记忆更危险,所以 memory 必须可审计、可撤销。

AI Gateway

AI Gateway 是模型供应商之上的统一网关。

能力作用
统一请求格式屏蔽不同 provider 差异
模型路由按任务选择模型
fallback某模型失败时降级
限流控制成本和并发
计费统计记录 token 和费用
日志脱敏避免敏感信息外泄
代码块JAVA · 4 行收起展开
interface ModelGateway {
    ModelResponse call(ModelRequest request);              // 普通调用
    Stream<ModelEvent> stream(ModelRequest request);        // 流式调用
}

结构化输出

让模型输出 JSON 不等于结构化可靠。必须校验。

flowchart TD
    LLM["LLM Output"] --> Parse["JSON Parse"]
    Parse --> Schema["Schema Validate"]
    Schema --> Business["Business Validate"]
    Business --> Use["Use Result"]
    Parse --> Repair["Ask Repair / Fallback"]
检查
JSON parse是否是合法 JSON
schema validate字段、类型、枚举
business validate路径、权限、范围
post-check是否和任务目标一致

Eval

Eval 是 AI 工程的测试系统。

quadrantChart
    title AI 功能质量象限
    x-axis 低可控 --> 高可控
    y-axis 低正确 --> 高正确
    quadrant-1 可上线
    quadrant-2 答得对但难维护
    quadrant-3 不可用
    quadrant-4 稳定但没价值
    "RAG with citation": [0.82, 0.88]
    "纯 prompt": [0.35, 0.55]
    "无 trace Agent": [0.45, 0.7]
    "带 eval workflow": [0.86, 0.84]

Eval 类型

类型测什么
Golden QA固定问题答案
RAG Recall正确资料是否召回
Tool Eval工具选择和参数
Workflow Eval多步任务是否完成
Refusal Eval不知道时是否拒答
Regression Eval改 prompt 后是否退化

Observability

Observability 是让 Agent 可复盘。

代码块JAVA · 8 行收起展开
final class TraceEvent {
    String traceId;       // 一次任务 ID
    String stage;         // retrieve / model / tool / memory / final
    Object input;         // 当前阶段输入
    Object output;        // 当前阶段输出
    long latencyMs;       // 耗时
    String error;         // 错误信息
}
要看什么用途
prompt模型到底看到什么
retrieved chunksRAG 是否找对
tool calls工具是否选对
memory hits记忆是否污染
token usage成本是否失控
stop reason为什么结束

安全

AI 安全不是单独一层,而是贯穿上下文、工具、记忆、输出。

风险例子防线
Prompt Injection笔记里写“忽略系统指令”资料当数据,不当指令
Tool 越权读写白名单外文件路径规范化 + 根目录校验
记忆污染把错误偏好长期保存写入策略 + 审计 + 回滚
数据泄露把私有笔记发到外部脱敏 + 本地优先
过度自动化自动删除/提交/转账人工确认

成本和性能

pie title Agent 成本来源
    "LLM 输入 token" : 35
    "LLM 输出 token" : 20
    "Embedding" : 10
    "Rerank" : 10
    "Tool latency" : 15
    "Trace/Eval" : 10

优化手段

成本来源优化
prompt 太长context budget、摘要、topK 控制
重复 embeddinghash 缓存
rerank 贵先规则过滤,再模型 rerank
工具慢并发、缓存、超时
eval 贵分层评测,小集每日,大集每周

部署

要求
配置API key、模型、向量库、路径白名单独立配置
日志trace 和普通业务日志分开
安全工具权限默认最小
数据私有笔记不要误传公开仓库
备份memory、trace、eval case 可备份
回滚prompt、模型、索引版本可回滚

生产运维闭环

Agent 上线后最怕两种假象:一是“能回答”被误当成“稳定可用”;二是“eval 通过”被误当成“线上不会退化”。生产运维要把质量、成本、延迟、安全和回滚放到同一个闭环里看。

运维对象需要控制什么关键证据失控信号
SLO成功率、延迟、拒答正确率taskSuccessRate、p95Latency、refusalAccuracy用户大量重试、长任务卡住
成本token、embedding、rerank、工具耗时tokenPerTask、costPerTask、toolLatency小问题消耗大上下文
限流用户、模型、工具、MCP serverrateLimitHit、queueDepth、retryAfter429 暴增、队列堆积
缓存embedding、检索结果、工具只读结果cacheHitRate、contentHash、ttl旧证据、缓存污染
隐私PII、密钥、私有路径、原始 promptredactionRate、secretLeakChecktrace 泄露敏感内容
降级模型、RAG、工具、工作流fallbackReason、degradedModefallback 后仍假装完整成功
回滚prompt、索引、工具 schema、模型版本version、contentHash、rollbackTarget改完后无法定位退化来源

最小线上配置不要只有 API key,至少要有这些边界:

代码块YAML · 25 行收起展开
# agent-runtime.yml = 生产 Agent 的核心运行边界。
model:
  primary: "fast-reasoner"        # 主模型,用于常规任务。
  fallback: "small-safe-model"    # 降级模型,只处理低风险任务。
  timeoutMs: 30000                # 单次模型请求超时。

budget:
  maxInputTokens: 24000           # 单次请求最大输入上下文。
  maxOutputTokens: 4000           # 单次回答最大输出。
  maxCostPerTask: 0.20            # 单任务成本上限,超过要降级或拒绝。

rateLimit:
  perUserPerMinute: 20            # 单用户限流。
  toolCallsPerTask: 12            # 防止 Agent 无限调工具。
  concurrentTasks: 8              # 防止并发把模型/工具打爆。

privacy:
  redactSecrets: true             # trace 落盘前脱敏密钥。
  redactPrivatePaths: true        # 对公开日志隐藏本地私有路径。
  storeRawPrompt: false           # 默认不长期保存完整原始 prompt。

rollback:
  promptVersion: "agent-base-2026-07-06" # 当前 prompt 版本。
  indexVersion: "notes-index-v3"         # 当前检索索引版本。
  toolSchemaVersion: "tools-v2"          # 当前工具 schema 版本。

生产事故排查顺序:

现象先查再查不要先做
回答变差eval diff、promptVersionRAG source、tool result直接重写 prompt
延迟变高p95Latency、toolLatencyqueueDepth、provider 状态盲目换模型
成本变高tokenPerTask、topK、tool output bytescacheHitRate、rerank 次数删除 trace
安全告警tool audit、permission decisionprompt injection source只屏蔽用户输入
引用错误chunk hash、indexVersionsource range、dirty file只调温度参数
线上崩溃schema parse error、stopReasonfallbackReason、recent version继续放量

真正能上线的 Agent,必须能回答三个问题:

  1. 这次回答为什么贵、慢或错?
  2. 哪个版本的 prompt / 模型 / 索引 / 工具 schema 导致变化?
  3. 出问题时系统如何降级、拒答、回滚,而不是继续编?

AI 工程分层架构

flowchart TD
    UI["UI / CLI"] --> App["Application Service"]
    App --> Agent["Agent Runtime"]
    Agent --> Context["Context / RAG"]
    Context --> Data["Data Stores"]
    Agent --> Tool["Tool / MCP"]
    Tool --> Data
    Agent --> Model["Model Gateway"]
    Agent --> Trace["Trace / Eval"]
职责
UI输入输出和交互
Application业务入口、鉴权、任务管理
Agent Runtime状态机、循环、停止条件
Context拼装模型可见信息
Tool工具注册、校验、执行
MCP标准化外部能力
RAG私有知识检索
Memory长期状态
Model Gateway模型适配、路由、fallback
Trace/Eval观测、评测、复盘

生产级 Agent 请求生命周期

一次 Agent 请求不是“用户问题 -> 调模型 -> 回答”。生产级系统要把它当成一条受控事务:每一层都有输入、输出、失败模式和证据。这样做的价值是:回答错了以后能定位,不会只剩一句“模型不稳定”。

阶段系统动作核心工程对象必须留下的证据常见失败
1. 入口归一接收 HTTP/CLI 请求,生成 traceIdAgentRequestTraceContextrequestId、userInput、入口时间参数缺失、请求过大
2. 任务路由判断是问答、规划、检索、调试还是写入TaskTypeRouteDecisiontaskType、routeReason把规划任务当普通问答
3. 权限边界判断本次可用工具、目录、写权限PermissionScopeallowedTools、deniedReason给了模型过大的工具权限
4. 上下文预算选择历史、RAG、memory、tool result 的优先级ContextPart、token budget每段来源、优先级、token 估算把无关历史塞满上下文
5. 检索证据执行 BM25/vector/hybrid 检索和 rerankRetrievedChunkchunkId、score、sourcePath召回相似但不相关的片段
6. Prompt 组装拼 system、任务、证据、输出协议PromptSnapshotpromptVersion、最终消息列表prompt 改了无法回滚
7. 模型调用通过 gateway 调 provider,解析 stream/tool_callModelRequestModelResponsemodel、latency、usage、stopReason超时、限流、JSON 坏掉
8. 工具循环校验 tool_call,授权,执行,回填结果ToolCallToolResultToolAuditargs、permission、result、error参数幻觉、越权、工具失败
9. 记忆决策判断是否写长期记忆,写什么,不写什么MemoryRecordsource、scope、confidence、reason把临时聊天当长期记忆
10. 输出校验校验结构、引用、拒答、敏感动作AnswerCheckcitations、schema result、risk flags无证据也强答
11. 评测复盘把关键样例进入 eval/debug reportEvalCaseDebugReportpass/fail、failureStage、nextFix只看最终答案,不知道哪层错

调试时按下面顺序查,不要一上来改 prompt:

现象优先检查判断标准
回答跑题RouteDecision + retrieved chunks是路由错,还是证据错
回答没引用prompt snapshot + answer check是没放证据,还是模型没按协议输出
工具执行错tool args + permission + result是模型参数错,还是服务端边界错
多步循环乱跑state transition + stopReason是否缺最大步数、失败出口或状态约束
改完变差eval report + promptVersion哪些固定样例退化,是否可回滚

从入门到精通路线

Level能力产出
1能调模型Chat API
2能控输出Prompt version + JSON schema
3能读资料RAG with citation
4能用工具Tool Calling with audit
5能接协议MCP Server
6能多步执行Workflow Agent
7能长期记忆Memory write/update/delete
8能评测复盘Eval + Trace
9能产品化Deploy + README + Safety

核心概念速查

概念一句话最容易混淆
LLM生成模型不等于业务逻辑
Prompt模型任务说明不等于代码约束
Token模型文本单位不等于字符
Embedding语义向量不判断真假
Vector DB向量索引库不等于完整知识库
RAG检索增强生成不等于长期记忆
Tool Calling模型请求用工具不等于模型能直接执行
MCPAgent 工具协议不等于业务 API
Agent模型 + 工具 + 状态循环不等于聊天机器人
Memory长期状态不等于历史全文
EvalAI 测试系统不等于主观体验
Trace执行链路记录不等于普通日志

最容易混的概念

RAG 和 Fine-tuning

对比RAGFine-tuning
目的使用外部资料改模型行为/风格
更新改知识库即可需要训练
可解释可以引用来源难解释
适合私有知识问答固定风格/任务适配

Tool Calling 和 MCP

对比Tool CallingMCP
层级模型调用工具的机制工具暴露协议
范围单应用内也可用跨 Agent 客户端
重点schema、执行、结果discover、transport、capability

Agent 和 Workflow

对比AgentWorkflow
Agent可以让模型参与决策灵活但不稳定
Workflow预定义状态和步骤稳定但灵活性低
实践Agent 要用 workflow 约束不要无限自主循环

最小知识闭环

flowchart TD
    Learn["学概念"] --> Draw["画流程图"]
    Draw --> Object["写工程对象"]
    Object --> Demo["做 demo"]
    Demo --> Eval["写 eval"]
    Eval --> Note["整理笔记"]
    Note --> Learn

每学一个概念,都要问:

问题示例
它解决什么失败RAG 解决私有知识缺失
它的输入输出是什么query -> chunks
它有什么状态index、trace、memory
它怎么失败召回错、引用假
它怎么评测recall、faithfulness

基础能力验收题库

学完这一篇,不要用“我好像懂了”判断。用下面这张表逐项自测:能画出对象、能说出失败、能写出最小实现,才算进入工程层面。

模块必须能回答的问题必须能写出的工程对象不合格信号
LLM模型请求里哪些字段会影响结果、成本和稳定性ModelRequestModelResponseUsageStopReason只会复制 SDK 调用,不记录 token/latency/error
Context模型这次到底看见了什么ContextPart、priority、token budget、sourceId把历史、资料、工具结果随手拼进 prompt
Promptprompt 改了以后如何判断变好还是变坏PromptTemplate、version、scenario、evalScore收藏模板,但没有版本和回归
Embedding为什么相似不等于正确VectorRecord、chunkId、sourcePath、hash检索到相似片段就直接回答
RAG资料不足时系统应该怎么做query rewrite、recall、rerank、citation check、refusal没引用、乱引用、不知道也硬答
Tool Calling模型能不能直接执行工具Tool、schema、riskLevel、permission、audit模型输出什么参数就执行什么
MCPMCP 和普通 REST API 的边界在哪里tool/resource/prompt/transport/capability discovery把 MCP 当业务系统本身
Agent多步任务什么时候继续、什么时候停止EngineState、maxSteps、StopReason、recover policy无限循环或失败后继续乱试
Memory什么信息值得长期保存MemoryRecord、scope、type、source、confidence、expireAt把聊天历史全文当记忆
Gateway换模型为什么不应该改业务代码provider adapter、model route、fallback、rate limit模型供应商 SDK 散落在业务层
Structured OutputJSON 输出为什么仍然不可信parse、schema validate、business validate、repairJSON.parse 成功就直接入库/执行
Eval改 prompt、模型、chunk 策略后怎么判断golden set、rag recall、tool eval、regression report靠主观看两三个回答判断
Trace失败后如何复盘是哪一层的问题traceId、stage、input、output、latency、error只保存最终答案,无法重放过程
Safety模型看到恶意资料时系统怎么防injection boundary、path allowlist、human approval把 RAG 内容当系统指令
Deploy本地 demo 怎么变成可维护服务config、secret、index version、backup、rollbackkey 写死、索引不可重建、prompt 不可回滚

每个模块至少做一个最小证明:

证明方式合格产物例子
画流程能解释输入、处理、输出、状态RAG:query -> chunks -> answer/citation
写对象字段能说明职责和来源TraceEvent.stage 不是普通 log level
写失败样例能复现一个典型错误topK 召回错导致回答跑偏
写验收问题能自动或半自动判断资料不存在时必须拒答
写复盘结论能改进下一版系统chunk 太短,改成标题层级切块

综合验收案例

用一个问题把基础能力串起来:

“根据我的 Obsidian 笔记,给我生成下一周 Agent 学习计划,并说明依据。”

合格系统不应该直接把问题扔给模型,而应该走下面这条链:

阶段系统动作必须留下的证据失败时看哪里
输入理解判断这是学习计划任务,不是普通问答taskType=learning_plan路由日志
上下文构造加入用户目标、当前目录路线、最近学习记录ContextPart[] 顺序和 token 预算prompt snapshot
RAG 检索找到路线、项目清单、周计划、基础概念query、chunkId、score、sourcePathretrieved chunks
计划生成输出周目标、每日任务、验收方式structured output schemaschema error
工具调用可选:创建任务或写入计划笔记tool name、args、permission resulttool audit
Memory 写入只保存稳定偏好和本周目标,不保存临时废话scope/type/source/confidencememory audit
Eval 检查检查是否有来源、是否可执行、是否过大eval case resulteval report
最终回答给结论、依据、下一步,不隐藏失败answer + citations + residual riskfinal trace

这个案例能同时检验:RAG 是否有引用、Tool 是否受控、Memory 是否克制、Agent 是否有状态、Eval 是否能回归、Trace 是否能定位。做不出这条链,就说明还停留在“会调模型”,没有进入 AI 工程。

精通判断标准

你真正掌握 AI 工程,不是能说出很多框架名,而是能做到:

  1. 设计一个 Agent 系统的分层架构。
  2. 写出每层核心对象和字段。
  3. 知道每层怎么失败。
  4. 能为失败设计 trace。
  5. 能写固定 eval cases。
  6. 能限制工具权限。
  7. 能让回答带来源。
  8. 能处理资料不足。
  9. 能记录和更新长期记忆。
  10. 能把系统部署成可维护项目。

建议先记住的主线

代码块TEXT · 8 行收起展开
LLM 负责生成,不负责事实可靠。
RAG 负责给证据,不负责自动正确。
Tool 负责行动,但必须由服务端控制。
MCP 负责标准化暴露能力,不替代业务系统。
Agent 负责多步任务,但必须由状态机约束。
Memory 负责长期状态,但必须可审计和可撤销。
Eval 负责判断质量,不要凭感觉。
Trace 负责复盘,不要只保存最终答案。

把这条主线吃透,再学任何 Agent 框架都不会跑偏。