From bbf02de77dbdb0985dfe9a58fc7a4e0347db816e Mon Sep 17 00:00:00 2001 From: karuo Date: Fri, 6 Mar 2026 11:12:22 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=84=20=E5=8D=A1=E8=8B=A5AI=20=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=202026-03-06=2011:12=20|=20=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=EF=BC=9A=E6=B0=B4=E6=A1=A5=E5=B9=B3=E5=8F=B0=E5=AF=B9=E6=8E=A5?= =?UTF-8?q?=E3=80=81=E8=BF=90=E8=90=A5=E4=B8=AD=E6=9E=A2=E5=8F=82=E8=80=83?= =?UTF-8?q?=E8=B5=84=E6=96=99=E3=80=81=E8=BF=90=E8=90=A5=E4=B8=AD=E6=9E=A2?= =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E5=8F=B0=20|=20=E6=8E=92=E9=99=A4=20>20MB:?= =?UTF-8?q?=2011=20=E4=B8=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../飞书管理/脚本/.feishu_tokens.json | 4 +- .../飞书管理/脚本/soul_party_to_feishu_sheet.py | 28 +++++++++--- .../参考资料/Cursor窗口无响应与超时排查.md | 25 +++++++++-- 运营中枢/工作台/ClawX卡若AI技能说明.md | 45 +++++++++++++++++++ 运营中枢/工作台/gitea_push_log.md | 1 + 运营中枢/工作台/代码管理.md | 1 + 6 files changed, 92 insertions(+), 12 deletions(-) create mode 100644 运营中枢/工作台/ClawX卡若AI技能说明.md diff --git a/02_卡人(水)/水桥_平台对接/飞书管理/脚本/.feishu_tokens.json b/02_卡人(水)/水桥_平台对接/飞书管理/脚本/.feishu_tokens.json index 15e6adce..0114ff32 100644 --- a/02_卡人(水)/水桥_平台对接/飞书管理/脚本/.feishu_tokens.json +++ b/02_卡人(水)/水桥_平台对接/飞书管理/脚本/.feishu_tokens.json @@ -1,6 +1,6 @@ { - "access_token": "u-fW5F.d7ah1XElD2g9EqLu2lh3cb1ghojW0GaVA4027gZ", - "refresh_token": "ur-cXUl0kWhx8wUAclQajYocYlh14HxghgrUMGaIx40271V", + "access_token": "u-dVHRegrg1bQqdycbkCfqYhlh1C1xghONU0GaYR0023gV", + "refresh_token": "ur-eJvaIpcHh7tGl4jPNEq1Aslh1Ib1ghUpX0GaUAk0265Z", "name": "飞书用户", "auth_time": "2026-03-05T16:59:09.519704" } \ No newline at end of file diff --git a/02_卡人(水)/水桥_平台对接/飞书管理/脚本/soul_party_to_feishu_sheet.py b/02_卡人(水)/水桥_平台对接/飞书管理/脚本/soul_party_to_feishu_sheet.py index e61d9609..6a4aeaa8 100644 --- a/02_卡人(水)/水桥_平台对接/飞书管理/脚本/soul_party_to_feishu_sheet.py +++ b/02_卡人(水)/水桥_平台对接/飞书管理/脚本/soul_party_to_feishu_sheet.py @@ -49,11 +49,13 @@ ROWS = { '115': [ '破产两次 家庭先于事业', 156, 36974, 484, 8, 82, 1, 3, 15, 56 ], # 116场 2026-03-05:小助手 154min建房/418进房/11人均/104互动/19关注,话题职场;推流/礼物/灵魂力/最高在线待关闭页补 '116': [ '量化猎头人才 职场分享', 154, 0, 418, 11, 104, 0, 0, 19, 0 ], + # 117场 2026-03-06:关闭页 154min/503成员/72最高/36新增/16礼物/351灵魂力/51602曝光,小助手 151min/494进房/11人均/118互动/26关注 + '117': [ '链接合作 派对流量 教培', 154, 51602, 503, 11, 118, 16, 351, 36, 72 ], } # 场次→按日期列填写时的日期(表头为当月日期 1~31) -SESSION_DATE_COLUMN = {'105': '20', '106': '21', '107': '23', '113': '2', '114': '3', '115': '4', '116': '5'} +SESSION_DATE_COLUMN = {'105': '20', '106': '21', '107': '23', '113': '2', '114': '3', '115': '4', '116': '5', '117': '6'} # 场次→月份(用于选择 2月/3月 等工作表标签,避免写入错月) -SESSION_MONTH = {'105': 2, '106': 2, '107': 2, '113': 3, '114': 3, '115': 3, '116': 3} +SESSION_MONTH = {'105': 2, '106': 2, '107': 2, '113': 3, '114': 3, '115': 3, '116': 3, '117': 3} # 派对录屏(飞书妙记)链接:场次 → 完整 URL,填表时写入「派对录屏」行对应列 # 从飞书妙记复制链接后填入,新场次需补全 @@ -62,6 +64,7 @@ PARTY_VIDEO_LINKS = { '114': 'https://cunkebao.feishu.cn/minutes/obcn7nd828351hy4he3974a8', '115': 'https://cunkebao.feishu.cn/minutes/obcn8cgvnzk15yfy3buak735', '116': 'https://cunkebao.feishu.cn/minutes/obcn81825en52vt3eqoo482e', + '117': 'https://cunkebao.feishu.cn/minutes/obcn9phnds9a96ma6t8ixa3z', } # 小程序当日运营数据:日期号 → {访问次数, 访客, 交易金额},填表时自动写入对应日期列 @@ -78,6 +81,7 @@ MINIPROGRAM_EXTRA_3 = { '3': {'访问次数': 0, '访客': 0, '交易金额': 0}, # 3月3日 114场 '4': {'访问次数': 0, '访客': 0, '交易金额': 0}, # 3月4日 115场 '5': {'访问次数': 0, '访客': 0, '交易金额': 0}, # 3月5日 116场 + '6': {'访问次数': 0, '访客': 0, '交易金额': 0}, # 3月6日 117场 } @@ -117,6 +121,16 @@ def _write_miniprogram_extra(token, spreadsheet_token, sheet_id, vals, date_col, print(f'✅ 已写入小程序运营数据({month_label}列):访问次数 {extra.get("访问次数","")}、访客 {extra.get("访客","")}、交易金额 {extra.get("交易金额",0)}') +def _write_session_label(token, spreadsheet_token, sheet_id, col_letter, session): + """在表头第 2 行写入「第几场」如 117场,便于报表显示该列对应场次。""" + rng = f"{sheet_id}!{col_letter}2:{col_letter}2" + code, body = update_sheet_range(token, spreadsheet_token, rng, [[f"{session}场"]], value_input_option='USER_ENTERED') + if code == 200 and body.get('code') in (0, None): + print(f'✅ 已写入表头:{col_letter}2 = {session}场') + elif code != 401 and body.get('code') not in (99991677, 99991663): + print(f'⚠️ 表头「第几场」写入未成功: {code} {body}') + + def _write_party_video_link(token, spreadsheet_token, sheet_id, vals, col_letter, session): """若有该场次的派对录屏链接,写入「派对录屏」行对应列(如 E29)。""" link = (PARTY_VIDEO_LINKS or {}).get(session, '').strip() @@ -331,7 +345,7 @@ def main(): session = (sys.argv[1] if len(sys.argv) > 1 else '104').strip() row = ROWS.get(session) if not row: - print('❌ 未知场次,可用: 96, 97, 98, 99, 100, 103, 104, 105, 106, 107, 113, 114, 115, 116') + print('❌ 未知场次,可用: 96, 97, 98, 99, 100, 103, 104, 105, 106, 107, 113, 114, 115, 116, 117') sys.exit(1) token = load_token() or refresh_and_load_token() if not token: @@ -376,9 +390,9 @@ def main(): LABELS_GROUP = ['主题', '时长(分钟)', 'Soul推流人数', '进房人数', '人均时长(分钟)', '互动数量', '礼物', '灵魂力', '增加关注', '最高在线'] def _maybe_send_group(sess, raw_vals): - if sess not in ('105', '106', '107', '113', '114', '115', '116'): + if sess not in ('105', '106', '107', '113', '114', '115', '116', '117'): return - date_label = {'105': '2月20日', '106': '2月21日', '107': '2月23日', '113': '3月2日', '114': '3月3日', '115': '3月4日', '116': '3月5日'}.get(sess, sess + '场') + date_label = {'105': '2月20日', '106': '2月21日', '107': '2月23日', '113': '3月2日', '114': '3月3日', '115': '3月4日', '116': '3月5日', '117': '3月6日'}.get(sess, sess + '场') report_link = OPERATION_REPORT_LINK if sheet_id == SHEET_ID else f'https://cunkebao.feishu.cn/wiki/wikcnIgAGSNHo0t36idHJ668Gfd?sheet={sheet_id}' lines = [ '【Soul 派对运营报表】', @@ -389,7 +403,7 @@ def main(): for i, label in enumerate(LABELS_GROUP): val = raw_vals[i] if i < len(raw_vals) else '' lines.append(f'{label}:{val}') - src_date = {'105': '20260220', '106': '20260221', '107': '20260223', '113': '20260302', '114': '20260303', '115': '20260304', '116': '20260305'}.get(sess, '20260220') + src_date = {'105': '20260220', '106': '20260221', '107': '20260223', '113': '20260302', '114': '20260303', '115': '20260304', '116': '20260305', '117': '20260306'}.get(sess, '20260220') lines.append(f'数据来源:soul 派对 {sess}场 {src_date}.txt') msg = '\n'.join(lines) ok, _ = send_feishu_group_message(FEISHU_GROUP_WEBHOOK, msg) @@ -424,6 +438,7 @@ def main(): ok, msg = _verify_write(spreadsheet_token, sheet_id, col_letter, values, token) if ok: print(f'✅ 已写入飞书表格:{session}场 效果数据(竖列 {col_letter}3:{col_letter}{2+len(values)},共{len(values)}格),校验通过') + _write_session_label(token, spreadsheet_token, sheet_id, col_letter, session) _write_miniprogram_extra(token, spreadsheet_token, sheet_id, vals, date_col, col_letter, month=month) _write_party_video_link(token, spreadsheet_token, sheet_id, vals, col_letter, session) _maybe_send_group(session, raw) @@ -448,6 +463,7 @@ def main(): ok, msg = _verify_write(spreadsheet_token, sheet_id, col_letter, values, token) if ok: print(f'✅ 已写入飞书表格:{session}场 效果数据(竖列 {col_letter} 逐格),校验通过') + _write_session_label(token, spreadsheet_token, sheet_id, col_letter, session) _write_miniprogram_extra(token, spreadsheet_token, sheet_id, vals, date_col, col_letter, month=month) _write_party_video_link(token, spreadsheet_token, sheet_id, vals, col_letter, session) _maybe_send_group(session, raw) diff --git a/运营中枢/参考资料/Cursor窗口无响应与超时排查.md b/运营中枢/参考资料/Cursor窗口无响应与超时排查.md index 706fac30..fae89c98 100644 --- a/运营中枢/参考资料/Cursor窗口无响应与超时排查.md +++ b/运营中枢/参考资料/Cursor窗口无响应与超时排查.md @@ -12,17 +12,34 @@ | 配置项 | 作用 | |:---|:---| | `cursor.general.enableCodebaseIndexing` = false | 关闭代码库索引,减轻后台负载 | +| `cursor.general.disableHttp2` = true | 禁用 HTTP/2,改用 HTTP/1.1,减少代理/网络导致的超时与无响应(兼容模式) | | `files.watcherExclude` | 排除 node_modules、.git、dist、build、.next、.cursor 等,减少文件监视导致的卡顿 | | `search.exclude` | 搜索时排除上述目录,减轻索引与搜索压力 | | `typescript.tsserver.maxTsServerMemory` = 4096 | 限制 TS 语言服务内存,避免单进程占满导致假死 | --- -## 二、建议在 Cursor 界面里手动检查 +## 二、未响应时的「自动切换」怎么实现 + +**Cursor 本身没有「请求超时后自动换模型」的配置**;要的是「API 层自动切换」,做法如下。 + +- **推荐:让 Cursor 走带故障切换的网关** + - 在 **karuo_ai_gateway** 里配置 `OPENAI_API_BASES` 接口队列(如本机 Trae `http://127.0.0.1:8765/v1` + 备用接口)。 + - Cursor 的 Override OpenAI Base URL 指向网关(如 `http://127.0.0.1:18080` 或 `http://kr-ai.quwanzhi.com:18080`),API Key 用网关约定 Key。 + - 这样当当前接口超时/未响应时,**由网关自动切下一个接口**,无需在 Cursor 里手动换模型。 + - 配置与验证见:`运营中枢/参考资料/卡若AI_API接口排队与故障切换规则.md`。 + +- **可选:仅减轻无响应(不实现自动切换)** + - 在 Cursor 设置 → Network 中确认已启用 **HTTP Compatibility Mode**(与 settings 中 `cursor.general.disableHttp2` 等效)。 + - 若某模型经常卡死,可在 Cursor 里**手动**切换为其他已配置模型(如从 max 换到 trae-gpt-4o)。 + +--- + +## 三、建议在 Cursor 界面里手动检查 1. **网络(若经常在请求 AI 时卡死)** - **Cursor 设置 → Network** - - 打开 **HTTP Compatibility Mode**(改用 HTTP/1.1),部分网络/代理下可减少超时与无响应。 + - 确认 **HTTP Compatibility Mode** 已开(与 `cursor.general.disableHttp2` 一致);部分网络/代理下可减少超时与无响应。 2. **MCP / 工具(若卡死与 Agent、工具调用相关)** - **Cursor 设置 → Tools & MCP** @@ -34,7 +51,7 @@ --- -## 三、仍出现无响应时 +## 四、仍出现无响应时 - **先点「Keep Waiting」**:有时是短暂卡顿,等几十秒会恢复。 - **再试「Reopen」**:会重启该窗口;若勾选「Don't restore editors」则不再恢复上次打开的标签,启动更快。 @@ -43,7 +60,7 @@ --- -## 四、原因简述(社区常见) +## 五、原因简述(社区常见) - 扩展宿主进程崩溃或 IPC 阻塞(如 16s 超时)。 - 文件监视 / 搜索对超大目录(如未排除的 node_modules)导致 CPU 或 I/O 飙高。 diff --git a/运营中枢/工作台/ClawX卡若AI技能说明.md b/运营中枢/工作台/ClawX卡若AI技能说明.md new file mode 100644 index 00000000..84700bcf --- /dev/null +++ b/运营中枢/工作台/ClawX卡若AI技能说明.md @@ -0,0 +1,45 @@ +# ClawX 中直接使用卡若AI 技能 + +> 已在 ClawX 中安装「卡若AI」技能,对话里可直接按触发词调用卡若AI 的策略与执行流程。 + +--- + +## 一、已完成的配置 + +| 项 | 值 | +|:---|:---| +| **技能名称** | karuo-ai(在 ClawX「技能」里显示为可启用的一项) | +| **技能路径** | `~/.openclaw/skills/karuo-ai/SKILL.md` | +| **配置** | 已在 `~/.openclaw/openclaw.json` 的 `skills.entries` 中启用 `karuo-ai` | + +--- + +## 二、在 ClawX 里怎么用 + +1. 打开 **ClawX → 技能**,在「已安装」列表中找到 **karuo-ai**(或 卡若AI 相关描述),确保开关为**开启**。 +2. 在**新对话**中直接说需求,例如: + - 「写今日飞书日志」 + - 「推送到 Gitea」 + - 「帮我做卡猫复盘」 + - 「下载飞书妙记」 + - 「查一下 MCP 有没有 xxx」 + - 「存到记忆:xxx」 +3. 模型会先匹配卡若AI 的 **SKILL_REGISTRY**,再按触发词找到对应 SKILL 并执行(读 `卡若AI/SKILL_REGISTRY.md` → 取 SKILL 路径 → 读对应 SKILL.md 执行)。 + +--- + +## 三、使配置生效 + +- 若刚新增或修改 `~/.openclaw/skills/karuo-ai/SKILL.md`:在 ClawX **设置 → 网关** 点 **重启**,或退出 ClawX 再打开。 +- 技能列表刷新:在 **技能** 页点 **刷新**,确认 **karuo-ai** 已出现且已开启。 + +--- + +## 四、技能内容与维护 + +- 卡若AI 技能的具体说明、触发词与执行流程在:`~/.openclaw/skills/karuo-ai/SKILL.md`。 +- 触发词与 SKILL 路径以卡若AI 仓库内 **SKILL_REGISTRY.md** 为准;维护时只需更新仓库内注册表与各 SKILL.md,无需改 ClawX 内置技能描述(除非要改「匹配哪些词」的说明)。 + +--- + +*配置日期:2026-03-06。* diff --git a/运营中枢/工作台/gitea_push_log.md b/运营中枢/工作台/gitea_push_log.md index ea3a7bd8..7b5454ed 100644 --- a/运营中枢/工作台/gitea_push_log.md +++ b/运营中枢/工作台/gitea_push_log.md @@ -238,3 +238,4 @@ | 2026-03-06 05:47:27 | 🔄 卡若AI 同步 2026-03-06 05:47 | 更新:金仓、水桥平台对接、运营中枢参考资料、运营中枢工作台 | 排除 >20MB: 11 个 | | 2026-03-06 05:51:24 | 🔄 卡若AI 同步 2026-03-06 05:51 | 更新:运营中枢工作台 | 排除 >20MB: 11 个 | | 2026-03-06 05:55:14 | 🔄 卡若AI 同步 2026-03-06 05:55 | 更新:运营中枢参考资料、运营中枢工作台 | 排除 >20MB: 11 个 | +| 2026-03-06 05:56:09 | 🔄 卡若AI 同步 2026-03-06 05:56 | 更新:运营中枢工作台 | 排除 >20MB: 11 个 | diff --git a/运营中枢/工作台/代码管理.md b/运营中枢/工作台/代码管理.md index 5d8b6bf9..98c6d959 100644 --- a/运营中枢/工作台/代码管理.md +++ b/运营中枢/工作台/代码管理.md @@ -241,3 +241,4 @@ | 2026-03-06 05:47:27 | 成功 | 成功 | 🔄 卡若AI 同步 2026-03-06 05:47 | 更新:金仓、水桥平台对接、运营中枢参考资料、运营中枢工作台 | 排除 >20MB: 11 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) | | 2026-03-06 05:51:24 | 成功 | 成功 | 🔄 卡若AI 同步 2026-03-06 05:51 | 更新:运营中枢工作台 | 排除 >20MB: 11 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) | | 2026-03-06 05:55:14 | 成功 | 成功 | 🔄 卡若AI 同步 2026-03-06 05:55 | 更新:运营中枢参考资料、运营中枢工作台 | 排除 >20MB: 11 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) | +| 2026-03-06 05:56:09 | 成功 | 成功 | 🔄 卡若AI 同步 2026-03-06 05:56 | 更新:运营中枢工作台 | 排除 >20MB: 11 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) |