lobster0

agent
Guvenlik Denetimi
Uyari
Health Uyari
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 5 GitHub stars
Code Gecti
  • Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Gecti
  • Permissions — No dangerous permissions requested

Bu listing icin henuz AI raporu yok.

SUMMARY

Lobster0 — a self-hosted OpenClaw-inspired AI agent with persistent memory, governed autonomy, and self-evolution. 受 OpenClaw 启发的自托管 AI Agent「Lobster0」,具备持久记忆、受控自治与自我进化能力

README.md

🦞 Lobster0

一个小而完整、私有自托管、默认受控的个人 Agent。

简体中文 · English

Python 3.12+
Node.js 22.22.3–<23 or 24.15.0–<25
Version
Phase 6.5
License MIT

官网 · 为什么是 Lobster0 · 当前能力 · 快速开始 · 产品预览 · 架构 · 路线图 · 文档

Lobster0 在 Warp 中完成中文对话

Lobster0 把模型、Tool、权限、审批、持久化和多个消息渠道收进同一个本地 Core。你可以从 TUI、飞书、Telegram 或 Discord 与同一个 Agent 交互;所有本机动作仍要经过统一的 Policy、Workspace 边界和可审计执行链。

[!IMPORTANT]
当前所有能力为 IMPLEMENTATION PASS:本地门禁与离线场景全绿,但飞书 / Telegram / Discord 的
真实平台 Live Gate 与 Phase 6 生产 soak 仍在进行中。详细逐项证据见项目状态

为什么是 Lobster0

目标 Lobster0 的选择
私有与可控 状态、会话、审批和审计保存在本机;Secret 不进入 Prompt、日志或 Memory。
小而完整 一个 Python Core、一个主 TUI、一个 OpenAI-compatible Provider,不提前堆叠服务。
真正能行动 18 个 Core Tool 覆盖本机与 Memory;启用 Browser 后再加入 8 个隔离网页 Tool。
默认可追溯 Turn、ToolRun、Approval、Delivery 与 Channel Inbox/Outbox 都有 SQLite 状态。
多入口同一 Core TUI、Feishu、Telegram、Discord 复用同一个 AgentRuntime;Transport 和故障域隔离。
先验证再扩张 unittest、TypeScript test、Agent/Channel JSONL、20 轮 soak 和文档校验共同守门。

Lobster0 不是“把聊天框接到 Shell”——模型只提出 Tool Call,Core 负责参数校验、风险判定、审批绑定、执行、审计和恢复。

当前能力

已实现能力
Agent Loop OpenAI-compatible 流式响应、Tool Loop、token/latency telemetry、错误归一化、Context compaction。
TUI 默认 pi-tui、中文/英文、流式对话、Tool 状态、紧凑审批卡、四档 Permission Mode、Textual fallback。
Tool 系统、文件、搜索、HTTPS、exact-argv CLI,以及 remember/search/get/list/flush/forget/correct/review Memory surface。
安全 Workspace Guard、敏感路径硬拒绝、exact argv、最小子进程环境、HTTPS/DNS/SSRF 校验、参数绑定 Approval。
Channel Feishu 用单张 Claw Trail Agent Card 展示脱敏步骤和最终回答;审批点击在原卡先显示处理中,再以成功、拒绝或失败终态收口;三平台各自独立 Transport/Delivery/Manager/queue/recovery,共享 Agent Runtime。
数据 SQLite Session/Message/Turn/ToolRun/Approval/Channel/Memory control plane;owner-only Markdown Truth 与 Skills。
Automation one-shot/interval/cron、durable TaskRun、E-stop、预算、Heartbeat、Approval continuation 与幂等主动投递。
Desktop W0/W1 development build:浅色四界面、真实单 Agent 任务流、审批/取消、最近任务、只读 Automation、权限和 Workspace 切换。
Sandbox immutable ExecutionPlan、Docker/Seatbelt fail-closed backend、Checkpoint CAS 与冲突感知 Rollback。
Browser 专用 Chromium Profile、bounded snapshot/opaque ref、网页动作审批、私有 Screenshot/Download Artifact。
运维 initdoctorgateway、受管 macOS servicetask 控制面、Memory rebuild、结构化脱敏日志、幂等恢复与版本化 Eval。

init 会幂等安装 feishu-lark-cligithub-cli Skill:飞书业务请求走官方 lark-cli,GitHub 远端请求走本机 gh,本地仓库请求走 git;凭据不进入 Tool 参数或模型上下文。

