什么是Agent:Agent是指全流程自动执行的独立智能体1、记忆模块读取需求2、Planner规划拆解子步骤3、调用工具执行4、返回信息给LLM进行推理整理LLM大语言模型5、反思校验6、二次调用工具进行补充7、输出结果记忆模块读取需求短期记忆当前这一轮任务里的全部对话、用户指令、每一步执行结果(临时内存任务结束后删除长期记忆历史对话、用户偏好、之前做过的同类任务持久存储下次对话还能调取Planner规划拆解子步骤Planner拆解一个大任务为多个子任务每一个任务标记需要调用的工具/脚本Planner的执行步骤step1Planner读取历史上下文找到对应的“任务约束”任务约束人的要求step2判断完成任务需要的能力 / 工具step3自动拆解有序子任务带执行顺序Plannerstep4输出结构化计划给 Agent 执行Planner拓展功能动态重规划如果某一步执行失败Planner 会重新修改计划增加一轮补充搜索。任务优先级区分多目标需求时Planner 区分主次优先完成核心要求。子任务合并/拆分微调如果某一步工作量太大会再次拆分成更细的小步骤。调用工具执行Agent与工具之间的交互是通过MCP协议进行的MCP协议软件工具与AI大模型之间进行通信的协议采用json格式进行统一数据传输(类似于掉哟个API接口)Agent和Skill的关系Skill是封装好的工具库Agent里的Planner属于调度者负责调度特有的Skill例如Agent执行编译任务时会调用编译Skill包括编译工具和代码编译脚本Agent本地部署流程硬件评估、本地LLM部署Ollama、Python环境与Agent框架、配套组件向量库/工具、Agent代码开发、WebUI/API可视化、Docker容器私有化什么是Ollama:[大模型运行工具]Ollama出现前的部署步骤手动下载大模型文件、手动做模型量化压缩、手动配置GPU加速、显存分层加载、搭建HTTP接口供LangChain、Agent框架调用核心底层架构上层Go语言写的管理服务命令行工具(ollama pull/run/list)、后台HTTP API服务、模型下载、版本管理、多模型缓存、并发请求调度底层绑定llama.cpp推理引擎llama.cpp是C高性能推理库专门做CPU/GPU轻量化推理、GGUF量化模型加载自动调用NVIDIA CUDA、Mac Metal 硬件加速极致省显存liama.cpp是一套纯C/C编写无第三方深度学习框架的开源大模型推理库专门用于嵌入式设备离线运行LLM也是Ollama、LocalAI、koboldcpp所有本地AI工具底层依赖的核心引擎核心定位轻量化加载量化后的大模型权重完成文本推理计算不提供Web接口没有工具调用、没有对话逻辑只是底层算力底座为什么用C开发无Python解释器开销Python存在虚拟机、GC垃圾回收、动态类型损耗C编译为原生机械码内存占用更低、推理延迟大幅缩短极致轻量化跨硬件兼容不依赖PyTorch、TensorFlow等上GB的深度学习环境仅基础系统库即可编译自研GGUF量化格式专门设计了GGUF模型存储格式支持2/3/4/5/8bit量化把几十GB的原始模型压缩到几GB低配设备也能跑。量化本质降低权重数值精度牺牲极小模型效果换取显存/内存占用率CPU硬件加速优化内置SIMD向量指令集(AVX2、NEON)充分利用CPU多核并行没有显卡时仅靠CPU也能低速推理是纯本地离线最低门槛方案显存分层加载(mmap)支持分层加载模型一部分权重放GPU显存剩余发内存显存不足时自动交换不会直接报OOM崩溃llama.cpp内部核心模块分工ggml张量计算库子模块底层矩阵乘法向量运算实现所有大模型Transformer计算都靠ggml;针对量化权重重写了专用矩阵乘内核4bit/8bit量化运算速度远快于通用深度学习框架llama模型解析模块读取GGUF文件、解析模型结构(词表、层数、注意力头、RoPE位置编码等)、初始化模型上下文采样器模块实现温度、top_p、top_k、重复惩罚等文本生成策略控制模型输出风格硬件后端CPU SIMD普通电脑无显卡兜底方案MetalApple M1/M2/M3芯片GPU加速CUDAN卡显存加速速度提升数倍~数十倍OpenCLAMD、intel核显通用加速命令行交互程序自带main、sever等可执行文件编译后可直接本地聊天启动简易HTTP服务和Ollama的层级关系llama.cpp 底层推理内核负责读取GGUF模型、矩阵运算、硬件加速、token生成纯算力层缺点原生使用门槛高需要手动编译、手动下载转换模型、手动写启动参数、无模型管理Ollama 上层封装管理工具基于Go语言开发内部直接嵌入llama.cpp做了一层封装自动下载预转换好的GGUF模型自动识别硬件并配置CUDA/Metal参数封装OpenAI标准的HTTP接口模型版本管理、多模型切换、后台服务常驻llama.cpp发动机Ollama整车(方向盘、中控、包装发动机给普通人用)原生llama.cpp使用流程克隆源码本地C编译(需要GCC/CMake、CUDA工具链)下载原始大模型权重手动转换为GGUF量化文件手动编写启动命令指定线程数、GPU分层、上下文长度、量化精度运行./main做对话或./server启动简陋接口切换模型需要手动替换GGUF文件无统一管理命令而Ollama把以上步骤自动化一条ollama pull搞定本地Agent完整分层链路用户提问-LangGraph(Agent逻辑判断是否调用工具)-HTTP请求发送给Ollama服务-Ollama内部调用内置的llama.cpp内核-llama.cpp加载GGUF模型完成GPU/CPU的推理运算-文本结构逐层回传Agent整合输出最终答案Ollama和llama.cpp以及Agent上层应用与工具的通信LangGraph上层Agent框架--Ollama服务通信主体LangGraph/LangChain是HTTP客户端ollama serve后台进程是HTTP服务端协议L:HTTP/1.1,请求体JSON流式返回用SSE接口兼容OpenAI标准/v1/chat/completions,也原生/api/chat;流程LangGraph调用ChatOllama封装把历史对话打包成HTTP POST发给Ollama,等待推理结果再解析成消息对象简单说Agent业务逻辑层和本地大模型推理服务靠HTTP互通Ollama服务进程--底层llama.cpp内部也是HTTPOllama后台分两块ollama-http-server网关调度、内置独立llama.cpp推理服务实例ollama网关通过本地内网HTTP调用llama.cpp提供的/completion、/health接口下发推理任务llama.cpp只负责GGUF模型加载、张量计算不对外暴露公网端口仅本机回路HTTP调用MCPAgent_Application和Tools之间的数据格式做统一MCP Client嵌入在Agent宿主程序里(LangGraph、Claude、Cursor、OpenWebUI等)属于上层AI应用作用接收模型生成的工具调用指令转成MCP标准消息发给工具服务再把工具返回结果送回模型上下文MCP Sever:独立轻量进程封装一类工具能力文件读写数据库联网搜索代码沙箱本地API等一个MCP Sever只负责一类资源多个Sever可同时挂载给同一个AgentMCP底层传输方式(两种)本地进程通信stdio标准输入输出无网络端口本地工具首选远程跨机器Streamable HTTP/SEEHTTP长流式局域网/云端工具调用MCP和Ollama HTTP的层级区分Ollama HTTP:Agent--LLM推理引擎负责给模型发prompt、接收模型文字输出、本地大模型推理MCPAgent应用--外部工具/数据源负责模型要调用工具时标准化执行文件、数据库、搜索等外部操作Agent架构中prompt流程图核心功能极简模型管理(Docker式命令)GGUF量化权重(自动处理)内置兼容OpenAI标准HTTP API所有 Agent 框架LangChain、LangGraph、AutoGen、WebUIOpenWebUI不用改大量代码只替换接口地址就能把云端 GPT 换成本地私有模型这也是我们本地 Agent 部署必须用 Ollama 的根本原因全平台自动硬件加速完全离线、数据本地、隐私安全支持自定义模型类似Dockerfile,可以自定义专属Agent模型设置固定系统提示词修改温度绑定工具模板、合并微调权重、一条命令打包专属AI助手Docker容器化部署官方提供ollama/ollama镜像可和Agent服务、向量库一起用docker-compose一键编排离线服务器批量部署非常方便Ollama LLM底层推理引擎负责加载大模型、接收Agent发来的prompt、本地计算、返回模型回答、对外提供标准APILangGraph/LangChain Agent逻辑层负责思考判断、调用搜索/文件工具、循环工作流、记忆管理两者通过http://127.0.0.1::11434API通信缺一不可Ollama是[本地大脑]只负责思考输出文字LangGraph是[指挥系统]负责规划任务上网查询资料循环提问组合成完整智能AgentAgent框架纯手动搭建Agent框架消息管理区分用户输入AI回复工具返回缓存每一轮对话历史prompt组装每次调用Ollama拼接系统指令历史对话工具清单工具解析正则/JSON解析模型输出的工具调用指令区分调用那个MCP服务循环逻辑手写while循环、计数器、防止无限调用工具死循环分支判断if判断模型是直接回答还是要执行工具状态存储手动写全局变量/文件缓存会话断电丢失历史异常处理Ollama断开、MCP工具超时、模型输出格式错乱的捕获重试多会话隔离多用户同时提问手动区分各自对话上下文流式输出、日志监控、断点续跑、多智能体分工、流程调度引擎(图式调度角色多智能体调度)封装式Agent框架模块状态管理模块、LLM适配层、工具调度模块、消息标准化模块主流Agent框架分类LangGraph:定位单Agent可控、可视化状态图AutoGen:定位多智能体协作框架CrewAI:定位任务流水线Agent面向固定结构化工作OpenAI Agent SDK/LiamaindexLiamaindex:偏向RAG知识库增强Agent主打私有文档检索OpenAI官方Agent仅适配云端GPT不支持Ollama本地模型完整分层链路底层推理层Ollama llama.cpp只负责接收Prompt跑大模型推理输出文字没有任何“智能自主决策”能力不会管理工具循环对话中间调度层Agent框架(LangGraph)真正的“大脑智慧官”管理全局状态组装Prompt判断是否调用MCP工具控制循环分支流转任务工具能力层MCP Client MCP Sever文件、数据库、搜索等外部能力由框架触发执行顶层应用层Java/Python主程序、WebUI接收用户提问启动Agent框架会话LangGraph框架五大核心基础组件1、state全局共享状态唯一数据源全流程数据所有节点读写同一个state保存对话、工具返回、中间结果、决策标记两种定义方式TypedDict(轻量)、Annotated Reducer推荐Annotated ReducerAnnotated为每一个字段都绑定一个Reducer合并器解决多节点同时更新数据的问题合并规则覆盖追加列表求和保留原值允许默认值和强类型校验持久化序列化2、Node图中执行单元业务逻辑载体节点是普通Python函数/异步函数/类的实例输入完整State 返回局部更新字典节点类型LLM推理节点、ToolNode、路由决策节点、外部IO节点、人工交互节点、子图节点3、Edge控制流跳转规则普通固定边add_edge(from_nodeto_node)流水线式跳转条件边add_conditional_edge(from_node, router_func,mapping)router_funcstate返回的分支节点标识mapping字典映射4、特殊节点START:开始节点所有数据的输入END:结束节点形成数据流闭环底层允许机制Pregel(循环调度器)初始化传入初始状态读取快照Superstep迭代循环取出当前待执行节点、执行节点函数得到局部更新字典、Reducer合并更新到全局state生成新快照、执行该节点绑定的路由函数计算下一跳节点、若下一跳是END退出循环否则切换节点进入下一轮Superstep结束持久化保存最终快照返回完整State结果关键特性每一步节点执行完成后都会生成可持久化快照是断电续跑人工中断的基础LangGraph 整体架构分层API 层StateGraph 构建器、compile(编译)、invoke/stream/ainvoke(三种执行模式)、checkpointer(可持久状态检查)、interrupt(人机交互)核心调度层Pregel 循环引擎负责 Superstep、状态合并、路由跳转状态管理层State 定义、Reducer、Checkpointer 持久化存储适配器生态适配层兼容 LangChain LLM、Tool、Runnable、LangSmith 追踪部署层单机本地运行 / LangGraph Platform 云托管生产部署。Skill“提纯”方法什么是Skill:Skill底层依赖封装好的执行函数但它是面向 AI 大模型、遵循 MCP 标准化协议、带元描述的完整可调度能力单元不能简单等同于一个普通函数。理解 Agent 中 Skill 工具的分层结构Skill 底层为封装业务逻辑的执行函数上层配套面向 LLM 的标准化描述、MCP 跨进程通信封装与统一消息返回规范。提纯方法轻量化精简工具 Prompt 定义、单一职责拆分 MCP 技能服务、入参前置校验拦截无效调用、动态压缩历史工具返回上下文有效降低 LLM 推理显存占用提升 MCP 工具调用稳定性。Transform架构2017 年 Google 论文《Attention Is All You Need》提出彻底抛弃 RNN/LSTM 串行循环结构完全基于自注意力机制实现文本并行训练当前所有大模型Qwen、Llama、GPT、llama.cpp 运行的模型底层全部是 Transformer 架构原始Transformer分为两部分Encoder(编码器)双向自注意力适合理解类任务(翻译输入文档RAG向量化如sentence-transformers)Decoder(解码器)单向掩码自注意力LLM大模型仅使用Decoder堆叠(Llama/Qwen/GPT都是纯Decoder架构本地Ollama/llama.cpp推理只跑Decoder)Encoder编码器双向理解模块核心作用接收一段完整文本双向全局自注意力每个单词可以同时看到句子里前面后面所有单词充分提取全局语义特征不做文字生成只输出一段浓缩向量适合任务文档语义提取文本分类RAG知识库向量化情感分析单层Encoder内部三层架构每层完全相同可堆叠多层1、多头自注意力Multi-Head Self-Attention无掩码完全双向每个token能和序列全部token计算注意力2、残差连接层归一化LayerNorm缓解深层网络梯度消失保证几十层堆叠后模型可训练3、前馈神经网络FFN对注意力提取的语义做非线性变换细化特征表达Decoder解码器单向生成模块LLM核心核心作用逐token生成文字一句话一个字往外吐单向掩码注意力只能看见[当前位置前面已经生效的文字]绝对看不到未来输出的字符防止逻辑泄露单层Decoder内部三层比Encoder多一层掩码注意力1、掩码多头自注意力Masked Multi-Head Attention关键加入上三角负无穷掩码屏蔽序列后方所有token2、编码器-解码器交叉注意力Cross-Attention仅编解码混合架构才有只存在于完整Encoder-Decoder模型把Encoder提取的原文语义融合进Decoder;纯Decoder-only大模型没有这一层残差连接 LayerNorm FFN和Encoder结构一致负责特征细化梯度稳定完整推理流程对应LangGraph Ollama链路1、LangGraph拼接完整prompt系统词用户提问工具返回内容2、Ollama调用llama.cpp将Prompt分词Embedding后送入多层Decoder;3、Decoder单向掩码注意力读取全部上下文计算语义4、输出层softmax算出下一个文字/token的概率输出字符或工具调用JSON5、新生成的token追加到上下文再次送入Decoder循环流式输出完整回答三种主流衍生架构落地区分1、Encoder-only仅编码器只用多层Encoder不具备生成能力用于RAG向量化文本分类2、Decoder-only仅解码器堆叠多层Decoder去掉交叉注意力所有本地离线大模型Agent对话系统底层架构Ollama/llama.cpp全部基于这类模型3、Encoder-Decoder完整编解码输入文本走Encoder提取特征再送入Decoder生成新文本多用于机器翻译长文档摘要本地Agent极少使用