云计算百科
云计算领域专业知识百科平台

关掉网页,AI 还能继续干活?Lumi 开源私人代理部署与上手

关掉网页,AI 还能继续干活?Lumi 开源私人代理部署与上手

把一项资料研究交给 AI,接下来你会关心什么?

我更关心这几件事:能不能先去做别的,回来再看结果?做到一半,能不能补一句“只看官方文档”?下次还要不要重新解释我的目标和偏好?如果要替我发邮件,能不能先让我看清楚发给谁、发什么?

Lumi 把这些问题放进了同一套工作流程:交代任务、后台执行、查看活动、调整指令、批准具体动作、拿到文件。

它所在的开源项目叫 Lumen,代理叫 Lumi。核心应用使用原生 HTML、CSS、JavaScript 和 Node.js,没有额外 npm 运行依赖,可以部署在自己的电脑或常在线主机上。模型由你自己接入,代码采用 MIT 协议。

这篇文章带你从启动服务走到第一项任务,再看计划、记忆、应用连接和独立桌面怎么配合。这里的“关掉网页继续工作”有一个前提:运行 Lumi 的 Node 服务必须保持在线。

本文基于 Lumen 1.6.0,成稿核对日期为 2026-10-05,源码提交为 524725e。10 月 4 日在 macOS、Node.js v22.23.1 下启动了隔离数据目录中的界面,并运行仓库自动测试,结果为 40 项通过、0 项失败。模型与平台测试使用模拟服务;真实模型任务质量、真实账号连接和云端部署不计入此次实测结果。

项目地址:ergou-yu/lumen。

1. 先看效果:任务交出去之后,去哪里找它?

打开 Lumi,先看到的是聊天页。莫奈水面背景、奶油色面板、Lumi 头像,整体更像一个个人工作空间。

在这里插入图片描述

本次启动的当前版本界面。右上角为“演示模式”,尚未连接真实模型;这里展示界面,不代表真实任务已经执行。

你可以直接输入任务,也可以附加文件、使用语音。真正值得关注的是侧栏里的 “活动”:它承接后台任务、进度、审批、成果、计划和共享状态。

先把九个页面的用途认清,后面会省很多来回找入口的时间。

页面主要用来做什么使用时留意什么
聊天 交代任务、追问、附加文件、切换模型、查看历史 后台任务需要先启用后台模型
动态 看今日简报、目标概况和兴趣卡片,发起进一步研究 内置兴趣内容是示例;实时信息要用“联网生成真实简报”核查
灵感 从效率、生活、创作、学习等示例开始,或按已知目标生成个性化建议 建议保存后,点击“交给 Lumi”才委托执行
目标 建立目标、拆步骤、查看进度 原页面主要管理浏览器本地条目;共享目标在活动页
文件 查看、整理和下载成果 后台文件也可从活动记录与计算机工作区取得
记忆 查看、编辑、遗忘偏好与事实;接入可选深度记忆 原本地记忆与后台共享记忆需要迁移衔接
计算机 搜索、阅读网页、使用工作区;启动独立 Linux 桌面 真实桌面需要 Docker 和支持图像观察的模型
技能 查看专业流程说明,管理页面侧技能启用状态 技能涉及的外部工具仍要单独满足依赖
活动 查看持续任务、批准动作、调整指令、管理计划、共享目标和记忆 是检查后台实际执行结果的主要入口

我的建议是:第一次使用,先走通 聊天 → 活动 → 成果,再接邮箱和桌面。这样出了问题,也容易判断卡在哪一层。

2. 接下来部署:先启动,再接自己的模型

2.1 核心应用,三条命令启动

准备 Git 和 Node.js 18 或更高版本。在 macOS、Linux 或 Windows 终端执行:

git clone https://github.com/ergou-yu/lumen.git
cd lumen
node server.js

默认地址是:

http://127.0.0.1:8787

核心应用没有需要先安装的 npm 依赖,因此这条启动路径可以直接运行。Docker、Hindsight 和技能脚本用到的工具属于额外能力,按需配置。

如果端口冲突,在 macOS/Linux 下可以换一个:

PORT=9000 LUMEN_NO_OPEN=1 node server.js

Windows PowerShell 对应写法是:

$env:PORT = "9000"
$env:LUMEN_NO_OPEN = "1"
node server.js

