Files
karuo-ai/01_卡资(金)/金仓_存储备份/Cursor持久对话/SKILL.md
2026-07-19 00:21:46 +08:00

20 KiB
Raw Blame History

可持续对话(本地 MCP · 长连接)

id: G22b
name: 可持续对话
member: 金仓
trigger:
  - 可持续对话
  - persistent chat
  - 卡住续跑
  - wait_for_user_input
  - 13458
  - Cursor持久对话
  - 安装持久对话
  - 长连接
  - 自动续跑
  - 优化续跑
  - Auto模式
  - Cursor Auto
  - Agent模式
  - 不间断
  - 持续运作
  - 长时间对话
  - 持续对话
  - persistent MCP
version: 1.6.51
updated: 2026-06-14
heat: 🔴 热
related:
  - 02_卡人/水桥_平台对接/MCP管理/SKILL.md
  - 04_卡火/火炬_全栈消息/持续执行闭环/SKILL.md
  - 04_卡火/火炬_全栈消息/前端开发/私域银行统一前端模块/README.md

一句话

Cursor Agent 永不中断:本地 MCP + Hub 长轮询 + 浏览器面板 http://127.0.0.1:13458;单对话可配 复盘 / 直通 / 优化 三模式UI 对齐 卡若AI Glass UI Kit;无卡密、无第三方 API。

与 G26 持续执行闭环:用户要 把需求/代码做到验收(不限挂起)→ 先读 04_卡火/火炬_全栈消息/持续执行闭环/SKILL.md;本 Skill 只管 wait 循环与 13458 面板


Cursor Auto / Agent + persistent-chat默认不间断

用户不必每次粘贴提示词。 install.sh 会在项目写入 .cursor/rules/persistent-chat.mdcalwaysApply: true)。

步骤 操作
1 对话模式选 AutoAgentComposer(本机 Cursor 任意 Agent 类模式;不限制 LLM 模型
2 MCP persistent-chat 绿点;面板 http://127.0.0.1:13458 自动续跑
3 详情区模式:直通(连续 ▶下一步)或 优化(总结→检索→开发)
4 第一条消息直接写任务Agent 自动 select_conversationverify_karuo_ai_gate → 执行 → wait_for_user_input

完整说明 + 可粘贴启动词(仅换机/规则未生效时)references/Cursor_Auto与持久MCP不间断.md

禁止:因「任务已完成」停止 waitwait 只是挂起传输,不是终点;仅用户明确 「结束持久对话」 可停。


模型无关v1.6.50 · 不限制)

是否限制模型
MCP server.js 无 model 参数、无白名单
Hub hub.js 只认 ct_ / composerId不认 LLM
13458 面板
Cursor 侧 你选 Auto / Agent / Composer / Claude / GPT … 均可
不可用 Plan / Ask无 Agent 工具,调不了 wait

composerId = Cursor 对话框 ID(防串线),≠ Composer 模型产品;任意模型对话框都有 composerId。


文档索引

