1. 为什么你需要一个本地AI工作流智能体?

想象一下这个场景:你每天都要从十几个不同的信息源里收集行业动态,手动整理成一份日报;或者,你经常需要根据一堆零散的数据,快速生成一份结构清晰的报告;又或者,你希望有一个永不疲倦的助手,能帮你自动回复一些常见的咨询邮件。这些重复、琐碎但又需要一点“智能”判断的任务,是不是占据了你的大量时间?

在过去,解决这些问题要么需要你亲力亲为,要么就得依赖各种云端SaaS服务。但云端服务总有它的局限:你的数据要上传到别人的服务器,隐私和安全总让人有点不放心;API调用次数有限制,用多了还得额外付费;最关键的是,它往往不够“贴身”,无法完全按照你个人的、独特的工作习惯来定制。

这就是我今天想跟你分享的“个人专属AI工作流智能体”的魅力所在。它不是一个现成的、僵化的软件,而是一个由你亲手搭建、完全运行在你本地电脑上的“数字伙伴”。它的核心大脑是DeepSeek R1——一个能力强大且完全免费开源的大语言模型;而它的“神经系统”和“手脚”,则由n8n这个强大的可视化自动化工具来担任。两者的结合,就像给你的电脑装上了一颗能理解你意图、并自动执行复杂操作的AI心脏。

我花了几个月时间折腾这个组合,从最初的磕磕绊绊到现在的得心应手,最大的感受就是:自主掌控的感觉真好。所有的数据都在本地流转,模型根据你的指令运行,工作流完全按你的想法设计。你不用再担心服务突然宕机、API涨价或者隐私泄露。更重要的是,这个过程本身充满了创造的乐趣,看着一堆代码和工具最终变成一个能帮你实实在在干活的智能体,那种成就感是无可替代的。接下来,我就带你从零开始,一步步把这个构想变成现实。

2. 搭建基石:准备你的本地AI运行环境

万事开头难,但只要我们一步步来,这个开头其实很清晰。我们的目标是在你的Windows电脑上,建立起一个稳固的“地基”,让DeepSeek R1和n8n都能安稳地跑起来。别被“本地部署”吓到,我保证整个过程就像搭积木,有清晰的步骤可循。

2.1 硬件与软件的基本要求

首先,我们得看看你的“装备”是否够用。最核心的要求是显卡。DeepSeek R1模型,尤其是我们常用的7B或14B参数版本,对显存(GPU内存)有一定要求。我强烈建议你的电脑拥有一块至少8GB显存的独立显卡(NVIDIA显卡为佳)。我用的是RTX 4070(12GB显存),运行7B模型非常流畅。如果你的显卡只有6GB,可以尝试量化版本(比如4bit量化),也能跑起来,只是速度会慢一些。如果只有集成显卡,那就需要依赖CPU运行,速度会慢很多,只适合轻量级尝鲜。

除了显卡,内存建议16GB或以上,硬盘空间留出20GB左右用于安装模型和工具。软件方面,你需要一个64位的Windows 10或11操作系统。

2.2 第一步:安装Ollama——你的本地模型管理器

Ollama是我们整个系统的“模型管家”。它简化了在本地下载、运行和管理各种大语言模型的过程,让你用一行命令就能启动一个模型,无需复杂的配置。

安装Ollama非常简单:

  1. 打开你的浏览器,访问Ollama的官方网站。
  2. 找到Windows版本的下载链接,点击下载安装程序(一个.exe文件)。
  3. 双击运行安装程序,就像安装普通软件一样,一路点击“下一步”即可完成。

安装完成后,验证一下是否成功。在桌面空白处点击鼠标右键,选择“在终端中打开”(如果右键菜单没有,可以按 Win + R,输入 cmd 后回车)。在打开的黑色命令行窗口中,输入以下命令并回车:

ollama --version

如果显示了Ollama的版本号(比如 ollama version 0.1.xx),恭喜你,第一步成功了!

2.3 第二步:拉取并运行DeepSeek R1模型

Ollama安装好了,我们就可以用它来“请”出我们的大脑——DeepSeek R1模型了。还是在刚才的命令行终端里,输入这条“魔法咒语”:

ollama run deepseek-r1:7b

这条命令做了几件事:首先,Ollama会从它的模型库中自动下载deepseek-r1:7b这个模型(大约4-5GB大小)。下载速度取决于你的网络。下载完成后,Ollama会自动加载并运行这个模型,你会直接进入一个与DeepSeek R1的对话界面。

