OpenLumara - 一种与众不同的AI代理,从头编写,非Vibe编码。极其节省Token,系统提示非常小,专为本地模型设计。一切皆模块化。
摘要
OpenLumara是一个全新的开源AI代理框架,专为本地模型设计,强调Token效率、模块化和安全性。它从头编写,拥有小巧的系统提示,并能完全控制AI能力。
大家好,locallama社区!是的,我知道,又一篇AI代理发布帖。这类帖子多如牛毛……但大多数都是通过Vibe编码生成的,常常很粗糙,而且疯狂消耗上下文。这个不一样。它在普通硬件上运行得非常流畅且快速,专为本地模型设计。我利用业余时间花了几个月手动编码,现在它是我日常生活中的个人助理,管理我的日历、待办事项等等。koboldcpp社区Discord里的一些朋友也在使用它!我相信我创造了一个比openclaw和hermes更快、更轻量、更安全的代理。关键在于从零开始设计,使其适配本地模型,并摒弃了困扰99%代理框架的诸多惯例。TL;DR:如果你不想读完整篇文章,这里是最重要的信息:默认系统提示大约4k Token大小,一切都是模块化,任何功能都可以关闭。WebUI是一等公民,我投入了大量时间和精力使其用户友好。安全性从底层设计。一切基于工具调用,你可以完全控制AI能做什么、不能做什么以及能看到什么。完全开源,采用GPL2许可证,无商业利益。我只是一个无聊且时间充裕的女孩。AI免责声明:虽然这个项目不是Vibe编码的,但我确实在*部分*地方使用了AI辅助——主要是WebUI。我确保所有重要、核心、安全关键的组件都是手动编写的,因为众所周知,用Vibe编码这些会导致即时的安全噩梦。如果你阅读源代码,会发现我到处散布了一些注释,说明在核心部分被迫使用AI辅助的情况,例如正确解析工具调用流(OpenAI自己文档中的示例都是错的,你能信吗?)。如果我在框架核心部分使用了AI辅助,我会手动审查每一行代码,并经常添加注释。视频演示:https://www.youtube.com/watch?v=Sv15woUe2mk 获取地址:[https://github.com/Rose22/openlumara](https://github.com/Rose22/openlumara) 或者,使用esolithe的koboldcpp分支esobold,它内嵌了OpenLumara:[https://github.com/esolithe/esobold](https://github.com/esolithe/esobold)(感谢esolithe将OpenLumara集成到你的项目中 <3)专为本地模型、llamacpp以及任何底层使用llamacpp的工具和koboldcpp设计。--- 如果你想了解全部细节,请继续阅读:
当我看到openclaw发布以及围绕它的所有 hype 时,我不断注意到其明显的安全缺陷——*所有*功能都需要完全的 shell 访问权限(由于 skill.md 系统),而且它像无底洞一样消耗 Token……我还注意到,在本地模型上运行 openclaw 时速度极慢,而且它假设你的 AI 能够同时处理多个请求。对于本地模型来说,通常并非如此,尤其是 llamacpp,它设计为一次只处理一个请求。因此我开始着手制作一个类似 openclaw 的工具,但**从头开始**,以解决这些问题。我最初将其命名为 OptiClaw,现在改名为 OpenLumara。OpenLumara 旨在实现高安全性和高 Token 效率。在当前的默认启用模块设置下,系统提示大约 4k Token 大小。安全性和 Token 效率来自于其完全的模块化特性:**一切**都是模块化的,甚至包括其他代理视为“核心功能”的部分。记忆?它是一个模块。Shell 访问?它是一个模块,默认关闭。如果你关闭所有模块,系统提示实际上为空白,你就直接与裸模型对话,就像通过 llamacpp 的 WebUI 聊天一样。我确保当模块关闭时,其代码根本不会被加载,甚至不会被 Python 导入。因此你可以让它变得尽可能轻量或功能齐全!它不是依赖 `curl` 来访问互联网,而是有一个带有黑名单、白名单、仅 HTTPS 模式以及许多其他选项的 HTTP 模块,从而你可以精确控制 AI 能访问的内容。我还通过代码(而非 AI 的智能)对任何网页内容实施了防止提示注入的保护措施。它并非完美,但肯定比指望你的 AI 不听从网络上一堆可疑页面的指令要好得多!这适用于所有能访问互联网的模块。如果你需要 shell 访问,可以开启一个在沙箱化 Docker(或 Podman)容器中运行 shell 的模块,完全控制 shell 能做什么,包括关闭其互联网访问。也有非沙箱化的 shell 可用,但你会收到大量警告,告诉你这是个坏主意,如果你执意开启,那就是你自己的问题了 XD OpenLumara 看不到你的 API 密钥。它甚至看不到你的用户名和密码。它只能看到你选择存储的内容。有一个名为 config 的模块,可以让你的代理看到 OpenLumara 配置,但猜怎样?所有的 Token 和密码都会被替换为星号。敏感数据甚至永远不会*到达*你的 AI。我不喜欢依赖 LLM 的智能来处理安全关键的事情。关闭除 coder 模块外的所有模块,你的系统提示将小于 1k Token。如果你喜欢像 pi 这样的基于终端的编码代理,你可以直接运行 `openlumara --coder --cli`,它将立即启动,只开启 CLI 通道(终端界面)和 coder 模块。顺便说一下,coder 可以针对支持的语言中的函数/类(“符号”),而不是使用搜索/替换。这样你的 AI 只需使用一个工具获取文件中所有函数和类的概览,然后直接读取和编辑那些函数,而无需提供要替换的旧文本。这对在这方面有困难的本地模型非常有用。OpenLumara 还具有帮助生活的功能,例如列表模块(用于待办列表、购物清单等)和笔记模块(用于笔记,存储在一个包含 Markdown 文件的文件夹中,与 Obsidian 等程序兼容)。所有这些都旨在避免供应商锁定,使用开放格式,从而你可以轻松将数据传输到其他程序。不同于 skill.md(它同样疯狂消耗 Token),OpenLumara 可以为你编写模块,并加载到自身中。模块比技能更强大:它们可以提供新命令(如 /ping)、运行后台任务、对 AI 或用户发送的消息进行处理等。希望你喜欢 OpenLumara!
相似文章
LUMOS: 面向无障碍AI代理的语义操作系统层
LUMOS引入了一个语义交互层,将操作系统元数据转换为机器可读格式,通过减少对截图和视觉方法的依赖,使AI代理能够更高效地与计算机界面交互。
AI代理项目的开源开发工具
AgentLantern 是一个面向AI代理项目的开源开发工具,帮助记录、分析、验证和可视化代理工作流,最初支持CrewAI,并计划扩展到其他框架。
@0x0SojalSec: OpenJarvis:构建可在本地运行的个人AI代理 - http://github.com/open-jarvis/OpenJarvis…
OpenJarvis 是一个开源框架,用于构建可在设备本地运行的个人AI代理,支持本地LLM,并注重能效和隐私保护。
LM Studio Bionic:面向开放模型的AI智能体
LM Studio推出Bionic,这是一个面向开放模型的AI智能体,支持编码、文档处理和离线语音转录,具备灵活的模型执行和零数据保留特性。
@PrajwalTomar_: https://x.com/PrajwalTomar_/status/2069409824824316060
作者构建了一个完全离线的AI代理,使用本地嵌入模型、通过Ollama的Llama模型以及VectorAI数据库,旨在解决依赖云端的AI所带来的风险。该代理运行在一台8GB内存的MacBook上,能够处理敏感文档,并在多个会话之间保持记忆。