Oz: Multiagent
数字化执行者与多平台智能代理编排网络
[电子邮箱接口: oz@franzdomingo.dev] • [私有代码仓库]
概述
- 角色: 创始者、部署者及核心系统架构师
- 技术栈: Node.js v22.22.2, OpenClaw v2026.6.5, DeepSeek V4 Flash, SQLite (Claude-Mem v13.4.0), Google Cloud VPS (Ubuntu 22.04 LTS), Telegram, Discord, WhatsApp, iCloud SMTP/IMAP
- 关键成果: 全自动多智能代理工作空间,具备 FTS5 持久化记忆、21 个自定义技能以及 24 个处于激活状态的定时编排任务
- 总结: 在专用谷歌云 VPS 上部署并构建了一个自主运行的多智能代理网络。该系统作为一个统一的数字执行程序,将多个即时通讯网关(Telegram、Discord、WhatsApp、Email)的通信路由到单个基于 Obsidian 的认知核心中,具备跨会话持久记忆。此外,Oz 能够直接与我的 Hermes Agent 项目通信以协调分布式工作流。
面临的问题
- 挑战:
- 多渠道碎片化: 管理分布在不同通讯频道中的零散信息流。
- 高速自主执行: 需要连续且定时执行备份、邮件处理、系统更新和知识库审计任务。
- 会话遗忘: 传统 LLM 代理缺乏持久性记忆,数天或数周后多轮对话连贯性降低。
- Obsidian 库复杂性: 维护超过 230 个文件的 Obsidian 库的结构一致性、前置属性格式和笔记路由。
- 安全漏洞: 公开消息网关面临较高的安全风险,需要严密的提示词注入防御和访问控制。
- 受众: 个人效率工作区、知识库助手和自动系统操作员。
- 限制条件:
- 搜索引擎 API 限制: 无法使用外部搜索 API 密钥,被迫采用自定义的多引擎抓取抽象层。
- VPS 资源上限: 部署在 4-vCPU / 15GB RAM 谷歌云 VPS 上,且无交换分区(Swap),需要精细的内存管理。
- 身份验证阻碍: 由于客户端环境未授权,所有 GitHub 操作都必须通过 SSH 密钥进行。
- 数据存储: 仅限本地扁平文件(Markdown, JSON, SQLite),未使用分布式外部数据库。
方法与决策
- 系统架构: 集中式调度器模式。Oz 作为主编排器,根据任务复杂度将传入任务动态路由至专属的、基于角色的子智能代理。
- 关键决策:
- Claude-Mem 集成: 引入 SQLite + FTS5 数据库,自动在当前会话中注入跨会话上下文。
- Obsidian 优先存储: 采用扁平 Markdown 文件,便于可视化、便携性与手动图谱分析。
- 多模型兜底链: 默认使用高性价比的 DeepSeek V4 Flash,并配置 Google Gemini 和 Grok 作为备用兜底模型,确保系统高可用。
- 折衷权衡:
- 轮询 vs Webhooks: 在邮件检查和保持连接上选择了基于 Cron 的定时轮询(在 OpenClaw 中免费且免配置),但使邮件检查引入了最多 8 小时的延迟。
- 扁平文件知识库: Markdown 和 SQLite 极大地降低了基础设施维护成本,但相比于全功能向量数据库,限制了多节点的实时查询聚合。
关键成果与影响
- 实际成效: 成功运行一个自主执行者,处理每日自动提交、邮件处理、后台自动化及笔记归档。
- 对比: 取代了手动更新日志、复杂的多应用抓取以及零散零碎的聊天,整合为一个单一、持久且智能的工作空间助手。
- 影响: 实现了具备防灾备用能力的强健自动化运行,即使在主模型发生故障时也能保证服务的持续性。
核心指标
技术深入探索
- 技术亮点:
imap-smtp-email: 通过 Node.js 脚本将 iCloud SMTP 与强制抄送链路由相结合 (oz@franzdomingo.dev → 抄送列表)。
multi-search-engine: 聚合了 16 个全球和区域搜索引擎,无需任何付费 API 密钥。
self-improving-agent: 通过将历史经验直接保存至 .learnings/ 目录来支持跨会话学习,从而调整后续的执行参数。
prompt-injection-guard: 实时消息分类、密码哈希验证及伪造身份检测。
- 验证机制: 通过
isolated 和 session-bound 智能代理执行周期、Git 自动提交以及 Telegram 定期日志广播进行监控。
- 优化细节: 实现了成本感知路由,将简单任务路由至低成本模型,将高级推理模型保留给需要多步思考的复杂任务。
反思与展望
- 改进方向: 我会探索将部分轮询操作迁移为 Webhook 集成,以实现数据输入(如邮件更新)的更低延迟,从而避免完全依赖定时轮询。
- 成功经验: 集中式调度器模式被证明非常可靠,能够成功将专业化工作流(文案、检索、代码)隔离在干净的子智能代理环境中。
- 经验教训: 扁平文件结构在中小规模下非常便携和高效(~200+ 篇笔记),但当库容量接近 1,000+ 篇时,索引与检索则需要迁移到结构化数据库缓存。
我的贡献
- 系统架构与部署: 在谷歌云上配置并部署 Node.js/OpenClaw 运行时,管理 SSH 访问配置、VPS 进程管理以及自定义 systemd 绑定。
- 技能工程: 从零开发了包含 21 个技能的工作区库,实现了 iCloud 邮件中继、免密钥搜索抓取工具、PDF 工具及记忆注入数据库。
- 安全与防伪设计: 构建了 Prompt Injection Guard 防御子系统,在向公众开放的接入网关(Telegram、Discord)上维护访问安全。
- 自动化流设计: 设置了 24 计划的 cron 运行器,执行每日备份、代码同步及健康心跳广播。
项目架构
该系统采用集中式调度器模式来分发和执行输入,分为三个主要运营层级:
Oz 主调度器 (Oz Main Dispatcher) —— 单一决策核心。评估传入任务的复杂度(简单任务=0分发,复杂任务=1-2分发,超复杂任务=5+分发),并分发给专业人员。维持深度上限:未经用户二次确认,连续工具调用最多不超过 5 次。
库管理三杰 (Vault Triad) —— 三个专属智能代理共同维护 Obsidian 库的生命周期:
- Librarian (图书管理员) —— 掌管库索引、搜索和检索流。Oz 从不直接检索库文件,而是由 Librarian 确认路径后再由 Oz 输出。运行每日归档定时任务。
- Writer (撰稿人) —— 专精于撰写散文、报告和文档文件。接受过 Hemingway、Orwell、Strunk & White、King 等风格训练。掌管语法、语调选择及场景化表达。生产库中所有书写内容。
- Keeper (保管员) —— 维护元数据模板、前置属性(Frontmatter)规范和过期归档。每 3 天运行一次维护定时任务。强制维护笔记与目录的库结构。
Claude-Mem 引擎 —— 直接连接到本地 SQLite(FTS5,systemd 管理),提取搜索嵌入并在提示词中注入历史上下文。对上下文请求进行 60 秒缓存以避免频繁调用。熔断机制:连续 3 次失败触发 30 秒冷却。被排除的智能代理(coder、math-solver、front-end-developer、multimedia-specialist)需通过 curl endpoint 手动查询。配有专用私有 Web UI 用于手动浏览。请注意,此机制显著降低了总 Token 消耗。
子智能代理池 (Worker Sub-Agent Pool) (14 个专属智能代理 + Oz) —— 所有网络中的智能代理均可调用 Claude Code、Gemini CLI 与 Antigravity,且均已配备内置技能:
- Researcher (研究员) → 库优先的调研工作流:Librarian → Gemini CLI → web_search → web_fetch。
- Coder (程序员) → 多文件编写、调试、复杂脚本维护。
- Messenger (通信员) → 外部通信(带有强制抄送链的电子邮件、Discord、Telegram)。
- Math-solver (数学解答器) → 针对所有数学问题,进行严格的边角案例核对。
- Front-end-developer (前端开发者) → 依托于 DeepSeek 强力驱动的 Claude Code + 21st.dev MCP,专门用于 React/UI 生成。
- Multimedia-specialist (多媒体专家) → PDF/Word/Excel/PPT处理及抗AI检测的文本重写(nano-pdf + python-docx + openpyxl)。
- Prompt-engineer / Prompt-injection-guard (提示词工程师与防御卫士) → 提示词架构设计与安全扫描。
- PM / Infra-engineer / QA-engineer / Data-engineer / SRE-watchdog / Tech-writer → 企业级组织角色。
频道网关 (Channel Gateways) —— 4 个激活网关(Telegram 3个群组,Discord 1个提及过滤服务器,WhatsApp 私聊,WebChat),2 个禁用网关(Signal,SMS)。电子邮件作为外部技能运行,不作为长连接网关。
资源包围: 谷歌云上 4 vCPUs, 15GB RAM, 49GB 磁盘 (63%已用), Node v22.22.2, Ubuntu 22.04 LTS。已计划 24 个定时任务。
托管与运营说明:
Oz 活跃托管于谷歌云平台(GCP),同时在开发者的 MacBook Air 上进行本地运行。底层代码和仓库保持私有状态。