你可以试着跟它打个招呼,输入 Hello,看看它会不会回应你。如果它开始生成回答,说明模型运行正常。按 Ctrl+C 可以退出这个对话界面。模型一旦下载,就会保存在本地,下次运行只需要输入 ollama run deepseek-r1:7b 即可,无需重新下载。

提示:deepseek-r1:7b 是7B参数的版本,在性能和资源消耗上比较平衡。如果你的显卡足够强大(比如16GB以上显存),可以尝试 deepseek-r1:14bdeepseek-r1:32b 以获得更强的能力。只需将命令中的 7b 替换即可。

2.4 第三步:安装Docker Desktop——容器化部署的利器

接下来是n8n的舞台。n8n是一个基于Node.js的自动化工具,为了让它能在各种环境下稳定、一致地运行,我们通常使用Docker来部署它。你可以把Docker想象成一个超级轻量级的“软件集装箱”系统,它把n8n和它所需的所有环境(比如Node.js、各种依赖库)打包成一个独立的“集装箱”(即容器),我们直接运行这个集装箱就行了,完全不用操心复杂的底层环境配置。

安装Docker Desktop for Windows:

  1. 访问Docker官网,下载Windows版本的Docker Desktop安装包。
  2. 运行安装程序。安装过程中,它会询问你是否使用WSL 2(Windows Subsystem for Linux 2)。这里务必选择“使用WSL 2”,这是目前Windows上运行Docker最推荐、性能最好的方式。如果你的系统没有安装WSL 2,安装程序通常会引导你完成安装。
  3. 安装完成后,重启电脑。之后在开始菜单找到Docker Desktop并启动它。你会看到系统托盘区出现一个小鲸鱼图标,这表示Docker正在运行。

为了验证Docker安装成功,再次打开命令行终端,输入:

docker --version

docker run hello-world

如果第一条命令显示Docker版本,第二条命令下载并运行了一个测试镜像,最后打印出“Hello from Docker!”等信息,那么Docker就准备就绪了。

3. 部署自动化中枢:在Docker中运行n8n

现在,我们的“大脑”(DeepSeek R1)已经就位,需要一个“指挥中心”来调度它,并连接其他各种应用(比如你的邮箱、日历、笔记软件)。这个指挥中心就是n8n。用Docker来运行n8n,是最干净、最不容易出错的方式。

3.1 一键启动你的第一个n8n容器

Docker运行起来后,我们只需要一条命令,就能让n8n服务在本地启动。打开你的命令行终端(PowerShell或CMD都可以),输入以下命令:

docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n n8nio/n8n

我来解释一下这条命令的每个部分:

  • docker run:告诉Docker运行一个容器。
  • -it:以交互模式运行,并分配一个伪终端,这样我们可以看到运行日志。
  • --rm:容器停止后自动删除它。这适合初次测试,避免留下无用容器。
  • --name n8n:给这个容器起个名字叫“n8n”,方便管理。
  • -p 5678:5678:端口映射。将容器内部的5678端口映射到你电脑的5678端口。这样你就能通过 localhost:5678 访问n8n的网页界面了。
  • -v n8n_data:/home/node/.n8n:卷映射。这是非常关键的一步。它在你电脑上创建一个名为 n8n_data 的持久化存储空间,并映射到容器内n8n存放工作流、用户凭证等数据的位置。即使你删除了容器,你的工作流数据也不会丢失。
  • n8nio/n8n:指定要运行的镜像名称,Docker会自动从官方仓库拉取最新的n8n镜像。

命令执行后,你会看到终端开始滚动输出日志。当看到类似 n8n ready on http://localhost:5678 的信息时,就说明n8n启动成功了。

3.2 初次配置与访问n8n网页界面

打开你的浏览器(Chrome/Firefox/Edge均可),在地址栏输入:http://localhost:5678。你会首次进入n8n的注册页面。

你需要设置一个管理员账号:

  • 邮箱:填写你的常用邮箱,用于登录。
  • 密码:设置一个安全的密码。
  • 确认密码:再次输入密码。
  • FirstName & LastName:可以随意填写。

填写完成后,点击“下一步”或“完成注册”。之后,n8n可能会提示你获取一个免费的许可证(License Key)。对于个人使用,社区版(Community Edition)的功能已经完全足够,你可以按照页面指引获取一个免费的许可证并激活。完成这些步骤后,你就会进入n8n的主界面——一个空白的画布(Canvas),这里就是你未来构建所有自动化工作流的“作战室”。

3.3 更优雅的管理:使用Docker Compose

每次都用一长串 docker run 命令不太方便,特别是当你需要设置更多参数时。更专业的做法是使用 docker-compose.yml 文件。在你的电脑上找一个合适的位置(比如 D:\n8n),新建一个名为 docker-compose.yml 的文件,用文本编辑器(如VS Code)打开,输入以下内容:

