Skill: zheznanohana/echo-seed (version 1.0.1)

--- name: echo-seed description: 简洁优雅的想法记录工具 / Simple and elegant idea capture tool metadata: { "openclaw": { "requires": { "bins": ["python3"] }, "install": [ { "id": "echo-seed-deps", "kind": "pip", "package": "flask requests", "label": "安装 Echo Seed 依赖 / Install Echo Seed dependencies", }, ], } } --- # Echo Seed / 回声种子 > 让每一个想法都有回声 🌱 > Every idea deserves an echo. 简洁优雅的想法记录工具，支持快速记录、智能分类、时间线视图和多端同步。 A simple and elegant idea capture tool with quick notes, smart categorization, timeline view, and multi-platform sync. --- ## 🚀 快速开始 / Quick Start ### 启动服务 / Start Service ```bash # 启动 Web 服务 / Start Web service python3 scripts/echo-web.py # 访问 / Visit http://localhost:5000 ``` --- ## 📋 前置依赖 / Prerequisites ### 必需依赖 / Required | 依赖 / Dependency | 用途 / Purpose | 配置说明 / Setup | |-------------------|----------------|------------------| | **Python 3.10+** | 运行环境 / Runtime | `python3 --version` | | **Flask** | Web 框架 / Web framework | `pip install flask` | | **Requests** | HTTP 请求 / HTTP client | `pip install requests` | | **SQLite** | 数据库 / Database | 内置 / Built-in | ### 可选依赖 / Optional | 依赖 / Dependency | 用途 / Purpose | 配置说明 / Setup | |-------------------|----------------|------------------| | **Notion API** | 云端同步 / Cloud sync | 需配置 API Key（见下文）| | **Google Calendar API** | 待办同步 / Todo sync | 需配置 OAuth（见下文）| | **Telegram Bot** | 快速输入 / Quick input | 需创建 Bot（见下文）| | **MiniMax API** | AI 分析 / AI analysis | 需配置 API Key（见下文）| --- ## 🔧 配置步骤 / Setup Guide ### 1️⃣ 创建 Telegram Bot（可选）/ Create Telegram Bot (Optional) 用于快速创建种子 / For quick seed creation: 1. 在 Telegram 中联系 **@BotFather** 2. 发送 `/newbot` 创建新 Bot 3. 设置 Bot 名称（如：Echo Seed Bot） 4. 获取 **Bot Token**（格式：`123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11`） 5. 将 Token 配置到 Bot 脚本中 **Bot 命令列表 / Bot Commands:** - `/note` - 创建笔记 / Create note - `/idea` - 创建灵感 / Create idea - `/link` - 创建链接 / Create link - `/todo` - 创建待办 / Create todo - `/diary` - 创建日记 / Create diary - `/thought` - 创建思考 / Create thought - `/collect` - 创建收藏 / Create collection - `/voice` - 创建语音 / Create voice - `/list` - 查看最近种子 / List recent seeds - `/search` - 搜索种子 / Search seeds - `/stats` - 统计信息 / Statistics ### 2️⃣ 配置 Notion API（可选）/ Configure Notion API (Optional) 用于云端同步 / For cloud sync: 1. 访问 https://www.notion.so/my-integrations 2. 创建新 Integration / Create new integration 3. 复制 **Internal Integration Token** 4. 在 `config.yaml` 中配置： ```yaml notion: enabled: true [REDACTED_SECRET]" parent_page_id: "your_parent_page_id" ``` ### 3️⃣ 配置 Google Calendar（可选）/ Configure Google Calendar (Optional) 用于待办事项同步 / For todo sync: 1. 访问 Google Cloud Console 2. 启用 Google Calendar API 3. 创建 OAuth 2.0 凭证 4. 下载 `credentials.json` 到项目目录 ### 4️⃣ 配置 AI 服务（可选）/ Configure AI Service (Optional) 用于 AI 分析功能 / For AI analysis: ```yaml ai: enabled: true provider: "minimax" # 或 "deepseek" / or "deepseek" [REDACTED_SECRET]" model: "MiniMax-M2.5" ``` --- ## 📁 项目结构 / Project Structure ``` echo-seed/ ├── scripts/ │ ├── echo-web.py # Web 后端 / Web backend │ ├── echo-telegram-bot.py # Telegram Bot │ ├── db_helper.py # 数据库助手 / Database helper │ └── ai_service.py # AI 服务 / AI service ├── templates/ │ └── index.html # Web 界面 / Web UI ├── data/ │ └── echo.db # SQLite 数据库 / Database ├── config.example.yaml # 配置示例 / Config example ├── requirements.txt # Python 依赖 / Dependencies └── SKILL.md # 本文件 / This file ``` --- ## 🤖 功能特性 / Features - 📝 **快速记录** - 8 种类型（笔记/灵感/链接/日记/思考/收藏/待办/语音） - 🎨 **智能分类** - 自动标签、颜色编码 - 📅 **时间线视图** - 按时间浏览想法 - 🔍 **搜索筛选** - 全文搜索、类型过滤 - 📊 **统计面板** - 数据可视化 - 🤖 **AI 增强** - 点子扩张、链接分析、智能关联 - 🔄 **多端同步** - Notion、Google Calendar、Telegram Bot - 📝 **Quick Capture** - 8 types (note/idea/link/diary/thought/collection/todo/voice) - 🎨 **Smart Categorization** - Auto tags, color coding - 📅 **Timeline View** - Browse by time - 🔍 **Search & Filter** - Full-text search, type filter - 📊 **Statistics** - Data visualization - 🤖 **AI Enhanced** - Idea expansion, link analysis, smart relations - 🔄 **Multi-Platform Sync** - Notion, Google Calendar, Telegram Bot --- ## 📖 详细文档 / Documentation - **AI 功能说明 / AI Features:** [README-AI.md](README-AI.md) - **GitHub 仓库 / GitHub Repo:** https://github.com/zheznanohana/echo-seed --- ## ⚠️ 注意事项 / Notes 1. **首次启动** 会自动创建数据库 / Database auto-created on first run 2. **配置文件** 可选，无配置也可使用基础功能 / Config is optional 3. **Telegram Bot** 需要单独运行 / Bot runs separately 4. **AI 功能** 需要 API Key / AI requires API key --- **版本 / Version:** 1.0.0 **作者 / Author:** @zheznanohana **许可证 / License:** MIT

