两周前,我试用了Open Claw。我觉得它的潜力很大,但工具本身并不让我满意。
和许多人一样,我在安装过程中遇到了很多麻烦。而在使用Linux系统时,针对Mac系统的设计方式更是增加了不少障碍。有时候不清楚应该通过文档、命令行界面还是图形界面来进行配置和管理。
我认为它的用户界面很不直观,甚至让我怀疑它是否只是开发人员用的临时工具。尤其是颜色搭配,显得非常刺眼:所有的红色都会让人产生视觉错觉,导致白色的文字看起来像是绿色的,而且所有内容都像错误提示一样显示出来。
我完全搞不懂它的组织结构和设计逻辑。工作区、代理和会话这些概念我都是熟悉的,但Open Claw实现它们的方式让我完全无法理解。

Open Claw最初是用来将聊天工具与AI连接起来的。八个月前,我就用n8n实现了这个功能,只需要几个节点而已,操作非常简单,所以我当时并没有觉得它有什么特别的。在我看来,Open Claw其实并没有什么独到之处,除了它的设计思路之外。它就像是代理型AI领域里的“Flappy Bird”罢了。
于是我决定自己动手做一个类似的工具。几小时后,我就用Python编写了一个简单的原型,并将其与Open WebUI连接了起来。
但我想知道OWUI到底向代理发送了什么样的指令。如果我是Python专家的话,可能会直接查看控制台输出来获取这些信息。但相反,我选择了我最熟悉的工具——n8n。就在这时,事情变得有趣起来了。
关于本手册
本手册将通过实际操作和我在项目中使用的示例,向您介绍如何创建代理型AI。
Decapod并不是一个独立的SaaS产品。它的所有组件都是开放源代码的,用户可以对其进行修改和定制。Decapod由一系列`docker-compose.yml`文件、脚本、AI代理指令以及n8n工作流程组成,这些元素共同帮助您快速建立起自己的代理型AI系统。
您将学习并使用以下概念和技术:
-
代理型AI及其相关工具和技能
-
使用Docker Compose构建Docker容器
-
Open WebUI
-
n8n
-
S3和MinIO存储服务
-
Caddy网站服务器
-
Postgres数据库
有关所需技能、服务和工具的详细信息,请参阅“需求与流程”部分。
目录
Decapod——DIY者的理想工具
说实话,起初我根本没有考虑过使用Open Claw所带来的安全问题。但这些问题的严重性显而易见!我们这样做无异于在服务器上打开一个巨大的漏洞,让这个刚刚诞生的外星智能系统获得了对所有API密钥的访问权限……究竟会引发什么后果呢?
Decapod并不是一个单一的应用程序,而是一组工具和n8n工作流程的组合,它能让使用者完全掌控自己的代理程序及其相关工具。这个框架旨在为普通开发者提供更多帮助。
通过改用n8n,我意外地解决了很多问题,最终打造出了一个在我看来质量更高的项目:
-
双重安全防护机制——如果选择在VPS上运行,甚至还有三重防护。我的代理程序被安置在n8n框架内,而n8n本身又位于Docker容器中,最终这些组件都被部署在VPS上。
-
代理程序根本不需要知道任何API密钥,也不需要了解具体的服务连接方式。所有认证相关操作都由n8n来处理。
-
高度灵活性——虽然我更喜欢OWUI界面,但实际上,任何能够连接到OpenAI标准API端点的工具都可以与Decapod配合使用。
-
超过1,000种集成方案——n8n的最大优势在于它可以通过拖放节点将任意API与其它API连接起来。目前这样的集成方案已经超过了1,000种。
-
对技能的要求更加严格——Decapod确实需要使用某些“技能”,但这些技能必须与n8n的工作流程和节点相结合才能发挥作用。
Decapod还解决了许多其他问题:
-
减少了不必要的资源消耗——Decapod能够明确区分哪些任务适合用代码或逻辑来处理,哪些任务更适合由AI来完成。
-
有效避免了无限循环和任务挂起的情况——n8n拥有一个由AI管理的任务系统,当发现某个任务失败时,系统可以自动调整任务安排或暂停相关操作。
-
提供了人工干预机制——你可以在任何AI技能之前添加一个人工干预子工作流程,从而决定是否允许该技能继续执行。
-
可靠的MVP产品——Decapod的核心系统其实只是一个简单的MVP版本,但它完全基于成熟的开源企业级技术构建而成:n8n、Open WebUI、Docker、Caddy、Postgres以及MinIO。
Decapod的工作原理
Decapod是一种中间件,它的功能类似于OpenAI API。但它会拦截API调用请求,并实际利用真实的OpenAI API来执行相应的操作。
OpenAI API标准是当前业界应用最广泛的接口规范。几乎所有的工具,比如Open WebUI、Zed和Obsidian,都支持与OpenAI标准进行交互。因此,这些工具也同样可以与Decapod配合使用。
Decapod本身也可以连接到任何API,并将可用的模型传递给其他工具。我个人非常推荐OpenRouter——它同样遵循OpenAI标准,但允许用户以相同的费用使用数百种主流及独立开发的模型。Decapod在出厂时就已经配置好了与OpenRouter的兼容性。