version: '3.8'

services:
  n8n:
    image: n8nio/n8n
    container_name: n8n
    restart: unless-stopped
    ports:
      - "5678:5678"
    environment:
      - N8N_BASIC_AUTH_ACTIVE=true
      - N8N_BASIC_AUTH_USER=你的用户名
      - N8N_BASIC_AUTH_PASSWORD=你的密码
      - N8N_HOST=localhost
      - N8N_PORT=5678
      - N8N_PROTOCOL=http
      - N8N_ENCRYPTION_KEY=一个随机的长字符串(用于加密敏感数据)
    volumes:
      - n8n_data:/home/node/.n8n
      - ./local_files:/files  # 可选:映射本地文件夹,方便n8n读写文件

volumes:
  n8n_data:

这个配置文件做了几件好事:1) 设置了容器自动重启;2) 配置了基础认证(访问n8n网页时需要输入用户名密码,更安全);3) 定义了持久化数据卷。你需要将 你的用户名你的密码一个随机的长字符串 替换成你自己的内容。

保存文件后,在该文件所在目录打开终端,只需运行一条命令:

docker-compose up -d

-d 参数表示在后台运行。要停止服务,运行 docker-compose down。用这种方式管理n8n,启动、停止、配置都变得非常清晰和简单。

4. 核心连接:让n8n与DeepSeek R1“握手”成功

单独的n8n和单独的DeepSeek R1都只是强大的工具,只有把它们连接起来,才能产生化学反应,构建出真正的智能体。这一步是关键,也是很多新手容易卡住的地方,我会把细节和可能遇到的“坑”都讲清楚。

4.1 在n8n中创建你的第一个AI工作流

登录n8n后,点击左侧菜单的“Workflows”,然后点击“New Workflow”创建一个新的工作流。你可以给它起个名字,比如“我的AI助手”。进入画布后,点击画布中间的“+”号,会弹出节点选择面板。在“Trigger”分类下,找到“On Chat Message”节点并点击添加。这个节点可以模拟一个聊天触发器,非常适合我们测试。

添加后,画布上会出现这个触发节点。点击它右侧的“+”号,在搜索框输入“AI”,你会看到“Advanced AI”分类。选择其中的“Basic LLM Chain”节点并添加。这个节点是n8n与AI模型交互的核心。

4.2 配置Ollama连接凭证——跨越容器的鸿沟

现在,点击你刚刚添加的“Basic LLM Chain”节点,右侧会展开它的属性面板。在“Model”下拉菜单下方,点击“Add Credential”或“Create new credential”。

这里就是第一个关键点:n8n运行在Docker容器内,而Ollama通常直接运行在你的Windows主机上。从容器内部访问主机的服务,不能直接用 localhost127.0.0.1,因为那指向的是容器自己。Docker为这种情况提供了一个特殊的主机名:host.docker.internal,这个地址会解析到宿主机器(即你的Windows电脑)。

因此,在创建新凭证的界面,你需要这样填写:

  • Credential Type:选择 “Ollama Api”。
  • Name:起个名字,比如“My Local Ollama”。
  • Base URL必须填写 http://host.docker.internal:11434。11434是Ollama服务的默认端口。
  • 其他字段:如API Key,留空即可(Ollama本地运行通常无需密钥)。

填写完成后,先别急着保存,点击下方的“Test Connection”按钮。如果一切配置正确,你会看到一条绿色的成功提示:“Connection tested successfully”。如果失败,请检查:1) Ollama服务是否正在运行(在终端输入 ollama list 查看);2) Docker Desktop是否运行;3) Base URL是否完全正确。

4.3 选择模型并完成第一次对话测试

连接测试成功后,保存这个凭证。回到“Basic LLM Chain”节点的属性面板,现在“Model”下拉菜单应该可以选择了。点击它,你应该能看到一个列表,里面就有我们之前通过Ollama下载的 deepseek-r1:7b 模型。选中它。

至此,最简单的连接就完成了。我们可以测试一下。点击画布右上角的“Execute Workflow”按钮(一个播放图标)。n8n会从“On Chat Message”节点开始执行。因为该节点是触发器,我们需要给它一个初始输入。在节点属性面板的“Test Data”部分,你可以手动输入一个JSON,例如:

{
  "message": "你好,请介绍一下你自己。"
}

然后再次点击执行。工作流会运行,数据从触发器流向AI节点。点击“Basic LLM Chain”节点,在右侧的“Output”面板,你就能看到DeepSeek R1生成的回复了!恭喜你,你的本地AI智能体已经成功发出了第一声“啼哭”。

