From adf91a688b08635a09cd0dac34777f427ed99899 Mon Sep 17 00:00:00 2001 From: karuo Date: Sun, 22 Feb 2026 10:38:14 +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-02-22=2010:38=20|=20=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=EF=BC=9A=E5=8D=A1=E5=9C=9F=E3=80=81=E6=80=BB=E7=B4=A2=E5=BC=95?= =?UTF-8?q?=E4=B8=8E=E5=85=A5=E5=8F=A3=E3=80=81=E8=BF=90=E8=90=A5=E4=B8=AD?= =?UTF-8?q?=E6=9E=A2=E5=8F=82=E8=80=83=E8=B5=84=E6=96=99=E3=80=81=E8=BF=90?= =?UTF-8?q?=E8=90=A5=E4=B8=AD=E6=9E=A2=E5=B7=A5=E4=BD=9C=E5=8F=B0=20|=20?= =?UTF-8?q?=E6=8E=92=E9=99=A4=20>20MB:=208=20=E4=B8=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 05_卡土(土)/土砖_技能复制/基因胶囊/SKILL.md | 85 +++++++ .../土砖_技能复制/基因胶囊/脚本/gene_capsule.py | 219 ++++++++++++++++++ 05_卡土(土)/土砖_技能复制/技能工厂/SKILL.md | 9 + SKILL_REGISTRY.md | 7 +- 运营中枢/参考资料/EvoMap与卡若AI结合概要.md | 11 +- 运营中枢/参考资料/基因胶囊规范.md | 132 +++++++++++ 运营中枢/工作台/gitea_push_log.md | 1 + 运营中枢/工作台/代码管理.md | 1 + 8 files changed, 460 insertions(+), 5 deletions(-) create mode 100644 05_卡土(土)/土砖_技能复制/基因胶囊/SKILL.md create mode 100644 05_卡土(土)/土砖_技能复制/基因胶囊/脚本/gene_capsule.py create mode 100644 运营中枢/参考资料/基因胶囊规范.md diff --git a/05_卡土(土)/土砖_技能复制/基因胶囊/SKILL.md b/05_卡土(土)/土砖_技能复制/基因胶囊/SKILL.md new file mode 100644 index 00000000..139633cd --- /dev/null +++ b/05_卡土(土)/土砖_技能复制/基因胶囊/SKILL.md @@ -0,0 +1,85 @@ +--- +name: 基因胶囊 +description: 将验证过的 Skill 打包为可遗传的能力单元(基因胶囊),支持 pack/unpack/list。触发词:基因胶囊、打包技能、解包胶囊、继承能力。 +group: 土 +triggers: 基因胶囊、打包技能、解包胶囊、继承能力、胶囊列表 +owner: 土砖 +version: "1.0" +updated: "2026-02-22" +--- + +# 基因胶囊 + +> **归属**:土砖(技能复制) +> **理念**:将 Skill + 环境指纹 + 审计记录打包成可遗传能力单元,支持本地复用与未来跨 Agent 流通。 + +--- + +## 一、概念 + +**基因胶囊** = 策略(SKILL) + 环境指纹 + 审计记录 + 资产 ID(SHA-256) + +- 一个 Skill 学会 → 打包成胶囊 → 可被其他 Agent 或本机继承 +- 规范见:`运营中枢/参考资料/基因胶囊规范.md` + +--- + +## 二、使用方法 + +### 2.1 打包(Skill → 基因胶囊) + +```bash +cd /Users/karuo/Documents/个人/卡若AI +python3 05_卡土(土)/土砖_技能复制/基因胶囊/脚本/gene_capsule.py pack "技能工厂" +# 或指定路径 +python3 .../gene_capsule.py pack "05_卡土(土)/土砖_技能复制/技能工厂/SKILL.md" +``` + +- 输出目录:`/Users/karuo/Documents/卡若Ai的文件夹/导出/基因胶囊/` +- 文件名:`技能名_sha256前8位.json` + +### 2.2 解包(基因胶囊 → Skill) + +```bash +python3 .../gene_capsule.py unpack 技能工厂_abc12345.json +# 指定输出目录 +python3 .../gene_capsule.py unpack 技能工厂_abc12345.json -o 02_卡人(水)/水溪_整理归档/ +``` + +- 默认按胶囊内 `manifest.skill_path` 写回 +- 可选 `-o` 指定目录,则写入该目录下的 `SKILL.md` + +### 2.3 列表 + +```bash +python3 .../gene_capsule.py list +``` + +输出本地所有胶囊:名称、capsule_id、创建时间。 + +--- + +## 三、与技能工厂的联动 + +| 场景 | 操作 | +|:---|:---| +| **创建 Skill 前** | `list` 查看本地胶囊,有匹配则 `unpack` 继承 | +| **创建 Skill 后** | `pack` 将新 Skill 打包,供后续复用或未来上传 | + +--- + +## 四、相关文件 + +| 文件 | 说明 | +|:---|:---| +| `运营中枢/参考资料/基因胶囊规范.md` | 概念与格式规范 | +| `脚本/gene_capsule.py` | pack/unpack/list 主脚本 | +| `capsule_index.json` | 继承胶囊索引(解包时更新) | +| `卡若Ai的文件夹/导出/基因胶囊/` | 导出目录 | + +--- + +## 五、依赖 + +- Python 3.9+ +- 可选:PyYAML(用于精确解析 frontmatter,无则用简单解析) diff --git a/05_卡土(土)/土砖_技能复制/基因胶囊/脚本/gene_capsule.py b/05_卡土(土)/土砖_技能复制/基因胶囊/脚本/gene_capsule.py new file mode 100644 index 00000000..2781a55b --- /dev/null +++ b/05_卡土(土)/土砖_技能复制/基因胶囊/脚本/gene_capsule.py @@ -0,0 +1,219 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +基因胶囊 · 打包/解包/列表 +卡若AI 基因胶囊管理脚本,归属土砖。 +""" +import argparse +import hashlib +import json +import os +import platform +import sys +from datetime import datetime +from pathlib import Path + +# 卡若AI 工作台根目录 +KARUO_AI_ROOT = Path(__file__).resolve().parent.parent.parent.parent.parent +EXPORT_DIR = Path("/Users/karuo/Documents/卡若Ai的文件夹/导出/基因胶囊") +CAPSULE_INDEX = Path(__file__).resolve().parent.parent / "capsule_index.json" + + +def _collect_env(): + """收集环境指纹(可选)""" + return { + "python_version": f"{sys.version_info.major}.{sys.version_info.minor}", + "platform": platform.system().lower(), + } + + +def _calc_capsule_id(skill_path: str, content: str) -> str: + """计算资产 ID:SHA256(skill_path + content 前 8192 字符)""" + data = (skill_path + content[:8192]).encode("utf-8") + h = hashlib.sha256(data).hexdigest() + return f"sha256:{h}" + + +def _find_skill_path(name_or_path: str) -> Path: + """根据技能名或路径找到 SKILL.md""" + if name_or_path.endswith("SKILL.md"): + p = KARUO_AI_ROOT / name_or_path + elif os.path.sep in name_or_path or name_or_path.startswith("0"): + # 形如 05_卡土/土砖_技能复制/技能工厂 + p = KARUO_AI_ROOT / name_or_path + if p.is_dir(): + p = p / "SKILL.md" + else: + # 按名称在 SKILL_REGISTRY 中查找(简化:扫描常见路径) + registry = KARUO_AI_ROOT / "SKILL_REGISTRY.md" + if registry.exists(): + text = registry.read_text(encoding="utf-8") + # 简单匹配:找包含 name_or_path 的 SKILL 路径 + for line in text.splitlines(): + if "SKILL.md" in line and name_or_path in line: + # 提取路径,如 `05_卡土(土)/土砖_技能复制/技能工厂/SKILL.md` + start = line.find("`") + 1 + end = line.rfind("`") + if start > 0 and end > start: + rel = line[start:end].strip() + p = KARUO_AI_ROOT / rel + if p.exists(): + return p + raise FileNotFoundError(f"未找到技能: {name_or_path}") + if not p.exists(): + raise FileNotFoundError(f"SKILL 不存在: {p}") + return p + + +def _parse_frontmatter(content: str) -> tuple: + """解析 YAML frontmatter,返回 (frontmatter_dict, body)。无 PyYAML 时用简单解析。""" + if not content.strip().startswith("---"): + return {}, content + parts = content.split("---", 2) + if len(parts) < 3: + return {}, content + fm = {} + try: + import yaml + fm = yaml.safe_load(parts[1]) or {} + except Exception: + for line in parts[1].strip().splitlines(): + if ":" in line: + k, v = line.split(":", 1) + k, v = k.strip(), v.strip().strip("'\"").strip() + if k == "triggers": + fm[k] = [x.strip() for x in v.replace("、", ",").split(",") if x.strip()] + else: + fm[k] = v + return fm, parts[2].strip() + + +def pack(skill_ref: str, include_audit: bool = True) -> str: + """打包:将 SKILL 转为基因胶囊 JSON""" + skill_path = _find_skill_path(skill_ref) + content = skill_path.read_text(encoding="utf-8") + rel_path = str(skill_path.relative_to(KARUO_AI_ROOT)) + + fm, body = _parse_frontmatter(content) + + manifest = { + "name": fm.get("name", skill_path.stem), + "description": fm.get("description", ""), + "triggers": fm.get("triggers", []) + if isinstance(fm.get("triggers"), list) + else (fm.get("triggers", "") or "").split("、"), + "owner": fm.get("owner", ""), + "group": fm.get("group", ""), + "skill_path": rel_path, + } + capsule_id = _calc_capsule_id(rel_path, content) + now = datetime.now().strftime("%Y-%m-%dT%H:%M:%S+08:00") + + capsule = { + "version": "1.0", + "capsule_id": capsule_id, + "manifest": manifest, + "skill_content": content, + "created_at": now, + "updated_at": now, + "environment": _collect_env(), + "source": "karuo-ai", + } + + if include_audit: + # 尝试从复盘目录读取最近一条(若有) + capsule["audit"] = {"last_retro": "", "source": "pack"} + + EXPORT_DIR.mkdir(parents=True, exist_ok=True) + safe_name = manifest["name"].replace(" ", "_").replace("/", "_")[:30] + out_file = EXPORT_DIR / f"{safe_name}_{capsule_id[7:15]}.json" + out_file.write_text(json.dumps(capsule, ensure_ascii=False, indent=2), encoding="utf-8") + return str(out_file) + + +def unpack(capsule_path: str, target_dir: str | None = None) -> str: + """解包:将胶囊 JSON 解压为 SKILL.md""" + p = Path(capsule_path) + if not p.exists(): + p = EXPORT_DIR / capsule_path + if not p.exists(): + raise FileNotFoundError(f"胶囊不存在: {capsule_path}") + + data = json.loads(p.read_text(encoding="utf-8")) + manifest = data.get("manifest", {}) + skill_content = data.get("skill_content", "") + + if target_dir: + dest = Path(target_dir) + else: + # 按 manifest.skill_path 写回 + rel = manifest.get("skill_path", "") + dest = KARUO_AI_ROOT / Path(rel).parent + dest.mkdir(parents=True, exist_ok=True) + skill_file = dest / "SKILL.md" + skill_file.write_text(skill_content, encoding="utf-8") + + # 更新 capsule_index + idx = {} + if CAPSULE_INDEX.exists(): + idx = json.loads(CAPSULE_INDEX.read_text(encoding="utf-8")) + cid = data.get("capsule_id", "")[:19] + idx[cid] = { + "name": manifest.get("name", ""), + "source": data.get("source", "local"), + "unpacked_at": dest, + "created_at": data.get("created_at", ""), + } + CAPSULE_INDEX.write_text(json.dumps(idx, ensure_ascii=False, indent=2), encoding="utf-8") + return str(skill_file) + + +def list_capsules() -> list[dict]: + """列表:扫描导出目录与索引""" + result = [] + if EXPORT_DIR.exists(): + for f in sorted(EXPORT_DIR.glob("*.json")): + try: + data = json.loads(f.read_text(encoding="utf-8")) + m = data.get("manifest", {}) + result.append({ + "file": f.name, + "name": m.get("name", ""), + "capsule_id": data.get("capsule_id", "")[:19], + "created_at": data.get("created_at", ""), + }) + except Exception: + pass + return result + + +def main(): + parser = argparse.ArgumentParser(description="基因胶囊 · pack/unpack/list") + sub = parser.add_subparsers(dest="cmd", required=True) + # pack + p_pack = sub.add_parser("pack", help="将 SKILL 打包为基因胶囊") + p_pack.add_argument("skill", help="技能路径或名称,如 技能工厂 或 05_卡土(土)/土砖_技能复制/技能工厂/SKILL.md") + p_pack.add_argument("--no-audit", action="store_true", help="不包含审计信息") + # unpack + p_unpack = sub.add_parser("unpack", help="将胶囊解包为 SKILL") + p_unpack.add_argument("capsule", help="胶囊文件路径或文件名") + p_unpack.add_argument("-o", "--output", help="输出目录,默认按 manifest.skill_path") + # list + p_list = sub.add_parser("list", help="列出本地胶囊") + args = parser.parse_args() + + if args.cmd == "pack": + out = pack(args.skill, include_audit=not args.no_audit) + print(f"✅ 已打包: {out}") + elif args.cmd == "unpack": + out = unpack(args.capsule, target_dir=args.output) + print(f"✅ 已解包: {out}") + elif args.cmd == "list": + items = list_capsules() + for i in items: + print(f" {i['name']} {i['capsule_id']} {i['created_at']}") + print(f"共 {len(items)} 个胶囊") + + +if __name__ == "__main__": + main() diff --git a/05_卡土(土)/土砖_技能复制/技能工厂/SKILL.md b/05_卡土(土)/土砖_技能复制/技能工厂/SKILL.md index 7cea3c5a..5cd99c1a 100644 --- a/05_卡土(土)/土砖_技能复制/技能工厂/SKILL.md +++ b/05_卡土(土)/土砖_技能复制/技能工厂/SKILL.md @@ -162,3 +162,12 @@ description: 飞书日程转周报。触发词:生成周报、飞书日程、 ``` /Users/karuo/Documents/个人/卡若AI/.cursor/skills/ ``` + +## 与基因胶囊联动 + +创建 Skill 前可先查本地胶囊,有则继承;创建后可将 Skill 打包为基因胶囊: + +- **继承**:`python3 05_卡土(土)/土砖_技能复制/基因胶囊/脚本/gene_capsule.py list` → `unpack 胶囊文件` +- **打包**:`python3 .../gene_capsule.py pack "技能名"` → 输出到 `卡若Ai的文件夹/导出/基因胶囊/` + +详见:`05_卡土(土)/土砖_技能复制/基因胶囊/SKILL.md` diff --git a/SKILL_REGISTRY.md b/SKILL_REGISTRY.md index d11bb4f5..c89db91a 100644 --- a/SKILL_REGISTRY.md +++ b/SKILL_REGISTRY.md @@ -1,7 +1,7 @@ # 卡若AI 技能注册表(Skill Registry) > **一张表查所有技能**。任何 AI 拿到这张表,就能按关键词找到对应技能的 SKILL.md 路径并执行。 -> 47 技能 | 14 成员 | 5 负责人 +> 48 技能 | 14 成员 | 5 负责人 > 版本:5.0 | 更新:2026-02-16 --- @@ -84,6 +84,7 @@ |:--|:---|:---|:---|:---|:---| | E01 | 商业工具集 | 土基 | 商业分析、竞品 | `05_卡土(土)/土基_商业分析/商业工具集/SKILL.md` | 竞品分析、商业画布 | | E02 | 技能工厂 | 土砖 | 创建技能、生成Skill | `05_卡土(土)/土砖_技能复制/技能工厂/SKILL.md` | 批量创建/复制 SKILL | +| E07 | 基因胶囊 | 土砖 | **基因胶囊、打包技能、解包胶囊、继承能力** | `05_卡土(土)/土砖_技能复制/基因胶囊/SKILL.md` | Skill 打包为可遗传胶囊,pack/unpack/list | | E03 | 流量自动化 | 土渠 | 刷流量、SEO | `05_卡土(土)/土渠_流量招商/流量自动化/SKILL.md` | SEO、流量投放自动化 | | E04 | 手机流量自动操作 | 土渠 | 手机自动化、AutoGLM | `05_卡土(土)/土渠_流量招商/手机与网页流量自动操作/SKILL.md` | 手机 App 自动化操作 | | E05 | 财务管理 | 土簿 | 财务、报表、银行 | `05_卡土(土)/土簿_财务管理/财务管理/SKILL.md` | 收支记录、财务报表 | @@ -114,5 +115,5 @@ | 水 | 卡人 | 3 | 10 | | 木 | 卡木 | 3 | 6 | | 火 | 卡火 | 4 | 13 | -| 土 | 卡土 | 4 | 6 | -| **合计** | **5** | **14** | **55** | +| 土 | 卡土 | 4 | 7 | +| **合计** | **5** | **14** | **56** | diff --git a/运营中枢/参考资料/EvoMap与卡若AI结合概要.md b/运营中枢/参考资料/EvoMap与卡若AI结合概要.md index 752ff56c..a9b72cd7 100644 --- a/运营中枢/参考资料/EvoMap与卡若AI结合概要.md +++ b/运营中枢/参考资料/EvoMap与卡若AI结合概要.md @@ -24,6 +24,13 @@ 3. **输入**(2–3 月):技能工厂「先查 EvoMap」再创建 4. **深度**(3+ 月):定期同步、声誉经济、GEP 节点 -## 触发词(供 SKILL_REGISTRY 扩展) +## 触发词(已录入 SKILL_REGISTRY) -EvoMap、GEP、基因胶囊、经验遗传、Agent 进化 +EvoMap、GEP、**基因胶囊**、打包技能、解包胶囊、继承能力、经验遗传、Agent 进化 + +## 已实现:基因胶囊(土砖) + +卡若AI 已抽象并实现基因胶囊概念: +- 规范:`运营中枢/参考资料/基因胶囊规范.md` +- 技能:`05_卡土(土)/土砖_技能复制/基因胶囊/SKILL.md` +- 脚本:`gene_capsule.py` → pack / unpack / list diff --git a/运营中枢/参考资料/基因胶囊规范.md b/运营中枢/参考资料/基因胶囊规范.md new file mode 100644 index 00000000..01bcfdf0 --- /dev/null +++ b/运营中枢/参考资料/基因胶囊规范.md @@ -0,0 +1,132 @@ +# 基因胶囊规范 · 卡若AI 抽象概念 + +> **版本**:1.0 | 更新:2026-02-22 +> **归属**:土砖(技能复制) +> **理念来源**:EvoMap GEP 协议,适配卡若AI 本地与未来流通 + +--- + +## 一、概念定义 + +**基因胶囊**(Gene Capsule)是卡若AI 对「可遗传能力单元」的抽象:将验证过的 Skill + 执行环境 + 审计记录打包成不可篡改的资产,支持本地复用与未来跨 Agent 流通。 + +``` +基因胶囊 = 策略(SKILL) + 环境指纹 + 审计记录 + 资产 ID +``` + +| 层 | 含义 | +|:---|:---| +| **策略** | SKILL.md 完整内容,含触发词、步骤、脚本路径 | +| **环境指纹** | Python 版本、平台、依赖(便于继承时校验) | +| **审计记录** | 最近一次复盘的「目标·结果·达成率」或执行摘要 | +| **资产 ID** | 对策略内容做 SHA-256,用于去重与溯源 | + +--- + +## 二、胶囊格式(JSON) + +### 2.1 必填字段 + +```json +{ + "version": "1.0", + "capsule_id": "sha256:abc123...", + "manifest": { + "name": "技能名称", + "description": "一句话描述", + "triggers": ["触发词1", "触发词2"], + "owner": "土砖", + "group": "土", + "skill_path": "05_卡土(土)/土砖_技能复制/技能工厂/SKILL.md" + }, + "skill_content": "---\nname: ...\n---\n\n# 技能名\n\n...", + "created_at": "2026-02-22T21:30:00+08:00", + "updated_at": "2026-02-22T21:30:00+08:00" +} +``` + +### 2.2 可选字段 + +```json +{ + "environment": { + "python_version": "3.11", + "platform": "darwin", + "dependencies": ["requests", "beautifulsoup4"] + }, + "audit": { + "last_retro": "目标·结果·达成率 ≤30字", + "success_rate": "100%", + "execution_count": 3 + }, + "source": "karuo-ai", + "tags": ["文档", "自动化"] +} +``` + +### 2.3 资产 ID 计算规则 + +``` +capsule_id = "sha256:" + SHA256(manifest.skill_path + skill_content 前 8192 字符) +``` + +保证内容变动则 ID 变动,便于去重与版本追溯。 + +--- + +## 三、存储与流通 + +| 用途 | 存放位置 | +|:---|:---| +| **本地导出的胶囊** | `/Users/karuo/Documents/卡若Ai的文件夹/导出/基因胶囊/` | +| **继承的胶囊(解包后)** | 按 SKILL 归属写入对应 `01~05` 成员目录 | +| **胶囊索引** | `05_卡土(土)/土砖_技能复制/基因胶囊/capsule_index.json` | + +--- + +## 四、与 SKILL 的映射 + +| SKILL 元素 | 基因胶囊字段 | +|:---|:---| +| frontmatter(name/description/triggers/owner/group) | manifest | +| 正文 Markdown | skill_content | +| 脚本目录 scripts/ | 打包时一并纳入(可选,或仅记录路径) | +| 复盘块 | audit.last_retro | + +--- + +## 五、操作流程 + +### 5.1 打包(pack) + +1. 指定 SKILL 路径或技能名 +2. 读取 SKILL.md,解析 frontmatter +3. 收集环境信息(可选) +4. 若存在最近复盘,写入 audit +5. 计算 capsule_id,输出 JSON 到导出目录 + +### 5.2 解包(unpack) + +1. 读取胶囊 JSON +2. 按 manifest.skill_path 或用户指定路径写入 SKILL.md +3. 若有 scripts 等附加文件,按需创建目录 +4. 更新 capsule_index.json(若为继承的胶囊) + +### 5.3 列表(list) + +1. 扫描导出目录 + capsule_index +2. 输出:胶囊名、capsule_id 前 12 位、创建时间、来源 + +--- + +## 六、与技能工厂的联动 + +- **创建 Skill 前**:可先 `list` 本地胶囊,若有匹配则 `unpack` 继承 +- **创建 Skill 后**:可 `pack` 将新 Skill 打包为胶囊,供后续复用或未来上传 + +--- + +## 七、引用 + +- 战略分析:`卡若Ai的文件夹/报告/EvoMap与卡若AI结合战略分析_20260222.md` +- 技能:`05_卡土(土)/土砖_技能复制/基因胶囊/SKILL.md` diff --git a/运营中枢/工作台/gitea_push_log.md b/运营中枢/工作台/gitea_push_log.md index 664bb288..2fad190d 100644 --- a/运营中枢/工作台/gitea_push_log.md +++ b/运营中枢/工作台/gitea_push_log.md @@ -72,3 +72,4 @@ | 2026-02-22 10:28:14 | 🔄 卡若AI 同步 2026-02-22 10:28 | 更新:金仓、运营中枢工作台 | 排除 >20MB: 8 个 | | 2026-02-22 10:35:52 | 🔄 卡若AI 同步 2026-02-22 10:35 | 更新:金仓、水溪整理归档、卡土、总索引与入口、运营中枢参考资料、运营中枢工作台、运营中枢 | 排除 >20MB: 8 个 | | 2026-02-22 10:37:28 | 🔄 卡若AI 同步 2026-02-22 10:37 | 更新:金仓、水溪整理归档、卡土、总索引与入口、运营中枢参考资料、运营中枢工作台、运营中枢 | 排除 >20MB: 8 个 | +| 2026-02-22 10:37:37 | 🔄 卡若AI 同步 2026-02-22 10:37 | 更新:金仓、运营中枢工作台 | 排除 >20MB: 8 个 | diff --git a/运营中枢/工作台/代码管理.md b/运营中枢/工作台/代码管理.md index 4083bc16..11f49dd6 100644 --- a/运营中枢/工作台/代码管理.md +++ b/运营中枢/工作台/代码管理.md @@ -75,3 +75,4 @@ | 2026-02-22 10:28:14 | 成功 | 成功 | 🔄 卡若AI 同步 2026-02-22 10:28 | 更新:金仓、运营中枢工作台 | 排除 >20MB: 8 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) | | 2026-02-22 10:35:52 | 成功 | 成功 | 🔄 卡若AI 同步 2026-02-22 10:35 | 更新:金仓、水溪整理归档、卡土、总索引与入口、运营中枢参考资料、运营中枢工作台、运营中枢 | 排除 >20MB: 8 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) | | 2026-02-22 10:37:28 | 成功 | 成功 | 🔄 卡若AI 同步 2026-02-22 10:37 | 更新:金仓、水溪整理归档、卡土、总索引与入口、运营中枢参考资料、运营中枢工作台、运营中枢 | 排除 >20MB: 8 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) | +| 2026-02-22 10:37:37 | 成功 | 成功 | 🔄 卡若AI 同步 2026-02-22 10:37 | 更新:金仓、运营中枢工作台 | 排除 >20MB: 8 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) |