这是一张展示Decapod代理工具路由器的图片——它是Decapod系统中最重要的工作流程组件之一。
核心引擎
Decapod由拥有各种工具和技能的代理组成。所谓“工具”,指的是AI可以通过API来使用这些工具来执行特定任务;而“技能”则指的是Anthropic制定的代理技能标准,Open Claw也是采用这一相同的标准。
Decapod的代理拥有有限且不可更改的工具集,这些工具用于管理系统的状态及作业队列。其中有一种工具专门用于调用各种技能;而这些技能本身是动态可扩展的,因此在运行过程中你可以根据需要添加任意数量的技能。
每项技能都由核心指令以及JSON格式的规范组成。代理会根据这些JSON规范构建请求,并通过“use_skill”工具来执行相应的操作;随后,Decapod会找到与所选技能名称匹配的子工作流程,并将相关数据传递给该子流程。
简单来说:一项技能对应一个子工作流程,而JSON规范则定义了该子工作流程所需的输入数据。
当Decapod收到用户发送的消息时,它会将其传递给代理;如果只是普通消息,代理会直接作出响应;但如果消息中包含具体的操作指令,代理就会选择相应的工具开始执行任务。
Decapod会依次处理队列中的每一项作业,执行代理所需的操作,并将结果反馈回来。当代理完成所有任务后,系统会结束当前作业并停止发送后续请求,最终会将处理结果返回给用户。
Supakitchen——经济实惠的Supabase替代方案
我非常喜欢Supabase,它拥有Firebase的所有功能,同时还具备数据规范化处理的优势。不过由于每月为五项或更多服务支付20美元的费用对我来说有些不划算,因此我选择自行托管Decapod。
作为一个热衷于尝试新工具的“疯狂科学家”,我希望能自由地试用各种工具而无需受免费增值服务的限制。所以我将Decapod运行在Hetzner提供的VPS上,该VPS配备了8GB的RAM,每月的费用约为18美元。对于自行托管的环境来说,这8GB的内存已经足够使用了,不过Supabase本身对系统资源的要求还是相当高的。
我的真正目标是让代理能够访问文件系统并使用数据库,而通过MinIO和Postgres,我实现了这一目标。虽然没有实时数据处理的功能,但既然代理本身就是异步运行的,所以这也完全满足了我的需求。此外,代理的认证过程也是通过n8n框架来完成的,因此这样的配置已经非常不错了。
不过,你们完全可以根据自己的实际需求来选择适合的工具——Decapod其实可以与任何兼容S3协议的文件存储系统以及任何Postgres数据库配合使用。所以如果你们更喜欢使用Supabase,那就尽管去用吧!
开放式的WebUI界面——功能齐全的AI聊天工具
你完全可以使用Discord、Telegram、Slack等聊天工具来与AI进行交流,但这在处理多会话或使用不同模型时可能会显得比较麻烦。
迄今为止,最容易设置和使用的是Telegram。它提供了聊天功能、UI界面元素,甚至还可以嵌入应用程序,而完全不需要像使用Discord那样自行搭建服务器。我曾经用它在短短几小时内就开发出了一个用于客户信息筛选的工具。