path: AUTO_AI_DESIGN.md
content: # Echo Seed 完全自动化设计方案

**儒家式开发 - 小爪&小小爪 共同设计**

---

## 📋 官家需求

1. **完全自动化** - 不需要手动 AI 分析按钮
2. **创建即分析** - Web 端/Bot 创建时自动触发 AI
3. **自动分类** - AI 分析后自动打标签
4. **Todo 自动同步** - 检测到待办自动同步 Google Calendar
5. **删除手动按钮** - 网页端删除 AI 分析面板

---

## 🔄 自动化流程

```
用户创建种子
    ↓
[Web 端 / Bot 端]
    ↓
1. 保存种子到数据库
    ↓
2. 自动触发 AI 分析（后台异步）
    ├─ 链接分析（如果有 URL）
    ├─ 点子扩张（如果是 idea 或短内容）
    └─ 智能关联（查找相关种子）
    ↓
3. AI 返回结果
    ├─ 自动标签 → 更新种子 tags 字段
    ├─ Todo 识别 → 同步到 Google Calendar
    └─ 分析结果 → 保存到 ai_analyses 表
    ↓
4. 返回用户
    ├─ Web 端：刷新列表（种子已带 AI 标签）
    └─ Bot 端：回复消息（含 AI 分析摘要）
```

---

## 📁 需要修改的文件

| 文件 | 修改内容 | 优先级 |
|------|---------|--------|
| **echo-web.py** | 创建种子后异步调用 AI 分析 | 🔴 P0 |
| **echo-telegram.py** | 修复 AI 导入路径，确保触发 | 🔴 P0 |
| **ai_service.py** | 添加 Todo 识别逻辑 | 🔴 P0 |
| **index.html** | 删除 AI 分析面板（手动按钮） | 🟡 P1 |
| **db_helper.py** | 已就绪 | ✅ |

---

## 🎯 AI 分析触发规则

| 条件 | 触发分析 | 说明 |
|------|---------|------|
| **有 URL** | 链接分析 | 提取网页内容 + 总结 + 标签 |
| **类型=idea** | 点子扩张 | 扩展想法成方案 |
| **内容<50 字** | 点子扩张 | 短内容自动扩展 |
| **所有种子** | 智能关联 | 查找相关种子 |
| **所有种子** | 自动标签 | AI 生成标签 |

---

## ✅ Todo 识别规则

**AI 分析后，判断是否需要同步到日历：**

### 规则 1：显式 Todo
- 类型 = `todo`
- 内容包含时间词（明天/下周/3 点后等）
- → 同步到 Google Calendar（定时事件）

