[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"i-ri:search-line":3,"i-ri:moon-line":8,"i-ri:sun-line":10,"i-ri:menu-3-line":12,"i-ri:close-line":14,"notes-module-items-ai":16,"notes-page-ai-roadmap":74,"i-ri:arrow-left-s-line":1287,"i-ri:menu-2-line":1289,"i-ri:arrow-right-s-line":1291},{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":7},0,24,false,"\u003Cpath fill=\"currentColor\" d=\"m18.031 16.617l4.283 4.282l-1.415 1.415l-4.282-4.283A8.96 8.96 0 0 1 11 20c-4.968 0-9-4.032-9-9s4.032-9 9-9s9 4.032 9 9a8.96 8.96 0 0 1-1.969 5.617m-2.006-.742A6.98 6.98 0 0 0 18 11c0-3.867-3.133-7-7-7s-7 3.133-7 7s3.133 7 7 7a6.98 6.98 0 0 0 4.875-1.975z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":9},"\u003Cpath fill=\"currentColor\" d=\"M10 7a7 7 0 0 0 12 4.9v.1c0 5.523-4.477 10-10 10S2 17.523 2 12S6.477 2 12 2h.1A6.98 6.98 0 0 0 10 7m-6 5a8 8 0 0 0 15.062 3.762A9 9 0 0 1 8.238 4.938A8 8 0 0 0 4 12\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":11},"\u003Cpath fill=\"currentColor\" d=\"M12 18a6 6 0 1 1 0-12a6 6 0 0 1 0 12m0-2a4 4 0 1 0 0-8a4 4 0 0 0 0 8M11 1h2v3h-2zm0 19h2v3h-2zM3.515 4.929l1.414-1.414L7.05 5.636L5.636 7.05zM16.95 18.364l1.414-1.414l2.121 2.121l-1.414 1.414zm2.121-14.85l1.414 1.415l-2.121 2.121l-1.414-1.414zM5.636 16.95l1.414 1.414l-2.121 2.121l-1.414-1.414zM23 11v2h-3v-2zM4 11v2H1v-2z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":13},"\u003Cpath fill=\"currentColor\" d=\"M3 4h18v2H3zm6 7h12v2H9zm-6 7h18v2H3z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":15},"\u003Cpath fill=\"currentColor\" d=\"m12 10.587l4.95-4.95l1.414 1.414l-4.95 4.95l4.95 4.95l-1.415 1.414l-4.95-4.95l-4.949 4.95l-1.414-1.415l4.95-4.95l-4.95-4.95L7.05 5.638z\"\u002F>",[17,22,26,30,34,38,42,46,50,54,58,62,66,70],{"path":18,"title":19,"meta":20},"\u002Fnotes\u002Fai\u002F01-llm-basics\u002F01-hello-llm","LLM 交互基础：透过现象看本质",{"date":-1,"tags":-1,"summary":-1,"lastUpdated":21},"2026-11-05T09:47:15.000Z",{"path":23,"title":24,"meta":25},"\u002Fnotes\u002Fai\u002F01-llm-basics\u002F02-streaming-and-prompts","进阶交互：流式传输与提示词工程",{"date":-1,"tags":-1,"summary":-1,"lastUpdated":21},{"path":27,"title":28,"meta":29},"\u002Fnotes\u002Fai\u002F01-llm-basics\u002F03-function-calling","结构化输出与 Function Calling",{"date":-1,"tags":-1,"summary":-1,"lastUpdated":21},{"path":31,"title":32,"meta":33},"\u002Fnotes\u002Fai\u002F02-agent-architecture\u002F01-tool-use","Agent 核心能力 ①：Tool Use（工具调用）",{"date":-1,"tags":-1,"summary":-1,"lastUpdated":21},{"path":35,"title":36,"meta":37},"\u002Fnotes\u002Fai\u002F02-agent-architecture\u002F02-mini-cursor-cli","实战项目：Mini Cursor（CLI 版）",{"date":-1,"tags":-1,"summary":-1,"lastUpdated":21},{"path":39,"title":40,"meta":41},"\u002Fnotes\u002Fai\u002F02-agent-architecture\u002F03-memory","Agent 核心能力 ②：Memory（记忆管理）",{"date":-1,"tags":-1,"summary":-1,"lastUpdated":21},{"path":43,"title":44,"meta":45},"\u002Fnotes\u002Fai\u002F02-agent-architecture\u002F04-planning","Agent 核心能力 ③：Planning（规划能力）",{"date":-1,"tags":-1,"summary":-1,"lastUpdated":21},{"path":47,"title":48,"meta":49},"\u002Fnotes\u002Fai\u002F02-agent-architecture\u002F05-review-diff-chunking","代码改了很多，AI 为什么只审了前面？",{"date":-1,"tags":-1,"summary":-1,"lastUpdated":21},{"path":51,"title":52,"meta":53},"\u002Fnotes\u002Fai\u002F02-agent-architecture","Agent 架构笔记",{"date":-1,"tags":-1,"summary":-1,"lastUpdated":21},{"path":55,"title":56,"meta":57},"\u002Fnotes\u002Fai\u002F03-rag\u002F01-vector-db-and-embeddings-node","RAG ①：Embeddings 与向量数据库入门（Node.js 优先）",{"date":-1,"tags":-1,"summary":-1,"lastUpdated":21},{"path":59,"title":60,"meta":61},"\u002Fnotes\u002Fai\u002F04-document-extraction\u002F01-ocr-field-evidence","OCR 读对了字，为什么地址仍然错？",{"date":-1,"tags":-1,"summary":-1,"lastUpdated":21},{"path":63,"title":64,"meta":65},"\u002Fnotes\u002Fai\u002F05-development-workflow\u002F01-task-recovery","AI 任务做一半，中断后怎么继续？",{"date":-1,"tags":-1,"summary":-1,"lastUpdated":21},{"path":67,"title":68,"meta":69},"\u002Fnotes\u002Fai","AI 应用开发",{"date":-1,"tags":-1,"summary":-1,"lastUpdated":21},{"path":71,"title":72,"meta":73},"\u002Fnotes\u002Fai\u002Froadmap","AI Agent 全栈开发学习路线图 (Roadmap)",{"date":-1,"tags":-1,"summary":-1,"lastUpdated":21},{"id":75,"type":76,"sourcePath":77,"routePath":71,"path":71,"title":72,"updatedAt":21,"meta":78,"body":80,"toc":1257},"bm90ZTpub3Rlcy9haS9yb2FkbWFwLm1k","note","notes\u002Fai\u002Froadmap.md",{"id":75,"type":76,"sourcePath":77,"slug":79,"title":72,"updatedAt":21,"lastUpdated":21},"ai\u002Froadmap",{"type":81,"children":82},"root",[83,91,114,121,126,133,208,214,223,336,342,350,414,418,424,429,435,481,487,495,561,567,575,624,627,633,638,644,719,725,832,838,856,859,865,870,876,884,962,968,1061,1064,1070,1075,1081,1117,1123,1157,1160,1165,1199,1204],{"type":84,"tag":85,"props":86,"children":88},"element","h1",{"id":87},"ai-agent-全栈开发学习路线图-roadmap",[89],{"type":90,"value":72},"text",{"type":84,"tag":92,"props":93,"children":94},"blockquote",{},[95],{"type":84,"tag":96,"props":97,"children":98},"p",{},[99,105,107,112],{"type":84,"tag":100,"props":101,"children":102},"strong",{},[103],{"type":90,"value":104},"目标受众",{"type":90,"value":106},"：Web 全栈开发者 (具备 HTTP, JSON, DB, 异步编程基础)\n",{"type":84,"tag":100,"props":108,"children":109},{},[110],{"type":90,"value":111},"当前阶段",{"type":90,"value":113},"：AI Agent 零基础入门 -> 能够独立开发复杂 Agent 应用",{"type":84,"tag":115,"props":116,"children":118},"h2",{"id":117},"第一阶段大模型交互基础-the-hello-world-of-ai",[119],{"type":90,"value":120},"第一阶段：大模型交互基础 (The \"Hello World\" of AI)",{"type":84,"tag":96,"props":122,"children":123},{},[124],{"type":90,"value":125},"在这个阶段，你需要脱离 Web UI (如 ChatGPT 网页版)，学会通过代码与 LLM (大语言模型) 进行“裸”交互。理解 LLM 本质上是一个“概率预测函数”。",{"type":84,"tag":127,"props":128,"children":130},"h3",{"id":129},"_11-llm-基础概念科普",[131],{"type":90,"value":132},"1.1 LLM 基础概念科普",{"type":84,"tag":134,"props":135,"children":138},"ul",{"className":136},[137],"contains-task-list",[139,160,193],{"type":84,"tag":140,"props":141,"children":144},"li",{"className":142},[143],"task-list-item",[145,151,153,158],{"type":84,"tag":146,"props":147,"children":150},"input",{"disabled":148,"type":149},true,"checkbox",[],{"type":90,"value":152}," ",{"type":84,"tag":100,"props":154,"children":155},{},[156],{"type":90,"value":157},"什么是 LLM",{"type":90,"value":159},"：理解 Token (词元) 的概念，Context Window (上下文窗口) 的限制。",{"type":84,"tag":140,"props":161,"children":163},{"className":162},[143],[164,167,168,173,175],{"type":84,"tag":146,"props":165,"children":166},{"disabled":148,"type":149},[],{"type":90,"value":152},{"type":84,"tag":100,"props":169,"children":170},{},[171],{"type":90,"value":172},"Prompt Engineering (提示词工程)",{"type":90,"value":174},"：\n",{"type":84,"tag":134,"props":176,"children":177},{},[178,183,188],{"type":84,"tag":140,"props":179,"children":180},{},[181],{"type":90,"value":182},"Zero-shot, One-shot, Few-shot prompting。",{"type":84,"tag":140,"props":184,"children":185},{},[186],{"type":90,"value":187},"Chain of Thought (CoT) 思维链。",{"type":84,"tag":140,"props":189,"children":190},{},[191],{"type":90,"value":192},"System Prompt vs User Prompt 的区别。",{"type":84,"tag":140,"props":194,"children":196},{"className":195},[143],[197,200,201,206],{"type":84,"tag":146,"props":198,"children":199},{"disabled":148,"type":149},[],{"type":90,"value":152},{"type":84,"tag":100,"props":202,"children":203},{},[204],{"type":90,"value":205},"Temperature & Top_p",{"type":90,"value":207},"：理解控制输出随机性和创造性的参数。",{"type":84,"tag":127,"props":209,"children":211},{"id":210},"_12-openai-api-协议-行业标准",[212],{"type":90,"value":213},"1.2 OpenAI API 协议 (行业标准)",{"type":84,"tag":96,"props":215,"children":216},{},[217],{"type":84,"tag":218,"props":219,"children":220},"em",{},[221],{"type":90,"value":222},"这是目前所有 LLM 都在兼容的接口标准，必须精通。",{"type":84,"tag":134,"props":224,"children":226},{"className":225},[137],[227,271,286,321],{"type":84,"tag":140,"props":228,"children":230},{"className":229},[143],[231,234,235,240,241],{"type":84,"tag":146,"props":232,"children":233},{"disabled":148,"type":149},[],{"type":90,"value":152},{"type":84,"tag":100,"props":236,"children":237},{},[238],{"type":90,"value":239},"Chat Completions API",{"type":90,"value":174},{"type":84,"tag":134,"props":242,"children":243},{},[244,266],{"type":84,"tag":140,"props":245,"children":246},{},[247,249,256,258,264],{"type":90,"value":248},"掌握 ",{"type":84,"tag":250,"props":251,"children":253},"code",{"className":252},[],[254],{"type":90,"value":255},"messages",{"type":90,"value":257}," 数组结构 (",{"type":84,"tag":250,"props":259,"children":261},{"className":260},[],[262],{"type":90,"value":263},"role",{"type":90,"value":265},": system, user, assistant)。",{"type":84,"tag":140,"props":267,"children":268},{},[269],{"type":90,"value":270},"理解 API 的无状态性 (Statelessness) —— 为什么每次都要发历史记录？",{"type":84,"tag":140,"props":272,"children":274},{"className":273},[143],[275,278,279,284],{"type":84,"tag":146,"props":276,"children":277},{"disabled":148,"type":149},[],{"type":90,"value":152},{"type":84,"tag":100,"props":280,"children":281},{},[282],{"type":90,"value":283},"Completions API (Legacy)",{"type":90,"value":285},"：了解即可，知道它与 Chat API 的区别（单次补全 vs 对话）。",{"type":84,"tag":140,"props":287,"children":289},{"className":288},[143],[290,293,294,299,300],{"type":84,"tag":146,"props":291,"children":292},{"disabled":148,"type":149},[],{"type":90,"value":152},{"type":84,"tag":100,"props":295,"children":296},{},[297],{"type":90,"value":298},"Streaming (流式传输)",{"type":90,"value":174},{"type":84,"tag":134,"props":301,"children":302},{},[303,308],{"type":84,"tag":140,"props":304,"children":305},{},[306],{"type":90,"value":307},"Server-Sent Events (SSE) 协议原理。",{"type":84,"tag":140,"props":309,"children":310},{},[311,313,319],{"type":90,"value":312},"如何在前端\u002F后端处理 ",{"type":84,"tag":250,"props":314,"children":316},{"className":315},[],[317],{"type":90,"value":318},"delta",{"type":90,"value":320}," 数据块，实现“打字机”效果。",{"type":84,"tag":140,"props":322,"children":324},{"className":323},[143],[325,328,329,334],{"type":84,"tag":146,"props":326,"children":327},{"disabled":148,"type":149},[],{"type":90,"value":152},{"type":84,"tag":100,"props":330,"children":331},{},[332],{"type":90,"value":333},"Embeddings API",{"type":90,"value":335},"：理解如何将文本转化为向量 (Vector)，这是 RAG 的基石。",{"type":84,"tag":127,"props":337,"children":339},{"id":338},"_13-结构化输出-structured-output",[340],{"type":90,"value":341},"1.3 结构化输出 (Structured Output)",{"type":84,"tag":96,"props":343,"children":344},{},[345],{"type":84,"tag":218,"props":346,"children":347},{},[348],{"type":90,"value":349},"让 LLM 不再只会瞎聊，而是生成 JSON，这是接入现有系统的关键。",{"type":84,"tag":134,"props":351,"children":353},{"className":352},[137],[354,369],{"type":84,"tag":140,"props":355,"children":357},{"className":356},[143],[358,361,362,367],{"type":84,"tag":146,"props":359,"children":360},{"disabled":148,"type":149},[],{"type":90,"value":152},{"type":84,"tag":100,"props":363,"children":364},{},[365],{"type":90,"value":366},"JSON Mode",{"type":90,"value":368},"：强制模型输出合法的 JSON 字符串。",{"type":84,"tag":140,"props":370,"children":372},{"className":371},[143],[373,376,377,382,383],{"type":84,"tag":146,"props":374,"children":375},{"disabled":148,"type":149},[],{"type":90,"value":152},{"type":84,"tag":100,"props":378,"children":379},{},[380],{"type":90,"value":381},"Function Calling (核心)",{"type":90,"value":174},{"type":84,"tag":134,"props":384,"children":385},{},[386,399,404],{"type":84,"tag":140,"props":387,"children":388},{},[389,391,397],{"type":90,"value":390},"定义 ",{"type":84,"tag":250,"props":392,"children":394},{"className":393},[],[395],{"type":90,"value":396},"tools",{"type":90,"value":398}," schema。",{"type":84,"tag":140,"props":400,"children":401},{},[402],{"type":90,"value":403},"理解模型如何“请求”调用函数，以及开发者如何“执行”函数并回传结果。",{"type":84,"tag":140,"props":405,"children":406},{},[407,412],{"type":84,"tag":100,"props":408,"children":409},{},[410],{"type":90,"value":411},"思考",{"type":90,"value":413},"：Output Parser (正则解析) vs Function Calling (原生支持) 的优劣。",{"type":84,"tag":415,"props":416,"children":417},"hr",{},[],{"type":84,"tag":115,"props":419,"children":421},{"id":420},"第二阶段agent-核心架构-从-chatbot-到-agent",[422],{"type":90,"value":423},"第二阶段：Agent 核心架构 (从 Chatbot 到 Agent)",{"type":84,"tag":96,"props":425,"children":426},{},[427],{"type":90,"value":428},"Agent = LLM + Planning + Memory + Tools。这一阶段是让模型具备“手脚”和“大脑”。",{"type":84,"tag":127,"props":430,"children":432},{"id":431},"_21-tool-use-工具调用能力",[433],{"type":90,"value":434},"2.1 Tool Use (工具调用能力)",{"type":84,"tag":134,"props":436,"children":438},{"className":437},[137],[439,454],{"type":84,"tag":140,"props":440,"children":442},{"className":441},[143],[443,446,447,452],{"type":84,"tag":146,"props":444,"children":445},{"disabled":148,"type":149},[],{"type":90,"value":152},{"type":84,"tag":100,"props":448,"children":449},{},[450],{"type":90,"value":451},"基础工具封装",{"type":90,"value":453},"：编写一个简单的 Python\u002FNode.js 函数（如查询天气、读取本地文件），并通过 Function Calling 让 LLM 自动调用。",{"type":84,"tag":140,"props":455,"children":457},{"className":456},[143],[458,461,462,467,468],{"type":84,"tag":146,"props":459,"children":460},{"disabled":148,"type":149},[],{"type":90,"value":152},{"type":84,"tag":100,"props":463,"children":464},{},[465],{"type":90,"value":466},"实战项目：Mini Cursor (CLI版)",{"type":90,"value":174},{"type":84,"tag":134,"props":469,"children":470},{},[471,476],{"type":84,"tag":140,"props":472,"children":473},{},[474],{"type":90,"value":475},"目标：让 LLM 能够读取代码文件、理解内容、并调用文件系统 API 修改代码。",{"type":84,"tag":140,"props":477,"children":478},{},[479],{"type":90,"value":480},"难点：如何处理文件读取的 Token 消耗？如何保证修改的准确性？",{"type":84,"tag":127,"props":482,"children":484},{"id":483},"_22-memory-记忆管理",[485],{"type":90,"value":486},"2.2 Memory (记忆管理)",{"type":84,"tag":96,"props":488,"children":489},{},[490],{"type":84,"tag":218,"props":491,"children":492},{},[493],{"type":90,"value":494},"解决 Context Window 有限的问题。",{"type":84,"tag":134,"props":496,"children":498},{"className":497},[137],[499,514],{"type":84,"tag":140,"props":500,"children":502},{"className":501},[143],[503,506,507,512],{"type":84,"tag":146,"props":504,"children":505},{"disabled":148,"type":149},[],{"type":90,"value":152},{"type":84,"tag":100,"props":508,"children":509},{},[510],{"type":90,"value":511},"Short-term Memory",{"type":90,"value":513},"：简单的消息列表传递。",{"type":84,"tag":140,"props":515,"children":517},{"className":516},[143],[518,521,522,527,528],{"type":84,"tag":146,"props":519,"children":520},{"disabled":148,"type":149},[],{"type":90,"value":152},{"type":84,"tag":100,"props":523,"children":524},{},[525],{"type":90,"value":526},"Long-term Memory 策略",{"type":90,"value":174},{"type":84,"tag":134,"props":529,"children":530},{},[531,541,551],{"type":84,"tag":140,"props":532,"children":533},{},[534,539],{"type":84,"tag":100,"props":535,"children":536},{},[537],{"type":90,"value":538},"Buffer Window",{"type":90,"value":540},"：只保留最近 N 轮对话（截断）。",{"type":84,"tag":140,"props":542,"children":543},{},[544,549],{"type":84,"tag":100,"props":545,"children":546},{},[547],{"type":90,"value":548},"Summary",{"type":90,"value":550},"：让 LLM 定期总结之前的对话内容（总结）。",{"type":84,"tag":140,"props":552,"children":553},{},[554,559],{"type":84,"tag":100,"props":555,"children":556},{},[557],{"type":90,"value":558},"Vector Store",{"type":90,"value":560},"：将历史对话存入向量库，按需检索（检索）。",{"type":84,"tag":127,"props":562,"children":564},{"id":563},"_23-planning-规划能力",[565],{"type":90,"value":566},"2.3 Planning (规划能力)",{"type":84,"tag":96,"props":568,"children":569},{},[570],{"type":84,"tag":218,"props":571,"children":572},{},[573],{"type":90,"value":574},"让 Agent 解决复杂问题，而不是单步操作。",{"type":84,"tag":134,"props":576,"children":578},{"className":577},[137],[579,594,609],{"type":84,"tag":140,"props":580,"children":582},{"className":581},[143],[583,586,587,592],{"type":84,"tag":146,"props":584,"children":585},{"disabled":148,"type":149},[],{"type":90,"value":152},{"type":84,"tag":100,"props":588,"children":589},{},[590],{"type":90,"value":591},"ReAct 模式 (Reason + Act)",{"type":90,"value":593},"：学习 Agent 如何“思考 -> 行动 -> 观察结果 -> 再思考”。",{"type":84,"tag":140,"props":595,"children":597},{"className":596},[143],[598,601,602,607],{"type":84,"tag":146,"props":599,"children":600},{"disabled":148,"type":149},[],{"type":90,"value":152},{"type":84,"tag":100,"props":603,"children":604},{},[605],{"type":90,"value":606},"Plan-and-Solve",{"type":90,"value":608},"：先生成完整计划，再逐步执行。",{"type":84,"tag":140,"props":610,"children":612},{"className":611},[143],[613,616,617,622],{"type":84,"tag":146,"props":614,"children":615},{"disabled":148,"type":149},[],{"type":90,"value":152},{"type":84,"tag":100,"props":618,"children":619},{},[620],{"type":90,"value":621},"Reflection (反思)",{"type":90,"value":623},"：Agent 执行出错时，如何让它自我修正？",{"type":84,"tag":415,"props":625,"children":626},{},[],{"type":84,"tag":115,"props":628,"children":630},{"id":629},"第三阶段rag-检索增强生成-给-agent-外挂知识库",[631],{"type":90,"value":632},"第三阶段：RAG (检索增强生成) - 给 Agent 外挂知识库",{"type":84,"tag":96,"props":634,"children":635},{},[636],{"type":90,"value":637},"RAG 是目前企业级应用最广泛的技术，解决了 LLM 知识滞后和幻觉问题。",{"type":84,"tag":127,"props":639,"children":641},{"id":640},"_31-向量与数据库",[642],{"type":90,"value":643},"3.1 向量与数据库",{"type":84,"tag":134,"props":645,"children":647},{"className":646},[137],[648,696],{"type":84,"tag":140,"props":649,"children":651},{"className":650},[143],[652,655,656,661,662],{"type":84,"tag":146,"props":653,"children":654},{"disabled":148,"type":149},[],{"type":90,"value":152},{"type":84,"tag":100,"props":657,"children":658},{},[659],{"type":90,"value":660},"Vector Database (向量数据库)",{"type":90,"value":174},{"type":84,"tag":134,"props":663,"children":664},{},[665,691],{"type":84,"tag":140,"props":666,"children":667},{},[668,670,675,677,682,684,689],{"type":90,"value":669},"学习 ",{"type":84,"tag":100,"props":671,"children":672},{},[673],{"type":90,"value":674},"Milvus",{"type":90,"value":676}," (生产级)、",{"type":84,"tag":100,"props":678,"children":679},{},[680],{"type":90,"value":681},"Chroma",{"type":90,"value":683}," (轻量级) 或 ",{"type":84,"tag":100,"props":685,"children":686},{},[687],{"type":90,"value":688},"pgvector",{"type":90,"value":690}," (PostgreSQL插件)。",{"type":84,"tag":140,"props":692,"children":693},{},[694],{"type":90,"value":695},"核心概念：Collection, Dimension, Metric Type (L2, IP, Cosine)。",{"type":84,"tag":140,"props":697,"children":699},{"className":698},[143],[700,703,704,709,711,717],{"type":84,"tag":146,"props":701,"children":702},{"disabled":148,"type":149},[],{"type":90,"value":152},{"type":84,"tag":100,"props":705,"children":706},{},[707],{"type":90,"value":708},"Embedding Models",{"type":90,"value":710},"：OpenAI ",{"type":84,"tag":250,"props":712,"children":714},{"className":713},[],[715],{"type":90,"value":716},"text-embedding-3",{"type":90,"value":718},", HuggingFace 本地模型。",{"type":84,"tag":127,"props":720,"children":722},{"id":721},"_32-rag-核心流程-etl-for-ai",[723],{"type":90,"value":724},"3.2 RAG 核心流程 (ETL for AI)",{"type":84,"tag":134,"props":726,"children":728},{"className":727},[137],[729,744,790,817],{"type":84,"tag":140,"props":730,"children":732},{"className":731},[143],[733,736,737,742],{"type":84,"tag":146,"props":734,"children":735},{"disabled":148,"type":149},[],{"type":90,"value":152},{"type":84,"tag":100,"props":738,"children":739},{},[740],{"type":90,"value":741},"Document Loading",{"type":90,"value":743},"：处理 PDF, Markdown, HTML 等格式。",{"type":84,"tag":140,"props":745,"children":747},{"className":746},[143],[748,751,752,757,758],{"type":84,"tag":146,"props":749,"children":750},{"disabled":148,"type":149},[],{"type":90,"value":152},{"type":84,"tag":100,"props":753,"children":754},{},[755],{"type":90,"value":756},"Text Splitting (切分)",{"type":90,"value":174},{"type":84,"tag":134,"props":759,"children":760},{},[761,766,778],{"type":84,"tag":140,"props":762,"children":763},{},[764],{"type":90,"value":765},"为什么不能直接切？",{"type":84,"tag":140,"props":767,"children":768},{},[769,770,776],{"type":90,"value":669},{"type":84,"tag":250,"props":771,"children":773},{"className":772},[],[774],{"type":90,"value":775},"RecursiveCharacterTextSplitter",{"type":90,"value":777}," (按语义结构切分)。",{"type":84,"tag":140,"props":779,"children":780},{},[781,782,788],{"type":90,"value":669},{"type":84,"tag":250,"props":783,"children":785},{"className":784},[],[786],{"type":90,"value":787},"MarkdownHeaderTextSplitter",{"type":90,"value":789},"。",{"type":84,"tag":140,"props":791,"children":793},{"className":792},[143],[794,797,798,803,804],{"type":84,"tag":146,"props":795,"children":796},{"disabled":148,"type":149},[],{"type":90,"value":152},{"type":84,"tag":100,"props":799,"children":800},{},[801],{"type":90,"value":802},"Retrieval (检索)",{"type":90,"value":174},{"type":84,"tag":134,"props":805,"children":806},{},[807,812],{"type":84,"tag":140,"props":808,"children":809},{},[810],{"type":90,"value":811},"相似度搜索 (Similarity Search)。",{"type":84,"tag":140,"props":813,"children":814},{},[815],{"type":90,"value":816},"MMR (最大边际相关性) 去重。",{"type":84,"tag":140,"props":818,"children":820},{"className":819},[143],[821,824,825,830],{"type":84,"tag":146,"props":822,"children":823},{"disabled":148,"type":149},[],{"type":90,"value":152},{"type":84,"tag":100,"props":826,"children":827},{},[828],{"type":90,"value":829},"Rerank (重排序)",{"type":90,"value":831},"：检索出 100 条后，用高精度模型精选前 5 条。",{"type":84,"tag":127,"props":833,"children":835},{"id":834},"_33-实战项目电子书技术文档问答助手",[836],{"type":90,"value":837},"3.3 实战项目：电子书\u002F技术文档问答助手",{"type":84,"tag":134,"props":839,"children":840},{},[841,846,851],{"type":84,"tag":140,"props":842,"children":843},{},[844],{"type":90,"value":845},"搭建 Milvus 环境。",{"type":84,"tag":140,"props":847,"children":848},{},[849],{"type":90,"value":850},"编写脚本将文档向量化入库。",{"type":84,"tag":140,"props":852,"children":853},{},[854],{"type":90,"value":855},"构建 RAG 链：用户提问 -> 检索相关片段 -> 组装 Prompt -> LLM 回答。",{"type":84,"tag":415,"props":857,"children":858},{},[],{"type":84,"tag":115,"props":860,"children":862},{"id":861},"第四阶段协议标准与高级生态-mcp-frameworks",[863],{"type":90,"value":864},"第四阶段：协议标准与高级生态 (MCP & Frameworks)",{"type":84,"tag":96,"props":866,"children":867},{},[868],{"type":90,"value":869},"全栈开发者需要关注标准化和复用性，避免重复造轮子。",{"type":84,"tag":127,"props":871,"children":873},{"id":872},"_41-mcp-model-context-protocol",[874],{"type":90,"value":875},"4.1 MCP (Model Context Protocol)",{"type":84,"tag":96,"props":877,"children":878},{},[879],{"type":84,"tag":218,"props":880,"children":881},{},[882],{"type":90,"value":883},"这是 Anthropic 提出的新标准，旨在统一 AI 连接数据的接口，非常重要。",{"type":84,"tag":134,"props":885,"children":887},{"className":886},[137],[888,903,918],{"type":84,"tag":140,"props":889,"children":891},{"className":890},[143],[892,895,896,901],{"type":84,"tag":146,"props":893,"children":894},{"disabled":148,"type":149},[],{"type":90,"value":152},{"type":84,"tag":100,"props":897,"children":898},{},[899],{"type":90,"value":900},"MCP 基础",{"type":90,"value":902},"：理解 Client, Server, Host 的架构。",{"type":84,"tag":140,"props":904,"children":906},{"className":905},[143],[907,910,911,916],{"type":84,"tag":146,"props":908,"children":909},{"disabled":148,"type":149},[],{"type":90,"value":152},{"type":84,"tag":100,"props":912,"children":913},{},[914],{"type":90,"value":915},"跨进程调用",{"type":90,"value":917},"：学习如何通过 stdio 或 SSE 连接本地\u002F远程的 MCP Server。",{"type":84,"tag":140,"props":919,"children":921},{"className":920},[143],[922,925,926,931,932],{"type":84,"tag":146,"props":923,"children":924},{"disabled":148,"type":149},[],{"type":90,"value":152},{"type":84,"tag":100,"props":927,"children":928},{},[929],{"type":90,"value":930},"实战",{"type":90,"value":174},{"type":84,"tag":134,"props":933,"children":934},{},[935,946,957],{"type":84,"tag":140,"props":936,"children":937},{},[938,940,945],{"type":90,"value":939},"部署一个 ",{"type":84,"tag":100,"props":941,"children":942},{},[943],{"type":90,"value":944},"Filesystem MCP Server",{"type":90,"value":789},{"type":84,"tag":140,"props":947,"children":948},{},[949,950,955],{"type":90,"value":939},{"type":84,"tag":100,"props":951,"children":952},{},[953],{"type":90,"value":954},"Browser MCP Server",{"type":90,"value":956}," (让 Agent 能控制浏览器)。",{"type":84,"tag":140,"props":958,"children":959},{},[960],{"type":90,"value":961},"使用 LangChain\u002FLangGraph 复用现有的 MCP Server (如高德地图 MCP)。",{"type":84,"tag":127,"props":963,"children":965},{"id":964},"_42-开发框架选择-langchain-vs-其它",[966],{"type":90,"value":967},"4.2 开发框架选择 (LangChain vs 其它)",{"type":84,"tag":134,"props":969,"children":971},{"className":970},[137],[972,1004,1046],{"type":84,"tag":140,"props":973,"children":975},{"className":974},[143],[976,979,980,985,986],{"type":84,"tag":146,"props":977,"children":978},{"disabled":148,"type":149},[],{"type":90,"value":152},{"type":84,"tag":100,"props":981,"children":982},{},[983],{"type":90,"value":984},"LangChain \u002F LangGraph",{"type":90,"value":174},{"type":84,"tag":134,"props":987,"children":988},{},[989,994,999],{"type":84,"tag":140,"props":990,"children":991},{},[992],{"type":90,"value":993},"优点：生态最丰富，组件最全。",{"type":84,"tag":140,"props":995,"children":996},{},[997],{"type":90,"value":998},"缺点：抽象层过厚，调试困难（全栈开发者可能会觉得“黑盒”）。",{"type":84,"tag":140,"props":1000,"children":1001},{},[1002],{"type":90,"value":1003},"重点学习：LangGraph (基于图的状态机，更适合构建复杂 Agent)。",{"type":84,"tag":140,"props":1005,"children":1007},{"className":1006},[143],[1008,1011,1012,1017,1019],{"type":84,"tag":146,"props":1009,"children":1010},{"disabled":148,"type":149},[],{"type":90,"value":152},{"type":84,"tag":100,"props":1013,"children":1014},{},[1015],{"type":90,"value":1016},"Vercel AI SDK",{"type":90,"value":1018}," (前端全栈首选)：\n",{"type":84,"tag":134,"props":1020,"children":1021},{},[1022,1027],{"type":84,"tag":140,"props":1023,"children":1024},{},[1025],{"type":90,"value":1026},"极度适合 Next.js\u002FNode.js 开发者。",{"type":84,"tag":140,"props":1028,"children":1029},{},[1030,1036,1038,1044],{"type":84,"tag":250,"props":1031,"children":1033},{"className":1032},[],[1034],{"type":90,"value":1035},"useChat",{"type":90,"value":1037},", ",{"type":84,"tag":250,"props":1039,"children":1041},{"className":1040},[],[1042],{"type":90,"value":1043},"streamText",{"type":90,"value":1045}," 等 API 非常符合 Web 开发直觉。",{"type":84,"tag":140,"props":1047,"children":1049},{"className":1048},[143],[1050,1053,1054,1059],{"type":84,"tag":146,"props":1051,"children":1052},{"disabled":148,"type":149},[],{"type":90,"value":152},{"type":84,"tag":100,"props":1055,"children":1056},{},[1057],{"type":90,"value":1058},"LlamaIndex",{"type":90,"value":1060},"：专注于数据索引和 RAG，数据处理能力强于 LangChain。",{"type":84,"tag":415,"props":1062,"children":1063},{},[],{"type":84,"tag":115,"props":1065,"children":1067},{"id":1066},"第五阶段工程化与部署-production",[1068],{"type":90,"value":1069},"第五阶段：工程化与部署 (Production)",{"type":84,"tag":96,"props":1071,"children":1072},{},[1073],{"type":90,"value":1074},"从 Demo 到产品的最后一步。",{"type":84,"tag":127,"props":1076,"children":1078},{"id":1077},"_51-评估与监控-eval-ops",[1079],{"type":90,"value":1080},"5.1 评估与监控 (Eval & Ops)",{"type":84,"tag":134,"props":1082,"children":1084},{"className":1083},[137],[1085],{"type":84,"tag":140,"props":1086,"children":1088},{"className":1087},[143],[1089,1092,1093,1098,1099],{"type":84,"tag":146,"props":1090,"children":1091},{"disabled":148,"type":149},[],{"type":90,"value":152},{"type":84,"tag":100,"props":1094,"children":1095},{},[1096],{"type":90,"value":1097},"LangSmith \u002F LangFuse",{"type":90,"value":174},{"type":84,"tag":134,"props":1100,"children":1101},{},[1102,1107,1112],{"type":84,"tag":140,"props":1103,"children":1104},{},[1105],{"type":90,"value":1106},"追踪 Agent 的思考过程 (Trace)。",{"type":84,"tag":140,"props":1108,"children":1109},{},[1110],{"type":90,"value":1111},"统计 Token 消耗和成本。",{"type":84,"tag":140,"props":1113,"children":1114},{},[1115],{"type":90,"value":1116},"评估回答质量 (让 LLM 给 LLM 打分)。",{"type":84,"tag":127,"props":1118,"children":1120},{"id":1119},"_52-部署架构",[1121],{"type":90,"value":1122},"5.2 部署架构",{"type":84,"tag":134,"props":1124,"children":1126},{"className":1125},[137],[1127,1142],{"type":84,"tag":140,"props":1128,"children":1130},{"className":1129},[143],[1131,1134,1135,1140],{"type":84,"tag":146,"props":1132,"children":1133},{"disabled":148,"type":149},[],{"type":90,"value":152},{"type":84,"tag":100,"props":1136,"children":1137},{},[1138],{"type":90,"value":1139},"后端服务",{"type":90,"value":1141},"：FastAPI (Python) 或 NestJS\u002FExpress (Node.js)。",{"type":84,"tag":140,"props":1143,"children":1145},{"className":1144},[143],[1146,1149,1150,1155],{"type":84,"tag":146,"props":1147,"children":1148},{"disabled":148,"type":149},[],{"type":90,"value":152},{"type":84,"tag":100,"props":1151,"children":1152},{},[1153],{"type":90,"value":1154},"模型部署 (可选)",{"type":90,"value":1156},"：学习使用 Ollama 在本地跑 Llama 3 \u002F Qwen 等开源模型，替代 OpenAI API 降低开发成本。",{"type":84,"tag":415,"props":1158,"children":1159},{},[],{"type":84,"tag":115,"props":1161,"children":1163},{"id":1162},"学习资源推荐",[1164],{"type":90,"value":1162},{"type":84,"tag":1166,"props":1167,"children":1168},"ol",{},[1169,1179,1189],{"type":84,"tag":140,"props":1170,"children":1171},{},[1172,1177],{"type":84,"tag":100,"props":1173,"children":1174},{},[1175],{"type":90,"value":1176},"官方文档 (必读)",{"type":90,"value":1178},": OpenAI API Docs, Anthropic MCP Docs.",{"type":84,"tag":140,"props":1180,"children":1181},{},[1182,1187],{"type":84,"tag":100,"props":1183,"children":1184},{},[1185],{"type":90,"value":1186},"教程",{"type":90,"value":1188},": DeepLearning.AI 的短课程 (Andrew Ng 出品，质量极高且免费)。",{"type":84,"tag":140,"props":1190,"children":1191},{},[1192,1197],{"type":84,"tag":100,"props":1193,"children":1194},{},[1195],{"type":90,"value":1196},"代码库",{"type":90,"value":1198},": LangChain 官方示例, Vercel AI SDK 示例。",{"type":84,"tag":115,"props":1200,"children":1202},{"id":1201},"建议的学习路径顺序",[1203],{"type":90,"value":1201},{"type":84,"tag":1166,"props":1205,"children":1206},{},[1207,1217,1227,1237,1247],{"type":84,"tag":140,"props":1208,"children":1209},{},[1210,1215],{"type":84,"tag":100,"props":1211,"children":1212},{},[1213],{"type":90,"value":1214},"Python\u002FNode.js 脚本裸调 OpenAI API",{"type":90,"value":1216}," (弄懂原理)。",{"type":84,"tag":140,"props":1218,"children":1219},{},[1220,1225],{"type":84,"tag":100,"props":1221,"children":1222},{},[1223],{"type":90,"value":1224},"实现简单的 RAG",{"type":90,"value":1226}," (弄懂向量检索)。",{"type":84,"tag":140,"props":1228,"children":1229},{},[1230,1235],{"type":84,"tag":100,"props":1231,"children":1232},{},[1233],{"type":90,"value":1234},"手写一个简单的 ReAct Loop",{"type":90,"value":1236}," (弄懂 Agent 循环)。",{"type":84,"tag":140,"props":1238,"children":1239},{},[1240,1245],{"type":84,"tag":100,"props":1241,"children":1242},{},[1243],{"type":90,"value":1244},"学习 LangGraph\u002FVercel AI SDK",{"type":90,"value":1246}," (使用框架提效)。",{"type":84,"tag":140,"props":1248,"children":1249},{},[1250,1255],{"type":84,"tag":100,"props":1251,"children":1252},{},[1253],{"type":90,"value":1254},"研究 MCP",{"type":90,"value":1256}," (扩展能力边界)。",{"title":1258,"searchDepth":1259,"depth":1259,"links":1260},"",2,[1261,1267,1272,1277,1281,1285,1286],{"id":117,"depth":1259,"text":120,"children":1262},[1263,1265,1266],{"id":129,"depth":1264,"text":132},3,{"id":210,"depth":1264,"text":213},{"id":338,"depth":1264,"text":341},{"id":420,"depth":1259,"text":423,"children":1268},[1269,1270,1271],{"id":431,"depth":1264,"text":434},{"id":483,"depth":1264,"text":486},{"id":563,"depth":1264,"text":566},{"id":629,"depth":1259,"text":632,"children":1273},[1274,1275,1276],{"id":640,"depth":1264,"text":643},{"id":721,"depth":1264,"text":724},{"id":834,"depth":1264,"text":837},{"id":861,"depth":1259,"text":864,"children":1278},[1279,1280],{"id":872,"depth":1264,"text":875},{"id":964,"depth":1264,"text":967},{"id":1066,"depth":1259,"text":1069,"children":1282},[1283,1284],{"id":1077,"depth":1264,"text":1080},{"id":1119,"depth":1264,"text":1122},{"id":1162,"depth":1259,"text":1162},{"id":1201,"depth":1259,"text":1201},{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":1288},"\u003Cpath fill=\"currentColor\" d=\"m10.828 12l4.95 4.95l-1.414 1.415L8 12l6.364-6.364l1.414 1.414z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":1290},"\u003Cpath fill=\"currentColor\" d=\"M3 4h18v2H3zm0 7h12v2H3zm0 7h18v2H3z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":1292},"\u003Cpath fill=\"currentColor\" d=\"m13.172 12l-4.95-4.95l1.414-1.413L16 12l-6.364 6.364l-1.414-1.415z\"\u002F>"]