但是!虽然Telegram及其相关工具确实能够完成某些任务,但如果你想要使用新的功能或模型,就必须为每一个需求单独创建一个新的机器人程序。如果想切换不同的处理模型,就需要添加相应的命令;而如果要实现上下文管理,那就必须在服务器端进行处理。
正因如此,我更喜欢Open WebUI。OWUI提供了所有主流人工智能工具应该具备的功能,并且可以直接通过API进行调用。
-
它作为渐进式Web应用,在浏览器和移动设备上都能很好地运行。
-
你可以使用Python对它进行定制和扩展。
-
它提供了多种方式来管理和传递上下文信息,包括支持嵌套的项目/文件夹结构以及RAG功能。
-
你还可以与人工智能一起协作处理笔记内容。
这些只是我最喜欢的部分功能,但实际上还有很多其他功能。既然已经有最好的解决方案存在了,为什么还要重复发明轮子呢?
所需条件与流程——我使用并推荐的工具
欢迎来到我的“实验室”。我们现在正处于智能代理技术的边缘领域,正在通过组合各种技术组件来进行各种实验。让我来告诉你我是如何工作的,以及你在哪些方面可以遵循我的方法,在哪些方面不能偏离这些步骤。
Decapod已经是一个功能完备的最小可行产品,安装后几乎可以立即使用,而且不会遇到太多问题。不过目前它还只具备有限的几项功能,因此在你进一步开发之前,可能需要自己补充一些功能。幸运的是,你的Decapod智能代理可以帮助你完成这些工作。
检查清单
所需技能:
-
✅ 具有通用型思维模式、解决问题的能力以及探索精神。
-
安装Decapod并不需要成为任何领域的专家——我就是这样做的。
-
但你需要对多种不同的技术有所了解。
-
-
✅ 熟悉命令行、Docker以及Node.js。由于Decapod是需要自行托管的,因此这些技能是必不可少的。
-
✅ 能够阅读和编写简单的JavaScript代码。这对于使用n8n框架来构建应用程序非常有帮助。
-
✅ 熟悉JSON格式和API接口。在n8n框架中,所有数据传输都是通过JSON格式在各个节点之间进行的,而n8n本身就是一个通用的API连接器。
所需服务:
-
✅ 一个拥有DNS访问权限的域名。
-
由于CORS和安全方面的原因,这个域名对于n8n的正常运行至关重要。
-
另外,如果通过IP地址来托管OWUI PWA,它就只是普通的网页而已,无法发挥其全部功能。
-
支持HTTPS协议还能提升整体安全性。
-
如果成本是个问题,你可以从gen.xyz网站以0.99美元的价格购买一个全数字域名。这个选项看起来挺靠谱的,不过我自己还没有试过。
-
-
✅ 一台拥有SSH访问权限的专用VPS服务器。(任何VPS服务器都应该提供SSH访问功能。)
-
理论上,如果你确定自己的电脑能够24小时不间断运行,也可以在自家电脑上托管这些服务。但使用VPS服务器会让你更加放心,也能避免让你的个人电脑变得过于复杂。
-
像AWS和Google Cloud这样的知名云服务平台,如果使用不当,反而可能会让你付出沉重的代价。因此,选择那些不太面向企业的云服务会更为稳妥。我曾经使用过以下这些服务商:
-
Hetzner——这是我目前个人最喜欢的云服务提供商。总部位于德国,服务质量高且价格合理,同时也提供一些美国服务器选项;使用欧洲服务器的话,费用会更加低廉。
-
Digital Ocean——总部位于美国,非常可靠,价格适中,提供的服务种类也很多,不过几乎所有的服务器都位于美国。
-
Webdock——总部位于丹麦,是这些选项中费用最低的。
-
-
✅ 一个OpenRouter账户。这个账户为数百种人工智能模型提供了统一的接口。与Hugging Face不同,OpenRouter不会强制用户购买高级功能,但在购买信用点或代币时需要支付一定的附加费用。不过我觉得这笔额外的费用是值得的——因为这样就可以随时根据需要切换不同的智能模型,而无需再配置额外的密钥、账户或连接设置。当然,这个选项也是可选的;如果你愿意,可以直接将Decapod连接到Kimi或Gemini等模型上使用。
工具:
-
✅ Cursor——我非常喜欢这款工具。它非常适合我的操作风格。当你在创作过程中即兴发挥、自由发挥各种想法时,如果你不持续参与操作,AI肯定会总是选择错误的路径。而使用Cursor,我可以掌控整个创作过程,扮演导演的角色,让AI来承担繁重的工作,这样我就不用花费数小时去搜索信息,也不用在Stack Overflow上翻找那些十年前的问题了。尤其是在处理命令行相关任务时,没有它的话,我根本不可能在两周内完成Decapod项目的开发;但如果没有我的参与,AI也同样无法完成这个项目。
-
✅ 另一款优秀的AI工具,能帮助你进行构思、规划与设计。Cursor确实很实用,但它更侧重于功能性。我会一直打开它的界面,边工作边向它输入相关信息,依靠它来获得新的视角,从而解决一些更为复杂的问题,比如调试n8n流程中的错误。而Claude则可以用于几乎所有场景——它的对话方式最为自然,能够很好地理解关于自身行为的指令,并且始终注重准确性和可靠性,因此非常值得信赖。
组建“梦想团队”——采用宜家式组装方法
以下就是你在Dekkaplonkën的宜家式包装中会找到的各种组件和工具(具体信息请参见GitHub仓库)。
- 四个Docker容器,其中包含了五个服务以及相应的docker-compose配置文件。只需将其启动即可使用。
-
基础设施:Caddy用于路由管理;SSL证书则用于保障https连接的安全性。
-
基础设施:Postgres数据库,可满足你所有的数据存储需求。
-
MinIO:一种与S3兼容的文件存储系统。
-
n8n:终极自动化工具。
-
Open WebUI:终极AI聊天界面。
-
SQL数据库表
-
用于记录Decapod系统的运行状态的表格。
-
用于存储任务信息、工作流程以及工具使用历史的表格。
-
-
S3文件与文件夹——包含代理程序的模板文件
-
四种初始技能模板(其中两种已实际集成到n8n系统中)。
-
两份教学文档,其中包含了角色设定及各项技能的定义。
-
-
n8n工作流程文件(共6,889行纯JSON代码)
-
API中间件:负责管理会话流程及循环执行逻辑。
-
AI工具路由器:用于执行代理程序发出的工具请求。
-
消息记录功能:用于在代理程序的聊天历史记录中添加相应的指令。
-
作业队列获取模块:通过数据库查询,按优先级和创建时间顺序获取待处理的作业任务。
-
辅助工作台:用于测试和管理各种工作流程。目前其中包含一个用于组装技能模板的工具。
-
工作进程:负责遍历作业队列,与代理程序进行交互,并根据代理的响应来调用相应的工具。
-
写入文件的功能模块以及研究配方相关的功能模块。
-
还有一些占位符文件(因为Decapod目前还处于MVP阶段)。
-
-
此外还有:
-
Docker使用指南。
-
一个用于根据模板生成代理程序的脚本。
-
一个破坏性脚本,可用于将本地的代理程序文件上传到S3账户中,但会覆盖现有文件。开发过程中可以使用这个工具,但如果让代理程序自行修改指令的话,就会带来问题。
-
用于同时启动或停止所有Docker容器的脚本。
-
-
可以同时使用多个终端来访问远程服务器。
-
通过端口转发功能,可以将本地主机上的服务器视为在自己的机器上操作。
-
支持拖放操作,方便管理文件和文件夹。
-
无需再使用Nano、Vim或Emacs等编辑器(除非你特别需要)。
-
最棒的是!Cursor能够帮你完成所有与远程文件系统相关的操作,包括排查服务器和容器的故障、编写自动化脚本以及帮助你制定可行的计划。
-
(Cursor甚至还可以连接你的Decapod设备!)
使用Cursor与SSH访问VPS
SSH一直是访问任何服务器的标准方式。但通过终端进行操作往往速度较慢且过程繁琐。幸运的是,还有更好的方法。
你可以使用Cursor、VS Code、Antigravity或任何你喜欢的工具来连接服务器。这样你能获得以下优势:
每个VPS提供商都会提供自己特有的SSH访问管理方式,通常这些设置会包含在注册流程中。
生成和管理SSH密钥是相对常见的操作,这里就不详细介绍了。如果你需要帮助,Cursor完全可以帮你完成这项工作。
不过我个人使用Bitwarden来管理和生成SSH密钥。虽然这些密钥仍需存储在本地计算机上才能被工具访问,但将它们集中存放在一个安全的位置确实很方便。
VS Code需要安装额外的插件才能连接远程服务器,而Cursor已经预装了相关插件。只需点击“通过SSH连接”,设置好连接信息,就可以开始使用了。