Permission Mode

  • SAFE:只读低风险动作自动执行,其余动作按 Policy 请求审批或拒绝。
  • SMART:精确规则和安全 HTTPS 可以少打扰,未命中仍受监督。
  • AUTOPILOT:已验证 Owner 的非关键动作可自动执行,硬边界、参数校验与审计仍然存在。
  • YOLO:最少监督模式;不会关闭敏感路径、SSRF、Workspace 和关键动作硬边界。

新安装和缺少 tools.mode 的旧配置默认使用 autopilot;显式 safe/smart 保持不变。该默认值只信任本地入口和经过验证的 Owner 私聊,群聊、其他用户与硬拒绝规则不会扩权。

如果当前个人实例明确要求最少监督,可在私有 ~/.lobster0/config.toml 中设置 mode = "yolo" 并重启 Gateway;这只减少硬校验通过后的审批,不会开放凭据、敏感路径、SSRF、提权或 Shell 字符串执行。

快速开始

环境要求

  • Python 3.12+
  • uv
  • Node.js 22.22.3–<23 或 24.15.0–<25 与 pnpm(默认 pi-tui;managed 默认 24.18.0)
  • Chrome/Chromium 与 Playwright(仅在启用 Browser Agent 时需要)
  • 一个 OpenAI-compatible 模型端点;默认配置为 deepseek-v4-pro

安装与启动

git clone https://github.com/NEDONION/lobster0.git
cd lobster0

uv sync --extra dev --extra channels
pnpm --dir tui install
pnpm --dir tui build
pnpm --dir browser-worker install
pnpm --dir browser-worker build

cp .env.example .env
# 只在本机填写 LOBSTER0_MODEL_API_KEY;不要提交 .env

uv run lobster0 init
uv run lobster0 doctor
uv run lobster0

默认状态目录是 ~/.lobster0,Workspace 是 ~/.lobster0/workspace。使用隔离实例:

uv run lobster0 --home /absolute/path/to/demo-home init
uv run lobster0 --home /absolute/path/to/demo-home

如果暂时没有满足版本要求的 Node.js,可以显式使用迁移期 fallback:

LOBSTER0_TUI=textual uv run lobster0

常用入口

命令 用途
uv run lobster0 启动唯一主 TUI。
uv run lobster0 init 幂等初始化 owner-only 状态、配置、Memory、Skills 和 SQLite。
uv run lobster0 doctor 检查配置、目录权限、Provider、TUI 和数据库状态。
uv run lobster0 gateway 启动已配置的 Feishu/Telegram/Discord Gateway。
lobster0 service install/status/restart/uninstall 管理 Feishu-only macOS LaunchAgent;生产 runtime 使用独立 managed Python 3.12。
uv run lobster0 task list 查看 durable ScheduledTask;show/runs/pause/resume/run/cancel/halt/unhalt 提供完整控制面。
uv run lobster0 eval validate --root evals/scenarios 校验版本化 JSONL 场景。
uv run lobster0 eval run --suite offline --root evals/scenarios 跑真实 Core/Policy/Tool/SQLite 离线回归。
uv run lobster0 eval run --suite channel --repeat 20 --json --root evals/scenarios 跑三平台 Channel gate 与 20 轮本地 soak。
uv run lobster0 eval run --suite automation --repeat 20 --json --root evals/scenarios 跑 Phase 6 的 15 条 Automation gate 与 20 轮 soak。
uv run lobster0 eval run --suite browser --repeat 20 --json --root evals/scenarios 跑 Phase 6.5 的 18 条 Browser gate 与 20 轮 soak。

Channel 的 allowlist、Owner 身份与平台凭据配置见本地运行指南

Desktop W0/W1 开发版与 D1~D5 新目标

Desktop 当前是开发构建,不是已签名安装包。它复用同一 Python Core、Policy、SQLite 与 Automation,不在
Renderer 中复制 Agent 逻辑或直接访问本机能力。

macOS 已安装 uv、Node.js >=22.19.0 和 Corepack 后,首选直接在 Finder 双击根目录的
start-desktop.command,或从终端执行:

./start-desktop.command

脚本会按需安装锁定的 Python/TUI/Desktop 项目依赖、构建共享 TUI Bridge client、补齐 Electron 二进制,
并在首次启动时调用安全的 lobster0 setup 收集模型 Key;后续启动只运行幂等 init。默认状态目录是 ~/.lobster0,也可提前设置绝对
路径 LOBSTER0_HOME。Secret 继续由 Core 写入 owner-only secrets.env,脚本不读取或打印其内容。
旧状态没有 secrets.env 时,开发入口会显式选择仓库根目录现有的 owner-only .env

如果一键入口报告依赖或配置错误,可按下面步骤手工排障:

