类似微软推出“USB-C for AI apps”的开源版本,微软在5月19日展示了几乎相同的“USB-C for AI”。
llmbasedos能所做的
·在一分钟内从USB/VM启动
· FastAPI网关将JSON-RPC与小型Python守护进程对话
· 2行cap.json →您的脚本可由ChatGPT / Claude / VS Code调用
·默认为离线llama.cpp;将标志翻转为GPT-4 o或Claude 3
·支持Linux、Windows(VM)甚至Raspberry Pi
llmbasedos是一个最小的基于Arch Linux的发行版,旨在将本地功能(文件,邮件,同步,代理)暴露给各种“主机”应用程序(LLM前端,如Claude Desktop,VS Code插件,ChatGPT等)。模型上下文协议(MCP)。
它是大型语言模型与您的个人数据和工具之间的安全和标准化桥梁。
核心架构
该系统构建在主要用Python编写的systemd服务之上,通过MCP进行通信:
- 网关(llmbasedos/gateway/):
- 中央MCP路由器(FastAPI + WebSockets/UNIX Sockets)。
- 处理身份验证(/etc/llmbasedos/lic.key中的许可证密钥)、授权和速率限制。
- 从/run/mcp/*.cap.json动态发现后端服务器功能。
- 代理mcp.llm.chat到已配置的LLM(OpenAI,llama.cpp),应用配额。
- Python守护进程,每个守护进程通过UNIX套接字提供特定的MCP功能。
- 使用公共的llmbasedos.mcp_server_framework.MCPServer基类构建。
- 每个服务器在一个caps.json文件中声明它的方法。
- FS服务器(servers/fs/):文件系统操作(列表,读,写,删除,通过SentenceTransformers/FAISS进行语义嵌入/搜索)。路径访问被限制在可配置的“虚拟根”中。
- 同步服务器(servers/sync/):用于文件同步任务的rclone的包装器。
- 邮件服务器(servers/mail/):IMAP客户端,用于电子邮件访问和iCalendar解析。在/etc/llmbasedos/mail_accounts.yaml中配置的帐户。
- 代理服务器(servers/agent/):执行YAML文件中定义的代理工作流(从/etc/llmbasedos/workflows开始),可能与Docker或HTTP服务(如n8 n-lite)交互。
- luca-shell:一个运行在TTY1上的交互式Python REPL(使用prompt_toolkit)。
- 充当MCP客户端,将shell命令(内置别名,如ls、cat或直接MCP调用)翻译到网关。
- 支持命令历史记录,基本自动完成,和LLM聊天流。
通信协议
- 所有组件间的通信都使用模型上下文协议(MCP)。
- MCP被实现为JSON-RPC 2.0消息。
- 运输:
- 网关的外部主机:WebSocket(ws://
:8000/ws)。 - Shell到网关:WebSocket(可配置)。
- 后端服务器网关:UNIX域套接字(例如,/run/mcp/fs.sock),JSON消息由\0分隔。
- 网关的外部主机:WebSocket(ws://
安全考虑
- 路径验证:FS服务器操作由“虚拟根”(默认为用户的家庭,可配置)限制,以防止任意文件系统访问。
- 许可证认证:网关基于许可证密钥强制访问,控制速率限制,允许的功能和LLM访问。
- UNIX Sockets:将UNIX /run/mcp和单个套接字设置为限制授权用户/组的访问(例如,llmuser和llmgroup)。
- 秘密:API密钥(OpenAI等)并且应当安全地管理电子邮件密码(例如,通过环境文件,如/etc/llmbasedos/gateway.env、系统密钥环或Vault解决方案),而不是硬编码。提供的设置用于演示。