### 规则 2：隐式 Todo
AI 分析检测到以下关键词：
- "记得"、"别忘了"、"要做"、"需要"
- "明天"、"下周"、"下午"、"晚上"
- "会议"、"面试"、"约会"、"截止"
- → 询问用户是否同步到日历（或直接同步）

### 规则 3：非 Todo
- 笔记、灵感、日记、链接等
- → 不同步到日历，仅存 Notion

---

## 🔧 技术实现

### 1. Web 端自动 AI（echo-web.py）

```python
@app.route('/api/capsules', methods=['POST'])
def create_capsule():
    # ... 创建种子 ...
    
    # 异步触发 AI 分析（不阻塞响应）
    import threading
    def auto_ai():
        time.sleep(0.5)  # 等数据库写入完成
        trigger_ai_analysis(capsule_id, capsule_type, content, url)
    
    threading.Thread(target=auto_ai).start()
    
    return jsonify({'success': True, 'id': capsule_id})
```

### 2. Bot 端自动 AI（echo-telegram.py）

```python
def create_capsule_from_message(text):
    # ... 创建种子 ...
    
    # 同步触发 AI 分析（Bot 可以等待）
    ai_reply = trigger_ai_analysis(capsule_id, capsule_type, content, url)
    
    # 回复用户
    reply = f"✅ 种子已创建\n{ai_reply}"
    return {'success': True, 'message': reply}
```

### 3. AI 分析核心（ai_service.py）

```python
def trigger_ai_analysis(capsule_id, capsule_type, content, url):
    """统一 AI 分析入口"""
    auto_tags = []
    is_todo = False
    calendar_info = None
    
    # 1. 链接分析
    if url:
        result = analyze_link(capsule_id, url)
        if result.get('success'):
            auto_tags.extend(result.get('suggested_tags', []))
    
    # 2. 点子扩张
    elif capsule_type == 'idea' or len(content) < 50:
        result = analyze_expansion(capsule_id, content)
        if result.get('success'):
            auto_tags.extend(result.get('suggested_tags', []))
            # 检查是否有待办建议
            if '行动建议' in result.get('expanded', {}):
                is_todo = True
    
    # 3. 智能关联
    find_relations(capsule_id)
    
    # 4. Todo 识别
    if capsule_type == 'todo' or is_todo:
        calendar_info = sync_to_calendar_if_needed(capsule_id, content)
    
    # 5. 更新种子标签
    if auto_tags:
        update_capsule_tags(capsule_id, auto_tags)
    
    return {
        'tags': auto_tags,
        'is_todo': is_todo,
        'calendar': calendar_info
    }
```

---

## 🎨 前端修改（index.html）

**删除 AI 分析面板，简化界面：**

```html
<!-- 删除整个右侧 AI 面板 -->
<!-- 删除 "🤖AI 面板" 按钮 -->
<!-- 删除 Vue AI App -->
```

**种子列表显示 AI 标签：**
```html
<!-- 种子卡片显示标签 -->
<span class="tags">{{ capsule.tags }}</span>
```

---

## 📊 数据库更新

```sql
-- 种子表增加 AI 相关字段
ALTER TABLE capsules ADD COLUMN ai_analyzed INTEGER DEFAULT 0;
ALTER TABLE capsules ADD COLUMN auto_tags TEXT;

-- 更新种子标签
UPDATE capsules SET tags = ? WHERE id = ?;
```

---

## ✅ 验收标准

| 功能 | 验收标准 | 状态 |
|------|---------|------|
| Web 创建 | 创建后自动 AI 分析，种子带标签 | ⏳ |
| Bot 创建 | 创建后回复 AI 分析摘要 | ⏳ |
| 自动标签 | AI 生成的标签显示在种子上 | ⏳ |
| Todo 同步 | Todo 类型自动同步到日历 | ⏳ |
| 无手动按钮 | 网页端无 AI 分析按钮 | ⏳ |

---

**请小爪审查此设计方案！**


path: README-AI.md
content: # Echo Seed AI 分析功能

> 🧠 让种子更智能 - AI 点子扩张、链接分析、智能关联

---

## 📋 功能特性

### 1. AI 点子扩张 💡
输入简单想法，AI 帮你扩展成完整方案：
- 技术方案（使用什么技术栈）
- 核心功能（主要功能列表）
- 工作量评估（预计开发时间）
- 风险评估（可能的风险和挑战）
- 行动建议（下一步可以做什么）