uv sync --extra dev
pnpm --dir tui install
pnpm --dir tui build
pnpm --dir desktop install
uv run lobster0 setup --home /absolute/path/to/lobster0-home

LOBSTER0_PYTHON="$(pwd)/.venv/bin/python" \
LOBSTER0_HOME=/absolute/path/to/lobster0-home \
LOBSTER0_ENV_FILE=/absolute/path/to/lobster0-home/secrets.env \
pnpm --dir desktop dev

当前可运行版本包含首页、任务工作台、自动化只读列表和设置;自动化跨进程测试和隔离 Electron 进程 smoke 已通过。
它仍是 W0/W1 历史基线:输入框藏在任务页,Artifact、Sub-agent、installer/signing、鼠标/键盘视觉验收和真实模型
LIVE smoke 尚未完成。

新的 D1~D5 目标已确认:以 LobsterAI Cowork 为主体,让首屏直接显示大对话框、附件、模型、Workspace 和 Agent
选择;吸收 OpenAgents 的 Agent 列表、任务线程、参与状态和右侧共享产物;底层继续只使用 Lobster0 Core、Policy、
Approval、ArtifactStore 和 SQLite。当前处于设计完成、实现 pending,详见
桌面多 Agent 开发需求
架构设计
分 Phase 落地方案

产品预览

下面 3 个典型 Case 均在 Warp 中使用全新隔离 LOBSTER0_HOME 运行。为了不消耗真实模型额度,Provider 响应来自本地固定端点;Lobster0 的 TUI、Bridge、TurnService、Policy、ToolExecutor、SQLite、Approval 和 Tool 执行均走真实代码路径。

1. TUI 对话完整跑通

Lobster0 TUI 对话

中文输入、回答、32K 应用侧 Context budget、token、迭代和耗时在同一界面可见。

2. SAFE 模式请求权限

Lobster0 SAFE 权限审批

run_command 在执行前展示规范化后的绝对程序、精确 argv、超时和四种审批选择;截图时命令仍处于 requested,没有执行。

3. 调用外部 Git CLI 完成任务

Lobster0 调用外部 Git CLI

Lobster0 用 run_command 的 exact argv 调用隔离仓库中的 git status --short --branch,再根据真实 Tool 结果完成总结;没有 Shell 字符串拼接。

工作原理

flowchart LR
    U["Owner"] --> TUI["pi-tui / Textual"]
    U --> IM["Feishu / Telegram / Discord"]
    TUI --> CORE["TurnService + AgentRunner"]
    IM --> PIPE["isolated Channel pipelines"]
    PIPE --> CORE
    CORE --> PROVIDER["OpenAI-compatible Provider"]
    CORE --> EXEC["ToolExecutor"]
    EXEC --> POLICY["Policy + Permission Mode"]
    POLICY --> APPROVAL["bound Approval"]
    POLICY --> TOOLS["Files / HTTPS / CLI / Memory"]
    CORE --> SCHED["Scheduler + TaskRunner"]
    SCHED --> LEDGER["Task Ledger + E-stop"]
    SCHED --> EXEC
    CORE --> DB["SQLite ledgers"]
    CORE --> MD["Markdown Memory + Skills"]

一次典型本机动作的链路是:

  1. TUI 或 Channel 把用户消息交给同一个 TurnService
  2. ContextBuilder 组合 SOUL、USER、当前 Memory、Skills 和有界历史;
  3. Provider 返回文本或 Tool Call;
  4. Tool 先做 Schema 校验,再由 Policy 决定 allow / deny / approval;
  5. 执行结果写入 ToolRun/Audit,返回 Agent 继续完成回答;
  6. Turn、消息、审批与 Channel Delivery 都能在重启后恢复或解释。

Memory Autopilot:已实现的混合方案

能力 当前实现
真相源 已接受 Unit 写入 memory/owners/<owner>/memory.md;SQLite Projection 可重建
写入 普通 Turn 非阻塞 capture/flush;明确“记住”原子落盘后才报告成功
检索 owner-scoped FTS5/CJK、完整来源链、有效期过滤与固定 Recall 预算
治理 short-term、重复晋升、Review、冲突、纠错、forget、TTL 与 weekly review
跨渠道 TUI、Feishu、Telegram、Discord 的已验证 Owner 私聊共享一个 Memory Space
隐私 群聊、非 Owner、未知/冲突身份 fail closed;Secret 在 Candidate 前拒绝
维护 Markdown direct edit 对账、/memory rebuild、legacy 只读 hash 迁移、Doctor drift 检查

架构、实现和证据入口:

Phase 6:自治运行与安全

