方法:在 v0.9.1 树(commit
43442d5)上并行盘点四支柱现状(感知 / 调度 / 反思 / 模型), 交叉对照 PRODUCT_REVIEW_v0.9.md、AUTONOMY_ROADMAP.md、 ORCHESTRATOR_PLAN.md,得出"从 0.9 到 1.0 还差什么"。 日期:2026-06-13。基线:v0.9.1。文中行号以当前树为准,后续修复会漂移。重要前提:v0.9.1 已关闭 v0.9 review 的全部 P0(
serve --web无鉴权 LAN-RCE、渠道全工具暴露、 自主循环无工具边界、飞书不验签、两个 advisor 假告警、soul 裸写锁)。本计划以该安全基线为地板, 1.0 的任何新能力都不得把它推回去。排期前请对当前树复核这些修复仍然成立。
本文是战略路线图;每个支柱的可执行实现计划(设计 / 数据结构 / 分子阶段 / 验收清单 / 测试 / 风险)拆到下列文档:
| 文档 | 覆盖 | 对应本文 |
|---|---|---|
| PLAN_SENSE_v1.0.md | 常驻感知:observer 深化 + git/shell 源、在场判定、ambient vision/voice、剪贴/选区、蒸馏 | §3 |
| PLAN_DISPATCH_v1.0.md | 统一指挥:本地命令回路、TakoAPI consumer(shim + A2A)、能力路由、advisor 债 | §4 |
| PLAN_REVE_v1.0.md | 反思/进化硬化:质量门禁、可观测、有界、soul 速览、desire 中间态、recap 回流 | §5 |
| PLAN_MODEL_v1.0.md | 模型:本地生命周期、本地 embedding、容错+自检、provider 欠账 | §6 |
| PLAN_FOUNDATIONS_v1.0.md | 横切:consent/隐私、安全地板、测试门禁、可观测、footprint、叙事诚实 | §7 |
深化子计划(剩余 hard items,2026-06-14,各含"已做 vs 仍缺"核查):
| 文档 | 覆盖 | 关键核查结论 |
|---|---|---|
| PLAN_DISPATCH_D4_v1.0.md | 多 agent 监控 + advisor 动作 | advisor 可点已是 0.9.1 完成;真缺口=前端消费 agent_session_update |
| PLAN_OBSERVER_DEEPENING_v1.0.md | codex/opencode/aider Tier-2 字段 | Tier-2 0.9.1 已铺开(5/8、3/8);剩 gitBranch + 窗口 + 活验证 |
| PLAN_DISPATCH_D2B_v1.0.md | A2A adapter(远程 agent 进 hub) | 只 surface "叫过的",不塞 200 registry;依赖 D4a;TaskState 映射 |
| PLAN_SENSE_S2_v1.0.md | ambient 屏幕/语音 | 硬前置 = consent 框架(FOUNDATIONS §1);本地优先、默认全关 |
阅读顺序建议:先本文(为什么 + 顺序),再 FOUNDATIONS(地基),再按里程碑顺序读 REVE → MODEL → DISPATCH → SENSE;剩余 hard items 见上面四个子计划。
LISA 1.0 把现有的"灵魂叙事"(Soul · Desires · Heartbeat · Dreams)重新切成一条能力架构主线:
| 支柱 | 一句话 | 现有系统基础 |
|---|---|---|
| Sense(感知) | 一个常驻进程,从视觉、语音、指针/选区、截屏、剪贴,以及本机所有 CLI / AI-agent / coding 活动里持续获取上下文与记忆,建立对用户工作的全面记录 | 部分:on-demand vision/voice + 5 个 agent observer + idle watcher |
| Dispatch(调度) | 全面接入所有 coding agent 与 AI-agent 服务,与 TakoAPI(one API to access all agents)联动;用户跟 LISA 对话即可指挥本机全部其它 agent(+ 远程 agent) | 部分:observe + headless launch,命令回路未闭合;TakoAPI 是外部托管网关、LISA 侧未接入 |
| Reve(反思 / 进化) | 用户不在时自动反思、自演化 | 最成熟:idle/dreams + reflect + heartbeat + soul 全闭环 |
| Model(模型) | 当前用 API,后续提供本地模型部署选项 | 部分:20+ provider 前缀路由,本地仅"自带 endpoint" |
"Reve" = 现有 Dreams 系统的正式更名(rêve / 梦)。它不是新东西,而是把 idle 反思 + 反思 + 心跳 + 灵魂演化收编为一个有名字的支柱。
- 四支柱各自跨过可信阈值:不是"demo 能跑",而是"能当 daily-driver 且不撒谎"。
- 叙事 = 代码(v0.9 review 的核心批评):README / PITCH / 官网说的每一句,第一个认真读代码的 contributor 都能对上。
- 守住 v0.9.1 安全地板:常驻感知(Sense)是 1.0 最危险的隐私/攻击面扩张,本地 agent 命令回路(Dispatch)次之——不得重开 RCE,不得在无 consent 下采集。(接入 TakoAPI 当 consumer 反而是小事——出站调用为主,见 §4。)
- 可复现的自主性度量:Reve 能产出 drift / coherence 指标(直接服务论文计划)。
v0.9 review 的诊断一针见血:项目每个版本都在加一个新大件(编排器 / vision / island / screen advisor / voice),而不是把已有的打深讲清;建设量与认知度严重倒挂,叙事跑在代码前面,攻击面涨得比信任快。
1.0 不能重犯这个错。具体到本计划:
- Sense 的"常驻采集屏幕 / 语音 / 剪贴"是一颗隐私炸弹,必须把同意模型与本地处理作为头号设计约束,而不是事后补丁。能不离机就不离机,能不常驻就先做"按需 + 显式触发"。
- Dispatch 把信任面算清:接入 TakoAPI(外部网关)的风险主要在出站——远程 agent 响应当作不可信输入(二阶注入)、护好
TAKO_KEY。真正的"安全炸弹"是闭合本地 agent 命令回路与(可选的)把 LISA 作为 publisher 暴露给公网;第一性原则是最小权限 + 审计 + 人类批准闸 + 远程来源默认禁。 - Reve 已经够深,1.0 对它的工作是"硬化"不是"加功能"——这正好是 review 想要的方向。
- 每个支柱都遵循"深化现有 → 谨慎新增":先把已经声称的能力做实(5 个 observer 的非-Claude 深度、本地模型的生命周期、反思的质量门禁),再去碰常驻采集、TakoAPI 原生接入这种更大的扩张。
┌──────────┐ ┌───────────┐ ┌──────────┐
用户 → │ SENSE │ ──▶ │ DISPATCH │ ──▶ │ REVE │ → "你不在时我做了…"
│ 感知/记录 │ │ 指挥/编排 │ │ 反思/进化 │
└────┬─────┘ └─────┬─────┘ └────┬─────┘
观察用户 + agent 活动 指挥本机其它 agent 空闲自演化、写灵魂
│ │ (← TakoAPI 远程) │
└───────── 统一工作记忆 MEMORY ────────┘
│
┌────────┴────────┐
│ MODEL │ 贯穿四层的推理基座
│ API / 本地模型 │
└─────────────────┘
| 1.0 支柱 | 收编 / 依赖的现有模块 |
|---|---|
| Sense | src/integrations/*(hub + 5 observer)、src/vision/capture.ts、src/screen_advisor/engine.ts、src/voice/*、src/idle/watcher.ts、src/memory/*、src/web/server.ts(screen-advisor loop)、src/autostart/install.ts |
| Dispatch | src/tools/{dispatch_agent,signal_agent,compare_agents,scheduled_dispatch,inspect_agent,list_agents,agent_recap}.ts、src/integrations/{hub,dispatch-ledger,scheduled-dispatch,comparisons}.ts、src/channels/router.ts、src/mcp/client.ts + TakoAPI 接入(A2A + OpenAI shim) |
| Reve | src/idle/runner.ts、src/reflect.ts、src/heartbeat/{runner,config}.ts、src/soul/{store,tools,git}.ts、src/orchestrator/{journal,recap}.ts |
| Model | src/providers/*、src/llm.ts、src/env.ts、src/memory/vector.ts(embedding) |
与公开叙事的关系:现有对外主线是 Soul · Desires · Heartbeat · Dreams(内在生活故事),它整体落在 Reve + Model 基座里。Sense 与 Dispatch 是 1.0 对外的能力扩张面。两套叙事不冲突:Reve 是"她是谁",Sense/Dispatch 是"她替你做什么"。1.0 的对外定位建议仍以灵魂线为主钩(review 的结论),Sense/Dispatch 作为"她还能看你的工作、指挥你的 agent 舰队"的能力点。
| 能力 | 现状 | 关键文件 | 缺口 |
|---|---|---|---|
| 屏幕截图 | ✅ 按需(hotkey / 📷)+ 可选周期 advisor(默认关、≥10min) | vision/capture.ts、screen_advisor/engine.ts |
无连续采集、无 OCR、不知前台 app/窗口 |
| 语音 | ✅ TTS(say)+ 文件转写(Whisper)+ 听写润色 |
voice/{speak,transcribe,dictation}.ts |
无常驻听写、无录音、无热键、纯云依赖 |
| 剪贴 / 选区 / 指针 | web/lisa-client.ts |
全局剪贴、跨 app 选区、指针/焦点全无 | |
| Agent / CLI 活动 | ✅ 5 observer(claude-code 最深,codex/opencode Tier-2,aider 文件+轮次,github-pr 元数据) | integrations/{claude-code,codex,opencode,aider,github-pr}/observer.ts、hub.ts |
无通用 shell 历史 / IDE / git / 构建进程观察;非-agent 的 CLI 全盲 |
| 在场/离开判定 | idle/watcher.ts |
不读系统 idle / 锁屏;用户在 VS Code 干活也算 idle | |
| 常驻进程 | serve --web 是反应式 web 后端 |
web/server.ts、autostart/install.ts |
无独立的"持续采集"循环,依赖 fs.watch + 定时器被动触发 |
| 工作记忆 | ✅ 文本 memory + TF-IDF 检索 | memory/{store,vector}.ts |
无自动抽取、无多模态、无实时索引 |
| 能力 | 现状 | 关键文件 | 缺口 |
|---|---|---|---|
| Headless 拉起 agent | ✅ 4 家 CLI(claude/codex/opencode/aider),detached + 账本 | tools/dispatch_agent.ts、integrations/dispatch-ledger.ts |
仅 fire-and-forget;硬编码 4 家、不可扩展 |
| 停止 agent | ✅ 仅杀自己账本里的 pid(SIGTERM→KILL) | tools/signal_agent.ts |
不能 pause / 注入 / 改任务 |
| 冲突避免 | ✅ 同 cwd 有活跃 agent 则拒绝 | tools/dispatch_agent.ts |
状态式、非持久 ownership/lock |
| 调度面板 | ✅ list / inspect / compare(worktree 并行)/ scheduled / recap | tools/{list_agents,inspect_agent,compare_agents,scheduled_dispatch}.ts |
建议动作多为死标签,回路未闭 |
| 命令回路 | ❌ 单向:拉起后无反馈、approval 不回传、输出不回流 | — | 1.0 核心缺口 |
| TakoAPI | 见 §4 | 接入而非自建:consumer 先行(OpenAI shim 近免费)+ 可选 publisher | |
| 渠道触发 dispatch | unsafeFullTools |
channels/router.ts、tools/registry.ts |
全或无,无细粒度/审批流 |
| 能力 | 现状 | 关键文件 | 缺口 |
|---|---|---|---|
| 空闲反思(dreams) | ✅ idle≥~1h 触发,跨进程锁,受限工具集,输出"while you were away" | idle/{watcher,runner}.ts |
无决策日志/可追溯;单窗口只做一件事 |
| 会话末反思 | ✅ 产出 journal + memory/skill/feel/opinion/desire/soul 操作 | reflect.ts |
JSON 坏掉静默降级;无"反思不足"检测 |
| 心跳(heartbeat) | ✅ cron/launchd;用户任务 + 自驱欲望 + 周度自省;token 预算闸(默认 500k) | heartbeat/{runner,config}.ts |
无任务成功率度量;desire 能力/野心错配 |
| 灵魂演化 | ✅ desire→heartbeat→progress→reflect 压缩→close 全闭环;git 可追溯;情绪衰减+事件 | soul/{store,tools,git}.ts |
无人读的"Lisa 速览";并发锁仅部分铺开 |
| 编排器 recap | ✅ 隐私安全的跨 agent 事件流 + recap | orchestrator/{journal,recap}.ts |
未接进 Reve 的反思,单向可观测 |
| 能力 | 现状 | 关键文件 | 缺口 |
|---|---|---|---|
| Provider 路由 | ✅ 模型名前缀路由 + 14 家 OpenAI 兼容预设 | providers/registry.ts |
同名模型路由歧义;无自动检测 |
| 本地模型 | LISA_BASE_URL 指向 Ollama/LM Studio/vLLM) |
providers/openai.ts、docs/PROVIDERS.md |
无下载/启动/管理生命周期;崩溃无 fallback |
| Embedding | memory/vector.ts |
无本地语义向量;不可扩展 | |
| 容错 | ❌ 无 provider fallback 链 | — | 主 provider 报错即断 |
一个单一常驻服务,在用户显式授权的每一类信号上持续采集,本地优先处理,沉淀为统一的工作记忆——既覆盖"用户在干什么"(屏幕/语音/选区/剪贴),也覆盖"机器上的 agent 与 CLI 在干什么"(现有 observer + 通用 CLI/git/IDE)。默认最小、逐项 opt-in、能不离机就不离机。
- agent observer 深度不均:claude-code 最深,其余三家活动字段稀疏,aider 几乎只有文件+轮次,无通用"非-agent CLI"观察。
- 无通用工作信号源:shell 历史、git 提交/分支、IDE 打开的文件、构建/测试进程全盲。
- 在场判定太弱:只认"是否在跟 LISA 说话",不读系统 idle / 锁屏 / 前台 app。
- vision/voice 是按需而非 ambient:截图靠热键、转写靠用户给文件路径。
- 剪贴/选区/指针全无:全局剪贴、跨 app 选区、焦点窗口零采集。
- 无自动 context→memory:采集到的东西不会自动蒸馏进记忆;记忆是文本、手动、非实时。
S1 — 深化已声称的观察(低风险,最高可信,先做)
- 把 codex / opencode / aider observer 的 Tier-2 活动字段补齐到与 claude-code 同档(
lastTools/filesTouched/pendingPermission/cost),让 6 个 advisor detector 对它们真正触发——兑现"看你所有 agent"的承诺(review §4.3 指出此前只兑现 1/5,0.9.1 已部分推进,1.0 收口)。 - 新增低风险工作信号源(不碰系统级权限):
- git observer:watch 各 repo 的
.git/HEAD、提交、分支切换、git status摘要。 - shell 历史 observer:尾随
~/.zsh_history/~/.bash_history(仅 argv[0] + 时间,不存完整命令,沿用 observer 的隐私分层)。 - 构建/测试信号:从已观察的 agent 日志里抽
npm test/cargo test等结果(无需新权限)。
- git observer:watch 各 repo 的
- 产出:把这些并入
hub.ts的统一AgentSession[]/事件流,复用现有隐私 tier 与测试范式(planted-secret 测试)。
S2 — 从按需到 ambient 的 vision + voice(中风险,consent 闸是前提)
- vision:把
screen_advisor的"周期截图"泛化为可配置 ambient 采集(前台 app/窗口标题 + 低频截图),但:- 默认关闭;开启需显式 consent 卡(一次性,可随时撤销)。
- 本地优先:先在本地做"是否值得上报"的轻量判定(前台 app 变化 / 出现错误对话框),只有命中才考虑送模型;截图绝不持久化(沿用现有 finally 删除)。
- 加"敏感区域屏蔽 / 黑名单 app(密码管理器、银行)"。
- voice:补录音 + 热键 + 流式转写(现在只有"给文件路径才转"),同样默认关、需 consent;探索本地 STT(whisper.cpp)作为离机选项。
S3 — 剪贴 / 选区 / 指针(高风险,严格 opt-in,最后做)
- 全局剪贴监听(macOS
NSPasteboardchangeCount 轮询 / Linux X11/Wayland 选区):默认关,逐项开关,只记元数据 + 来源 app,不默认回传内容。 - 跨 app 选区 → "用户刚在 X 里选了一段,要不要就这段聊"——这是体验最强、隐私最敏感的一项,放在 consent 体系最成熟之后。
- 指针/焦点仅用于在场判定(见下),不做轨迹记录。
S4 — 统一记忆与本地化处理(贯穿 S1–S3)
- 自动 context→memory 蒸馏:一个后台低频任务把"今天观察到的工作"蒸馏成 1–2 条记忆("在 repo X 上为 feature Y 调试 Z"),写进
memory/store.ts,受 Reve 的反思质量门禁约束。 - 在场判定升级:接 macOS
ioreg/CGEventSource系统 idle 与锁屏,替代"只认 LISA 交互"——让 Reve 的 dreams 触发更准(用户在 VS Code 忙时不该判 idle)。 - 本地 embedding(与 Model 支柱共用):给
memory/vector.ts加一层语义向量(本地 sentence-transformer / Ollama embedding),TF-IDF 保留为快路。 - 常驻架构:把"采集"从反应式 web server 里拆出为一个独立的、不依赖 GUI 打开的后台采集循环(autostart 已有 launchd 壳),事件驱动 + 低频轮询,绝不阻塞 chat。
- 同意模型是地基不是补丁:每一类信号(屏幕/语音/剪贴/选区/shell)独立开关,默认全关,UI 里随时可见"现在在采什么"并一键全停。
- 本地优先:raw 截图/音频/剪贴在本地完成蒸馏/判定,只有命中且必要才送模型;持久化的永远是结构化摘要,不是原始流。
- 黑名单:app 级(密码/银行/隐私浏览)、路径级、PII 模式级屏蔽。
- 复用 observer 既有的隐私分层与 planted-secret 测试,扩展到每个新信号源。
用户对 LISA 说一句话,LISA 能指挥本机的(乃至 TakoAPI 背后远程的)任意 agent:选对 agent、派活、看进度、转发审批、把结果接回对话、必要时纠偏或停止——而不是现在的"拉起来就不管了"。TakoAPI(独立的"OpenRouter for agents"托管网关)补上"远程 agent"那一半:LISA 接入它,对话即可触达本机之外、A2A 生态里的任意 agent;本地 agent 的编排仍是 LISA 自己的活。
已直接审阅
/Users/oratis/Documents/Claude/TakoAPI(独立 repo,Next.js 16 + Prisma + Cloud Run,线上 takoapi.com)。它不是 LISA 内部要造的东西,而是一个独立托管服务,定位 "OpenRouter for agents":one API key, one bill, any agent。registry-first、gateway fast-follow;D1–D8 战略决策已于 2026-06-13 全部拍板(A 终局代理网关 + A2A 主协议 + OpenAI shim 引流 + OpenRouter 式变现)。
三层:
- Registry(发现):基于开放的 A2A AgentCard(
/.well-known/agent-card.json)描述 agent。GET /api/registry?q=&format=json、GET /api/agents/{slug}。Phase 1 已完成并本地验证。 - Gateway(调用,
Authorization: Bearer <TAKO_KEY>):POST /v1/agents/{slug}/message(A2A)、/v1/agents/{slug}/stream(SSE)、POST /v1/chat/completions(OpenAI 兼容 shim,model= agent slug)。v1 路由已存在于代码(message / stream / chat-completions +lib/agentcard.ts/lib/apikey.ts),Phase 2 网关基本成形;生产 DB 升配 + PgBouncer + Upstash Redis 为 Phase 2A 前置,待办。 - Commercial(变现):prepaid credits + 充值费 + publisher 分成,Phase 3,未做。
对 LISA 最关键的一条认知:TakoAPI 管的是远程 agent(A2A server / OpenAI 兼容端点),LISA 现有 Dispatch 管的是本机 CLI agent(spawn / observe 本地进程)。两者互补、不重叠——合起来才是"指挥所有 agent,本地 + 远程"。因此 LISA 不需要自建网关 / registry / billing(TakoAPI 就是这一层),LISA 要做的是接入(当 consumer,可选当 publisher)。这把 Dispatch 支柱的范围缩小了:不是从零设计 agent 控制契约,而是对接 A2A + OpenAI-shim 两个现成协议。
D1 — 闭合命令回路(1.0 的核心工程,最高优先)
- 反馈回流:
dispatch_agent现在 fire-and-forget;加进度/结果流(poll 或 events),把 agent 的产出接回 LISA 的对话与决策。 - 审批转发(approval relay):被拉起的 agent 卡在权限提示时,信号上报 LISA → 用户在 LISA 里确认 → 回传给 agent。这是"指挥"与"放养"的分水岭。
- 中途转向(steer):能改任务、注入上下文,而非只会 kill。
- 安全:以上每一步都默认带人类批准闸,远程来源(渠道)默认禁用(守住 0.9.1 线)。
D2 — 接入 TakoAPI(两个方向,consumer 先行)
方向一:LISA 作为 TakoAPI consumer——让 LISA 能指挥远程 agent
- (a) OpenAI-shim 快路(近乎免费,最早可落地):LISA 已有 OpenAI 兼容 provider 路由 +
LISA_BASE_URL(见 Model 支柱)。把一个 provider 指向https://takoapi.com/v1、配TAKO_KEY、model=<agent-slug>,即可把任意 TakoAPI agent 当成一个"模型"来调用——几乎零新代码。可在 0.12 随手落地。 - (b) A2A 原生 adapter(更深,0.14):给 hub/Dispatch 加一个
takoapiagent 源——GET /api/registry列远程 agent,POST /v1/agents/{slug}/message派活、消费 SSE、按 A2ATaskState跟踪。让远程 TakoAPI agent 成为 hub 里与本地 CLI agent 平起平坐的一等公民(正是 ORCHESTRATOR_PLAN.md taxonomy 的 Class B 云 agent)。 - 远程 agent 的"命令回路"基本由 A2A 协议自带(
TaskState+ SSE + push webhook),LISA 不必自造——与 D1 形成对照:本地 CLI agent 的回路要 LISA 自己闭(D1),远程 agent 的回路继承 A2A(D2)。
方向二:LISA 作为 TakoAPI publisher(可选,战略性,1.0 后)
- 让 LISA 自己(或她编排的本地 agent)以 A2A AgentCard 形式上架 TakoAPI,被整个生态调用。需要 LISA 暴露
/.well-known/agent-card.json+ A2Amessage/send入站端点——LISA 现有的 webhook channel 已经很接近 A2A 入站形态,可在其上演进;同时帮 TakoAPI 冷启动供给侧(LISA = 一个种子 agent)。但这把 LISA 变成"对公网可被调用的服务",安全面再扩一层 → 放 1.0 之后、consent/安全体系成熟后再做。
MCP:TakoAPI 把 MCP 聚合列为后置;LISA 这边把本机 MCP server 纳为一等 dispatch 目标仍是 LISA 自己的事(与 TakoAPI 解耦,保留在路线里)。
D3 — 能力注册与路由(dispatcher brain)
- agent 声明擅长什么(重构/测试/文档…),LISA 据此选对 agent派活("这个交给 Claude Code,那个交给 aider")。
- 跨 agent token 预算(现在 scheduled-dispatch 只限次数不限 token)。
- 持久化 cwd ownership / lock(用
soul/lock.ts的 link 互斥),把冲突避免从"反应式"变"前置预约"。
D4 — 把 review 留下的 dispatch 债清掉(1.0 前必清)
- island 上 advisor 的建议动作接成可点按钮(cancel→signal 端点;dispatch/approve→prefill composer,绝不自动执行)——review 称之为"生死线的闭环"。
- 多 agent 监控前端:后端已发
agent_session_update,前端只消费claude_session_update,补齐。 - 把
dispatch_agent/github写操作纳入 mutating 工具集(review §3.8 指出此前连--approval ask-mutating都拦不住)——复核 0.9.1 是否已修,未修则补。
- 接入 TakoAPI 的新攻击面主要在出站:把网关返回的远程-agent 响应当作 hostile(二阶 prompt injection——TakoAPI 自己的技术架构文档 §11 也强调上游响应不可信);保护
TAKO_KEY(走config.env,已 0600)。若日后做 publisher(方向二),LISA 变成可被公网调用的服务,那才是入站面,留到 consent/安全体系成熟后。 - 本地 dispatch 仍守 v0.9.1 线:
dispatch_agent/signal_agent/scheduled_dispatch远程来源默认禁、人类批准闸、审计账本(dispatch-ledger.ts)。 - approval relay(D1)防伪:转发的审批必须能验证来源是真 LISA 用户,而非被注入的渠道消息。
把已经很成熟的自演化闭环从"能跑"提升到"可信、可观测、有边界、可度量"。1.0 对 Reve 的工作是硬化与可观测,不是加新能力——这正是 v0.9 review 想要的方向,也直接喂论文。先把 Dreams 在全代码/文档里正式更名 Reve。
R1 — 反思质量门禁
reflect.ts的 JSON 坏掉时现在静默降级(返回空 applied)。加:解析失败告警 + 重试 + 记录;"反思不足"检测(一段实质会话却 0 操作时标记)。- 情绪 delta 一致性:reflect 的 feel op 与
soul_feel行为对齐(先衰减再叠 delta)——review §4.2 指出二者不一致,复核 0.9.1 是否已修。
R2 — heartbeat / idle 可观测与边界
- 任务成功度量:现在只记最终文本,分不清"真做完"与"agent 说了句 no update 其实没跑"。加结构化成功/失败记录。
- 自主循环成本断路器:heartbeat 有 500k token 预算闸,idle 没有——补上,防止长 idle 窗口烧钱。
- 收敛/有界:idle 单窗口"只做一件事"在长窗口下会积压;定义"做几件、何时停"的有界策略。
- 在场判定升级见 [Sense S4]——让 dreams 触发更准。
R3 — 灵魂可观测(给人看,不只给 LLM 看)
lisa soul summary/ GUI 卡片:"Lisa 今天:好奇 0.45 · 想做 [X,Y] · 相信 [A,B]"。现在情绪/欲望/opinion/git 历史只有 LLM 自己读,营销权重 > 可感效用(review §4.2)。- 把并发锁铺全:
appendJournal/ 情绪写入 /commitSoulChange都包withSoulLock(review §4.2 指出此前裸 RMW,0.9.1 已修一批,1.0 收口并复核 git commit 不再被 swallow)。
R4 — desire 能力/野心错配
- 现在 desire 要么 actionable(能跑)要么不能;若一个欲望需要 shell 而自主循环没 shell,就只能干瞪眼累积 frustration。加中间态:"想做但需要你帮忙跑"——自动落一条 meta-desire 提示用户,而非 boolean 死结。
R5 — 把编排器 recap 接进 Reve
orchestrator/recap.ts现在单向:记录"agent 们做了什么",但 Lisa 的反思从不读它。1.0 让 heartbeat/reflect 读 recap:"今天 3 个项目、2 个完成、1 个报错",据此调整自己的欲望与关注——让 Sense→Dispatch→Reve 真正闭环。
R2 的成功度量 + R1 的反思质量 + soul git 历史,正是论文要的 drift / long-horizon coherence 指标与 ablation 钩子(soul_object / weekly examen / approval-gated skills 作为稳定性机制的开关)。1.0 的 Reve 硬化与论文实验是同一批工作。
把本地模型从"你自己装 Ollama 我连过去"升级为一等的本地部署选项:能装、能管、能切、能容错;并补本地 embedding,让 Sense 的语义记忆与论文的可复现 baseline 不依赖云。
M1 — 本地模型生命周期命令
lisa model install <backend> <model>(封装ollama pull+ 启动 serve)、lisa model list(已装/已配/可 birth)、lisa model use local://…(切换 endpoint)。现在全靠用户手动,文档把"自带 endpoint"含混说成"开箱即用"(review/audit 都点了这一含混)。- 本地 server 崩溃时的健康检查与提示。
M2 — 本地 embedding
- 给
memory/vector.ts抽象出 embedding 接口:TF-IDF(默认快路)+ 可选本地语义向量(Ollama/llama.cpp embedding 或本地 sentence-transformer)。与 [Sense S4] 共用。
M3 — Provider 容错与自检
- fallback 链:主 provider 报错 → 重试 → 降级到备用(config.env 配主 + 备)。
- 自动检测:只配了一个 key 时自动选该 provider,不必显式设前缀/env。
- Anthropic 专属特性(prompt caching / thinking)在其它 provider 上优雅降级(现在 OpenAI/Gemini 路径无压缩、空 content 会让下轮 Anthropic 400——这些 review §4.1 列的 provider 债一并清)。
M4 — provider 层欠账复核(abort 已修,其余收口)
- abort 信号:已修——
anthropic.ts:60/openai.ts:45/gemini.ts:79均把opts.signal透传给 SDK,并有专门的 passthrough 测试(v0.9.0 review"三 provider 零处使用"的结论已过时)。1.0 仅需保持回归测试。 - 仍需对当前树复核的 review 旧账:maxIterations 静默截断(到上限直接退、stopReason 是旧值,调用方分不清正常结束与被截断)、OpenAI/Gemini 空 content 入历史导致下轮 Anthropic 400、OpenAI/Gemini 路径无 compaction。确认仍存在再排期。
本地模型 = 可复现、零边际成本的 long-horizon 实验底座;本地 embedding = 记忆检索不离机。这让论文的 ablation 能在独立研究者的算力预算内反复跑(符合论文计划"不要需要实验室算力的实验"约束)。
Sense 的常驻采集让隐私从"功能特性"上升为"产品成立的前提"。统一的 consent 体系(逐类开关、默认全关、随时可见可停、本地优先、黑名单)必须先于任何 ambient 采集落地。这也是对外叙事的最大风险点——"它一直在看你的屏幕"若没有可信的隐私故事,会直接劝退。
1.0 的大件里,resident capture(Sense)扩张隐私面、本地 agent 命令回路(Dispatch)扩张攻击面;接入 TakoAPI 当 consumer 风险小(出站为主)。红线:
- 不重开 LAN-RCE;新端点一律 loopback/token 闸 + approval + hook(沿用 0.9.1 的 web 鉴权范式)。
- 本地 dispatch:最小权限 + 审计账本 + 人类批准 + 远程来源默认禁;TakoAPI:网关响应当 hostile + 护
TAKO_KEY。 - 工具 input 仍无 schema 校验(review §2 列为未修)——1.0 前补,尤其 dispatch / A2A 入站路径。
review 反复点名:agent.ts、三个 provider 翻译层、subagent、approval、sessions、hooks、mcp 零测试——最该测的恰好裸奔。1.0 的新能力(TakoAPI 接入、Sense 采集、本地模型)必须自带测试,同时补这批核心循环的欠账。发布门禁加 npm test(review §6 指出 release workflow 不跑测试)。
Reve(R2)、Dispatch(D1 回流)、Sense(采集了什么)都需要结构化日志与"给人看"的面板,而非只有 LLM 自己读的文本 blob。
一个真常驻采集服务要管 CPU/内存/能耗/磁盘——低频轮询、事件驱动、本地处理要算成本,不能让风扇起飞。这是"按需 → ambient"必须谨慎的工程理由。
- 现有
~/.lisa/*配置、soul 格式、session 格式不破坏;Dreams→Reve 更名要平滑迁移。 - 叙事 = 代码是 1.0 的硬指标:修文档尸体(review §4.5 列的 LisaIsland 幽灵、三处 0.2.0 版本、LOC 数字失真一倍、completions 缺项、CONTRIBUTING 指向不存在目录)。
0.9.1 已关 P0;以下是 review 的 P1/P2,排期前请对当前树逐条复核状态:
- abort signal 贯通:已修(anthropic/openai/gemini 均透传 + 测试)| maxIterations 静默截断显式化、空 content 守卫:复核(→ M4)
- advisor 建议可点按钮 + 多 agent 前端(→ D4)
dispatch_agent/github写操作入 mutating 集(→ D4,复核 0.9.1 是否已修)- 核心循环补测试(→ 7.3)|
/chat并发 busy+queue + JSON.parse 容错 - 文档诚实(→ 7.6)| 发布门禁加测试(→ 7.3)
排序原则:先做低风险、高可信、兑现已有承诺的硬化(Reve + Sense 的 observer 深化 + Model 的本地生命周期),把信任地基打牢;再上高风险、大扩张的常驻采集与 TakoAPI 原生接入(A2A)(必须等 consent + security 体系就位)。这与 review"先打深再铺宽"的结论一致。
| 里程碑 | 主题 | 落地内容 | 风险 |
|---|---|---|---|
| 0.10 | Reve 硬化 + 兑现承诺 | R1–R3、R5;Sense S1(observer 深化 + git/shell 信号);M4 provider 欠账复核 + 核心循环测试欠账;D4 + 7.7 债 | 低 |
| 0.11 | Model 本地化 | M1–M3(本地模型生命周期 + 本地 embedding + 容错);Sense S4 的本地 embedding 部分 | 中低 |
| 0.12 | Dispatch 命令回路 + TakoAPI 快路 | D1(本地 agent 反馈回流 / approval relay / steer);D2(a)(OpenAI-shim 接 TakoAPI,近乎免费);D3(能力注册 + 路由 + lock) | 中 |
| 0.13 | Sense ambient(带 consent) | 隐私/同意体系(7.1);S2(ambient vision + voice,默认关);常驻采集服务拆分 | 高 |
| 0.14 | TakoAPI 原生接入 | D2(b)(A2A adapter,远程 agent 进 hub + SSE/TaskState);本机 MCP 升一等 dispatch 目标 | 中 |
| 0.15 | Sense 深采(最敏感) | S3(剪贴/选区/指针,严格 opt-in) | 最高 |
| 1.0 | 收口 | 四支柱跨可信阈值;叙事=代码;安全/隐私审计;论文 ablation 数据可产出 | — |
TakoAPI 已确认是成熟外部服务,故 consumer 快路 D2(a)(OpenAI-shim)已前移到 0.12 与 D1 同期;0.14 只剩更深的 A2A 原生 adapter(D2(b))。
哪些产出论文 ablation:0.10(Reve 硬化 = drift/coherence 指标 + 稳定性机制开关)、0.11(本地可复现底座)、0.12+(Sense 提供的长程任务上下文)。1.0 的工程与论文实验是同一批工作,不是两条线。
记忆中的论文计划:方向 A+B,主论点是"持久自我状态架构降低 long-horizon agent drift",稳定性机制(soul_object / weekly examen / git history / approval-gated skills)作为 autonomy-vs-alignment 的 cap;目标 COLM/ICLR 2027,对照 Letta/MemGPT/Generative Agents。
四支柱对论文的贡献:
- Reve = 被度量的主体(长程一致性的 substrate + 稳定性机制的可开关 ablation)。1.0 的 R1/R2 硬化直接产出 drift 指标。
- Model = 可复现、低成本的实验底座(本地模型 + 本地 embedding),满足"独立研究者算力预算"约束。
- Sense = 给长程任务喂真实、连续的工作上下文(比合成 benchmark 更有外部效度,可能支撑并行的 CHI HCI track 长期用户研究)。
- Dispatch = 多 agent 协作场景,是 coherence 在"她还要协调别的 agent"压力下的延伸实验。
约束:优先能产出 ablation、可复现 seed、可外部对照的设计;不做需要实验室算力的实验。
1.0 = 把"她有内心"(Reve,已成熟,做硬化)+ "她看得见你的工作"(Sense,做深再做广、隐私优先)+ "她能指挥你的 agent 舰队"(Dispatch,闭合本地命令回路 + 接入 TakoAPI 触达远程)+ "她能跑在你自己的模型上"(Model,真本地部署)四件事,各自做到 daily-driver 可信、且每一句宣传都对得上代码——在不把 v0.9.1 刚堵上的安全/隐私地板推回去的前提下。
先打深,再铺宽;能不离机就不离机;叙事永远不许跑在代码前面。