5. 从聊天到智能体:构建你的第一个实用工作流

能聊天只是第一步。真正的威力在于将AI的“思考”能力嵌入到自动化的流程中。让我们来构建一个稍微复杂一点、但非常实用的例子:自动信息摘要与归档智能体。这个智能体会监控一个特定文件夹(比如你的“下载”文件夹),每当有新的文本文档(.txt)或PDF文件放入时,自动调用DeepSeek R1阅读内容并生成摘要,最后将摘要保存到你的笔记软件(比如Notion)或一个Excel表格中。

5.1 设计工作流逻辑与选择节点

这个工作流的逻辑链条非常清晰:

  1. 触发:监控本地文件夹的新文件。
  2. 处理:读取新文件的内容。
  3. AI处理:将内容发送给DeepSeek R1,要求其生成摘要。
  4. 后处理:将摘要和原文件信息(如文件名)整理成结构化数据。
  5. 输出:将结构化数据追加到Excel或发送到Notion。

在n8n画布上,我们依次添加以下节点:

  • Trigger Node: 选择 “Schedule Trigger” 下的 “Cron” 节点,设置为每分钟检查一次。或者更优雅的方式是使用 “File Trigger” 节点(如果n8n能访问到宿主机的文件夹)。
  • File Node: 选择 “Read Binary File” 节点,读取被触发节点检测到的新文件。
  • AI Node: 就是我们之前配置好的 “Basic LLM Chain” 节点。
  • Code Node: 选择 “Function” 或 “Code” 节点,用于将AI返回的文本整理成我们需要的格式(如JSON对象)。
  • Spreadsheet Node: 选择 “Google Sheets” 或 “Microsoft Excel” 节点(需要相应凭证),将数据写入在线表格。对于纯本地方案,我们可以用 “Write Binary File” 节点将摘要追加到一个本地文本文件或CSV文件中。

5.2 配置节点细节与提示词工程

重点讲一下AI节点和文件读取的配置。

文件读取:为了让n8n容器能访问你Windows主机上的文件夹,你需要在Docker Compose配置中增加一个卷映射(volume mount)。就像我们之前映射 n8n_data 一样,再添加一行,例如 - D:/我的文档/监控文件夹:/files/to/watch。这样,容器内的 /files/to/watch 路径就对应你本地的 D:\我的文档\监控文件夹。在 “Read Binary File” 节点中,文件路径就填写容器内的路径,如 /files/to/watch/{{$node["Cron"].json["fileName"]}}

AI提示词工程:这是让AI按你意愿工作的核心。双击“Basic LLM Chain”节点,在属性面板找到 “Prompt” 字段。这里不能只简单发送文件内容,需要构造一个清晰的指令(Prompt)。例如:

你是一个专业的文档摘要助手。请阅读以下文本内容,并生成一个简洁的摘要。摘要需包含:1. 核心主题(一句话)。2. 三个关键要点。3. 文档类型推测(如技术报告、新闻、随笔等)。

文本内容:
{{$json["fileContent"]}}

请以JSON格式回复,包含以下字段:theme, key_points (数组), doc_type。

注意 {{$json["fileContent"]}} 是n8n的表达式,它会将上一个节点(文件读取节点)输出的 fileContent 字段的值动态插入到这里。这样的提示词给了AI明确的角色、任务和输出格式要求。

5.3 测试、调试与优化你的工作流

配置好所有节点并连接后,点击“Execute Workflow”进行测试。你可以手动在监控文件夹里放一个.txt文件,然后触发工作流。

调试技巧

  • 利用节点执行视图:点击每个节点,在右侧的“Execution”选项卡,你可以看到该节点本次运行接收到的输入数据(Input)和产生的输出数据(Output)。这是排查问题最强大的工具。比如,你可以检查文件内容是否被正确读取、AI收到的提示词是否完整、AI返回的答案是否符合预期。
  • 处理AI输出:AI返回的可能是文本,我们需要用“Code”节点来解析它。如果我们在提示词中要求返回JSON,那么可以在Code节点(使用JavaScript)这样写:
const aiResponse = items[0].json.response; // 假设AI输出在‘response’字段
try {
  const summaryObj = JSON.parse(aiResponse);
  return [{json: {theme: summaryObj.theme, points: summaryObj.key_points, type: summaryObj.doc_type, sourceFile: $input.item.json.fileName}}];
} catch (e) {
  // 如果AI没有返回合法JSON,做降级处理
  return [{json: {rawSummary: aiResponse, sourceFile: $input.item.json.fileName}}];
}
  • 错误处理:在关键节点后可以添加“Error Trigger”节点,或者使用“IF”节点判断上一步是否成功,失败时发送通知(例如通过n8n的“Email”节点发邮件提醒你)。

