docs: Add workspace configuration and memory files
- AGENTS.md: Update agent workspace guidelines (read TODO.md in workflow) - TODO.md: Add security inspection and TTS configuration tasks - memory/: Add knowledge base refactoring progress notes - .gitignore: Add debug/ directory
This commit is contained in:
@@ -34,3 +34,5 @@ skills/obsidian-kb/test_*.py
|
||||
skills/obsidian-kb/*_REPORT.md
|
||||
skills/obsidian-kb/*_SUMMARY.md
|
||||
skills/obsidian-kb/DrissionPage_*.md
|
||||
# 调试文件
|
||||
debug/
|
||||
|
||||
@@ -12,8 +12,9 @@ Before doing anything else:
|
||||
|
||||
1. Read `SOUL.md` — this is who you are
|
||||
2. Read `USER.md` — this is who you're helping
|
||||
3. Read `memory/YYYY-MM-DD.md` (today + yesterday) for recent context
|
||||
4. **If in MAIN SESSION** (direct chat with your human): Also read `MEMORY.md`
|
||||
3. Read `TODO.md` — check pending tasks
|
||||
4. Read `memory/YYYY-MM-DD.md` (today + yesterday) for recent context
|
||||
5. **If in MAIN SESSION** (direct chat with your human): Also read `MEMORY.md`
|
||||
|
||||
Don't ask permission. Just do it.
|
||||
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
# Todo
|
||||
|
||||
## 待处理
|
||||
|
||||
### 重要
|
||||
- [ ] 配置 OpenRouter 接入(使用免费模型如Pony Alpha)
|
||||
- 获取 OPENROUTER_API_KEY
|
||||
- 运行: `openclaw onboard --auth-choice apiKey --token-provider openrouter --token "$OPENROUTER_API_KEY"`
|
||||
- 或在 config.yaml 中配置 env: { OPENROUTER_API_KEY: "sk-or-..." }
|
||||
- [ ] 🔒 处理安全巡检报告问题(2026-02-10)
|
||||
- [ ] 修复凭证目录权限: chmod 700 /home/admin/.openclaw/credentials
|
||||
- [ ] 禁用控制UI不安全认证: gateway.controlUi.allowInsecureAuth=false
|
||||
- [ ] 审查/移除Feishu插件 (src/media.ts:477)
|
||||
- [ ] 配置插件白名单 plugins.allow
|
||||
- [ ] 审查WeCom插件可疑代码 (src/monitor.ts:376, src/outbound.ts:141)
|
||||
- [ ] 启用ufw防火墙
|
||||
- [ ] 配置阿里云 TTS 语音
|
||||
- 需要提供:AccessKeyId, AccessKeySecret
|
||||
- 配置命令: `openclaw config set channels.wecom.voice.type "aliyun"`
|
||||
- [ ] 修复凭证目录权限: chmod 700 /home/admin/.openclaw/credentials
|
||||
- [ ] 禁用控制UI不安全认证: gateway.controlUi.allowInsecureAuth=false
|
||||
- [ ] 审查/移除Feishu插件 (src/media.ts:477)
|
||||
- [ ] 配置插件白名单 plugins.allow
|
||||
- [ ] 审查WeCom插件可疑代码 (src/monitor.ts:376, src/outbound.ts:141)
|
||||
- [ ] 启用ufw防火墙
|
||||
|
||||
### 常规
|
||||
- [ ] ...
|
||||
|
||||
---
|
||||
|
||||
## 已完成 ✅
|
||||
- bilibili-analyzer技能:支持字幕区域裁剪
|
||||
- 分析新加坡旅行省钱视频
|
||||
- 添加 cron job:子代理状态汇报(已禁用,等待 WeCom 配置)
|
||||
- 推送 commit: feat(bilibili-analyzer) 字幕裁剪功能
|
||||
@@ -0,0 +1,23 @@
|
||||
# 2026-02-10
|
||||
|
||||
## 知识库技能重构 - B站专栏内容获取
|
||||
|
||||
### kb-bilibili-content 专栏内容获取
|
||||
|
||||
**测试结果:**
|
||||
```
|
||||
标题: [UEPCG][新手向]复刻ChrisMurphy的城市道路建筑生成...
|
||||
内容长度: 12659 字符
|
||||
✅ 获取成功
|
||||
```
|
||||
|
||||
**实现方式:**
|
||||
- 使用 Playwright 异步API爬取专栏页面
|
||||
- 选择器: `.read-article-holder`
|
||||
- 获取完整文章正文
|
||||
|
||||
### 已提交
|
||||
|
||||
- `47355b3` - feat(kb-bilibili-content): Add article content extraction using Playwright
|
||||
- `56907e3` - refactor(kb-zhihu-metadata): Simplify to only support zvideo and zhuanlan
|
||||
- 使用playurl API,无需Cookie即可下载视频
|
||||
@@ -0,0 +1,233 @@
|
||||
# 知识库维护系统 - 实现计划
|
||||
|
||||
**目标:** 将 obsidian-kb 拆分为 7 个独立技能,实现模块化、可维护的知识库维护系统
|
||||
**方案:** 复用现有代码,按详细设计文档实现
|
||||
**预计总时间:** 约 180 分钟(3 小时)
|
||||
|
||||
---
|
||||
|
||||
## 检查点 1: 项目初始化
|
||||
- [ ] **任务 1.1**: 创建技能目录结构 (~2 min)
|
||||
- **动作**: 创建 `skills/link-parser/`, `skills/bilibili-metadata/`, `skills/zhihu-metadata/`, `skills/bilibili-content/`, `skills/ocr-processor/`, `skills/deep-analyzer/`, `skills/kb-workflow/` 目录
|
||||
- **验证**: `ls skills/` 显示 7 个新目录
|
||||
|
||||
- [ ] **任务 1.2**: 复制现有代码库到临时位置 (~3 min)
|
||||
- **动作**: 复制 `obsidian-kb/src/` 到临时目录备份
|
||||
- **验证**: 确认 `tmp_backup/src/` 存在所有 .py 文件
|
||||
|
||||
- [ ] **任务 1.3**: 创建通用配置文件模板 (~3 min)
|
||||
- **动作**: 按详细设计创建 `skills/_common/config_template.yaml`
|
||||
- **验证**: `cat config_template.yaml` 显示所有配置项
|
||||
|
||||
---
|
||||
|
||||
## 检查点 2: 技能 1 - link-parser
|
||||
- [ ] **任务 2.1**: 创建 SKILL.md (~2 min)
|
||||
- **动作**: 复制 SKILL.md 模板,填写 link-parser 描述
|
||||
- **验证**: `cat skills/link-parser/SKILL.md` 包含功能描述和命令
|
||||
|
||||
- [ ] **任务 2.2**: 实现链接解析器主文件 (~8 min)
|
||||
- **动作**: 创建 `skills/link-parser/link-parser.py`,实现:
|
||||
- `resolve_shortlink()` 短链跳转
|
||||
- `extract_bilibili_id()` B站ID提取
|
||||
- `extract_youtube_id()` YouTube ID提取
|
||||
- `extract_zhihu_id()` 知乎ID提取
|
||||
- **验证**: `python link-parser.py --url "https://b23.tv/xxx"` 返回 JSON
|
||||
|
||||
- [ ] **任务 2.3**: 测试链接解析器 (~3 min)
|
||||
- **动作**: 测试以下链接:
|
||||
- `https://www.bilibili.com/video/BV1xx`
|
||||
- `https://space.bilibili.com/7770724`
|
||||
- `https://b23.tv/xxxxx`
|
||||
- `https://www.zhihu.com/question/266309957`
|
||||
- **验证**: 每个链接返回正确的 platform, type, id
|
||||
|
||||
- [ ] **任务 2.4**: 验证复用代码 (~2 min)
|
||||
- **动作**: 确认复用 `shortlink_resolver.py`
|
||||
- **验证**: import 语句存在,代码无红色报错
|
||||
|
||||
---
|
||||
|
||||
## 检查点 3: 技能 2 - bilibili-metadata
|
||||
- [ ] **任务 3.1**: 创建 SKILL.md (~2 min)
|
||||
- **动作**: 复制 SKILL.md 模板,填写 bilibili-metadata 描述
|
||||
- **验证**: 文件包含功能描述和命令行示例
|
||||
|
||||
- [ ] **任务 3.2**: 实现 B站元数据获取器 (~10 min)
|
||||
- **动作**: 创建 `skills/bilibili-metadata/bilibili_metadata.py`:
|
||||
- 复用 `BilibiliExtractor` 类
|
||||
- 实现 `extract_video_metadata()`
|
||||
- 实现 `extract_article_metadata()`
|
||||
- 实现 `extract_up_metadata()`
|
||||
- **验证**: `python bilibili_metadata.py --id "BV1xx"` 返回完整 JSON
|
||||
|
||||
- [ ] **任务 3.3**: 测试 B站元数据获取 (~5 min)
|
||||
- **动作**: 测试视频、专栏、UP主三种类型
|
||||
- **验证**: 每种类型返回对应格式的元数据
|
||||
|
||||
---
|
||||
|
||||
## 检查点 4: 技能 2 - zhihu-metadata
|
||||
- [ ] **任务 4.1**: 创建 SKILL.md (~2 min)
|
||||
- **动作**: 复制 SKILL.md 模板,填写 zhihu-metadata 描述
|
||||
- **验证**: 文件包含功能描述
|
||||
|
||||
- [ ] **任务 4.2**: 实现知乎元数据获取器 (~8 min)
|
||||
- **动作**: 创建 `skills/zhihu-metadata/zhihu_metadata.py`:
|
||||
- 复用 `ZhihuDrissionExtractor` 类
|
||||
- 实现 `extract_question()`
|
||||
- 实现 `extract_answer()`
|
||||
- 实现 `extract_user()`
|
||||
- **验证**: `python zhihu_metadata.py --id "266309957"` 返回 JSON
|
||||
|
||||
- [ ] **任务 4.3**: 测试知乎元数据获取 (~3 min)
|
||||
- **动作**: 测试问题、回答两种类型
|
||||
- **验证**: 返回正确格式的元数据
|
||||
|
||||
---
|
||||
|
||||
## 检查点 5: 技能 3 - bilibili-content
|
||||
- [ ] **任务 5.1**: 创建 SKILL.md (~2 min)
|
||||
- **动作**: 复制 SKILL.md 模板,填写 bilibili-content 描述
|
||||
- **验证**: 文件包含功能描述
|
||||
|
||||
- [ ] **任务 5.2**: 实现 B站内容获取器 (~12 min)
|
||||
- **动作**: 创建 `skills/bilibili-content/bilibili_content.py`:
|
||||
- 复用 `VideoStreamExtractor`
|
||||
- 实现 `download_video(quality=480)`
|
||||
- 实现 `extract_subtitle()`
|
||||
- 实现 `extract_article_content()`
|
||||
- **验证**: `python bilibili_content.py --id "BV1xx"` 下载视频到 output 目录
|
||||
|
||||
- [ ] **任务 5.3**: 测试内容获取 (~5 min)
|
||||
- **动作**: 测试视频下载、字幕提取
|
||||
- **验证**: output 目录包含 .mp4 和 .srt 文件
|
||||
|
||||
---
|
||||
|
||||
## 检查点 6: 技能 3 - ocr-processor
|
||||
- [ ] **任务 6.1**: 创建 SKILL.md (~2 min)
|
||||
- **动作**: 复制 SKILL.md 模板,填写 ocr-processor 描述
|
||||
- **验证**: 文件包含功能描述
|
||||
|
||||
- [ ] **任务 6.2**: 实现 OCR 处理器 (~8 min)
|
||||
- **动作**: 创建 `skills/ocr-processor/ocr_processor.py`:
|
||||
- 复用 `OCRProcessor`
|
||||
- 实现 `process_frames(input_dir, fps=0.1)`
|
||||
- 实现 `merge_texts()`
|
||||
- **验证**: `python ocr_processor.py --input ./frames/` 生成 ocr.json
|
||||
|
||||
- [ ] **任务 6.3**: 测试 OCR 功能 (~3 min)
|
||||
- **动作**: 用测试帧目录运行 OCR
|
||||
- **验证**: 返回包含 texts 和 confidence 的 JSON
|
||||
|
||||
---
|
||||
|
||||
## 检查点 7: 技能 4 - deep-analyzer
|
||||
- [ ] **任务 7.1**: 创建 SKILL.md (~2 min)
|
||||
- **动作**: 复制 SKILL.md 模板,填写 deep-analyzer 描述
|
||||
- **验证**: 文件包含模板变量说明
|
||||
|
||||
- [ ] **任务 7.2**: 实现深度分析器 (~15 min)
|
||||
- **动作**: 创建 `skills/deep-analyzer/deep_analyzer.py`:
|
||||
- 复用 `DeepAnalyzer`
|
||||
- 实现 `analyze(metadata, content, type)`
|
||||
- 实现 `load_template(type)`
|
||||
- 实现 `render_template(variables)`
|
||||
- **验证**: `python deep_analyzer.py --metadata m.json --content c.json` 生成 .md
|
||||
|
||||
- [ ] **任务 7.3**: 测试深度分析 (~5 min)
|
||||
- **动作**: 用示例元数据和内容运行分析
|
||||
- **验证**: 生成包含 frontmatter 和模板内容的 Markdown
|
||||
|
||||
---
|
||||
|
||||
## 检查点 8: 技能 5 - kb-workflow
|
||||
- [ ] **任务 8.1**: 创建 SKILL.md (~2 min)
|
||||
- **动作**: 复制 SKILL.md 模板,填写 kb-workflow 描述
|
||||
- **验证**: 文件包含工作流步骤说明
|
||||
|
||||
- [ ] **任务 8.2**: 实现工作流编排器 (~20 min)
|
||||
- **动作**: 创建 `skills/kb-workflow/kb_workflow.py`:
|
||||
- 实现 `scan_inbox()` 扫描四个子目录
|
||||
- 实现 `process_item(item)` 调用技能2-4
|
||||
- 实现 `archive_item(item, analysis)` 归档
|
||||
- 实现 `check_subscriptions()` 订阅更新检测
|
||||
- 实现 `generate_report()` 生成汇报
|
||||
- **验证**: `python kb_workflow.py --trigger manual` 运行无报错
|
||||
|
||||
- [ ] **任务 8.3**: 测试工作流 (~5 min)
|
||||
- **动作**: 用一个测试 item 运行完整流程
|
||||
- **验证**: item 从 pending → metadata → content → archive
|
||||
|
||||
---
|
||||
|
||||
## 检查点 9: 目录结构与配置
|
||||
- [ ] **任务 9.1**: 创建收件箱目录模板 (~2 min)
|
||||
- **动作**: 创建 `inbox/{pending,metadata,content,analyzed}/` 目录
|
||||
- **验证**: `ls inbox/` 显示四个子目录
|
||||
|
||||
- [ ] **任务 9.2**: 创建归档目录模板 (~2 min)
|
||||
- **动作**: 创建 `archive/YYYY/MM/{video,article}/` 目录
|
||||
- **验证**: `ls archive/2024/01/` 显示子目录
|
||||
|
||||
- [ ] **任务 9.3**: 创建 config.yaml 示例 (~3 min)
|
||||
- **动作**: 创建 `skills/_common/config.yaml` 示例
|
||||
- **验证**: 文件包含 AI、存储、Git、OCR 等配置
|
||||
|
||||
---
|
||||
|
||||
## 检查点 10: 集成测试
|
||||
- [ ] **任务 10.1**: 端到端测试 - 单个视频 (~10 min)
|
||||
- **动作**:
|
||||
1. `link-parser` 解析视频链接
|
||||
2. `bilibili-metadata` 获取元数据
|
||||
3. `bilibili-content` 获取内容
|
||||
4. `deep-analyzer` 生成分析
|
||||
5. `kb-workflow` 归档
|
||||
- **验证**: archive 目录生成 .md 文件
|
||||
|
||||
- [ ] **任务 10.2**: 端到端测试 - 列表类型 (~5 min)
|
||||
- **动作**: 模拟 UP主链接,测试列表处理流程
|
||||
- **验证**: 返回 requires_user_input 标记
|
||||
|
||||
- [ ] **任务 10.3**: 汇报功能测试 (~3 min)
|
||||
- **动作**: 运行工作流后检查 report.json
|
||||
- **验证**: report.json 包含 processed, success, failed 统计
|
||||
|
||||
---
|
||||
|
||||
## 验证标准
|
||||
|
||||
- [ ] 所有 7 个技能的 SKILL.md 存在且内容正确
|
||||
- [ ] 每个技能可通过命令行独立运行
|
||||
- [ ] link-parser 支持所有设计的链接格式
|
||||
- [ ] bilibili-metadata 和 zhihu-metadata 返回正确元数据
|
||||
- [ ] bilibili-content 可下载视频和提取字幕
|
||||
- [ ] ocr-processor 可处理帧图片并输出文字
|
||||
- [ ] deep-analyzer 可生成模板化的 Markdown
|
||||
- [ ] kb-workflow 可完成端到端流程并归档
|
||||
- [ ] 汇报文件格式正确
|
||||
- [ ] 代码复用已验证的现有模块
|
||||
|
||||
---
|
||||
|
||||
## 执行选项
|
||||
|
||||
**计划已保存到** `memory/plans/knowledge-base-refactoring.md`
|
||||
|
||||
**两种执行方式:**
|
||||
|
||||
**1. 单代理顺序执行(当前会话)**
|
||||
- 我按顺序执行每个任务
|
||||
- 每个检查点完成后向您汇报
|
||||
- 适合需要频繁确认的场景
|
||||
- **预计时间**: 约 3 小时
|
||||
|
||||
**2. 并行分发执行**
|
||||
- 使用 dispatch-multiple-agents 技能
|
||||
- 并行创建多个子代理同时工作
|
||||
- 适合时间紧迫的场景
|
||||
- **预计时间**: 约 1 小时(需要更多协调)
|
||||
|
||||
**蒋先生,您选择哪种方式?**
|
||||
Reference in New Issue
Block a user