**示例：**
```
输入："做个 VR 版 B 站"

输出：
- 技术方案：Unity、Meta Quest SDK、WebXR...
- 核心功能：沉浸式视频播放大厅、3D 弹幕系统...
- 工作量：MVP 版本 4-6 个月
- 风险：VR 硬件保有量有限、开发成本高...
- 行动建议：先做 2D Demo 视频演示视觉概念...
```

### 2. AI 链接分析 🔗
输入 URL，AI 自动提取内容并总结：
- 网页内容摘要
- 关键词提取
- 标签建议

### 3. 智能关联 🔍
自动发现相关种子：
- 基于关键词匹配
- 相似度排序
- 帮助发现知识关联

---

## 🚀 快速开始

### 1. 数据库迁移

```bash
cd /root/.openclaw/workspace/echo-seed
python3 -c "
import sqlite3
conn = sqlite3.connect('data/capsules.db')
with open('migration.sql', 'r') as f:
    conn.executescript(f.read())
conn.commit()
conn.close()
"
```

### 2. 启动服务

```bash
cd /root/.openclaw/workspace/echo-seed
python3 scripts/echo-web.py
```

访问：http://localhost:5000

### 3. 访问 AI 分析面板

访问：http://localhost:5000/ai.html

---

## 📖 API 文档

### AI 点子扩张
```bash
POST /api/capsule/<capsule_id>/analyze/expand

# Response
{
    "code": 200,
    "data": {
        "expanded": {
            "技术方案": ["Unity", "Meta XR SDK"],
            "核心功能": ["虚拟屏幕", "弹幕渲染"],
            "工作量": "MVP 2-3 周",
            "风险": ["API 封禁", "法律风险"],
            "行动建议": ["研究 API", "学习 Unity"]
        },
        "related_capsules": [...],
        "suggested_tags": ["VR", "B 站"]
    }
}
```

### AI 链接分析
```bash
POST /api/capsule/<capsule_id>/analyze/link

# Response
{
    "code": 200,
    "data": {
        "url": "https://...",
        "analysis": {
            "summary": "网页内容摘要...",
            "keywords": ["关键词 1", "关键词 2"],
            "suggested_tags": ["标签 1", "标签 2"]
        }
    }
}
```

### 智能关联
```bash
GET /api/capsule/<capsule_id>/relations

# Response
{
    "code": 200,
    "data": {
        "relations": [
            {"id": "123", "title": "相关种子", "similarity": 0.85}
        ]
    }
}
```

---

## 🗄️ 数据库结构

### ai_analyses - AI 分析记录表
```sql
CREATE TABLE ai_analyses (
    id INTEGER PRIMARY KEY,
    capsule_id TEXT,
    analysis_type TEXT,  -- 'expansion', 'link', 'relation'
    input_content TEXT,
    output_content TEXT,
    tokens_used INTEGER,
    created_at DATETIME
);
```

### capsule_relations - 种子关联表
```sql
CREATE TABLE capsule_relations (
    id INTEGER PRIMARY KEY,
    source_capsule_id TEXT,
    target_capsule_id TEXT,
    relation_type TEXT,  -- 'semantic', 'keyword', 'time'
    similarity_score REAL
);
```

### capsule_tags - 自动标签表
```sql
CREATE TABLE capsule_tags (
    id INTEGER PRIMARY KEY,
    capsule_id TEXT,
    tag_name TEXT,
    tag_source TEXT,  -- 'auto' or 'manual'
    confidence_score REAL
);
```

---

## 🔧 配置说明

### 小小爪 API 配置

在 `scripts/ai_service.py` 中配置：
```python
XIAOXIAOZHAO_CONFIG = {
    "base_url": "https://api.minimaxi.com/anthropic/v1",
    "api_key": "sk-xxx",
    "model": "MiniMax-M2.5"
}
```

### 环境变量
```bash
export FLASK_DEBUG=True  # 调试模式
export PORT=5000         # 端口
```

---

## ✅ 测试报告

**测试时间：** 2026-03-06 22:30

| 功能 | 状态 | 说明 |
|------|------|------|
| AI 点子扩张 | ✅ 通过 | 小小爪输出详细方案 |
| AI 链接分析 | ⚠️ 部分通过 | SSL 证书问题（网络环境） |
| 智能关联 | ✅ 通过 | 关键词匹配正常 |
| 数据库迁移 | ✅ 通过 | 3 张表创建成功 |
| 前端 UI | ✅ 通过 | Vue3 组件正常渲染 |

---

## 📝 使用示例