📝 顺便提一下:我刚开始使用这个服务时其实是选择了付费套餐的。不过每当有新的产品推出或者我发现新的工具和功能时,我就经常会更换服务提供商。但每次我只会同时支付两三个服务的费用而已。
我在读这篇文章的时候,Cursor的服务期限刚好到期了。于是我开始试用新的Gemini 3系列工具,并在途中切换到了Antigravity,而没有重新购买Cursor的服务。
安装与配置Docker容器
终于!经过前面这么长的介绍,我们现在终于要进入实际的操作环节了。具体步骤将在下一篇文章中详细说明——晚安啦!开个玩笑啦,请别真把砖头拿下来哦。
一旦你通过SSH成功连接到了VPS、安装了Ubuntu系统的Raspberry Pi或虚拟机,就可以开始准备了。我假设你已经知道如何在自己的系统上安装Docker和Node等工具,因此这里就不详细讲解这些步骤了。如果遇到问题,可以向你的智能助手寻求帮助。
💡 重要提示!如果你还没有注册域名,请尽快去设置DNS记录。你需要将每个相关服务的“A”记录指向你的IP地址。

首先,克隆 Decapod 仓库。
git clone https://github.com/leetheguy/decapod.gitcd decapod,然后创建你的 Docker 网络。docker network create web接下来,我们将依次进入这四个 Docker 文件夹,对它们进行配置并启动相应的服务,首先从 “基础设施” 目录开始。
cd infrastructurecp .env.example .env或者,你也可以直接将这些文件移动到其他位置并重新命名;或者在用户界面中点击这些文件,然后按
F2键来修改它们的名称。随你的便吧 🐐。现在编辑新的
.env文件。你可以通过点击 “基础设施” 目录,然后按Ctrl/Cmd+Alt+C来获取数据文件夹的路径。后续的操作就交给你自己完成了。我在这里使用了 Bitwarden 生成密码。接下来,将 Caddyfile 模板复制到一个单独的文件中。cp caddy_config/Caddyfile.template caddy_config/Caddyfile然后使用docker compose up -d命令启动 Docker 容器。
退出 “基础设施” 目录,进入 “minio” 目录。对于 “.env” 文件,同样需要执行复制和配置操作。请确保其中的 URL 与你的域名相匹配。接下来对 “n8n” 和 “openwebui” 也分别进行同样的操作。
OWUI 的配置信息来源于 “infrastructure” 和 “minio” 目录下的.env文件:-
S3_ACCESS_KEY_ID=minio_admin
-
S3_SECRET_ACCESS_KEY=minio_password
-
S3_BUCKET_NAME=decapod
-
MINIO_ROOT_USER=minio_admin
-
MINIO_ROOT_PASSWORD=minio_password
-
POSTGRES_DB=postgres
-
POSTGRES_USER=postgres
-
POSTGRES_PASSWORD=postgres_password
📝 注意!OWUI 可能需要一两分钟才能启动。你去喝点水吧,等你回来时它应该已经启动好了。配置与连接设置
准备好动手操作吧!现在我们需要仔细地配置各个组件了。
如果一切按计划进行,那么现在这五个服务应该都已经成功启动并运行起来了。你可以使用docker ps命令来确认这些容器是否正在运行中。另外,你也可以访问 s3、OWUI 以及 n8n.your-domain.com 来检查它们是否真正连接到了正确的服务器上。为这三个服务创建账户并登录到相应的系统中。
⚡️ 重要提示!一定要获取你的 n8n 许可证密钥!它是免费的,而且能让你使用所有的社区功能。如果没有这个密钥,你的使用体验将会受到严重限制。请在设置中的 “使用与计划” 部分激活它。初始化数据库
Decapod 只需要两个数据表。你可以通过命令行来创建这些表,但我更喜欢使用 pgAdmin 这个工具。
以常规方式连接到你的 Postgres 数据库。不过,在连接时,请使用服务器的 IP 地址作为主机名,而不是 “postgres”(这个名称是用来在 Docker 网络内部连接各个服务的)。因为 pgAdmin 并不在你的 Docker 网络中。
你会在components/pgsql_tables目录下找到相关的 SQL 文件。创建一个名为 “decapod”的数据库,然后将这两个 SQL 文件添加到该数据库中。运行这些 SQL 语句后,系统会自动生成一条默认的decapod_state表记录。在pgAdmin中:
-
打开Decapod服务器。
-
右键点击“数据库”选项,创建一个新的Decapod数据库。
-
选择新建的数据库。
-
点击浏览器顶部的查询工具按钮。
-
将“decapod_state”表复制到查询框中,然后按F5键运行查询。
-
清除查询结果,粘贴“job_queue”表,再次运行查询。
如果你更喜欢使用命令行进行操作,也可以向Cursor或AI助手寻求帮助。
关于MinIO
接下来,你需要将代理的指令文件和配置文件上传到自己的私有S3服务器上。首先访问MinIO服务器,创建一个名为“decapod”的存储桶。
在
components/S3_structure/agents/目录中,你可以找到用于配置代理的模板文件。(我计划在未来的版本中将Decapod发展成一个支持多代理的工具。)这个模板可以直接复制到你选择的任何代理配置中;不过如果你使用的是其他类型的代理,就需要手动更新相应的状态表数据。如果你愿意,也可以手动完成这些操作:将相关文件复制到新代理对应的文件夹中,并修改
definitions/skills.yaml文件,添加你希望代理具备的所有技能。文件的名称和描述内容必须与模板文件中的信息完全一致。或者,我编写了一个脚本来简化这个过程。这个脚本位于“scripts”文件夹中,使用它之前需要先安装
inquirerNode模块。运行cd scripts并执行create-agent.mjs即可开始操作。另外,还需要确保你的MinIO服务器上的文件和文件夹结构与
S3_structure目录中的配置相匹配。首先在本地驱动器上创建一个名为“decapod”的存储桶,然后将S3_structure目录中的文件上传到这个存储桶中。不过实际上这样做还是有点麻烦的,因为这些文件位于远程服务器上。如果你之前使用了可视化界面进行操作,可能还需要先将文件下载到本地机器上。因此,我还编写了另一个脚本——
upload_S3_structure.sh。这个脚本仅适用于开发测试用途,其操作具有破坏性,因此请谨慎使用!记住,工具和复杂的操作绝对不能混为一谈。
一旦代理配置文件准备就绪,你可以允许代理们自行修改这些文件,或者你自己直接进行编辑。不过MinIO提供的用户界面功能相对比较简单。
为了获得更好的使用体验,我推荐使用S3Drive。注册账号后,找到底部的“连接”按钮,即可连接到自己的MinIO服务器。

