ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

本地部署AI Agent全指南:Ollama+Dify+n8n实战

本地部署AI Agent全指南:Ollama+Dify+n8n实战 本地跑一个能自己思考、自己调工具、自己记事的 AI Agent这件事在两年前还是实验室里的玩具现在已经变成一台普通笔记本就能扛起来的日常操作。我这段时间把 Ollama、Dify、n8n 这几套东西反复装删了七八遍从一台只有核显的老机器到带独显的工作站都试过踩的坑足够写一本小册子。这篇就把本地部署 AI 智能体平台这件事从头到尾讲透——它是什么、为什么值得本地跑、硬件怎么选、模型怎么挑、Agent 的骨架怎么搭、记忆和工具怎么接、跑起来之后怎么调优。不管你是刚听说 AI Agent 想上手试试的新手还是已经用过云端 API 想搬到本地的老手都能从里面找到能直接抄的配置和能少走弯路的经验。1. 先把概念理清楚Agent、LLM、大模型到底谁是谁很多人一上来就懵AI Agent、LLM、大模型、DeepSeek这几个词天天混着出现到底什么关系我见过太多人把部署了一个大模型直接等同于有了一个 Agent结果跑起来发现它只会聊天不会干活然后一脸问号。所以动手之前这几个概念必须先掰开。1.1 LLM 是大脑Agent 是会用大脑干活的人LLMLarge Language Model大语言模型本质上是一个文字接龙机器。你给它一段话它根据训练时学到的概率分布预测下一个最可能出现的词一个词一个词往外蹦最后拼成一段回答。它本身没有手、没有脚、没有记忆你问它今天天气它只能根据训练数据瞎编因为它没法真的去查。AI Agent智能体则是在 LLM 外面套了一整套器官一个负责规划任务的大脑循环一套能调用外部工具的手脚一块能记住历史对话和经验的记忆还有一份告诉它你是谁、能干什么、不能干什么的系统提示词。LLM 只是 Agent 的推理内核就像 CPU 只是电脑的一个零件。打个比方LLM 是一个知识渊博但被关在房间里的人你隔着门问他问题他能答但他看不到外面、动不了手。Agent 就是给这个人配了电话工具调用、笔记本记忆、助理任务规划让他能真正把事办成。1.2 DeepSeek、Qwen、Llama 这些名字指的是什么常说的DeepSeek、Qwen通义千问、Llama、Mistral指的是具体的模型系列也就是哪个厂家训练的哪一版大脑。它们都是 LLM区别在于训练数据、参数量、擅长领域不同。DeepSeek 系列在中文和代码上表现突出Qwen 系列中文能力强且尺寸齐全Llama 系列生态最成熟、社区工具支持最好。这里有个关键点同一个 Agent 框架可以换不同的 LLM 内核。你今天用 DeepSeek 跑明天觉得慢换成 Qwen 的小尺寸版本Agent 的逻辑代码一行都不用改。这就是为什么本地部署要分层看——平台层、模型层、Agent 逻辑层是解耦的。1.3 一张表看懂三者的分工概念角色定位类比本地部署时对应什么LLM / 大模型推理内核大脑Ollama 里 pull 下来的模型文件Agent完整执行体会干活的人Dify / n8n 里编排的工作流Agent 平台编排与运行环境办公室Dify、n8n、LangFlow 等搞清楚这层关系后面所有的部署动作你都能对上号装 Ollama 是给大脑找地方住配 Dify 是给 Agent 搭办公室写提示词和接工具是教这个人怎么干活。2. 为什么值得把 Agent 搬到本地而不是直接用云端云端 API 又便宜又省事为什么要折腾本地部署这是我被问得最多的问题。答案不是本地一定更好而是本地和云端解决的是不同的问题。你得先想清楚自己要什么再决定往哪走。2.1 数据不出门这是最硬的理由只要你的 Agent 要处理公司内部文档、客户资料、个人笔记、代码仓库数据一旦发到云端 API就等于交出去了。哪怕服务商承诺不训练、不留存合规审计那一关也过不去。本地部署的核心价值就是数据全程在自己的硬盘和内存里流转断网都能跑。我帮几个做内部知识库的朋友搭过他们的硬性要求就是一个字都不能出内网这种场景下本地是唯一解。2.2 成本结构完全不同从按次付费变成一次性投入云端 API 是按 token 计费的用得越多花得越多。如果你要跑一个每天自动处理几百份文档的 Agent账单会涨得让你心疼。本地部署则是一次性硬件投入 电费之后跑多少次都是零边际成本。我算过一笔账一台带 16GB 显存的二手显卡机器大概几千块如果每天调用量折算成云端费用超过几十块几个月就回本了。当然本地不是没有成本——你的时间、调试的精力、硬件折旧都是成本。所以我的建议是高频、大批量、数据敏感的场景优先本地低频、尝鲜、要最强模型的场景先用云端。2.3 可控性模型、版本、参数全在你手里云端 API 有个让人抓狂的地方服务商随时可能更新模型、调整接口、下线旧版本。你今天调好的 Agent明天可能因为模型行为变了就抽风。本地部署则完全可控——你 pull 下来哪个版本就永远是哪个版本温度、上下文长度、系统提示词全由你定不会有人半夜给你改掉。2.4 本地部署的真实代价别被教程骗了网上教程都说得轻巧三步搞定本地 AI实际动手你会发现显存不够、模型加载失败、中文乱码、工具调用格式对不上、Agent 陷入死循环……这些都是家常便饭。本地部署不是装完就能用而是装完才开始调。心态上要准备好花几个晚上折腾但一旦跑通那种这东西完全属于我的掌控感是云端给不了的。3. 硬件与模型选型别一上来就冲最大的这是新手最容易翻车的地方——看到70B 参数就兴奋结果下载下来发现自己机器根本跑不动或者跑起来一个字一个字往外蹦体验极差。选型的原则只有一条匹配你的硬件而不是匹配排行榜。3.1 先看显存显存决定你能跑多大的模型模型能不能跑、跑得快不快显存VRAM是决定性因素。粗略估算规则是模型参数量 × 每个参数的字节数 需要的显存。量化能大幅压缩这个数字。量化等级每参数约占用7B 模型14B 模型32B 模型70B 模型FP16全精度2 字节14GB28GB64GB140GBQ88位1 字节7GB14GB32GB70GBQ44位最常用0.5 字节4GB8GB18GB40GB提示上表是纯模型权重的估算实际运行时还要加上上下文缓存KV Cache长对话会额外吃显存。留出 20% 余量比较稳妥。所以对照一下你的硬件8GB 显存舒服跑 7B 的 Q4 量化模型14B 勉强。12-16GB 显存7B 随便跑14B 的 Q4 很流畅32B 的 Q4 能加载但慢。24GB 显存14B 全速32B 的 Q4 可用是性价比甜点。纯 CPU 大内存能跑但速度感人7B 模型大概每秒几个 token只适合不着急的后台任务。3.2 模型尺寸怎么选7B 够用14B 舒服32B 以上看需求我的实战经验是做 Agent 任务7B 到 14B 是绝大多数人的最优区间。原因很简单——Agent 需要频繁调用工具、解析结构化输出、多轮推理模型太大推理慢一个任务等半分钟调试起来能把人逼疯。而 7B 到 14B 的模型在指令遵循和工具调用上已经够用速度也快。具体到模型系列Qwen 系列中文最强尺寸从 0.5B 到 72B 全覆盖Agent 场景推荐 Qwen2.5 的 7B 或 14B 指令版。DeepSeek 系列代码和推理强适合做开发类 Agent。Llama 系列生态最好几乎所有工具都优先适配英文场景首选。Mistral / Gemma小尺寸里表现均衡适合资源紧张的机器。3.3 量化版本的选择Q4 是默认答案量化就是把模型权重从高精度压成低精度牺牲一点点质量换大幅度的显存和速度优化。Q4_K_M 是社区公认的甜点——质量损失很小显存占用只有全精度的一半不到。除非你有充足显存且追求极致质量否则无脑选 Q4 就行。Q8 质量更好但显存翻倍Q2、Q3 压缩太狠模型会变傻Agent 任务容易出错不建议。3.4 一个反直觉的建议先用小模型跑通流程我强烈建议新手先用 7B 甚至 3B 的小模型把整个 Agent 流程跑通确认工具调用、记忆、工作流都正常再换成大模型。因为调试阶段你会反复重启、改配置、看日志小模型加载快、响应快能让你把精力放在逻辑上而不是等模型。等流程稳了再换大模型提升质量这时候出问题也容易定位是模型的问题还是逻辑的问题。4. 用 Ollama 把大模型跑起来本地推理的地基Ollama 是目前本地跑大模型最省心的工具没有之一。它把模型下载、量化、推理服务、API 接口全打包好了一条命令就能拉起一个兼容 OpenAI 格式的本地服务。Agent 平台要连本地模型基本都通过 Ollama。4.1 安装与验证三分钟搞定各平台的安装方式不同但都很简单macOS官网下载 dmg 安装包拖进应用文件夹即可。Windows下载 exe 安装程序一路下一步。Linux一行脚本搞定curl -fsSL https://ollama.com/install.sh | sh。装完打开终端输入ollama --version能打印版本号就说明装好了。然后跑一个最小的模型验证ollama run qwen2.5:3b第一次运行会自动下载模型下载完会进入交互界面你打字它回话就说明推理服务正常了。输入/bye退出。4.2 拉取适合 Agent 的模型验证完之后拉一个正经干活的模型。Agent 场景我推荐指令微调版带-instruct或直接是对话版# 中文 Agent 首选7B 尺寸8GB 显存可跑 ollama pull qwen2.5:7b # 代码类 Agent ollama pull deepseek-coder:6.7b # 资源紧张时的轻量选择 ollama pull qwen2.5:3b拉完之后用ollama list能看到本地所有模型。这里有个经验模型名字后面的标签tag决定尺寸和量化比如qwen2.5:7b默认是 Q4 量化想要别的量化版本可以指定qwen2.5:7b-q8_0。4.3 让 Ollama 监听外部请求默认情况下 Ollama 只监听本机127.0.0.1:11434。如果你要把 Dify 装在 Docker 里或者从另一台机器访问需要让它监听所有网卡# Linux 下设置环境变量后重启服务 export OLLAMA_HOST0.0.0.0:11434Windows 和 macOS 则在系统环境变量里加OLLAMA_HOST值为0.0.0.0:11434然后重启 Ollama。改完用curl http://localhost:11434/api/tags测试能返回模型列表 JSON 就对了。注意监听0.0.0.0意味着同网络内其他设备也能访问如果是在公共网络环境记得配合防火墙限制来源别把推理服务裸奔在公网上。4.4 关键参数调优让 Agent 更稳定Ollama 支持通过 Modelfile 或 API 参数调整推理行为Agent 场景有几个参数特别重要temperature温度控制随机性。Agent 做工具调用和结构化输出时建议调到0.1-0.3太高会导致输出格式乱掉、工具名拼错。创意写作才需要 0.7 以上。num_ctx上下文长度默认可能只有 2048Agent 多轮对话很容易超。建议调到8192 或更高但注意这会吃显存。num_predict单次生成的最大 token 数防止模型啰嗦个没完。可以建一个自定义 ModelfileFROM qwen2.5:7b PARAMETER temperature 0.2 PARAMETER num_ctx 8192然后ollama create my-agent-model -f Modelfile之后就用my-agent-model这个名字参数自动带上。5. 搭 Agent 平台Dify 与 n8n 怎么选、怎么装模型跑起来了但它还只是个会聊天的大脑。要变成 Agent需要一个平台来编排工作流、接工具、管记忆。Dify 和 n8n 是两条最主流的路子定位不同别选错。5.1 Dify 和 n8n 的定位差异Dify是专门为 LLM 应用设计的平台内置了 Agent、工作流、知识库RAG、提示词管理、模型接入等一整套能力界面友好适合快速搭出对话式 Agent 和知识库问答。它的强项是开箱即用的 LLM 应用。n8n是通用自动化平台本质是可视化编程 几百个服务集成AI Agent 只是它的一个能力模块。它的强项是把 Agent 嵌进复杂的自动化流程比如收到邮件 → Agent 分析 → 写入表格 → 发通知这种跨系统的活。一句话总结要做对话式 AI 应用选 Dify要做跨系统自动化选 n8n两个都装也不冲突。5.2 Docker 部署 Dify 的完整流程Dify 官方推荐 Docker Compose 部署这是最省事的方式。前提是机器上装了 Docker 和 Docker Compose。第一步拿到源码git clone https://github.com/langgenius/dify.git cd dify/docker第二步准备配置文件cp .env.example .env第三步启动docker compose up -d第一次启动会拉一堆镜像耐心等几分钟。启动完成后访问http://localhost:80会让你设置管理员账号设完就进主界面了。5.3 把 Ollama 接进 Dify进 Dify 后点右上角头像 → 设置 → 模型供应商找到Ollama点添加模型。这里要填两个关键信息基础 URL如果 Dify 和 Ollama 在同一台机器且 Dify 跑在 Docker 里这里不能填localhost因为 Docker 容器里的 localhost 指向容器自己。要填http://host.docker.internal:11434Mac/Windows或者宿主机的内网 IPLinux。模型名称填你在 Ollama 里 pull 的模型名比如qwen2.5:7b。填完点保存Dify 会去探测模型是否可用能列出模型就说明通了。这是新手最容易卡住的地方Dify 在 Docker 里连不上宿主机的 Ollama。记住容器里的 localhost 不是你的 localhost这句话能省你两小时。5.4 n8n 的部署与 AI 节点启用n8n 同样可以用 Docker 跑docker run -d --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n n8nio/n8n访问http://localhost:5678初始化账号。n8n 的 AI 能力通过AI Agent 节点和Chat Model 节点实现在节点面板搜 AI 就能找到。把 Ollama 作为 Chat Model 接进去方式和 Dify 类似填 Ollama 的地址和模型名即可。n8n 的玩法是把 AI Agent 节点当成流程里的一个环节前面接触发器定时、Webhook、邮件后面接动作写数据库、发消息、调 API。这种Agent 作为流程一环的思路是它区别于 Dify 的核心价值。6. Agent 的骨架提示词、工具、记忆三件套平台装好了模型接上了现在到了真正决定 Agent 好不好用的部分——它的骨架怎么搭。一个能干的 Agent靠的是三样东西清晰的系统提示词、靠谱的工具集、有效的记忆机制。这三样缺一个Agent 就会变成看起来很聪明但干不成事的花架子。6.1 系统提示词把 Agent 的边界写死系统提示词是 Agent 的人格说明书它决定了 Agent 是谁、能干什么、怎么干、不能干什么。我见过太多人随便写一句你是一个有用的助手就完事结果 Agent 行为飘忽不定。好的系统提示词要包含这几块角色定义你是谁服务谁。比如你是一个企业内部知识库助手只回答公司文档相关的问题。能力边界能做什么不能做什么。明确写如果问题超出知识库范围直接说不知道不要编造。工具使用规则什么时候该调工具调哪个。比如需要查询实时数据时必须调用 search 工具不要凭记忆回答。输出格式要求结构化输出时给出明确的格式模板。语气风格正式还是轻松简洁还是详细。一个实战模板长这样你是一个文档处理 Agent。你的任务是读取用户提供的文档提取关键信息并结构化输出。 规则 1. 只基于文档内容回答不添加文档外的信息。 2. 需要读取文件时调用 read_file 工具。 3. 输出必须是 JSON 格式包含 title、summary、keywords 三个字段。 4. 如果文档无法解析返回 {error: 原因}。经验提示词里规则要编号、要具体、要可验证。尽量简洁这种模糊要求没用回答不超过三句话才有约束力。6.2 工具调用Agent 的手脚怎么接工具Tool / Function Calling是 Agent 能真正干活的关键。LLM 本身只能生成文字但通过工具调用它可以触发实际动作读文件、查数据库、发请求、算数学。工具调用的原理是你把可用工具的名称、描述、参数格式告诉模型模型在需要时输出一个结构化的调用请求平台解析后执行真正的函数再把结果喂回给模型模型据此继续推理。这个循环就是 Agent 的核心。在 Dify 里工具可以是内置的网页搜索、代码执行也可以是自定义的 API 工具。在 n8n 里工具就是流程中的其他节点。自定义工具时描述写得越清楚模型调用越准。比如{ name: query_order, description: 根据订单号查询订单状态。当用户询问订单进度、物流信息时使用此工具。, parameters: { order_id: { type: string, description: 订单号通常是 12 位数字 } } }描述里写清楚什么时候用比写清楚这个工具是什么更重要因为模型是靠描述来判断该不该调的。6.3 记忆机制让 Agent 记住上下文没有记忆的 Agent每轮对话都是失忆的。记忆分几层短期记忆当前对话的历史消息直接塞进上下文。简单但吃 token长对话会爆。长期记忆把重要信息存进向量数据库需要时检索出来。这是 RAG 的核心。工作记忆Agent 执行多步任务时的中间状态比如已经完成了第几步。Dify 内置了会话记忆和知识库RAG基本够用。n8n 则需要自己接向量库如 Qdrant、Chroma来实现长期记忆。我的经验是对话类 Agent 用短期记忆 知识库检索就够了别一上来就搞复杂的记忆架构先把简单跑通。6.4 一个最小可用的 Agent 配置示例把上面三件套组合起来一个能读文档、能回答问题的 Agent 就成型了系统提示词定义角色和输出格式。挂一个read_file工具让它能读文件。挂一个知识库让它能检索历史文档。温度设 0.2上下文设 8192。模型选 Qwen2.5 7B。这套配置在 8GB 显存的机器上跑得很稳响应速度也在可接受范围。先用这个最小配置跑通再逐步加工具、加记忆、换大模型。7. 跑起来之后的调优与排错这些坑我都替你踩过Agent 跑起来只是开始真正花时间的是调优和排错。下面这些是我反复遇到、也帮别人解决过的高频问题按排查思路整理你可以对照着定位。7.1 工具调用失败模型不按格式输出最常见的症状是模型该调工具的时候不调或者调用的参数格式乱七八糟。原因通常有三个模型能力不够小模型3B 以下对工具调用的支持很差经常输出自然语言而不是结构化调用。换 7B 以上的指令微调模型。提示词没说清工具描述太模糊模型不知道什么时候该用。把什么时候用写进描述。温度太高温度超过 0.5结构化输出容易崩。调到 0.1-0.3。排查顺序先降温度再检查工具描述最后换模型。这个顺序能解决 80% 的工具调用问题。7.2 响应慢到无法忍受定位瓶颈在哪Agent 慢可能是模型推理慢也可能是工具执行慢还可能是平台调度慢。定位方法单独用ollama run测模型本身的生成速度如果这里就慢是模型太大或硬件不够。看平台日志确认是卡在模型调用还是工具执行。检查是不是上下文太长长上下文会显著拖慢推理。优化手段换小模型、降量化等级、缩短上下文、减少不必要的工具调用轮次。我实测下来把上下文从 32K 降到 8K速度能快一倍以上。7.3 中文乱码或输出异常偶尔会遇到模型输出乱码、夹杂奇怪符号。这通常是模型本身的中文能力问题或者量化太狠导致的。解决办法换中文能力强的模型Qwen 系列或者提高量化等级从 Q4 换到 Q8。7.4 Agent 陷入死循环Agent 反复调用同一个工具、或者在一个任务里绕圈出不来这是多步 Agent 的经典问题。根因是模型没有正确判断任务已完成。解决思路在提示词里明确任务完成的判断标准。设置最大迭代次数超过就强制停止。在工具返回结果里加入明确的成功/失败标志帮助模型判断。7.5 显存溢出OOM跑着跑着报显存不足通常是上下文太长或者并发太高。解决降低num_ctx限制并发请求数或者换更小的量化版本。如果用的是共享显存比如核显还要注意系统内存的占用。8. 从能跑到好用进阶方向与扩展思路把基础 Agent 跑通之后你会发现能玩的方向非常多。这里分享几个我实际做过、觉得有价值的扩展方向供你参考。8.1 多模态让 Agent 能看图、能听声现在不少模型支持多模态输入能处理图片、音频。本地部署多模态模型如 Qwen-VL 系列后Agent 就能做看图回答问题识别图片里的文字这类任务。硬件要求比纯文本模型高显存要留足。适合做文档扫描识别、图片内容分析这类场景。8.2 自动化运维让 Agent 定时干活把 Agent 接进 n8n 的定时触发器就能做自动化任务每天早上自动汇总昨天的数据、定期检查系统日志、自动整理文件。这类无人值守的 Agent 是本地部署最能体现价值的场景因为跑多少次都不花钱。8.3 知识库增强RAG 让 Agent 懂你的资料纯靠模型自身知识Agent 回答不了你公司内部的问题。接一个向量数据库做 RAG检索增强生成把内部文档灌进去Agent 就能基于你的资料回答。Dify 内置了知识库功能上传文档、切分、向量化一条龙是入门 RAG 最省事的方式。8.4 多 Agent 协作让几个 Agent 分工干活复杂任务可以拆给多个 Agent一个负责规划一个负责执行一个负责检查。这种多 Agent 架构在 Dify 和 n8n 里都能实现但复杂度陡增建议单 Agent 玩熟了再上。我个人的经验是大多数场景单 Agent 加好工具就够了多 Agent 往往是过度设计。8.5 模型热切换不同任务用不同模型本地部署的一大优势是可以同时装多个模型按任务切换。简单任务用 3B 小模型快速响应复杂推理用 14B 大模型保证质量。在 Dify 里可以配置多个模型供应商在工作流里按节点指定不同模型这个灵活性是云端 API 很难做到的。9. 我踩过的几个真实坑以及给你的实操建议最后分享几个具体到能直接避开的坑都是我真金白银花时间换来的。第一个坑Docker 里的 localhost 陷阱。前面提过但值得再强调。Dify 跑在 Docker 里Ollama 跑在宿主机配置里填localhost:11434永远连不上。要么用host.docker.internal要么用宿主机内网 IP。这个坑我见过至少十个人踩。第二个坑模型下载慢到怀疑人生。大模型动辄几个 GB网络不好时下载能卡半天。建议用支持断点续传的方式或者提前在网速好的环境下载好模型文件再拷过去。Ollama 的模型存在~/.ollama/models目录可以直接拷贝迁移。第三个坑以为模型越大越好。我一开始非要跑 32B结果每次响应等半分钟调试效率极低。换成 7B 之后虽然质量略降但迭代速度快了十倍整体效率反而更高。调试阶段速度比质量重要。第四个坑提示词写得太随意。系统提示词是 Agent 的灵魂值得反复打磨。我的做法是准备一个提示词文档每次 Agent 行为不对就回去改提示词改完记录下改动和效果慢慢就积累出一套好用的模板。第五个坑忽略日志。Agent 出问题时日志是第一手线索。Dify 和 n8n 都有详细的执行日志能看到每一步的输入输出。养成看日志的习惯排错效率能提升一大截。第六个坑一次性配太多工具。新手容易兴奋一口气给 Agent 挂十几个工具结果模型选择困难调用准确率暴跌。工具要一个一个加加一个测一个确认稳定了再加下一个。关于硬件如果你还在纠结买什么我的建议是预算有限就选 12-16GB 显存的显卡这个区间能舒服跑 14B 模型覆盖绝大多数 Agent 场景性价比最高。纯 CPU 方案只适合不着急的后台任务交互式 Agent 体验会很差。关于模型中文场景优先 Qwen 系列代码场景优先 DeepSeek 系列英文场景优先 Llama 系列。尺寸从 7B 起步跑顺了再考虑升级。这套本地 Agent 平台搭下来从装 Ollama 到跑通第一个能调工具的 Agent顺利的话一个晚上能搞定不顺利的话可能要折腾两三个晚上。但一旦跑通你就拥有了一个完全属于自己、数据不出门、想怎么改就怎么改的 AI 智能体。后面想加什么能力都是在这个地基上往上盖越玩越顺手。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进