LUMEN_NO_OPEN=1 表示启动时不自动打开浏览器。服务运行期间,保留这个终端进程。

2.2 模型接入有两步,第二步容易漏

先到 设置 → 模型接入,填写模型协议、端点、模型名称和自己的 API Key。

后台支持三类协议:

协议端点填写要点
OpenAI 兼容 Base URL 通常包含 /v1;后台使用相应的 Chat Completions 接口
Anthropic Base URL 可带或不带 /v1,服务按 Messages 接口调用
Gemini Base URL 需要包含 API 版本路径,例如 /v1beta

然后进入 活动 → 启用当前模型,明确把配置交给服务桥。活动页应显示已连接的后台模型。

在这里插入图片描述

本次截取的活动页,尚未启用后台模型。左侧是后台配置与委托入口,右侧是计划任务。生图模型输入框里的默认名称也需改成你的端点实际支持的模型。

这里有个坑:在浏览器里填好 Key,不等于后台已经配置好。 页面直连与后台执行是两条配置路径。想让任务在关页后继续,应检查活动页,而不是只看聊天页能否回复。

如果习惯用环境变量,也可以在 macOS/Linux 下启动:

# 将两处“替换为……”改成你的真实配置。
# 此例使用 OpenAI 协议;其他提供商请同时修改协议和 Base URL。
LUMEN_MODEL_TYPE=openai \\
LUMEN_MODEL_BASE=https://api.openai.com/v1 \\
LUMEN_MODEL_NAME='替换为你的模型名称' \\
LUMEN_MODEL_API_KEY='替换为你的API_Key' \\
LUMEN_NO_OPEN=1 \\
node server.js

不要凭“兼容 OpenAI”几个字就认定所有能力都可用。文本、图像观察和生图分别取决于端点与模型支持范围。只返回文本的模型,无法承担需要看截图的桌面任务。

没有模型时,可以先体验明确标注的演示模式。直接打开 index.html 也能预览静态界面;持续任务应从服务桥网址进入。

3. 第一项任务,先让它交付一份能检查的文件

刚部署完,我建议先选资料研究或清单整理。任务范围小、结果容易核验,也不需要先连接私人账号。

下面这段可以复制到 活动 → 责任或任务,点击“开始后台任务”。已经启用后台聊天时,也可以从聊天页委托。

请阅读以下两份项目官方说明:
https://github.com/ergou-yu/lumen/blob/main/README.md
https://github.com/ergou-yu/lumen/blob/main/docs/deployment.md

帮我整理一份 Lumi 本地部署检查清单,保存为
research/lumi-deploy-checklist.md。

要求:
1. 分成“核心启动、后台模型、独立桌面、应用连接、常在线部署”五部分。
2. 每部分写清依赖、配置入口、成功信号和常见错误。
3. 给出来源链接;无法读取的内容标为“未核实”。
4. 区分关闭网页、停止服务、电脑休眠这三种情况。
5. 不连接我的账号,不发送消息,不替我修改系统设置。

完成后告诉我文件位置,并列出仍需要我确认的事项。