使用S3Drive,你可以在上传文件后直接在服务器上编辑它们。这对于进行快速修改或复制部分内容而无需彻底删除原有数据来说非常方便。
添加工作流
在“components”文件夹中,你可以找到构成“Decapod”系统的绝大部分组件。而这些组件的核心部分位于“n8n_workflows”目录中。
你可以手动逐一导入这些工作流,仔细检查每一项以确保它们没有问题。或者,你也可以在Docker容器中使用n8n CLI来简化这个过程。
这些命令会将工作流复制到Docker容器中,然后使用n8n CLI导入它们,最后再将它们从“tmp”目录中删除。
docker cp ./components/n8n_workflows n8n:/tmp/workflows docker exec -u node n8n n8n import:workflow --input=/tmp/workflows --separate docker exec -u node n8n n8n import:workflow --input=/tmp/workflows/skills --separate docker exec -u root n8n rm -rf /tmp/workflows现在,你应该能在n8n系统中看到这10个工作流了。我建议将主要的工作流拖放到专门的“decapod”文件夹中,而将相关的技能文件放入“decapod/skills”文件夹,这样可以让代码结构更加清晰。不过这些工作流是通过ID相互关联的,所以你可以根据自己的需求来安排它们的位置。
开始使用n8n
现在正是开始通过n8n的用户界面探索这些工作流的好时机。如果你按照名称对它们进行排序,主要的工作流文件会显示在最上方。打开这些文件后,你会发现它们的结构并不复杂,并且都有详细的文档说明。蓝色代表注释,绿色代表子工作流,红色则代表需要输入用户名和密码的节点。
我建议你仔细阅读这些注释,并深入研究相关的子工作流,这样就能更好地理解“Decapod”系统的功能了。毕竟这现在已经是你的工具了!在使用的过程中可以根据需要创建相应的用户名和密码。
由于我们使用了Docker网络,因此创建用户名和密码以及将各种服务相互连接起来简直非常简单。