文档 用途
本文件 SKILL.md 安装、用法、三模式、MCP 工具
references/Cursor_Auto与持久MCP不间断.md Cursor Auto/Agent + persistent-chat 默认不间断(提示词、配置、与 G26 叠加)
references/不间断开发_G22b叠加G26.md 九条铁律:每轮读需求 + 开发至验收 + 边打勾 + 优化沉淀(与 G26 叠加真源)
开发需求_不间断开发叠加_20260605.md 本 Skill 自身进行中需求(每轮循环 Read 入口)
部署与长连接接入.md 跨科室部署、HTTP API、长轮询时序、踩坑
图文教程/零基础安装指南.md 新手图文
package/故障排查_输入闪退与发送状态.md 面板异常
package/故障排查_工具中断interrupted.md Read/GenerateImage/MCP 误报 interrupted
图文教程/功能说明图/ MCP 产品三张图(概念/落地/形态代价 PNG + 说明 MD

架构(长连接)

┌─────────────┐   stdio    ┌──────────────┐   HTTP    ┌─────────────────┐
│ Cursor Agent│◄──────────►│  server.js   │◄─────────►│ hub.js :13458   │
│  MCP 工具   │            │  (MCP 客户端) │           │ 唯一 HTTP 进程   │
└─────────────┘            └──────────────┘           └────────┬────────┘
                                                               │
                    ┌──────────────────────────────────────────┤
                    │  panel.html浏览器                     │
                    │  /api/wait/poll 28s 长轮询 renewal        │
                    │  /api/reply 用户回复                      │
                    └──────────────────────────────────────────┘

长连接本质MCP 侧对 /api/wait/poll 循环长轮询;面板 2s 拉 /api/state;用户回复经 /api/reply 唤醒 poll。


一键安装

bash "/Users/karuo/Documents/个人/卡若AI/01_卡资/金仓_存储备份/Cursor持久对话/install.sh"
bash install.sh --project "/path/to/repo"    # 指定项目
bash install.sh --all-karuo                  # 卡若多根工作区

# 改 package 后同步运行时
bash "脚本/sync-runtime.sh"

# 打可分发安装包(插件 + 网站桥接 zip
bash "脚本/build_package.sh"

安装后 Cmd+Q 退出 Cursor 再开 → Settings → MCP → persistent-chat 绿点 → 打开 http://127.0.0.1:13458


验收

bash check-mcp.sh
bash "脚本/check-mcp-link.sh" ct_xxx          # v1.6.51 MCP↔Hub 链接 + verify_mcp_status
bash "脚本/check-continuous-loop.sh" ct_xxx   # 发消息+续跑不停v1.6.40
bash "脚本/check-optimize-fullchain.sh" ct_xxx # 优化模式四步 Hub 验收v1.6.47
curl -s http://127.0.0.1:13458/api/health   # panelVersion ≥ 1.6.17
curl -s "http://127.0.0.1:13458/api/link/status?token=ct_xxx"  # pendingWait/linked

MCP 链路检测v1.6.51 · wait 前必调)

工具 / API 用途
verify_mcp_status MCP 工具Hub 在线 + ct_ 链接;须 [MCP_LINK] PASS
/api/link/status pendingWait / connectionHeld / linked / cursorOccupied
占用态铁律 每 turn 最后 tool = wait[RENEWAL] 同 turn 零正文再 wait

单轮 REQ 与 renewal 链v1.6.71 · 防 interrupted

铁律 说明
单轮少 REQ 先执行后 wait禁止 wait 前堆砌 Shell/Read/并行 tool
MCP 预算 select + gate + 一次 waitgate 10min 缓存;勿与改码/生图/Shell 同批并行
RENEWAL 零工 [RENEWAL] → 立刻 renewalOnly 再 wait禁止 其间任何 Read/Shell/verify
禁止多级 renewal 工 同 turnwait →RENEWAL→ renewalOnly wait → 收 turn禁止 RENEWAL 后再执行又第三次 wait
大任务拆轮 单轮 ~25s 可完成量;超出则复盘+wait下轮续跑 ▶

多标签并行v1.6.72 · Cursor/Codex/VS Code 通用)

说明
一套 Hub 所有客户端共用 :13458;每标签独立 ct_可并行多项目
三开三 wait 每窗口末 tool 必须各自 waitA 挂起不能代替 B
断链诊断 bash 脚本/check-multi-tabs.shdialogueState=OFF = Agent 未 wait
OFF 一键排队 bash 脚本/repair-off-tabs.sh → 开 turbo+保活并为 OFF 会话排队续跑
composer 防串 rebuild 只取最新 thread禁止验收脚本污染 composer 绑定

发消息后不停v1.6.40 · 科室必验)

步骤 预期
面板发消息 / /api/reply 未 wait 时 queuedconnectionHeld 仍为 true
/api/continue 未 wait 时排队续跑, 404
Hub postDeliverWatchdog 消息送达后 10s 内 Agent 未 re-wait → 再排队续跑
Agent 每轮 处理完面板消息 → 必须再 wait_for_user_input
bash "脚本/check-continuous-loop.sh" ct_ca405c05

单对话三模式v1.6.13+ · 默认自动续跑开)

在面板选中对话 → 详情区顶部配置(非全局):