这是一份使用模板,产物需要由你接入的模型实际执行后生成。检查时看四件事:

  • 活动记录是否出现任务,状态有没有从排队变为执行或完成。
  • 是否有读取工具的实际回执,来源打不开时有没有如实说明。
  • 文件是否真的进入工作区,能否下载并打开。
  • 文件内容是否满足五部分结构,配置与限制是否和原文一致。
  • 如果做到一半发现范围太大,在任务卡片里补一句:

    调整一下:只保留本机部署。先完成核心启动和后台模型两部分,桌面与应用连接列为可选项。

    后台支持暂停、继续、停止和补充指令。新指令会让尚未执行的旧模型计划作废,避免继续沿着过时要求操作。

    然后可以关掉网页,保留 Node 服务运行,稍后重新打开活动页检查结果。“任务已保存”说明委托已进入系统;是否完成,要看工具回执和实际文件。

    4. 临时任务之外:把目标、记忆和计划连起来

    4.1 后台任务能恢复,也有执行预算

    Lumi 将任务状态和检查点保存为本地 JSON。普通读取任务在服务重启后可以按检查点继续,已完成结果也能重新读取。

    涉及外部写入时,处理更谨慎。比如请求发出后,服务恰好断线,无法确认对方是否收到,系统会标记 “需要核实外部结果”,不会直接重发一遍。

    当前后台最多同时执行 2 项任务。一个父任务可以创建最多 3 个独立子任务,等待它们完成后汇总;不支持继续嵌套子任务。停止父任务也不会顺手停止独立子任务,需要分别检查。

    单任务有 64 个模型步骤的预算,每轮最多 16 步。这几个数字是调度限制,不是耗时、费用或成功率承诺。桌面操作还会串行执行,避免多个任务同时抢一台电脑;服务重启后的桌面任务,需要先检查现场再重新委托。

    4.2 目标和记忆,解决“每次都要重新解释”

    假设你想连续四周学习一个技术主题,可以先在活动页建立共享目标:

    目标:四周内整理出一份能复现的 Node 服务部署笔记。

    步骤:
    第一周:跑通本地启动与配置。
    第二周:理解任务持久化与恢复。
    第三周:核对应用权限与审批。
    第四周:补充常在线部署和故障处理。

    再保存一条偏好:

    我更喜欢中文说明。技术结论先给来源和复现步骤,再解释原理。

    目标提供方向,记忆提供约束。后续生成个性化建议时,Lumi 可以根据这些已知信息研究并保存建议,附上建议理由。你选中“交给 Lumi”后,它才开始执行。 在这里插入图片描述

    项目已有验收截图,使用模拟模型数据。它展示建议依据和委托入口,不代表生产模型的推荐质量已经经过评测。

    旧版浏览器条目可以通过 活动 → 迁移此浏览器的记忆与目标 转入共享状态。访问同一服务桥的其他设备,能够看到后台任务、目标、记忆、建议和计划。

    需要注意,旧聊天记录和浏览器设置仍保存在各自浏览器里。因此,跨设备使用时优先去活动页找后台工作;不要期待所有历史对话自动出现在另一台设备上。

    记忆可以查看、修改、遗忘和导出。还有一个可选层 Hindsight,用于长期记忆的召回、沉淀与反思,需要额外部署和模型配置;不启用它,轻量记忆也能使用。此次没有验证真实 Hindsight 服务。

    4.3 计划任务,适合有明确来源的重复研究

    比如,你想工作日早上检查项目文档是否更新,可以在活动页填写:

    项目示例配置
    重复做什么 检查指定仓库的 README 与部署说明,保存变化摘要和来源
    运行方式 工作日
    时区 Asia/Shanghai
    每天时间 09:00
    通知 来源内容变化时
    任务权限 只读研究与建议

    计划支持一次性、固定间隔、每天、工作日,也能设置截止时间、编辑、暂停和删除。任务还可以在需要等待时进入休眠,到指定时间继续跟进。

    “来源内容变化时”用于减少重复通知。来源没变,系统会抑制重复完成通知;这比每天换一种措辞告诉你“暂无变化”更实用。通知可以在活动页查看,也可通过已配置的 Webhook 或本人私聊回传。

    只读计划可以保存建议与研究笔记,但不能发送消息、写产物文件、操作电脑或执行代码。 如果需要生成文件等工作,应选择对应执行模式;对外写入仍要具体审批。

    暂停计划会影响后续触发,已经开始的任务需要单独处理。电脑休眠或关机时,本地计划也不能继续跑;要常在线,就把服务放在另一台持续运行的主机上。

    5. 需要点网页时,Lumi 有一台独立 Linux 桌面

    资料阅读与真实网页操作是两种需求,Lumi 为它们提供了两个层次。

    轻量 LumenBox 用于搜索、获取网页正文、访问链接和操作工作区。它不运行网页 JavaScript,适合文本研究;遇到依赖前端交互的网站,就需要真实浏览器。

    LumenBox Desktop 在 Docker 中运行独立的 Linux 桌面,基于 Debian 13,包含 Chromium、Xvfb 和 VNC/noVNC。计算机页能看到 Live 画面,也能接管并归还控制权。

    本机先安装并启动 Docker Desktop,再从计算机页构建、启动桌面。也可以在仓库根目录执行:

    docker build -t lumen-box vm-box/

    首次构建需要下载镜像和软件包,时间取决于网络。创建桌面之后,图像观察模型才能根据截图规划操作;遇到登录、验证码等环节,可以接管处理,再把控制权还给 Lumi。

    桌面动作还能按名称引用服务端保存的凭证,获批后由服务桥注入字段。凭证列表接口只返回名称与类型,文件存储的保护边界见后面的说明。

    桌面里提供 Chromium、终端、文件管理器、GIMP、Inkscape、Blender、Kdenlive 和外观面板,还包含 Node、Python、pip/venv、FFmpeg、Pillow、ReportLab 与 PDF 工具。3D 与视频使用 CPU/软件渲染,速度取决于主机分配的资源。

    这些工具给文件创作提供了环境,具体工作流还需要实际验证。当前完整 PDF、Office、视频产物流水线,以及交互工具的在线托管与分享,仍未完成。

    文件怎么拿出来?

    容器中的 ~/Downloads 与 Lumi 的 vm-home/ 工作区共享。网页下载、你上传的资料、任务生成的文本文件,可以通过计算机页查看和下载;后台任务产物也会出现在活动记录中。

    新的后台文本文件操作会检查路径穿越和符号链接逃逸。生成 HTML、JavaScript 文件也可以,但“生成了文件”之后,仍需按自己的部署方式运行或发布。

    两个需要审批的能力:代码执行与生图

    后台支持执行 Node/Python 代码,使用临时 Docker 容器:普通用户、无网络、15 秒、256 MB 内存、1 CPU。执行前需要批准,适合小段计算和代码验证,不适合依赖在线安装或长时间运行的任务。

    真实生图则需要支持 Images API 的 OpenAI 兼容后台端点,以及该端点实际可用的图像模型。调用前要批准,成功后保存 PNG。程序绘制的演示艺术与真实模型生图是两条路径,查看结果时要认清来源。

    独立桌面也能换成 Lumi 的样子

    默认桌面采用燕麦黄与雾粉,提供 60 套内置壁纸组合,也支持上传 PNG、JPEG、静态 SVG,单文件上限 6 MB。窗口标题栏和 Dock 强调色可以调整。

    在这里插入图片描述

    仓库内置的 Lumi 壁纸素材,不是本次运行桌面的实机截图。

    外观与浏览器数据保存在私有 lumen-box-home 卷里。桌面升级会先构建新镜像,再替换容器,保留旧容器备份;启动失败时恢复旧桌面,并继续复用工作区与 home 卷。

    明确要求 “用我的电脑” 时,才使用 QCU 本机操作桥,需要额外安装 CLI 并给予系统权限。日常尝试桌面任务,可以先使用独立桌面。旧的宿主软沙箱终端也不能当作容器隔离,可用 LUMEN_VM_SHELL=0 关闭。

    6. 接邮箱、日历和飞书,先分清连接与授权

    “帮我整理未读邮件,并起草回复”是一个很自然的任务。但模型能写出回复,与实际读取邮箱、发送邮件之间,还隔着账号连接和动作权限。

    Lumi 提供 IMAP/SMTP、Google、Microsoft Graph、飞书等连接器路径,涉及邮件、日历、消息和文档的具体能力以账号、接口和授权范围为准。

    入口主要用途接入前提
    IMAP / SMTP 读取收件箱、发送邮件 自己的服务器地址、凭证与权限
    Google Gmail、Calendar 等已实现动作 注册 OAuth Web 应用并完成账号授权
    Microsoft Graph 邮件、日历等已实现动作 当前个人 Microsoft 账户授权;本机可用公共客户端与 PKCE
    飞书 用户身份下的消息、文档、日历动作 国内飞书 OAuth 应用、账号授权与对应用户 scopes

    正确顺序是:

  • 维护者配置应用。 在设置的高级项或环境变量中提供 App ID / Client ID 等配置。
  • 使用者连接账户。 点击“连接飞书账户 / Google / Microsoft”,进入官方登录授权页面。
  • 在活动页开放权限。 分别启用应用、读取和写入;默认禁用。
  • 遇到对外写入,核对具体动作。 看清收件人、内容、日程或文档参数,再批准这一次。
  • 仓库没有内置已经注册好的公共 OAuth 应用,因此自托管时仍需要完成一次应用注册。飞书企业自建应用也有分发范围限制,具体配置见项目的 OAuth 部署说明。

    权限开关允许 Lumi 尝试某类动作,平台账号还必须真正连接,并授予所需权限。 这两层都通过后,才谈得上执行。

    设置里还有动作规则,可选择允许、明确要求才做、先问、转交本人四种倾向。它们帮助控制询问方式,服务端硬限制仍然优先;后台对外写入也仍需批准固定的动作参数。

    邮件入口支持未读筛选、中文 MIME 解码和 IMAP 分包处理,会过滤明显的验证码、密码重置邮件主题。这种主题过滤范围有限,不能替代完整的敏感信息识别。

    能从手机私聊里交代任务吗?

    后台实现了 Slack、Microsoft Teams、WhatsApp 的本人文本私聊入口:绑定本人身份,校验平台签名或 JWT,去重后创建任务。完成或等待审批时,可以回传原私聊。

    接入需要自己的平台应用、凭证和公开 HTTPS 回调。当前不支持群聊、附件,真实平台账号尚未完成端到端验收;待审批动作仍在受保护的活动页处理。

    另外,设置中的 Instagram 倾向属于浏览器操作路径,没有原生 Instagram API。不要把出现一个平台名称,理解为已实现该平台的全部功能。

    7. 让 Lumi 按专业流程做事:技能、语音与个性外观

    项目当前包含 10 个内置技能目录,界面会按学习研究、审计、交付评审、前端艺术、电脑操作等类别展示。

    这些技能覆盖学习引导、知识关系、资源发现、学习手册、研究预算、证据打包、Harness 审计、交付评审、前端动效与 QCU 操作。技能页能查看说明,后台也可以读取内置技能,为任务提供专业流程。

    把技能用好,关键是满足它要求的输入和依赖。一个研究技能可能还需要外部服务或脚本环境,一个电脑技能需要操作桥。读取了 SKILL.md,并不会自动安装好它们。

    聊天还支持浏览器语音识别和回复朗读,采用连续轮次:说完、处理、朗读,再继续听。朗读时也能打字,结束语音不会停止后台任务。它依赖浏览器支持与麦克风权限,当前没有原生 Realtime 通话。

    外观方面,原来的莫奈风格头像保留。活动页还提供共享名字、形状、颜色、眼睛、眼镜、配饰预览,可以把 Lumi 调成自己喜欢的样子;当前预览也不等于完整的原生动画宠物。

    8. 这次实际验证了什么?哪些地方还要自己试?

    功能介绍写到这里,最容易让人误解的就是“都支持”三个字。所以把验证条件摆出来。

    本次使用 macOS、Node.js v22.23.1,在一份独立临时数据目录中启动应用。界面截图没有使用私人账号、模型密钥或真实任务数据,也没有混入尚未合入的前端设计预览。

    在仓库根目录运行:

    npm test

    Node 测试运行器的实际输出摘要如下,统计包含子测试:

    # tests 40
    # pass 40
    # fail 0
    # cancelled 0
    # skipped 0
    # todo 0
    # duration_ms 6764.327875

    约 6.76 秒是这次自动测试套件的运行时间。它不能拿来推算真实模型完成一项研究任务要多久。

    检查方向这次测试覆盖的行为
    持续任务 请求提交后由服务执行、状态与成果落盘、重启读取回执
    审批与失败处理 固定批准参数、拒绝失效审批、未知写入结果不自动重发
    中途调整 暂停期间不应用晚到结果、补充指令使旧计划作废
    计划与通知 时区、工作日、夏令时、截止时间、来源不变时抑制通知
    模型适配 三类协议的请求、图像观察格式、模拟 Images API 的 PNG 回执
    应用与渠道 OAuth / PKCE、令牌续期和断开竞态、凭据接口隔离、消息签名与本人绑定
    文件与桌面 路径和符号链接检查、主题输入检查、镜像升级与失败恢复逻辑
    更新 区分磁盘代码与运行中的服务、离线时不误报最新

    测试中的模型响应、OAuth 平台和消息渠道使用模拟服务。这证明相应代码路径通过了自动检查,不能推出真实账号已经接通,也不能推出模型研究准确率或桌面操作成功率。

    如果准备长期使用,我会再选自己的真实任务,记录输入、模型名称、结果文件、耗时、费用和失败原因。先有这些记录,再讨论“好不好用”,比只放一张成功截图更有价值。

    上手时,优先检查这六个地方

    现象或需求先检查什么
    聊天能回复,关页后任务没继续 活动页是否启用后台模型;Node 服务是否仍运行
    提示桌面不可用 Docker 是否安装并启动、镜像是否构建、模型是否支持图像观察
    连接器有配置,却读不到账号 OAuth 是否完成、scopes 是否足够、活动页是否开放读取权限
    另一台设备没有旧聊天 后台共享状态在活动页;旧聊天和设置仍按浏览器保存
    拉取新代码后界面行为没变 运行中的 Node 服务是否已重启,再刷新网页
    打算跑定时任务 先确认主机持续在线,设置时区与结束时间,再选通知方式

    还有几条边界值得提前知道:

    • 停止不能撤销已经发生的外部动作。 邮件发出后再停止任务,不会把邮件收回。
    • 审批由服务端检查具体动作。 “全自动”倾向不能绕过硬限制;当前 Sentinel 是动作审批层,尚不具备 Chromium 全部网络出口拦截等完整安全体系。
    • 凭证接口不回传明文,存储仍需保护。 模型配置、连接器令牌及凭证条目保存在私有文件中,0600 是文件权限;当前凭证 JSON 没有实现静态加密保险库。
    • 自托管仍可能调用外部服务。 使用云模型、应用 API 或 Hindsight 时,相应数据会按所选端点传输。清除浏览器数据也不会同步清空服务端状态或第三方历史。

    9. 想常在线,先选对部署方式

    本机体验用默认回环地址即可。需要持续工作时,可以在常在线主机直接运行 Node 服务,并设置独立私有数据目录、访问口令和系统服务管理器。

    下面是 macOS/Linux 的启动配置示例;模型配置按前面的步骤另外提供:

    LUMEN_NO_OPEN=1 \\
    LUMEN_DATA_DIR='/替换为你的私有数据目录' \\
    LUMEN_ACCESS_TOKEN='替换为随机生成的高强度口令' \\
    LUMEN_HOST=127.0.0.1 \\
    node server.js

    跨设备或公网访问,通过 HTTPS 反向代理连接回环端口,并阻止绕过代理直接访问 Node 端口。平台消息入口还需要能访问的 HTTPS webhook;OAuth 云端回调需要配置 LUMEN_PUBLIC_URL。

    项目也提供 Compose 配置:

    cp .env.example .env
    # 编辑 .env,填写访问口令和自己的模型配置。
    docker compose up -d –build

    Compose 默认提供应用服务,持久化后台数据,并将端口绑定到宿主回环地址。默认没有 Docker socket、QCU 或独立桌面环境,因此在这个应用容器里,不能直接启动 LumenBox Desktop、隔离代码工具或托管 Hindsight。需要这些能力,应按部署文档在具备 Docker daemon 的主机上配置。

    这仍是一套个人服务:一份私有数据目录绑定一个个人身份,没有多租户账号隔离。备份时保存私有数据目录或数据卷;其中可能含任务、记忆与凭证,不要放进公开仓库。

    更新入口在 设置 → 更新。它会区分本地代码版本和正在运行的服务版本;拉取完成后出现“待重启”,就在原终端停止服务,用原配置重新启动,再刷新网页。本地有未提交修改时,应用内更新会拒绝覆盖。

    10. 想继续改它,先从后台任务链路读起

    Lumi 的关键链路可以这样看:

    #mermaid-svg-UIjuSNNmtMccnIqP{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-UIjuSNNmtMccnIqP .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-UIjuSNNmtMccnIqP .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-UIjuSNNmtMccnIqP .error-icon{fill:#552222;}#mermaid-svg-UIjuSNNmtMccnIqP .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-UIjuSNNmtMccnIqP .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-UIjuSNNmtMccnIqP .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-UIjuSNNmtMccnIqP .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-UIjuSNNmtMccnIqP .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-UIjuSNNmtMccnIqP .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-UIjuSNNmtMccnIqP .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-UIjuSNNmtMccnIqP .marker{fill:#333333;stroke:#333333;}#mermaid-svg-UIjuSNNmtMccnIqP .marker.cross{stroke:#333333;}#mermaid-svg-UIjuSNNmtMccnIqP svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-UIjuSNNmtMccnIqP p{margin:0;}#mermaid-svg-UIjuSNNmtMccnIqP .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-UIjuSNNmtMccnIqP .cluster-label text{fill:#333;}#mermaid-svg-UIjuSNNmtMccnIqP .cluster-label span{color:#333;}#mermaid-svg-UIjuSNNmtMccnIqP .cluster-label span p{background-color:transparent;}#mermaid-svg-UIjuSNNmtMccnIqP .label text,#mermaid-svg-UIjuSNNmtMccnIqP span{fill:#333;color:#333;}#mermaid-svg-UIjuSNNmtMccnIqP .node rect,#mermaid-svg-UIjuSNNmtMccnIqP .node circle,#mermaid-svg-UIjuSNNmtMccnIqP .node ellipse,#mermaid-svg-UIjuSNNmtMccnIqP .node polygon,#mermaid-svg-UIjuSNNmtMccnIqP .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-UIjuSNNmtMccnIqP .rough-node .label text,#mermaid-svg-UIjuSNNmtMccnIqP .node .label text,#mermaid-svg-UIjuSNNmtMccnIqP .image-shape .label,#mermaid-svg-UIjuSNNmtMccnIqP .icon-shape .label{text-anchor:middle;}#mermaid-svg-UIjuSNNmtMccnIqP .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-UIjuSNNmtMccnIqP .rough-node .label,#mermaid-svg-UIjuSNNmtMccnIqP .node .label,#mermaid-svg-UIjuSNNmtMccnIqP .image-shape .label,#mermaid-svg-UIjuSNNmtMccnIqP .icon-shape .label{text-align:center;}#mermaid-svg-UIjuSNNmtMccnIqP .node.clickable{cursor:pointer;}#mermaid-svg-UIjuSNNmtMccnIqP .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-UIjuSNNmtMccnIqP .arrowheadPath{fill:#333333;}#mermaid-svg-UIjuSNNmtMccnIqP .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-UIjuSNNmtMccnIqP .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-UIjuSNNmtMccnIqP .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-UIjuSNNmtMccnIqP .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-UIjuSNNmtMccnIqP .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-UIjuSNNmtMccnIqP .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-UIjuSNNmtMccnIqP .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-UIjuSNNmtMccnIqP .cluster text{fill:#333;}#mermaid-svg-UIjuSNNmtMccnIqP .cluster span{color:#333;}#mermaid-svg-UIjuSNNmtMccnIqP div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-UIjuSNNmtMccnIqP .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-UIjuSNNmtMccnIqP rect.text{fill:none;stroke-width:0;}#mermaid-svg-UIjuSNNmtMccnIqP .icon-shape,#mermaid-svg-UIjuSNNmtMccnIqP .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-UIjuSNNmtMccnIqP .icon-shape p,#mermaid-svg-UIjuSNNmtMccnIqP .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-UIjuSNNmtMccnIqP .icon-shape .label rect,#mermaid-svg-UIjuSNNmtMccnIqP .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-UIjuSNNmtMccnIqP .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-UIjuSNNmtMccnIqP .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-UIjuSNNmtMccnIqP :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

    聊天或本人私聊入口

    Node 后台任务

    模型规划

    工具调用与权限检查

    读取:搜索、网页、文件

    写入:具体审批后执行

    活动记录与成果

    JSON 检查点与共享状态

    对应的源码入口也很直接:

    位置阅读重点
    server.js HTTP 服务桥、连接器、桌面与审批接口
    lib/runtime.js 后台任务、工具调度、检查点、计划、子任务
    lib/model.js 三类模型协议与 Images API
    lib/channels.js 本人私聊、签名验证与任务回传
    js/continuity.js 活动页、共享状态和后台任务控制
    vm-box/ 独立 Linux 桌面与主题
    skills/、tests/ 专业流程说明和自动验证

    如果想自己扩展,我会先加一个范围明确的工具,再验证它的权限、失败回执和持久化行为。这样前端里多出的按钮,才有一条真正能执行、能检查的后台路径。

    第一次上手就用前面的部署清单任务:打开来源,下载文件,逐项核对;再补一条指令,看看结果能否按要求收窄。等这条工作流程走顺,再逐步启用计划、应用连接和独立桌面。

    交代任务时,把来源、成果格式和完成标准说清楚;回来时,检查实际回执和文件。 这是 Lumi 最值得先练熟的用法。

    项目与复现资料

    • Lumen 开源仓库与 MIT 许可
    • 本文对应版本 README
    • 常在线部署与 OAuth 配置
    • 自动测试源码
    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 关掉网页,AI 还能继续干活?Lumi 开源私人代理部署与上手
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!