连接所有服务时,标准的做法是使用
name:port这种格式。由于Postgres的用户名和密码设置中已经包含了端口信息,因此你只需将其设置为“Postgres”,端口数值应为5432即可。📝 注意!所有的用户名和密码详细信息,包括容器名称、端口号以及密码,都可以在“docker-compose”文件和“.env”文件中找到。
对于MinIO来说:
-
端点地址:
http://minio:9000 -
强制使用路径格式:已启用!这对MinIO来说非常重要。
与OpenRouter建立API连接时:
-
首先选择“Authentication”选项,然后选择“Predefined Credential Type”。
-
接着选择“Credential Type”,然后输入“OpenRouter”。
-
最后将你在OpenRouter上获取的API密钥粘贴到这里即可。
关于n8n——如何访问你的工作流:
-
在新标签页中,进入“n8n Settings” -> “n8n API”设置页面。
-
如果需要,可以关闭过期检测功能。
-
复制你的API密钥。
-
将其粘贴到相应的输入框中。
-
基础URL地址为:
http://n8n:5678/api/v1
一旦创建了认证信息,就可以在所有使用相同认证信息的节点中重复使用这些信息。只需从下拉列表中选择相应的选项即可。
💡 小贴士!在添加新的认证信息时,最好将那些红色的便签条删除掉。另外也别忘了设置相关的技能选项哦!我根本没有使用便签来标记这些技能。
作为最后的步骤,请确保按照以下顺序发布您的n8n工作流:
-
构建消息历史记录
-
获取任务队列
-
判断结果为“是”或“否”
-
使用工具路由器
-
启动工作进程
-
配置中间件
-
以及设置那两项技能选项
💡 小贴士!在调用n8n工作流之前,务必确认它们的状态显示为“已发布”,即页面上会有绿色标记。否则,您将会调用到过时的版本。
现在,让OWUI与Decapod进行通信吧
OWUI是为团队使用的工具,因此它提供了管理员设置和个人设置选项。要编辑管理员设置,请点击左下角的个人资料图标,然后选择“管理面板”→“设置”→“连接配置”。

接下来,请进行以下配置:
-
关闭Ollama API:这只是为了保持设置整洁而已。
-
点击齿轮图标来配置OpenAI连接,然后也将其关闭。
-
直接连接:启用
-
缓存基础模型列表:启用
-
使用加号按钮添加Decapod连接器。
-
URL:http://n8n:5678/webhook/v1/decapod(点击循环图标以确认连接是否成功。)
-
认证方式:无需设置(因为所有系统都在同一个Docker网络中,所以目前这样就可以了。在正式生产环境中,您可以添加密码进行验证。)
-
前缀ID:decapod(如果您以后决定使用OpenAI、Hugging Face等其他服务,这个前缀有助于区分不同的模型主机。)
配置完成之后,请保存设置并切换到“模型”选项卡。Decapod会直接将OpenRouter模型的结果传递出来。因此,如果您看到了上百个模型,那就说明Decapod已经正常运行了,能够接收请求,而且您也已经完成了所有的认证步骤(至少是针对OpenRouter的认证)。
现在创建一个新的聊天会话并选择一个模型吧。我个人比较喜欢Claude Haiku 4.5版本——它速度快、成本低且性能良好。我在进行所有与Decapod相关的开发工作时都使用了这个模型,所以可以确定它的可靠性。另外,使用350万个令牌进行测试迭代大约只需要花费4美元,因此性价比也很高。当然,Kimi K2.5也可能是一个不错的选择,甚至价格还会更低一些。我曾经在Open Claw环境中安装Kimi模型时,只花了大约3美元就完成了操作。

