在降级、断联和资源匮乏的环境中脆弱的设计毫无容错空间。每一个缺失的服务都成为故障点每一秒等待基础设施的时间都是你可能无法承受的损失。Project N.O.M.A.D.正是为这种现实而生。这是一个基于残酷前提设计的AI系统假设你需要时什么都不存在——没有云端、没有API密钥、没有网络、没有安全网。人类积累的知识被封存在本地硬盘上交给模型使用。Project N.O.M.A.D.专为现代系统崩溃的环境设计。它集成了本地AI、基于RAG的知识库、离线维基百科、地图和医疗参考。让我们在世界陷入黑暗之前看看它的样子。1、内置功能简而言之N.O.M.A.D. 提供以下开箱即用的功能AI聊天与知识库基于Ollama的本地AI聊天支持文档上传和语义搜索通过Qdrant实现RAG信息库通过Kiwix提供离线维基百科、医疗参考、电子书等教育平台通过Kolibri提供可汗学院课程及进度跟踪离线地图通过ProtoMaps下载区域地图数据工具通过CyberChef提供加密、编码和分析功能笔记通过FlatNotes提供本地笔记功能系统基准测试通过社区排行榜进行硬件评分简易设置向导引导式首次配置及精选内容集合N.O.M.A.D. 还包括内置工具如维基百科内容选择器、ZIM库管理器和内容浏览器。让我们看看它的实际操作。2、开始使用 Project N.O.M.A.D.N.O.M.A.D. 提供了适用于任何基于Debian的操作系统如Ubuntu的一键安装命令sudo apt-get update sudo apt-get install -y curl curl -fsSL https://raw.githubusercontent.com/Crosstalk-Solutions/project-nomad/refs/heads/main/install/install_nomad.sh -o install_nomad.sh sudo bash install_nomad.sh安装完成后您可以访问 http://localhost:8080您将看到指挥中心首先需要访问 http://localhost:8080/settings 并安装应用程序。我从信息库开始。然后可以转到内容浏览器开始下载符合您需求的精选内容。接下来要设置地图您需要访问 http://localhost:8080/settings/maps并从精选地图区域下载地图。现在如果您返回 http://localhost:8080您将看到信息库现已可用您可以搜索和阅读下载的内容。您还可以探索地图。它还有一个设置指南可根据您的需求定制项目。如果系统负载过高您可以通过实时监控和诊断查看系统状态数据每30秒刷新一次。这是一个伟大的项目可能性是无限的您可以在许多不同方向扩展 N.O.M.A.D. 及其智能体。在您开始之前我想详细说明一些内容以防您对它的架构感到好奇。3、架构作为约束满足N.O.M.A.D. 有一个基于Docker的编排层管理多个服务。关键服务包括Ollama本地LLM推理Qdrant用于语义搜索和RAG的向量数据库Kiwix离线内容服务器维基百科、医疗参考、电子书自定义管理服务管理上述所有服务的编排大脑N.O.M.A.D. 不使用单一的智能体框架即没有LangChain导入没有CrewAI依赖。它将核心智能体模式如RAG、工具使用、内存、服务编排作为其代码库中的一等公民实现。以下是推荐的运行规格处理器AMD Ryzen 7或Intel Core i7或更高内存32GB系统内存显卡NVIDIA RTX 3060或AMD同等产品或更高更多显存可运行更大模型、存储至少250GB可用磁盘空间最好在SSD上操作系统基于Debian推荐Ubuntu稳定的网络连接仅在安装时需要4、容器即智能体模式N.O.M.A.D. 的架构提出了一种我称之为容器即智能体的模式每个Docker容器封装一个能力推理、搜索、内容服务编排层充当协调它们的监督智能体。这直接映射到分层监督模式。在这种模式中监督智能体管理服务将任务委托给专业智能体容器每个专业智能体都有明确定义的接口API端点、Docker健康检查监督者处理故障恢复重启崩溃的容器、拉取更新通信通过显式消息传递HTTP请求、Docker事件发生而不是共享内存容器即智能体模式以进程内通信的便利性换取故障隔离崩溃的Ollama容器不会影响Qdrant独立扩展您可以为Ollama分配GPU资源而不影响其他服务技术异构性每个容器可以使用其所需的任何运行时部署灵活性容器可以通过滚动更新独立更新5、作业队列异步智能体执行N.O.M.A.D. 使用作业队列queue_service.ts处理长时间运行的任务嵌入文件、下载模型、运行基准测试、检查更新。每种作业类型都是一个单独的类embed_file_job.ts、download_model_job.ts、run_benchmark_job.ts等具有自己的执行逻辑。为什么智能体需要队列大多数智能体框架将执行建模为同步的用户提问智能体思考调用工具返回答案。这对于简单的聊天机器人交互有效但在以下情况下会灾难性地失败工具执行需要几分钟嵌入大型文档、运行复杂查询多个操作需要并行发生在嵌入文件时下载模型系统需要从故障中恢复失败的下载应该可重试而不是丢失用户期望进度更新显示下载百分比、嵌入进度N.O.M.A.D. 通过其队列处理所有这些问题。作业是持久的在服务器重启后存活、可观察的通过transmit实时事件系统跟踪进度和隔离的失败的嵌入作业不会阻塞模型下载。6、N.O.M.A.D. 做对了什么以及下一步将模型视为托管依赖项而不是服务调用。无论您是在本地运行Ollama还是在自己的基础设施上托管模型您的系统都应该拥有模型生命周期例如版本控制、更新、回退。2. 实现双内存对话 知识库。关系数据库中的短期上下文向量存储中的长期知识。这是有用智能体的最低可行内存架构。3. 使用异步作业队列执行工具。在智能体工作时不要阻塞用户。排队作业流式传输进度并让用户干预。4. 容器化能力而不是智能体。每个AI能力推理、搜索、内容都有自己的容器。编排层协调它们。这为您提供了故障隔离、独立扩展和技术灵活性。5. 为降级操作设计。当服务宕机时会发生什么当模型变慢时当存储已满时N.O.M.A.D. 处理所有这些情况因为离线优先的约束迫使团队从第一天起就考虑故障模式。6. 无情地进行基准测试。了解您系统的性能范围。在用户实际拥有的硬件上测试而不仅仅是在您的开发机器上。如果您对离线系统有任何评论或问题我很乐意在评论区听到您的想法原文链接NOMAD战时离线智能体 - 汇智网
NOMAD:战时离线智能体
发布时间:2026/7/15 0:57:46
在降级、断联和资源匮乏的环境中脆弱的设计毫无容错空间。每一个缺失的服务都成为故障点每一秒等待基础设施的时间都是你可能无法承受的损失。Project N.O.M.A.D.正是为这种现实而生。这是一个基于残酷前提设计的AI系统假设你需要时什么都不存在——没有云端、没有API密钥、没有网络、没有安全网。人类积累的知识被封存在本地硬盘上交给模型使用。Project N.O.M.A.D.专为现代系统崩溃的环境设计。它集成了本地AI、基于RAG的知识库、离线维基百科、地图和医疗参考。让我们在世界陷入黑暗之前看看它的样子。1、内置功能简而言之N.O.M.A.D. 提供以下开箱即用的功能AI聊天与知识库基于Ollama的本地AI聊天支持文档上传和语义搜索通过Qdrant实现RAG信息库通过Kiwix提供离线维基百科、医疗参考、电子书等教育平台通过Kolibri提供可汗学院课程及进度跟踪离线地图通过ProtoMaps下载区域地图数据工具通过CyberChef提供加密、编码和分析功能笔记通过FlatNotes提供本地笔记功能系统基准测试通过社区排行榜进行硬件评分简易设置向导引导式首次配置及精选内容集合N.O.M.A.D. 还包括内置工具如维基百科内容选择器、ZIM库管理器和内容浏览器。让我们看看它的实际操作。2、开始使用 Project N.O.M.A.D.N.O.M.A.D. 提供了适用于任何基于Debian的操作系统如Ubuntu的一键安装命令sudo apt-get update sudo apt-get install -y curl curl -fsSL https://raw.githubusercontent.com/Crosstalk-Solutions/project-nomad/refs/heads/main/install/install_nomad.sh -o install_nomad.sh sudo bash install_nomad.sh安装完成后您可以访问 http://localhost:8080您将看到指挥中心首先需要访问 http://localhost:8080/settings 并安装应用程序。我从信息库开始。然后可以转到内容浏览器开始下载符合您需求的精选内容。接下来要设置地图您需要访问 http://localhost:8080/settings/maps并从精选地图区域下载地图。现在如果您返回 http://localhost:8080您将看到信息库现已可用您可以搜索和阅读下载的内容。您还可以探索地图。它还有一个设置指南可根据您的需求定制项目。如果系统负载过高您可以通过实时监控和诊断查看系统状态数据每30秒刷新一次。这是一个伟大的项目可能性是无限的您可以在许多不同方向扩展 N.O.M.A.D. 及其智能体。在您开始之前我想详细说明一些内容以防您对它的架构感到好奇。3、架构作为约束满足N.O.M.A.D. 有一个基于Docker的编排层管理多个服务。关键服务包括Ollama本地LLM推理Qdrant用于语义搜索和RAG的向量数据库Kiwix离线内容服务器维基百科、医疗参考、电子书自定义管理服务管理上述所有服务的编排大脑N.O.M.A.D. 不使用单一的智能体框架即没有LangChain导入没有CrewAI依赖。它将核心智能体模式如RAG、工具使用、内存、服务编排作为其代码库中的一等公民实现。以下是推荐的运行规格处理器AMD Ryzen 7或Intel Core i7或更高内存32GB系统内存显卡NVIDIA RTX 3060或AMD同等产品或更高更多显存可运行更大模型、存储至少250GB可用磁盘空间最好在SSD上操作系统基于Debian推荐Ubuntu稳定的网络连接仅在安装时需要4、容器即智能体模式N.O.M.A.D. 的架构提出了一种我称之为容器即智能体的模式每个Docker容器封装一个能力推理、搜索、内容服务编排层充当协调它们的监督智能体。这直接映射到分层监督模式。在这种模式中监督智能体管理服务将任务委托给专业智能体容器每个专业智能体都有明确定义的接口API端点、Docker健康检查监督者处理故障恢复重启崩溃的容器、拉取更新通信通过显式消息传递HTTP请求、Docker事件发生而不是共享内存容器即智能体模式以进程内通信的便利性换取故障隔离崩溃的Ollama容器不会影响Qdrant独立扩展您可以为Ollama分配GPU资源而不影响其他服务技术异构性每个容器可以使用其所需的任何运行时部署灵活性容器可以通过滚动更新独立更新5、作业队列异步智能体执行N.O.M.A.D. 使用作业队列queue_service.ts处理长时间运行的任务嵌入文件、下载模型、运行基准测试、检查更新。每种作业类型都是一个单独的类embed_file_job.ts、download_model_job.ts、run_benchmark_job.ts等具有自己的执行逻辑。为什么智能体需要队列大多数智能体框架将执行建模为同步的用户提问智能体思考调用工具返回答案。这对于简单的聊天机器人交互有效但在以下情况下会灾难性地失败工具执行需要几分钟嵌入大型文档、运行复杂查询多个操作需要并行发生在嵌入文件时下载模型系统需要从故障中恢复失败的下载应该可重试而不是丢失用户期望进度更新显示下载百分比、嵌入进度N.O.M.A.D. 通过其队列处理所有这些问题。作业是持久的在服务器重启后存活、可观察的通过transmit实时事件系统跟踪进度和隔离的失败的嵌入作业不会阻塞模型下载。6、N.O.M.A.D. 做对了什么以及下一步将模型视为托管依赖项而不是服务调用。无论您是在本地运行Ollama还是在自己的基础设施上托管模型您的系统都应该拥有模型生命周期例如版本控制、更新、回退。2. 实现双内存对话 知识库。关系数据库中的短期上下文向量存储中的长期知识。这是有用智能体的最低可行内存架构。3. 使用异步作业队列执行工具。在智能体工作时不要阻塞用户。排队作业流式传输进度并让用户干预。4. 容器化能力而不是智能体。每个AI能力推理、搜索、内容都有自己的容器。编排层协调它们。这为您提供了故障隔离、独立扩展和技术灵活性。5. 为降级操作设计。当服务宕机时会发生什么当模型变慢时当存储已满时N.O.M.A.D. 处理所有这些情况因为离线优先的约束迫使团队从第一天起就考虑故障模式。6. 无情地进行基准测试。了解您系统的性能范围。在用户实际拥有的硬件上测试而不仅仅是在您的开发机器上。如果您对离线系统有任何评论或问题我很乐意在评论区听到您的想法原文链接NOMAD战时离线智能体 - 汇智网