模式 行为
复盘 standard 挂起后:追问 → 检索 → 执行;需 [卡若复盘] 五块
直通 turbo 不等复盘Hub 直推 ▶下一步 直到目标完成
优化 optimize 自动四步:①总结聊天 → ②WebSearch+GitHub → ③补开发文档 → ④按文档开发

API

curl -X POST http://127.0.0.1:13458/api/session/config \
  -H 'Content-Type: application/json' \
  -d '{"token":"ct_xxx","continueMode":"optimize","sessionAutoContinue":true}'

定时回复v1.6.17+ · 默认「自动」)

默认
自动续跑延迟 10 秒
间隔 自动(仅走续跑规则)
固定保活 30 秒 · 4 分钟 · 9 分钟

自动:约 10 秒后按复盘/直通/优化规则续跑。
固定间隔:到点发保活文案(直通 ▶=无 时选 4 分钟/9 分钟)。

curl -X POST http://127.0.0.1:13458/api/session/config \
  -H 'Content-Type: application/json' \
  -d '{"token":"ct_xxx","timedReplyIntervalMs":0}'
# 0=自动 · 30000/240000/540000=固定

完整 Token 绑定铁律v1.6.30

  • 计划真源是完整 ct_xxxxxxxx,禁止前缀匹配、禁止按标题猜 token。
  • 每次挂载先用完整 token 查 Hub 会话库、bindings.jsonthread-bindings/;能恢复就必须恢复原 token。
  • 只有完整 token 在库里找不到时,才允许 init_conversation(newPlan:true, cursorTitle=标签名, planLabel=计划名) 新建。
  • newPlan 不归档旧计划;旧计划继续 holding/waiting,所有计划可并行保活。
  • 同一 Cursor 标签下多计划用 planLabel 区分;消息写入必须命中对应 token 的 wait 或 steerQueue不能串到其它计划。

对话框 ID 垂直绑定v1.6.42 · composerId 真源)

根因:仅靠 cursorTitle标签名绑定时vscdb 可能读到「最近更新」的其它标签 → TOKEN_TITLE_MISMATCH / 标签变来变去。

真源 说明
composerId Cursor 对话框 IDCURSOR_CONVERSATION_ID一个对话框 ↔ 一个 ct_
composer-bindings.json Hub 权威:工作区::composer:{id}@IPct_
/api/binding/sync-title wait/select 时按 composerId 对齐;标签改名自动 migrateBindingRename
标签名 仅展示/迁移用;禁止用标签猜 token

Agent 行为select/wait/verify 必须带当前对话框 composerId标签与 token 不一致时 先 sync composer,不要弹错绑选项。

同步bash "…/Cursor持久对话/脚本/sync-runtime.sh"


防 interrupted 融合v1.6.47 · 6/14 绑定 + 6/12 poll

保留6/14 回退6/12
composerId↔ct_ 垂直绑定、sync-title 单次 hubPollOnce~10s renewal 即归还 Cursor
offWait / postDeliverWatchdog / perpetualDev 禁止 hubPollUntilReply 内循环 ≤24s
steerQueue 续跑 [RENEWAL] 续期跳过 sync/verify HTTP

根因6/14 内循环 poll + 前置 verify ≈ 3040s → 超过 Cursor MCP 单工具超时 → interrupted → 任务像自动停止。

部署bash 脚本/sync-runtime.shCmd+Q 重启 Cursorgrep 1.6.47 ~/.persistent-chat-local/server.js


对话不断v1.6.49 · 复盘永不停止 · 硬修 interrupted

用户诉求:对话保持在场,不要 interrupted / 「关掉 turn 再续」。

v1.6.49 做法
MCP hubPollOnce ~10s禁止 while ≤24sinterrupted 根因)
RENEWAL 跳过 sync/verifyHub 错也 renewal 不断环
Hub neverStop 1.2s 续跑;【对话续接】;不 flush steerQueue
Agent [RENEWAL] 静默立刻再 wait续接=复盘+wait 同 turn禁 meta 收工句
bash "脚本/sync-runtime.sh" && bash "脚本/一键重载MCP.sh"
# 必须 Cmd+Q 重启 Cursor → grep 1.6.49 ~/.persistent-chat-local/server.js