是时候和你的小助手打个招呼了!Haiku的反应速度非常快,所以如果它需要几秒钟以上才能做出回应,那就说明你的n8n工作流程中肯定出现了问题。我在写这篇文章的时候就遇到了这种情况,Postgres和MinIO都出了故障。
💡 小贴士:如果代理程序突然停止响应,重新发送消息会比停下来重新尝试要方便得多。
本应该发生一场惊天动地的巨响……
其实你的代理程序真的很想和你交流,但你现在看到的只是一个不断闪烁的点而已。这很可能意味着n8n中的某些配置出现了错误。
你可以通过进入中间件工作流程,并从顶部的菜单栏中选择
executions来调试n8n。如果左侧列表中显示有错误信息,那么请查看右下角的部分。
我就是因为数据库配置出了问题,导致系统无法找到状态表,才遇到了这种麻烦。
有些子工作流程可能会在无声无息中失败。你可以从webhook入口点开始追踪整个工作流程,找出出现错误的地方。所有成功的节点会显示为绿色,而出错的节点则会显示为红色。仔细检查每个子工作流程中的执行步骤,重复这个过程即可找到问题所在。

当你找到问题的根源——也就是那个出现错误的节点时,可以在右上角选择“复制到编辑器”选项。这样就可以将工作流程冻结在当前状态。打开该节点,修复相关配置问题,然后点击
执行步骤来验证问题是否已经得到解决。请记住:每次进行修改后,都必须立即发布更新内容。否则,n8n就不会使用你已经修复后的最新版本的工作流程。
在成功调试完你的Decapod之后,一定要使用pgAdmin或其他工具清理job_queue表中那些未完成的任务。否则,代理程序会试图先完成这些任务,然后再继续执行下一个任务。
永远存在的“Hello World”示例
好了!现在到了检验成果的时刻了。你已经让你的代理程序成功回复了“hello”,这个过程其实很简单,因为它不需要进行任何复杂的操作,也不需要使用任何工具。
我为你准备了两项技能来测试这个功能:write-file和research-recipes。其中research-recipes技能可以让你的机器人连接到一个免费的食谱API(无需注册密钥),它不仅仅是从训练数据中提取食谱信息而已。

试试这个提示:你能帮忙查找披萨的制作方法,并将它们保存到一个文件中吗?
如果你的所有设置都配置正确,你应该就能得到你想要的内容。打开MinIO或S3Drive,在
/agents/decapod/documents目录中寻找那个文件。迈向未来!
我知道这些内容有点多……至少对我来说是这样。希望这些讲解没有让你感到太繁琐。不过从积极的角度来看,你刚刚快速了解了一些非常强大的技术。如果你能够坚持看完,那就已经是一个了不起的成就了!困难的部分已经过去了,现在该享受乐趣了。
仍在完善中
说实话,我当初只是想尽快推出Decapod,以便在Open Claw还备受关注的时候证明个人智能助手是完全可以实现的。任何人都可以几乎不写代码就能打造自己的智能助手系统,而且你不必忍受糟糕的用户界面或低下的安全性——你可以拥有所有这些优势。
不过正如我所说,Decapod目前还只是一个MVP版本。它已经具备完整的功能,但功能还不够丰富。对于早期使用者来说,我本来希望他们能够使用多个智能助手以及更多的技能。
然后我突然想到:其实你已经有n8n了,而n8n已经具备了你所需要的所有东西。

你只需添加一个n8n智能助手节点,将其连接到模型和MCP服务器上,几分钟内就能准备好一个可使用的子智能助手。然后让你的智能助手生成一份技能说明文件,以便与这个子智能助手进行交互。
自定义自己的技能——无限可能的未来
让我们先创建一个非常简单的n8n智能助手,让它用来搜索网页。之后我们就可以将这个功能添加到Decapod中,作为一项新的技能。