Phase 6 让 Lobster0 在 Gateway 常驻时执行受控后台任务,但不把控制权交给模型:

  • SQLite Task Ledger 冻结 Task/Run snapshot,Scheduler 幂等生成 due Run;
  • 每个 Run 使用独立 Automation Session、固定 Tool profile 和 wall-clock/turn/tool/token/cost 预算;
  • manage_task 只存在于普通 Agent,Automation Agent 不能递归创建 Task;
  • complete_task 是唯一成功出口,危险 Tool 继续走参数与 ExecutionPlan 绑定的人工 Approval;
  • durable E-stop、lease recovery、幂等 Channel Delivery 和 Heartbeat 复用现有 Runtime;
  • Docker/Seatbelt 缺失时 fail closed,不回退 Host;Seatbelt v2 Plan 绑定 exact executable path/hash;文件副作用前创建
    有界 Checkpoint,Rollback 需要 preview hash。

默认 automation.enabled = falseheartbeat.enabled = false。当前 Heartbeat 没有 Owner IM route;Checkpoint
只覆盖主 Workspace;Rollback 还没有 CLI/TUI。详细边界见
Autonomy Runtime
Sandbox 与 Checkpoint
v0.7.0 发布证据

Phase 6.5:隔离 Browser Agent

Browser 默认关闭。开启后,一个 Runtime 独占一个 TypeScript Worker 和 Lobster0 专用 Chromium Profile;模型只能使用
browser_open/snapshot/click/type/press/scroll/screenshot/close 八个封闭 Tool,不能执行任意 JavaScript,也不能读取
个人 Chrome Profile、Cookie、密码或 OTP。

[browser]
enabled = true
profile = "lobster0"
headed = true
allow_personal_profile = false
max_tabs = 8
max_snapshot_chars = 20000
inactivity_timeout_seconds = 120
download_max_bytes = 20971520

网页内容始终作为 untrusted_web_content;点击与 Enter/Space 走参数绑定 Approval;公网 HTTPS 与 redirect 复用 SSRF
Policy;截图和下载只返回私有 Artifact ID。当前状态为 IMPLEMENTATION PASS / CONTROLLED LIVE SMOKE PENDING
完整数据流、故障矩阵和验收方法见 Browser Agent 工程文档
v0.6.5 发布证据

安全边界

  • Secret 永不进入仓库、普通日志或 Memory;常见 Token、密码、OTP、Authorization 和私钥在边界拒绝。
  • 文件 Tool 只能访问配置的 Workspace/允许根;symlink、路径逃逸、二进制和超限内容 fail closed。
  • run_command 只接受程序与参数数组,shell=False,使用最小环境、固定 cwd、超时和输出上限。
  • http_get 只允许经过 URL、DNS、端口和重绑定检查的 HTTPS 目标。
  • Approval 绑定 Tool 名、规范化参数 hash、Owner、TTL 和可用决策;篡改、重放和跨 Owner 使用都会拒绝。
  • Channel allowlist、Owner 映射、Inbox/Outbox 幂等、独立 queue 和恢复状态不会交给模型决定。
  • Memory、Skill 和外部内容只能提供上下文,不能扩大 Policy 权限。

完整威胁模型与契约见系统架构Phase 2 安全设计

项目状态