保活显示与不跳转规则v1.6.32

  • waiting 只表示 Agent 当前真的在 wait_for_user_input 等回复。
  • holding 表示计划 token 已绑定并保持连接态;当前没有 wait 时,面板消息先进入排队,等 Agent 下次 wait 自动送达。
  • /api/state 会把所有未结束计划维持为 connectionHeld=true;只有用户明确发「结束持久对话」才清掉保活。
  • 面板列表按创建时间稳定排序,不因 active/waiting 变化置顶;用户点选后轮询只刷新状态,不自动跳到其它会话。
  • 左侧徽标:续跑=有 pending wait 自动续跑;挂起=等用户;保活=计划连接保持、可排队。

未挂起断链修复v1.6.39 · Hub

现象Cursor Agent 跑完一轮没调 wait → 面板「计划保活中(未挂起)」→ 续跑/保活文案进不了 Cursor → 任务像「直接结束」。

机制
Hub triggerOffWaitKeepAlive:绑定会话且未 wait 时,每 10s 把续跑文案写入 steerQueue/api/continue 无 wait 时也排队而非 404
Agent 每轮必须 复盘 → wait_for_user_inputG26「不要停/直到完成」禁止无 wait 收工
开发任务 面板切 直通turbo),跳过复盘三段式阻塞;curl 见下
# MBTI 等开发任务切直通 + 自动续跑
curl -s -X POST http://127.0.0.1:13458/api/session/config \
  -H 'Content-Type: application/json' \
  -d '{"token":"ct_1d4a71eb","continueMode":"turbo","sessionAutoContinue":true}'

steerQueue 送达Agent 下次 wait 后,排队续跑自动注入 Cursorpoll 首包 dequeue

同步 Hubbash "…/Cursor持久对话/脚本/sync-runtime.sh"


永续等待 + 中文回复v1.6.41 · 强制)

可持续对话 = 一直保持等待/保活,不因出错、超时、任务中断而结束。

铁律 Agent / Hub
每轮 wait 每轮末尾 必须 wait_for_user_input;挂起 = 待命,不是结束
出错仍 wait [RENEWAL]、Hub 超时、连接异常 → 立即同一 pchat-tokenwait
不关进度 禁止说「对话结束」「停止等待」;禁止清 ct_/关面板会话
唯一停机 仅用户当轮 「结束持久对话」
renewal 静默 [RENEWAL] 不展示给用户,直接再 wait
中文回复 凡涉及可持续对话/面板/wait/续跑/挂起/ct_ 的回复 一律中文Cursor/MCP/Hub 等专有名词除外)
Hub perpetualWait 新会话默认 perpetualWait=true;绑定会话不因 2h 无 wait 归档

出错时 Agent 动作

Hub 异常 / wait 失败 / 收到 RENEWAL
  → 不向用户宣布结束
  → 中文简短说明(若需)
  → 立即再 call wait_for_user_input同一 pchat-token + title
  → 永不因 retry 次数而停

MCP 工具一览

工具 用途
select_conversation 选/绑 ct_冲突时 ask_user_question
init_conversation 新建;新计划 newPlan:true + cursorTitle
wait_for_user_input 挂起;须同一 pchat-token + cursorTitle
verify_karuo_ai_gate 每对话至少一次门禁
verify_binding / apply_binding_choice 垂直绑定校验

铁律:一 Cursor 标签 ↔ 一 ct_ ↔ 一 IPcursorTitle 必填。

中文标识(强制)cursorTitle / planLabel / 面板 title / prompt / 续跑文案 一律中文;标签为英文时 Agent 须 rename_chat 改中文。细则见 package/templates/persistent-chat.mdc §中文标识铁律。


卡若复盘 + 续跑节奏

步骤 复盘模式 直通/优化
⓪ 读需求 每轮 Read 进行中 MD + references/不间断开发_G22b叠加G26.md 同左
① 执行 Agent 改代码;边打勾bug 当场修 同左
② 复盘 [卡若复盘] 🎯目标/结果/📊达成率 → 🧭过程 → 🔍反思 → 📌总结 → 🚀下一步执行 直通可省略;优化在 Hub 侧补
③ wait wait_for_user_input 同左
④~⑥ 追问→检索→执行 优化=总结→检索→补文档→执行
⑦ 验收 清单全 → 全量测试页面/细节 → 全绿才 100% 同左

