本项目的目标,是构建一套本地优先、可扩展、可审计的协作式 Agent Runtime。
它不是单一的聊天应用,也不是单一的 browser automation demo。它更像一个逐步成型的本地 Agent Workbench:支持 Team、Role、Worker、Browser Runtime、Prompt/Context 管理,以及后续的桌面端壳层。
当前仓库已经完成 Phase 1 / Production Hardening 的核心机制建设。最近一轮已把 cross-store safety、canonical schema cleanup、browser transport sealing、reliability net、storage shape、worker durability 和 core type boundary cleanup 合入主线。
当前阶段不再是补核心机制,而是进入同场景 end-to-end 验收、长链 soak、failure injection 与 real-world validation。
已经具备:
- 本地
daemon + TUI调试入口 - Team / Flow / Role Run 基础运行时
- 多模型 adapter 抽象
- Browser session / target / artifact / ref 的基础持久化
- Browser Runtime v2 的 session/target 控制面
- Worker
spawn / send / resume / interrupt / cancel browser / explore / finance三类 worker- 受控并行的 sub-session / worker fan-out 基础能力
- Prompt assembly / context budgeting / summary / scratchpad 第一版
- layered thread memory / journal / scratchpad / summary 持久化边界
- Scheduled task runtime 与 re-entry capsule 第一版
- structured continuation context 与 role-level continuity 第一版
- QC / replay / API diagnosis 第一版
- role / worker / browser / scheduled 主链 replay
- governance surface: permission cache / audit / replay 查询
- flow / governance operator summary 与更可读的 TUI 视图
- operator summary / operator attention / replay bundle 的统一 case 语义与首页级摘要
- operator triage 首页级入口,可直接汇总 case / runtime / prompt 的排障优先级
- replay summary / incident / grouped inspection / recovery dispatch / console / workflow-log surface
- recovery-linked incident bundles 与 recovery workflow 状态汇总
- replay console 现同时暴露 actionable bundles 与 recent resolved bundles
- RecoveryRun / attempt 持久化与
approve / reject / retry / fallback / resumeaction surface - RecoveryRun event log / merged timeline / progress / phase / causality chain
- browser-specific recovery outcome 与 repeated retry/fallback escalation policy
- browser 显式 session protocol:
spawn / send / history / resume - Recovery runtime v2:attempt causality / event timeline / operator surface / recovery chain
- bounded regression harness 与 browser reliability soak 样本扩充
- browser recovery validation 已覆盖 multi-attempt resume -> fallback -> cold reopen 长链
- Browser Runtime v2.6 的 ownership-aware re-entry
- browser
hot / warm / coldresume 与 target-local snapshot/ref history - retrieval ranking / recall trigger / budget-aware prompt packing / tool-result pruning / long-running compression 第一版
- prompt assembly compact-before-drop 与
compactedSegments元数据 - browser continuity matrix:lease reclaim / wrong-owner denial / reopen/new-target 长链验证
- target-local snapshot/ref history 已覆盖同 URL 多 target 下的隔离与 reopen 后连续性验证
- browser eviction 边界已覆盖旧 session history/ref 保留与新 replacement session ref 隔离
- recovery timeline / bundle / TUI 工单视图与 phase/gate 对齐
- context carry-forward:pending/waiting recall 优先级与 unresolved question memory carry-forward
- browser continuity 已进入 replay bundle / console / TUI 视图
- recent-turn salience packing 与 browser/recovery bounded regression case 继续扩充
- bounded regression harness 已覆盖 browser / recovery / context / parallel / governance 五类主线样本
- operator-facing case cards:
active / resolved recent、headline / latestUpdate / nextStep - cross-surface operator attention:
caseState / severity / lifecycle / caseKey / browser continuity - context runtime tuning:approval / merge / continuation 的语义 recall 与 salience compaction
- context/runtime acceptance 已覆盖高压 compaction 下的 carry-forward、waiting-point 与 prompt-console 对齐
- failure/acceptance 现已覆盖 compound incident triage:browser manual follow-up、runtime waiting、prompt pressure 同页收敛
- real-world runbook suite 第一版已接入,覆盖 browser research、governed publish、parallel follow-up、runtime observability 等真实任务组合样本
- release readiness 已进入主线,可验证 packed CLI、bin smoke、dry-run publish 和 release artifact 元数据
- cross-store safety 第一版:ingress outbox、runtime-chain projection version/CAS、dropped/retry-exhausted replay incident 可见性
- canonical schema cleanup:RelayPayload / ScheduledTaskRecord 读路径已收敛到 canonical shape,legacy fallback 面继续缩小
- browser transport sealing:relay peer identity binding、browser route validation、relay/direct-cdp launch / wait / smoke / soak 链路已进主线
- truth alignment / remediation unification / stale marker / reliability net 已进入 replay、recovery、operator 查询面
- storage shape hardening:team message by-id projection、recovery run/event canonical projection 与 legacy repair gating 已进入 store 层
- worker durability:持久化 worker session 的 unrecoverable state 已能被 startup reconcile 与 operator 查询看到
- core type boundary cleanup:replay / recovery / operator / prompt / runtime support 类型边界已拆细
还没有具备:
- 通用 subagent runtime v2
- durable execution 级别的 worker/subagent kernel
- 事务级 WAL / outbox / cross-store commit protocol
- context / memory / compression v2 的完整 compiler 形态
- 更大规模、长期运行下的 browser bridge / relay / direct-cdp real-world soak 结论
- 更系统化的 real-world acceptance / evaluation harness
- Electron GUI
一句话判断:
- runtime/workbench backend:核心机制已经基本成熟,正在做产品化验收
- 产品级协作桌面:还没开始
现在最重要的不是继续补新的 runtime 机制,也不是立刻进入 Phase 2,而是把现有主线压到同场景 end-to-end 验收、真实 browser bridge/relay 长链、长期稳态和 operator 可诊断性。当前北极星指标是 real-world closed-loop rate:真实 runbook 要么 completed,要么失败后进入 actionable gate;silent_failure 和 ambiguous_failure 必须归零。
接下来的优先级明确分成两期:
Phase 1 的机制主线已经完成。剩余工作按验收顺序推进:
- browser bridge / relay / direct-cdp 长链真实任务验证
- recovery / replay / operator surface 的 case 状态一致性和可读性收尾
- context / memory / compaction 在高压预算和真实任务下继续调优
- parallel orchestration / governance / permission / audit 的 contract 和 regression 扩充
- real-world acceptance、failure injection、transport soak 持续扩样本
- durable execution journal / worker envelope
- context compiler / memory hierarchy / cache taxonomy
- tool policy kernel
- typed delegation / work package / merge gate
- 更完整的 replay / eval / trace
先把第一期这些生产优化主线做稳,再推进第二期的 kernel 化,成本会低很多。
当前状态:
Phase 1 / Production Hardening的核心机制已完成- W3 / W6 / W8 / W10 / W4 / W2 / W5 系列 hardening 已合入主线
- runtime hard-points parity 的五个 pack 已完成:
- session continuity
- progress event
- large-output governance
- memory / compact discipline
- uploader / backpressure
Runtime Observability v1.x已进主线,并覆盖flow / replay / recovery / live role/worker/browser- bounded regression、browser soak、runtime/operator acceptance 已覆盖 browser / recovery / context / parallel / governance / runtime 主线
validation-ops已显示 north-star closed-loop status/rate,并把 real-world runbook 的completed / actionable / silent_failure / ambiguous_failure汇总进 Phase 1 readiness- 当前主线转为:
- 同场景 end-to-end 验收
- browser bridge / relay / direct-cdp 长链验证
- 长链 soak
- failure injection
- real-world validation
当前仓库与公开 CLI 包统一要求 Node.js 24+。
使用公开 npm CLI:
npx @turnkeyai/cli --help
npx @turnkeyai/cli daemon另一个终端中连接 TUI:
npx @turnkeyai/cli tui如果希望安装成全局命令:
npm install -g @turnkeyai/cli
turnkeyai daemon
turnkeyai tui默认 daemon 地址:
http://127.0.0.1:4100
常用环境变量:
TURNKEYAI_DAEMON_PORT: 覆盖本地 daemon 监听端口TURNKEYAI_DATA_DIR: 覆盖 daemon 本地数据目录,适合隔离 validation / soak 基线TURNKEYAI_DAEMON_URL: 让 TUI / CLI 连接指定 daemonTURNKEYAI_DAEMON_TOKEN: 开启 daemon token auth 时使用的访问 tokenTURNKEYAI_BROWSER_TRANSPORT: 选择relay或direct-cdpbrowser transportTURNKEYAI_BROWSER_RELAY_TOKEN: relay peer 使用的独立 tokenTURNKEYAI_BROWSER_CDP_ENDPOINT: direct-cdp transport 使用的 CDP endpoint
本地源码开发:
npm install
npm run typecheck
npm test主干 PR 的基础 CI 当前会运行 npm run typecheck、npm test 和 npm run build。
本地源码运行 daemon / TUI:
npm run daemon
npm run tui如果要构建 Chrome relay extension 产物:
npm run build:relay-extension产物会输出到:
packages/browser-relay-peer/dist/extension
当前这是未打包的 Chrome extension 目录,包含:
manifest.jsonservice-worker.jscontent-script.js
如果要直接启动一个带扩展的本地 Chromium 系浏览器做 smoke:
npm run relay:launch -- --url https://example.com脚本当前会优先选择支持 unpacked extension flag 的本地浏览器;在 macOS 上,若正式版 Google Chrome 忽略这些 flag,优先改用 Microsoft Edge、Chromium,或显式传 --chrome-path。
如果 daemon 已经以 relay 模式启动,可以等待扩展 peer 真正注册上来:
npm run relay:wait -- --require-target如果要启动一个带 --remote-debugging-port 的本地 Chromium 系浏览器做 direct-cdp 验证:
npm run cdp:launch -- --url https://example.com如果已经有一个可用的 CDP endpoint,可以等待它真正 ready:
npm run cdp:wait -- --cdp-endpoint http://127.0.0.1:9222如果要一条命令跑完整本地 direct-cdp smoke:
npm run cdp:smoke
npm run cdp:smoke -- --url https://example.com
npm run cdp:smoke -- --verify-reconnect --verify-workflow-log如果要一条命令跑完整本地 smoke:
npm run relay:smoke
npm run relay:smoke -- --url https://example.com如果只想验证“未打包扩展已安装、service worker 已唤醒、peer/target 已连回 daemon”,可以直接跑:
npm run relay:install-smoke如果要把 relay / direct-cdp 的 reconnect 与 workflow-log 诊断做成持续 soak:
npm run transport:soak -- --cycles 3
npm run transport:soak -- --cycles 1 --targets relay配合本地 daemon 走 relay transport 时,可以显式设置:
TURNKEYAI_BROWSER_TRANSPORT=relay npm run daemon如果启用了分层 daemon auth,推荐给 browser relay peer 单独配置:
TURNKEYAI_BROWSER_RELAY_TOKEN=... TURNKEYAI_BROWSER_TRANSPORT=relay npm run daemon配合本地 daemon 走 direct-cdp transport 时,可以显式设置:
TURNKEYAI_BROWSER_TRANSPORT=direct-cdp \
TURNKEYAI_BROWSER_CDP_ENDPOINT=http://127.0.0.1:9222 \
npm run daemon当前 daemon 主要提供:
- thread / message / flow 调试接口
- browser session / target 控制接口
- scheduled task 调试接口
- capability discovery 查询接口
- replay / recovery / regression 查询接口
当前 TUI 也可以直接运行:
- bounded regression harness
- long-chain stability soak harness
- scenario parity acceptance harness
- failure injection harness
- unified validation catalog:
validation-cases/validation-run [suite[:item] ...] - fixed validation profiles:
validation-profiles/validation-profile-run <profileId> - operator-facing validation ops summary:
validation-ops [limit] - real-world runbook harness:
realworld-cases/realworld-run [scenarioId ...] - release readiness:
release-verify - Phase 1 exit readiness:
phase1-readiness [transportCycles] [soakCycles] [--release-skip-build] - Phase 1 baseline:
phase1-baseline [runs] [transportCycles] [soakCycles] [--release-skip-build] - multi-cycle soak series:
soak-series [cycles] [suite[:item] ...] - browser transport soak:
transport-soak [cycles] [relay|direct-cdp ...]
对应命令包括:
soak-casessoak-run [scenarioId ...]soak-series 10 soak realworld acceptancerelease-verifyphase1-readiness 3 3npm run phase1:baselinetransport-soak 3 relay direct-cdpnpm run relay:install-smokenpm run transport:soak -- --cycles 3validation-opsvalidation-profilesvalidation-profile-run smokevalidation-profile-run phase1-e2e
replay-console 会同时显示仍需处理的 latest bundles,以及最近已收敛的 latest resolved bundles,便于把当前告警和刚恢复的 case 分开看;同时也会把 recovery operator 的 case state、gate 和 allowed actions 一起带出来,避免 workflow 已 recovered 但 operator 仍在 waiting_manual 时被首页级视图误判为彻底收口。
replay-bundle 现在会直接带出 recovery operator 语义,包括当前 gate、允许动作、phase summary 和最近一次 browser outcome,便于不翻源码直接判断这个 case 还卡在哪一步。
operator-summary / operator-attention 现在会把 recovery case 的 allowed actions 一起打出来,避免只看到 next action 却不知道当前 run 还允许哪些手动操作。
operator-triage 会把当前最该看的 incident、runtime waiting/stale 和 prompt pressure 聚到一页里,并给出对应的 console 命令入口。
prompt-console 现在会额外汇总 recent-turn / retrieved-memory / worker-evidence 的实际打包数量,以及 pending / waiting / open-question / decision-or-constraint 的 carry-forward 情况;acceptance / soak 也已把这些计数和 runtime waiting-point 一起编进长链验证,方便直接看高压上下文下哪些信息被保住了。
release-verify 会对将要公开发布的 CLI 走一遍 npm pack、解包、bin/dist help smoke 和 npm publish --dry-run,避免 package metadata 在真正发版时才暴露问题;soak-series 和单独的 Long Soak workflow 会把 soak / realworld / acceptance 做多轮聚合运行,用来承接高成本、非 PR required 的长周期稳态验证。
phase1-readiness 会按 Phase 1 exit 顺序依次跑 phase1-e2e profile、relay/direct-cdp transport soak、release readiness 和 acceptance/realworld/soak series,并把四类记录统一写入 validation-ops readiness gates,同时返回 north-star closed-loop 读数。
npm run phase1:baseline 会用隔离的 daemon 数据目录连续运行多轮 phase1-readiness,输出 baseline JSON;任一轮不是 readiness passed、north-star completed、closedLoop rate 1.0、silent/ambiguous failure 为 0,命令都会失败。.github/workflows/phase1-baseline.yml 提供同一逻辑的手动/定时入口,.github/workflows/publish-cli.yml 也会把同一路径接成 publish gate。
validation-ops 会把最近的 validation-profile-run、release-verify、soak-series、transport-soak 和 phase1-baseline 结果收成 operator-facing 读数,统一展示失败 bucket、推荐动作、重跑命令、Phase 1 readiness gates、baseline fresh-passing / fresh-failing / stale / missing 状态和 real-world closed-loop rate,避免验证失败只留在一次性 stdout 里。
transport-soak 现在也会进入同一套 validation-ops 记录,并带上 artifact 路径;它会强制检查 relay/direct-cdp 的 rich action parity、CDP control plane、download/upload artifact safety、direct-cdp raw target attach/OOPIF shadow DOM/coordinate input/popup target 和 reconnect/workflow-log marker,方便值班时直接回看多 cycle 诊断结果。
validation-profiles / validation-profile-run 会把现有 validation-run、release-verify、soak-series 和 transport-soak 收成固定 hardening 档位:smoke 适合本地快速回归,phase1-e2e 固定覆盖 Phase 1 收尾的 browser/recovery/context/governance/operator 同场景验收,nightly / prerelease / weekly 会把 transport 连通性和多 cycle 稳定性也一起压过一遍,适合持续稳定性和值班/发版前信心检查。
relay-peers / relay-targets [peerId] 可以直接查看本地 daemon 当前看到的 relay 扩展连接和浏览器 tab 发现结果,便于做 extension smoke 和 transport 排障。
relay:install-smoke 会走一遍“build relay extension -> 启动本地 Chromium + unpacked extension -> 等 daemon 看见 peer/target”的真机安装连通链,适合快速确认本地浏览器端 bridge 没坏。
transport:soak 会重复跑 relay / direct-cdp 的真实 smoke,并把失败按 peer-timeout / cdp-unreachable / reconnect-failure / workflow-log-failure / content-script-unavailable 这类稳定 bucket 汇总,便于做 transport 值班读数和周级稳定性回归。
direct-cdp 当前也已经有本地 launch / wait / smoke 链路,适合验证“接管一个已启用 CDP 的真实 Chromium 浏览器”这条 transport;cdp:smoke 现在还会通过 expert routes 验证 raw CDP target attach、跨 origin iframe/shadow DOM、coordinate input 和 popup target,--verify-reconnect / --verify-workflow-log 可以把浏览器重启后的 session 恢复和 replay/operator workflow-log 读数一起压过一遍。raw CDP agent runbook 和 relay/direct-cdp 边界见 Raw CDP Expert Lane Runbook。
模型配置默认会按这个顺序查找:
models.local.jsonmodels.jsonmodels.example.json
当前模型配置同时支持:
- model catalog
- model chain catalog
角色可以通过 modelRef 或 modelChain 引用模型;modelChain 支持 primary + fallbacks。
主要 package:
packages/core-types: shared contractspackages/team-store: file-backed storespackages/team-runtime: team / flow / scheduling runtimepackages/role-runtime: prompt policy / context assembly / role executionpackages/worker-runtime: worker registry / worker handlerspackages/browser-bridge: browser session / target / bridge runtimepackages/llm-adapter: multi-provider model adapterspackages/qc-runtime: verification / diagnosis / replay helperspackages/app-gateway: local daemon entrypackages/tui: terminal debug client
- Vision
- Milestones
- Roadmap
- Production Hardening Checklist
- Phase 1 Productization Matrix
- Production Hardening Target State
- Production Hardening Gap Map
- Task Session Runtime Model
- Task Session Runtime Mapping
- Task Session Runtime Convergence Plan
- Runtime Core v2 Plan
- Project Foundation
- Browser Session And Worker Protocol
- Browser Relay Bridge v1
- Browser Transport v1 Execution Plan
- Raw CDP Expert Lane Runbook
- Prompt Context Compression Design
- Model Catalog And Chain Config
如果把目标定义为“本地可跑的多角色 runtime 骨架”,当前大致在:
95%+
如果把目标定义为“可日常使用的协作式 agent 桌面工作台”,当前更准确的判断是:
- runtime/workbench backend 接近可用,但仍在验收
- 桌面产品 shell 尚未开始
剩余差距主要集中在:
- browser bridge / relay / direct-cdp 的更长链真实任务 soak / acceptance 覆盖
- runtime/operator 在真实排障过程里的易用性继续打磨
- real-world failure injection 下的长期稳态
- real-world acceptance / evaluation harness 的系统化
- GUI
当前项目仍处于内核快速演进阶段。
这意味着:
- 对外接口还会继续收敛
- 存储 schema 还会继续打磨
- 重点优先放在 runtime 稳定性,而不是 UI 完整度
如果你现在阅读这个仓库,最适合把它理解成:
- 一个正在成型的本地 Agent Runtime
- 而不是一个已经完整打磨好的桌面产品
Apache-2.0. See LICENSE.