项目 当前证据
Python 1005/1005 unittest PASS
TUI 41/41 TypeScript tests + build PASS
Browser Worker 14/14 TypeScript + 真实 headless Chrome tests PASS
Agent 39/39 active offline cases PASS(含 MEM-AUTO-001..010
Channel 33/33 versioned cases PASS
稳定性 20 轮 local Channel soak,660/660 PASS
Automation 15/15 versioned cases;20 轮 300/300 PASS
Browser 18/18 versioned cases;20 轮 360/360 PASS;controlled live smoke pending
Feishu TARGETED CALLBACK LIVE VERIFIED / 15-CASE LIVE PENDING
Telegram / Discord Implementation PASS;真实平台 Live Gate 仍 pending
Memory Autopilot A~E IMPLEMENTATION PASS;真实 IM Live 结论沿用各平台 gate
Phase 6 IMPLEMENTATION PASS / PRODUCTION SOAK PENDING;生产 Gate tooling 完成,严格 25-case 与 24h 尚未完成

本地 fake SDK、离线场景和 660/660 soak 只代表 IMPLEMENTATION PASS,不会冒充真实平台 Live PASS。历史发布证据见 docs/evals/releases/
Memory 上线前的 Phase 5 历史基线为 562 Python、30 TypeScript、29/29 Agent;Memory v0.6.0 的历史基线为
666 Python、35 TypeScript、39/39 Agent;Phase 6 历史基线为 798 Python。当前发布数字以上表和 v0.6.5 为准。

验证命令

uv run python -m unittest discover -s tests -v
pnpm --dir tui test
pnpm --dir tui build
pnpm --dir browser-worker test
pnpm --dir browser-worker build
uv run ruff check .
uv run lobster0 eval run --suite channel --repeat 20 --json --root evals/scenarios
uv run lobster0 eval run --suite automation --repeat 20 --json --root evals/scenarios
uv run lobster0 eval run --suite browser --repeat 20 --json --root evals/scenarios
uv run python scripts/validate_docs.py
git diff --check

路线图

flowchart LR
    P53["v0.5.3\nLive Evidence 收口"] --> MA["Memory A-E\nIMPLEMENTED"]
    MA --> P6["Phase 6\nIMPLEMENTED"]
    P6 --> P65["Phase 6.5\nBrowser IMPLEMENTED"]
    P65 --> P7["Phase 7\nControlled Evolution"]
    P7 --> P8["Phase 8\nSkills + MCP + Provider"]
    P8 --> P9["Phase 9\nSub-agent + Multimodal"]

Owner AUTOPILOT 默认值、飞书 Claw Trail Agent Card、v0.5.3 Core hardening、Memory A~E、Phase 6
Autonomy/Sandbox 与 Phase 6.5 Browser Agent 已实现。下一条功能主线是 Phase 7 Controlled Evolution
Browser controlled live smoke 和 Feishu/Discord 严格 Live Evidence 仍作为独立验收并行收口。

仓库结构

src/lobster0/
├── agent/       # Context、Runner、Turn、Compaction
├── automation/  # Task Ledger、Scheduler、Runner、Heartbeat、Delivery
├── artifacts/   # Browser Screenshot/Download 私有 CAS 与 TTL
├── browser/     # Worker Client、协议模型、发现与动作 Policy
├── checkpoints/ # bounded CAS 与 conflict-aware Rollback
├── channels/    # Feishu / Telegram / Discord adapters and pipelines
├── memory/      # Markdown Truth、buffer/flush、FTS5、治理、对账与迁移
├── policy/      # Workspace、Command、Network、Permission、Approval
├── providers/   # OpenAI-compatible Provider
├── sandbox/     # immutable Plan 与 Host/Docker/Seatbelt backend
├── storage/     # SQLite schema, repositories and migrations
├── tools/       # 18 个 Core Tool + 8 个可选 Browser Tool
└── tui/         # Textual fallback;默认 pi-tui 在仓库 tui/

tui/             # Node.js pi-tui + Python Bridge client
browser-worker/  # TypeScript Playwright/Chromium 隔离 Worker
desktop/         # Electron + React 的 W0/W1 development build
evals/           # versioned Agent / Channel / Automation / Browser scenarios
docs/            # PRD、架构、工程、计划、发布证据与进度页
tests/           # Python unittest

文档

入口 适合读者
文档中心 完整索引与推荐阅读顺序
产品需求文档 产品范围、非目标和验收标准
系统架构 模块边界、数据流与安全原则
本地运行指南 安装、配置、TUI、Gateway 与排障
工程文档索引 已实现模块与规划文档的边界
开发与交付时间线 架构 Phase、真实版本顺序与证据状态的对应关系
开发进度页 当前 Phase、证据和下一步
OpenClaw / Hermes Gap 竞品能力映射与 v0.5.3 Evidence→Memory A~E→Phase 6~9 路线
能力对齐工程落地总方案 后续交付的模块、数据和测试边界
Memory A~E 实施计划 可直接执行的 RED→GREEN 施工计划
Memory Autopilot 工程实现 当前数据流、安全边界、恢复和运维入口
Phase 6 Autonomy Runtime Task/Scheduler/Runner/Heartbeat、预算、恢复与运维入口
Phase 6 Sandbox 与 Checkpoint Plan/Approval 绑定、隔离后端、Checkpoint 与 Rollback
Phase 6.5 Browser Agent 专用 Profile、snapshot/ref、Policy、Artifact、恢复和 18-case gate
Phase 6 macOS + 飞书生产验收 managed LaunchAgent、25-case、重启恢复、24h soak 与 Evidence Runbook

参与开发

欢迎 Issue 和 Pull Request。开始前请阅读 AGENTS.md文档中心,保持变更范围小、测试离线可重复,并且不要把规划写成已实现。

uv sync --extra dev
uv run python -m unittest discover -s tests -v
uv run ruff check .

License

MIT

Yorumlar (0)

Sonuc bulunamadi