面板快捷:追问完成 · 检索完成 · ▶ 继续开发

不间断开发叠加 G26v1.6.36

用户说 一直继续 / 不要停 / 直接开发直到完成 / 每轮读需求 时:

  1. G22bwait 循环与 13458 续跑(仅「结束持久对话」可停)。
  2. G26 管需求做到验收(见 持续执行闭环/SKILL.md)。
  3. 每轮 先 Read 项目 {项目}_进行中_*.md + 本目录 references/不间断开发_G22b叠加G26.md
  4. 优化方法 写入需求 MD「优化沉淀区」与共享文档。
  5. 开发至全绿:全部子项 + 全量回归通过;否则 ▶ 写下一修复/下一子项。

面板 UIv1.6.14 · 卡若AI Glass

  • 视觉kir-glass 毛玻璃 + 蓝紫渐变品牌色(与私域银行统一前端模块一致)
  • 顶栏:已连接 + ⋯(新计划/清理/复制提示词)
  • 侧栏:增量渲染不闪;显示模式标签
  • 详情:自动续跑开关 + 复盘/直通/优化;消息区智能滚底

UI 真源:04_卡火/火炬_全栈消息/前端开发/私域银行统一前端模块/


与其他 MCP / 工具并存

场景 做法
只用持久对话 install.sh 即可,不必 MCPfinder
再加数据库/飞书等 MCP MCP管理 SKILL 搜索安装,与 persistent-chat 并列
外部脚本发回复 POST http://127.0.0.1:13458/api/reply
Codex/类似工具 对接同一 Hub API部署与长连接接入.md §四

成功 / 失败判定

成功

  • MCP 绿点;面板「已连接」
  • wait_for_user_input 出现在 Cursor 工具调用
  • 面板回复后 Agent 立刻继续
  • 左侧选中会话不闪;滚底正常

常见故障

现象 动作
两个 persistent-chat bash 脚本/清理重复MCP.sh
发错 ct_ 面板 token 须与 Cursor pchat-token 一致
面板离线 bash 脚本/sync-runtime.sh
左侧 idle 堆满 ⋯ → 清理旧会话
优化不跑 详情区切「优化」+ 开自动续跑
wait 后进程自己退出 server.js 已改stdin 关闭后,只要还有活跃会话/连接态就不退出;同步运行时后生效
续跑断链 / 未挂起 Agent 未 wait → Hub v1.6.39 已排队续跑; Agent 下轮调 wait 送达;开发任务切 直通
发消息后停了 bash 脚本/check-continuous-loop.sh ct_xxx;确认 connectionHeld 仍为 true
等待被中断 v1.6.47:回退 6/12 单次 pollHub 异常也 renewal 不断环;须 Cmd+Q 重载 MCP

文件布局

路径 说明
package/hub.js Hub 源码真源
package/panel.html 面板源码真源
package/server.js MCP 客户端
~/.persistent-chat-local/ 运行时sync 同步)
~/.cursor/mcp.json 全局 MCP
<项目>/.cursor/rules/persistent-chat.mdc Agent 规则
Mongo karuo_site.持久对话会话 备份

版本记录

版本 要点
1.6.36 不间断开发叠加 G26:每轮读需求、边打勾、开发至全绿、优化沉淀;共享文档 references/不间断开发_G22b叠加G26.md
1.6.17 自动续跑默认 10秒;定时间隔默认 自动,固定 30s/4min/9min
1.6.16 定时回复:预设与 Hub 调度;修 panel duplicate let
1.6.14 卡若AI Glass UISkill+部署文档完善
1.6.13 单对话三模式(复盘/直通/优化);/api/session/config
1.6.12 侧栏增量渲染;智能滚底;顶栏精简
1.6.3 垂直绑定铁律
1.5 自动续跑默认开;恢复对话

卸载

rm -rf ~/.persistent-chat-local
# 编辑 ~/.cursor/mcp.json 删除 persistent-chat