### 1. 点子扩张
1. 打开 AI 分析面板 (http://localhost:5000/ai.html)
2. 选择一个种子
3. 点击"💡 点子扩张"
4. 查看 AI 生成的详细方案

### 2. 链接分析
1. 选择一个包含 URL 的种子
2. 点击"🔗 链接分析"
3. 查看 AI 总结的网页内容

### 3. 智能关联
1. 选择一个种子
2. 点击"🔗 智能关联"
3. 查看相关的其他种子

---

## 🐛 已知问题

1. **链接分析 SSL 问题** - 某些网站证书验证失败（网络环境问题）
2. **关联准确度** - 基于关键词匹配，语义理解有限

---

## 📚 开发者

- **架构师：** 小爪（同中书门下平章事）
- **开发工程师：** 小小爪（六部尚书）
- **开发范式：** 儒家式开发

---

## 📜 许可证

MIT License

---

**最后更新：** 2026-03-06 22:30


path: README.md
content: # Echo Seed / 回声种子

> 让每一个想法都有回声 🌱

简洁优雅的想法记录工具，支持快速记录、智能分类、时间线视图和多端同步。

## ✨ 特性

- 📝 **快速记录** - 一键创建，支持 8 种类型（笔记/灵感/链接/日记/思考/收藏/待办/语音）
- 🎨 **智能分类** - 自动标签、颜色编码、类型区分
- 📅 **时间线视图** - 按时间顺序浏览所有想法
- 🔍 **搜索筛选** - 全文搜索、类型过滤、标签筛选
- 📊 **统计面板** - 数据可视化、类型分布、趋势分析
- 🤖 **AI 增强** - 点子扩张、链接分析、智能关联（可选）
- 🔄 **多端同步** - Notion、Google Calendar、Telegram Bot

## 🚀 快速开始

### 安装

```bash
# 克隆项目
git clone https://github.com/zheznanohana/echo-seed.git
cd echo-seed

# 安装依赖
pip install -r requirements.txt
```

### 启动服务

```bash
# 启动 Web 服务
python3 scripts/echo-web.py

# 访问
http://localhost:5000
```

### 配置（可选）

复制配置示例并编辑：

```bash
cp config.example.yaml config.yaml
```

编辑 `config.yaml` 配置：
- 数据库路径
- Web 服务端口
- Notion API（同步用）
- Google Calendar（待办同步）

## 📱 Telegram Bot

通过 Bot 快速创建种子：

```bash
# 启动 Bot
python3 scripts/echo-telegram-bot.py
```

**支持的命令：**
- `/note` - 创建笔记
- `/idea` - 创建灵感
- `/link` - 创建链接
- `/todo` - 创建待办
- `/diary` - 创建日记
- `/thought` - 创建思考
- `/collect` - 创建收藏
- `/voice` - 创建语音
- `/list` - 查看最近种子
- `/search` - 搜索种子
- `/stats` - 统计信息

## 🤖 AI 功能

Echo Seed 支持 AI 增强功能：

- **点子扩张** - 输入简单想法，AI 扩展成完整方案
- **链接分析** - 输入 URL，AI 自动提取内容并总结
- **智能关联** - 自动发现相关种子，建立知识关联

详见：[README-AI.md](README-AI.md)

## 📦 数据库

使用 SQLite 存储，默认路径：`data/echo.db`

数据库会自动创建，包含以下表：
- `seeds` - 种子主表
- `seed_relations` - 种子关联表
- `seed_tags` - 种子标签表
- `ai_analyses` - AI 分析记录表

## 🔧 API

提供 REST API 供前端调用：

| 端点 | 方法 | 说明 |
|------|------|------|
| `/api/seeds` | GET | 获取种子列表 |
| `/api/seeds` | POST | 创建种子 |
| `/api/seeds/<id>` | PUT | 更新种子 |
| `/api/seeds/<id>` | DELETE | 删除种子 |
| `/api/stats` | GET | 获取统计信息 |
| `/api/export/<format>` | GET | 导出数据 (json/csv/markdown) |
| `/api/seed/<id>/analyze/expand` | POST | AI 点子扩张 |
| `/api/seed/<id>/analyze/link` | POST | AI 链接分析 |
| `/api/seed/<id>/relations` | GET | 获取关联种子 |

## 🛠️ 技术栈

- **后端:** Python 3.10+, Flask
- **数据库:** SQLite
- **前端:** HTML, TailwindCSS, Vue 3 (CDN)
- **AI:** MiniMax API (兼容 Anthropic 格式)

## 📄 许可证

MIT License

---

**Echo Seed - 让每一个想法都有回声** 🌱


path: requirements.txt
content: Flask==3.0.0
requests==2.31.0


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)