anyuer678 开源个人 AI Runtime Lumen,可操控整台电脑
anyuer678/lumen
anyuer678 在 GitHub 开源 Lumen,一个 24/7 常驻、可操控整台电脑的个人 AI Runtime,默认仅监听本机 127.0.0.1,作者标注为非生产就绪、未经完整独立审计。
Your personal intelligence layer — 你的个人智能中枢
一个 24/7 常驻运行、能操控整台电脑的开源 AI Runtime
状态:
portfolio· 非生产就绪 · 默认仅本机127.0.0.1
安全:见 docs/THREAT_MODEL.md 与 docs/SECURITY.md;本项目处于早期测试阶段,未经完整独立审计,勿公网部署
硬化:空 scopes 不再等于全权;shell/fs:delete 默认需确认;?token=仅限事件流
Why
市面上多数 Agent 停在 "LLM + Tools"。Lumen 额外补齐了很多人忽视、却决定"Agent 能否长期可用"的部分:
-
可靠性:上下文预算、宽容工具调用修复、Checkpoint 断点恢复
-
可观测性:审计日志、任务轨迹、成本追踪
-
安全:Token 认证、命令安全分类、沙箱路径检查
-
记忆:长期记忆存储、用户画像、记忆评分
Architecture
Memory → Reasoning → Tools → Action
│ │ │ │
▼ ▼ ▼ ▼
SQLite LLM API Sandbox Computer
Quick Start(首次运行 3 步走通)
1. 编译启动
# 克隆 git clone https://github.com/anyuer678/lumen.git cd lumen # 编译后端 go build -o lumen.exe ./cmd/agent # 编译前端(可选,Dashboard 需要) cd web && npm install && npm run build && cd .. # 启动 ./lumen.exe
服务默认监听 127.0.0.1:14000,自动创建 SQLite 数据库。
2. 创建管理员 Token(首次引导)
首次启动时数据库为空,可通过 bootstrap 无认证创建第一个管理员 token:
# 创建 L3 管理员 token(首次运行时不需要认证) curl -X POST http://127.0.0.1:14000/v1/auth/token \ -H "Content-Type: application/json" \ -d '{"name":"admin","perm_level":3}'
响应会返回 token 明文(agt_xxx...),请立即保存,仅显示一次。
⚠️ Bootstrap 限制:仅在数据库为空时有效;强制 L3 级别;第二个 token 必须带认证创建。
3. 开始使用
TOKEN="agt_你的token" # 执行 shell 命令 curl -X POST http://127.0.0.1:14000/v1/tools/shell.run/run \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{"args":{"command":"echo hello from lumen"}}' # 读取文件 curl -X POST http://127.0.0.1:14000/v1/tools/fs/run \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{"args":{"action":"list","path":"."}}' # 查看可用工具 curl http://127.0.0.1:14000/v1/tools/ -H "Authorization: Bearer $TOKEN"
打开浏览器访问 http://127.0.0.1:14000 可使用 Dashboard 界面。
Token 级别与 Scopes
| 级别 | 用途 | 能做什么 |
|---|---|---|
| L0 | 只读 | 浏览器操控、安全分类查询 |
| L1 | 普通操作 | Shell 命令、文件读写、系统信息 |
| L2 | 危险操作 | 计算机控制、MCP 工具(需人工确认) |
| L3 | 管理员 | Token 管理、MCP 注册、全部操作 |
新创建的 token 默认带有以下 scopes:tasks:create,tasks:control,confirm:approve,tools:run,mcp:register,token:manage,events:emit,events:read,kb:write,settings:write
访问受 scope 保护的端点时,token 必须包含对应 scope,否则返回 403。事件总线读端点(GET /v1/eventbus)接受 events:read(最小权限,推荐给只读监控方)或 events:emit(向后兼容);发射/清理事件(POST /v1/eventbus/emit、DELETE /v1/eventbus)仍要求 events:emit。
Tech Stack
-
Backend: Go 1.26 + chi + SQLite (WAL)
-
Frontend: React 19 + TypeScript + Vite
-
Testing: go test (144 tests)
Project Structure
cmd/agent/ CLI 入口
internal/
agent/ Agent 核心循环(loop、planner、feedback、checkpoint)
api/ HTTP API + 静态资源托管
handlers/ REST handlers
static/ 前端构建产物
auth/ Token 认证与权限策略
config/ 配置加载与校验
contextmgr/ 上下文预算管理(token 估算、压缩提示)
db/ SQLite 持久化(WAL 模式)
llm/ LLM 调用封装(多模型路由、成本追踪)
memory/ 长期记忆存储、用户画像、记忆评分
observability/ 审计日志与可观测性
scheduler/ 定时任务调度
service/ Windows 服务生命周期管理
task/ DAG 工作流引擎
toolrepair/ LLM 工具调用输出修复
trajectory/ 任务轨迹记录
vision/ 截图分析(多模态)
web/ React 前端
conf/ 配置文件(config.yaml.example)
生态
lumen 是一组 AI 工具的运行核心,以下同作者项目可围绕它组成生态:
| 项目 | 角色 |
|---|---|
| voiceconsole | MCP 插件 · 语音入口——标准 MCP server(stdio),可通过本仓 internal/agent/mcp.go 的 McpServer{command, args, transport} 配置注册 |
| dsh-logtimeline | MCP 插件 · 日志查询——标准 MCP server,同样可注册 |
| keyvault | 密钥设施——本地加密管理 LLM Key / Token |
注册后的 MCP 工具以 mcp.<name> 出现在工具表,走 L2 人工确认(见上方 Scopes 表的 mcp:register)。
联调实测(2026-10-10):voiceconsole 已在本机完成全栈连通验证——
python -m voiceconsole(stdio)应答 MCP 握手(protocol 2024-11-05),tools/list返回 5 个工具:run_cli/find_file/open_folder/speak/confirmconf/config.yaml配置级注册:启动日志[mcp] registered voice-console- API 动态注册
POST /v1/mcp/servers(mcp:registerscope)→201 POST /v1/mcp/servers/voice-console/test→{"status":"ok","message":"connection successful"}
mcp: enabled: true servers: - name: voice-console command: python # 白名单校验 basename ∈ {python,node,npx,uvx,...} args: ["-m", "voiceconsole"] transport: stdio
dsh-logtimeline 同为 stdio MCP server(薄 wrapper python/mcp_server.py,工具 log_query / parse_time),已同场实测:API 注册 → POST /v1/mcp/servers/dsh-logtimeline/test → {"status":"ok"}。
体系地图:https://anyuer678.github.io/yuer.dev/map
License
MIT
来源:GitHub · github.com