通过这样一个完整的工作流,你就能实现文件的自动摘要了。你可以在此基础上无限扩展:比如摘要后自动翻译成英文、根据内容打标签并分类归档、或者发现特定关键词时给你发送即时消息提醒。n8n丰富的节点库(有数百个集成)和DeepSeek R1的理解能力相结合,能实现的自动化场景超乎你的想象。

6. 进阶探索与实战场景构想

当你成功运行了第一个工作流,就像打开了一扇新世界的大门。你会发现,很多重复性的脑力劳动都可以被这个本地智能体接管。下面分享几个我实践过或构思的进阶场景,希望能激发你的灵感。

6.1 场景一:个人知识库的自动构建与问答

很多人都有收藏文章、保存资料的习惯,但时间一长就变成了“数字仓鼠”,只存不看。我们可以构建一个智能体来解决这个问题。

  • 工作流设计
    1. 使用n8n的“RSS Feed Read”节点订阅你常看的博客、新闻源。
    2. 或者用“Email Read”节点监控特定邮箱,将收到的新闻简报、行业报告自动抓取。
    3. 将抓取到的文章全文(或链接)发送给DeepSeek R1,指令它:“请提取这篇文章的核心论点、关键数据和结论,并生成3-5个关键词标签。”
    4. 将提取的结构化信息(标题、摘要、标签、原文链接、日期)保存到本地数据库(如SQLite)或Notion/Database中。
    5. 更智能的一步:再创建一个独立的工作流,提供一个聊天接口(可以用n8n的Webhook节点创建一个简单的API)。当你向这个API提问,比如“上周关于量子计算有什么新进展?”,工作流会先将问题发送给DeepSeek R1,让它将问题转化为查询关键词,然后去你的知识库数据库中检索相关摘要,最后让DeepSeek R1综合这些摘要生成一个连贯的回答。这样,你就拥有了一个基于个人收藏的、隐私安全的定制版ChatGPT。

6.2 场景二:智能内容创作与发布助手

如果你是内容创作者,这个智能体可以成为你的得力副手。

  • 工作流设计
    1. 灵感收集:监控社交媒体热点、行业论坛讨论,抓取热门话题。
    2. 大纲生成:将话题发送给DeepSeek R1,提示它:“请以‘[话题]’为主题,为一篇技术博客生成一个详细大纲,包括引言、3个主要论点及论据、结论。”
    3. 内容扩写:你可以选择大纲中的一个部分,将其发送给DeepSeek R1进行扩写。通过迭代和人工微调,逐步完成整篇文章。
    4. 格式优化与发布:完成初稿后,让AI检查语法、调整语气。最后,通过n8n的“WordPress”或“Ghost”节点,将最终文章自动发布到你的博客平台。你甚至可以连接社交媒体节点,自动生成推文或短文进行预告。

6.3 性能调优与资源管理

随着工作流越来越复杂,你可能会关心性能和资源占用。

  • 模型选择deepseek-r1:7b 在大多数任务上已经足够出色且响应迅速。对于更复杂的推理任务,可以尝试在Ollama中加载 deepseek-r1:14b32b 模型,并在n8n中创建另一个AI节点凭证指向这个更大模型,在需要时调用。
  • Ollama参数调整:在Ollama运行模型时,可以附加参数。例如,ollama run deepseek-r1:7b --num-predict 512 可以限制生成的最大令牌数,防止生成长篇大论。你可以在n8n的Ollama凭证配置中,尝试在“Additional Parameters”里传入这些设置。
  • n8n工作流优化:对于频繁触发的任务(如每分钟检查邮件),确保工作流执行效率。避免在循环中调用AI节点,可以将批量数据一次性发送。利用n8n的“Wait”节点控制执行频率,避免对本地资源造成不必要的压力。
  • 数据安全提醒:虽然所有数据都在本地,但良好的习惯依然重要。n8n中配置的各类凭证(如邮箱密码、Notion密钥)请妥善保管。定期备份 n8n_data 这个Docker卷,你的所有工作流配置就都在里面了。可以将整个卷目录复制到其他安全位置。

搭建和优化这个本地AI智能体的过程,就像在精心培育一个数字生命。它从一开始只能简单回应,到后来能帮你处理复杂的多步骤任务,这种成长感是使用任何云端黑盒服务都无法带来的。我自己的智能体现在已经能处理从信息筛选、初稿撰写到日程提醒等十几种任务,它就像长在我电脑里的一个“数字副脑”。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