在上面的示例中,我使用了这样的提示:
非常感谢!接下来,我希望你能够通过一个子智能助手来使用网页搜索功能。也就是说,你的网页搜索技能实际上并不会直接去搜索互联网,而是会调用另一个简单的智能助手来帮你完成搜索任务。
你能为未来的自己创建一份名为“web-search.md”的技能说明文件吗?其中唯一需要填写的字段就是提示语。
默认情况下,智能助手相关的文件会被隔离在沙箱环境中,因此
skills/web-search.md文件实际上存储在智能助手私有的documents文件夹中。我后来把它移到了真正的技能文件夹里,并更新了智能助手的skills.yaml文件,加入了这项新技能。现在我将在
decapod/skills/目录下创建一个新的n8n技能工作流程。⚡️ 重要提示!你的n8n技能工作流程名称必须与技能的名称完全一致。例如,web-search.md表示这个工作流程的名字就是“web-search”。Decapod会根据这个名字来查找相应的技能,这样就可以实现快速加载而无需额外的中间环节。
上面展示的n8n截图几乎完整地反映了整个流程。你可以尝试自己重新构建这个流程。我使用了聊天输入功能来确保该流程能够与n8n的聊天界面正常配合使用;同时,我也选用了Exa Web Search MCP作为搜索工具。虽然我使用了Haiku模型,但实际上使用任何更简单的模型也应该都可以达到预期效果。OpenRouter提供了许多具备相应功能的免费模型,这些模型完全能够满足需求。
一旦你的工作流程运行正常了,就可以将聊天节点替换为“当被其他工作流程执行时”节点,并让该节点以
parameters对象作为输入参数。
接下来,打开工具/工作台工作流程。这个工具会帮助你将基于Web搜索的工作流程转换成一个真正的“技能”。请按顺序逐一检查每个节点,在测试过程中可以使用“执行步骤”按钮来进行验证。这样,系统就会生成输出数据,而这些数据就可以被后续的节点作为输入资料来使用了。
-
从名称中获取工作流程ID:将名称设置为“web-search”。
-
向技能传递JSON参数:将parameters对象设置成{ “prompt”: “请问能给我一份包含各种披萨食谱及其来源链接的列表吗?” };(或者根据你的需求进行相应调整)
-
根据工作流程ID调用相应的技能:此时应该就可以成功执行了。

如果你的输出结果符合预期,那么你的“技能”就应该已经可以正常使用了。

在示例中,我使用了这样的提示语:“好的!我认为你已经准备好了。现在可以尝试搜索甜点披萨食谱吧。”
如果你的智能体出现了错误提示,请确保它明白在调用
use_skill工具之前,必须先创建一个任务。这个要求应该会在使用说明中明确提到,不过有时候人们还是会忽略这一点。(我需要再仔细检查一下这个细节。)
希望整个过程对你来说也并不复杂,现在你的脑海中应该也会像我一样充满各种可能性吧。如果你不担心安全问题,或者真的想让这个系统发挥更大的作用,甚至还可以让你的智能体使用
Create a workflow节点来创建自己的n8n技能……不过,还是不要这么做为好。未来计划
以下是我希望添加的一些功能:
-
命令行界面——用户无需进入n8n或pgAdmin就能查看代理程序的运行状态并管理其任务队列。
-
实时响应功能——我希望能够实时了解代理程序的执行过程,但实现这一功能有些复杂,目前还超出了MVP项目的范围。
-
多状态机制——通过多状态设计,可以同时运行多个代理程序;或者为不同的使用场景配置不同的代理程序/模型。例如,可以为健康健身相关的任务配置一个专门的代理程序,让它拥有独立的上下文窗口、任务队列和技能集;而另一个代理程序则可用于帮助用户管理编程学习进度。
-
这其实是一个需要修复的漏洞,而非预定的功能——目前应用程序中还有很多地方将状态和模型硬编码在了代码中。我也尝试开发了一些其他功能,但最终未能成功实现,因此留下了一些未完成的代码部分。我打算整理这些代码,最终把这些功能添加进去。
如果你读到了这里,并且对这些计划表示支持,非常欢迎你提出更多关于功能的建议和反馈。我也非常感兴趣了解人们是如何使用Decapod这个工具的,同时也很乐意回答你的任何问题。
有疑问吗?快来找Finn船长吧!
Decapod的诞生源于我花费一年时间研究人工智能与自动化技术,同时也得益于我在编程和应用程序开发领域20年的经验积累。
我目前正在为人工智能爱好者、自动化技术研究者以及系统思维专家们创建一个社区。这个社区将由Finn船长领衔——这位复古未来主义的太空船长在我们的时空里失去了他的船员团队,但他依靠人工智能、自动化技术和系统思维让飞船继续正常运行,同时也让自己有了可以交流的对象,每天早上还能闻到新鲜咖啡的香气。
事实上,Finn本身也是一个由人工智能技术构建的角色,他通过像Decapod这样的自动化系统来开展工作,并且会向人们传授这些技术的使用方法。
我的目标是为这些热衷于科学、充满梦想的开发者们创造一个温馨的学习环境,在社区成员以及Finn船长的帮助下,帮助他们不断成长。我计划每周发布文章,提供更多类似的教程,以及各种实用技巧。
无论你是需要帮助了解Decapod的功能,还是想学习自动化技术,又或者只是对人工智能的力量和未来发展充满兴趣——Finn船长的团队都欢迎你的加入。现在就免费加入吧。
-