Files
qihuaiflow/docs/PRD-self-evolution-v2.md
qyyfw 78ff261b5a 初始提交: Qihu-AIFlow v2.0.1 完整项目
- 前端 React+TypeScript (源码+构建产物)
- 后端 Python FastAPI
- 数据库迁移 001-015
- Docker部署配置
- 微信ClawBot API频道绑定
- 项目文档 README.md
2026-07-02 14:40:46 +08:00

35 KiB
Raw Permalink Blame History

AI自进化功能模块 第二版迭代 - 产品需求文档(PRD v2)


1. 概述(Summary)

本文档为Qihu-AIFlow平台「AI自进化」功能模块的第二版迭代PRD。基于第一版已完成的功能(14个API端点、5张数据库表、4面板驾驶舱、对话轨迹提交钩子)和测试报告中识别的9项GAP,进行高阶功能补齐与增强迭代。核心目标:将xSkill完整流水线引擎落地运行,补齐前端交互体验缺失项,实现从「数据展示」到「真实进化」的质变。


2. 联系人(Contacts)

姓名 角色 备注
项目负责人 Team Lead 迭代规划与协调决策
产品经理 Product Manager v2 PRD撰写
UI设计师 UI Designer 萌芽动画、分享卡片、提示标签等前端视觉设计
开发工程师 Developer GAP补全 + 新功能开发
测试工程师 QA Engineer v2全功能测试与回归测试

3. 背景(Background)

3.1 第一版交付回顾

第一版已完成并全部通过测试(44/44用例,100%通过率),交付内容包括:

类别 已交付
后端API 14个端点:技能CRUD(9) + 进化事件(1) + 驾驶舱4面板(4) + 轨迹提交(1),另有对话钩子预留
数据库 4张核心表:evolution_skills, evolution_events, evolution_trajectories, skill_trajectory_links;1张配置表user_evolution_config(已建表但服务层未读写)
前端驾驶舱 631行主组件 + 1019行CSS:技能图谱面板A(分组树+状态色标)、进化时间线面板B(垂直时间线+7类事件筛选)、技能使用统计面板C(排行+趋势柱状图+饼图+低使用提醒)、AI能力画像面板D(等级环+SVG雷达图+标签云+成长建议)
数据隔离 API路由层JWT验证 + 服务层user_id过滤,7/7数据隔离测试通过

3.2 第一版的本质问题

第一版本质上是一个数据展示层——后端存储技能元数据、记录事件、生成驾驶舱数据,前端可视化渲染。但xSkill核心流水线(对话轨迹→AtomTask拆分→向量索引→技能聚类→Skill生成→灰度验证)尚未跑起来:

  • 轨迹提交后状态停留在discovered,没有后续处理
  • xSkill DirectoryWatcher线程未实际启动
  • UserEvolutionConfig表已建但服务层无读写
  • 技能数据为手动写入的演示数据,非真正从对话中进化而来

3.3 第二版目标

第二版解决两个核心问题:

  1. 让进化真正跑起来:落地xSkill流水线自动调度,实现对话→技能的完整自动化链路
  2. 补齐交互体验缺口:实现萌芽动画、时间线导出、画像分享、Skill加载提示等前端互动细节
  3. 增强业务联动:技能市场互通、团队共享、定期报告等增值功能

4. 目标与关键成果(Objective & Key Results)

4.1 迭代目标

在v1数据展示层的基础上,将xSkill完整进化流水线落地运行,补齐前端交互体验GAP,并扩展业务联动能力。

4.2 关键成果(OKR v2)

编号 关键结果 衡量标准 优先级
KR1 xSkill流水线自动调度实现 轨迹提交后自动完成 discovered→splitting→split_done→indexed→clustering→done 全状态流转 P0
KR2 Watcher线程管理上线 用户注册后自动启动、异常自动恢复、状态可监控 P0
KR3 技能回滚功能实现 Git集成回滚可用,回滚后版本号正确、事件记录完整 P0
KR4 前端交互体验GAP全部补齐 萌芽动画、时间线导出、画像分享卡片、Skill加载提示标签全部可用 P1
KR5 业务联动增强功能上线 技能市场互通、团队共享进化、定期进化报告任选2项交付 P2

5. 解决方案(Solution)

5.1 功能总览

第二版新增/增强功能共分为三大类:

  • 核心引擎类(P0):xSkill流水线自动调度、Watcher线程管理、技能回滚
  • 体验增强类(P1):萌芽动画、时间线导出、画像分享卡片、Skill加载提示标签
  • 业务联动类(P2):技能市场互通、团队共享进化、进化报告推送

5.2 P0 核心引擎类功能


功能一:xSkill流水线自动调度(GAP-09)

当前状态:轨迹提交后落盘为.md文件,数据库status="discovered",无后续处理。

目标:实现从轨迹提交到技能生成的完整自动化流水线。

功能点 详细描述
流水线调度器 新增 PipelineScheduler 组件,独立线程定期扫描status=discovered的轨迹,投递到xSkill DirectoryWatcher流水线
状态流转 轨迹经过完整状态机:discovered → splitting(TaskAgent拆分AtomTask)→ split_done → indexed(向量索引构建)→ clustering(TaskClusterAgent聚类到Skill)→ done
AtomTask拆分 调用xSkill TaskAgent按用户意图切换点拆分对话为AtomTask,每个AtomTask落盘为JSON文件到{traj_dir}/tasks/目录
向量索引构建 对AtomTask的summary/intent做embedding(使用用户专属的embed_client),构建index.pkl索引文件
技能聚类 TaskClusterAgent对每个新AtomTask做向量相似度搜索定位已有Skill,归类到最匹配Skill的.candidates.yml候选缓冲区
Skill生成触发 当某Skill的candidates buffer累计weightscore ≥ 10时,自动触发SkillEditAgent生成/更新SKILL.md
灰度验证 Skill更新后进入staging分支,AtomCanary收集UX评分(每条atom独立打分1-10分),集齐5条后与main分支均分比较:staging均分 ≥ main则promote合入主干,否则reject丢弃
资源管理 每个用户独立LLM调用(使用用户自己的LLM API配额),调度间隔可配置(默认30秒),支持低峰期批量处理积压轨迹
错误处理 单条atom聚类失败不阻塞整条轨迹,自动重试最多3次,超过阈值记录错误日志并跳过

新增API:

接口 方法 说明
/app/api/evolution/pipeline/status GET 获取当前用户流水线运行状态(运行中/空闲/异常,待处理轨迹数,已完成轨迹数)
/app/api/evolution/pipeline/trigger POST 手动触发一次流水线调度(立即扫描并处理discovered轨迹)

数据库变更:

变更类型 表/字段 说明
新增字段 evolution_trajectories.error_msg 记录轨迹处理失败的错误信息(VARCHAR 500)
新增字段 evolution_trajectories.retry_count 记录重试次数,默认0
新增字段 evolution_trajectories.tasks_extracted 记录该轨迹拆分出的AtomTask数量

技术实现要点:

# PipelineScheduler 核心逻辑伪代码
class PipelineScheduler:
    """每30秒扫描一次,将discovered轨迹投递到xSkill流水线"""
    
    def __init__(self, user_id: str, xskill_instance: XSkill, 
                 store: AtomTaskStore, db_session_factory):
        self.user_id = user_id
        self.xskill = xskill_instance
        self.store = store
        self.poll_interval = 30  # 秒
        self._stop = threading.Event()
    
    def run(self):
        while not self._stop.is_set():
            discovered = self._get_discovered_trajectories()
            for traj in discovered:
                # 1. 标准化轨迹格式
                md_path = Path(traj.file_path)
                # 2. TaskAgent拆分
                atoms = TaskAgent(llm=self.xskill.llm, store=self.store).run(
                    traj_id=md_path.stem, traj_path=md_path
                )
                # 3. 更新状态
                self._update_traj_status(traj.id, "split_done", tasks_extracted=len(atoms))
                # 4. 向量索引
                self.store.rebuild_vector_index(self.xskill.embed)
                self._update_traj_status(traj.id, "indexed")
                # 5. 逐个atom聚类
                for atom in atoms:
                    process_atom_task(atom_id=atom.atom_id, ...)
                self._update_traj_status(traj.id, "done")
            self._stop.wait(self.poll_interval)

功能二:xSkill Watcher线程管理(GAP-08)

当前状态:UserEvolutionConfig表已建但服务层无读写,watcher线程未启动。

目标:完整的watcher线程生命周期管理。

功能点 详细描述
自动启动 用户首次登录或注册时,UserLifecycleService自动初始化用户进化环境:创建技能仓库目录、轨迹目录、配置文件,启动watcher线程
WatcherManager 全局单例管理所有用户的watcher线程,提供start/stop/restart/status接口
状态监控 watcher状态(运行中/空闲/异常)+ 处理统计(已处理轨迹数/技能数/错误数)可通过API查询
异常恢复 watcher线程异常退出时,3次自动重试启动;持续失败记录到user_evolution_config.watcher_error字段并告警
优雅关闭 服务关闭时,依次stop所有watcher线程,等待当前任务完成(最长5秒),然后强制关闭
资源限制 单服务器最大并发watcher线程数可配置(默认100),超出时新用户排队等待

服务层新增方法:

class EvolutionWatcherManager:
    """全局watcher线程管理器(单例)"""
    _watchers: dict[str, DirectoryWatcher] = {}
    _schedulers: dict[str, PipelineScheduler] = {}
    
    def start_user_evolution(self, user_id: str) -> bool:
        """为用户启动进化引擎(初始化目录 + 配置 + watcher + scheduler)"""
    
    def stop_user_evolution(self, user_id: str) -> bool:
        """停止用户进化引擎"""
    
    def get_user_status(self, user_id: str) -> dict:
        """获取用户进化引擎状态"""
    
    def restart_user_evolution(self, user_id: str) -> bool:
        """重启用户进化引擎(用于异常恢复)"""

新增API:

接口 方法 说明
/app/api/evolution/watcher/status GET 获取当前用户watcher状态与统计
/app/api/admin/evolution/watchers GET [管理员] 查看全平台所有用户watcher状态汇总

功能三:技能回滚API(GAP-01)

当前状态:技能管理API缺少回滚端点,前端无回滚UI。

目标:支持将技能恢复到任意历史版本,依赖Git版本管理。

功能点 详细描述
回滚逻辑 通过xSkill的rollback_skill()函数实现:git checkout指定commit的SKILL.md,version号自增,记录回滚事件
版本历史 复用已有的/skills/{skill_name}/history端点,返回事件列表(含version_before/version_after),每个历史版本对应一个可回滚的目标
前端交互 在技能详情弹窗中增加「版本历史」按钮,打开版本列表弹窗(时间线展示),每条记录右侧有「回滚到此版本」按钮
回滚确认 点击回滚前弹出二次确认:「确认回滚到版本 V{N}?当前版本 V{M} 的修改将被撤销」
回滚后行为 回滚成功后:SKILL.md恢复到目标版本内容、version字段+1、记录event_type="rolled_back"的进化事件、技能详情弹窗刷新显示最新状态
审计追溯 回滚操作在evolution_events表中保留完整记录:version_before(回滚前版本号)、version_after(回滚后版本号)、description("版本 V5 回滚至 V3")

新增API:

接口 方法 说明
/app/api/evolution/skills/{skill_name}/rollback/{version} POST 将技能回滚到指定版本号

前端新增组件:

  • VersionHistoryModal:版本历史弹窗,时间线展示,每行显示版本号、事件类型、时间、操作按钮
  • 回滚确认弹窗

5.3 P1 体验增强类功能


功能四:新技能萌芽动画(GAP-03)

当前状态:技能图谱面板(Panel A)有状态色标标识(baby=粉色),但无动画效果。

目标:baby状态(萌芽中)的技能节点有CSS动画,增强「养龙虾」的沉浸感。

功能点 详细描述
动画效果 baby状态技能节点:周期性缩放脉冲(scale 1.0→1.15→1.0,周期2s)+ 淡入淡出光晕(box-shadow从粉色扩散到透明)+ 节点上方有🌱图标微微摆动
动画触发 页面加载时检测是否有baby状态技能,有则自动播放动画,无则静态展示
动画性能 使用CSS @keyframes + transform(GPU加速),不触发重排
动画开关 默认开启,用户可在面板右上角关闭动画(偏好持久化到localStorage)
staging动画 staging状态技能节点:橙色脉冲呼吸动画(scale 1.0→1.08→1.0,周期3s),表示「灰度测试中」

CSS动画定义(核心片段):

/* baby技能萌芽动画 */
.skill-node.state-baby {
    animation: baby-sprout 2s ease-in-out infinite;
}
@keyframes baby-sprout {
    0%, 100% { 
        transform: scale(1); 
        box-shadow: 0 0 0 0 rgba(255, 182, 193, 0.4); 
    }
    50% { 
        transform: scale(1.15); 
        box-shadow: 0 0 20px 4px rgba(255, 182, 193, 0); 
    }
}

/* staging技能呼吸动画 */
.skill-node.state-staging {
    animation: staging-breathe 3s ease-in-out infinite;
}
@keyframes staging-breathe {
    0%, 100% { transform: scale(1); opacity: 0.8; }
    50% { transform: scale(1.08); opacity: 1; }
}

功能五:时间线导出(GAP-04)

当前状态:进化时间线面板(Panel B)展示事件列表,但无导出功能。

目标:支持将进化时间线导出为PNG图片或PDF文件。

功能点 详细描述
导出入口 时间线面板右上角「导出」按钮,下拉菜单:导出为PNG / 导出为PDF
PNG导出 使用html2canvas库将时间线DOM节点截图为PNG,支持选择导出时间范围(最近7天/30天/全部)
PDF导出 使用jsPDF库将时间线内容生成PDF,A4纵向,含标题「我的AI进化时间线」+ 生成日期 + 底部水印「Qihu-AIFlow」
导出范围 导出时遵循当前筛选条件(事件类型筛选、时间范围),所见即所得
文件命名 导出文件名格式:AI进化时间线_{用户名}_{日期}.png/pdf
隐私保护 导出内容仅包含用户自己的进化数据,不含任何其他用户信息

功能六:画像分享卡片(GAP-05)

当前状态:AI能力画像面板(Panel D)展示等级、雷达图、标签云,但无分享功能。

目标:支持将AI能力画像生成为精美分享卡片图片,可保存或在社交媒体分享。

功能点 详细描述
分享入口 画像面板右上角「分享」按钮
卡片设计 750x1334像素竖版卡片:顶部平台Logo + 标题「我的AI进化画像」;中部环形进度条(等级Lv.X + 称号);雷达图(简化版,6维度);能力标签云;底部二维码(扫码体验平台)+ 日期水印
隐私控制 卡片仅包含能力维度值和等级,不包含具体技能名称、对话内容等私密数据
生成方式 使用html2canvas对隐藏的卡片DOM元素截图,Canvas转Blob后触发下载或调用系统分享API
分享渠道 「保存到相册」、「复制图片」、「分享到微信」(如果是移动端环境)
个性化 卡片背景支持3种主题色切换(深空蓝/极光绿/暖阳橙)

功能七:Skill加载提示标签(GAP-06)

当前状态:AI聊天时没有提示当前是否使用了进化技能。

目标:在AI回复消息下方显示「使用了专属进化技能」的提示标签。

功能点 详细描述
标签位置 AI回复消息气泡下方,以小型tag形式展示
标签样式 圆角标签,左侧🚀emoji图标,文字:「使用了专属技能:{技能名}」,底色半透明主题色
显隐逻辑 仅当本轮对话中AI实际调用了用户自进化生成的Skill时才显示,否则不显示
多技能 单条回复可能触发多个Skill,多个标签横向排列,最多展示3个,超出显示「+N」折叠
点击交互 点击标签跳转到该技能详情(驾驶舱技能图谱面板中定位到该技能节点)
数据来源 后端AI聊天接口返回的used_skills字段(字符串数组),前端根据该字段渲染标签
后端联动 AI聊天接口 /app/api/chat/send 返回体中新增 used_skills 字段:{"reply": "...", "used_skills": ["python_debug_skill", "code_review_skill"]}

后端联动变更:

聊天消息表新增字段:

变更 表/字段 说明
新增字段 messages.used_skills JSON数组,记录该轮对话AI调用的进化技能名列表
新增字段 evolution_skills.use_count 自增逻辑 每次AI回复触发该技能时use_count+1,更新last_used_at

5.4 P2 业务联动类功能


功能八:技能市场与进化技能联动

目标:用户可将进化出的优质技能(state=main、评分≥7)一键发布到应用市场的Skills分类中。

功能点 详细描述
发布入口 技能详情弹窗中,对于state=main的技能增加「发布到市场」按钮
发布流程 点击后弹出发布表单:设置价格(可免费)、填写市场描述、选择分类(Skills)、确认发布。发布后的技能在应用市场可见,其他用户可购买/安装
发布条件 仅state=main的技能可发布;staging/baby状态不可发布(灰度/萌芽中的技能不成熟)
版本同步 技能在市场发布后,若技能后续发生进化更新(新版本灰度通过promote),市场版本同步更新
收益归属 技能发布者获取售卖收益(按平台分成规则)
市场标识 市场中的技能卡片标注「🦞 进化技能」标识,区别于普通上传应用

实现要点:

  • 后端:EvolutionService.publish_to_market(skill_name) → 在market_apps表中创建记录
  • 前端:技能详情弹窗增加发布按钮和表单

功能九:团队共享进化

目标:团队成员可以互相借鉴技能,促进团队AI能力共同提升。

功能点 详细描述
共享开关 用户可为每个技能设置「团队可见」开关(默认关闭),开启后该技能在团队空间内可见
团队技能池 在团队空间中新增「团队技能」标签页,展示所有团队成员共享的技能
借鉴机制 团队成员可查看共享技能的SKILL.md内容,并「复制到我的技能库」(复制后为独立的技能副本,后续各自进化互不影响)
借鉴溯源 复制的技能标注「来源:{原主人昵称}的{原技能名}」,尊重原创
权限控制 仅团队成员可见共享技能,非团队成员不可见

注意:此功能与第一版PRD中预留的「AI团队协作空间」扩展模块联动。团队空间表结构已预留,本次补充功能逻辑。


功能十:进化报告定期推送

目标:定期生成用户的AI进化报告,通过消息通知中心推送。

功能点 详细描述
报告周期 每周一自动生成上周进化周报;每月1日生成上月月报
报告内容 本期新增技能数、技能升级数(baby→main)、最活跃技能TOP3、总调用次数、进化等级变化、能力维度增长、与上期对比数据
推送方式 报告生成后通过消息通知中心推送,用户点击通知跳转到驾驶舱查看完整报告
报告页面 驾驶舱新增「进化报告」子面板,展示历史报告列表,支持查看任意一期报告
后台任务 使用Celery/APScheduler定时任务,每周一凌晨2点批量生成所有用户的周报

新增API:

接口 方法 说明
/app/api/evolution/reports GET 获取用户的历史进化报告列表
/app/api/evolution/reports/{report_id} GET 获取指定报告的详细内容

5.5 系统架构变更

┌─────────────────────────────────────────────────────────────────────────┐
│                      后端 - v2增强                                       │
│                                                                         │
│  ┌──────────────────┐   ┌──────────────────┐   ┌──────────────────┐    │
│  │ WatcherManager  │   │ PipelineScheduler│   │ EvolutionReport  │    │
│  │ (全局单例)       │   │ (每用户)          │   │ Generator       │    │
│  │                  │   │                  │   │ (定时任务)       │    │
│  │ start/stop/      │   │ 30s扫描          │   │ 每周一 02:00     │    │
│  │ restart/status   │   │ discovered→done  │   │ 批量生成周报     │    │
│  └────────┬─────────┘   └────────┬─────────┘   └────────┬─────────┘    │
│           │                      │                      │              │
│           └──────────────────────┼──────────────────────┘              │
│                                  ▼                                      │
│                    ┌─────────────────────────┐                          │
│                    │   xSkill 进化引擎        │                          │
│                    │                         │                          │
│                    │ Trajectory → TaskAgent  │                          │
│                    │    → AtomTask           │                          │
│                    │    → TaskClusterAgent   │                          │
│                    │    → SkillEditAgent     │                          │
│                    │    → AtomCanary         │                          │
│                    └───────────┬─────────────┘                          │
│                                │                                        │
│           ┌────────────────────┼────────────────────┐                   │
│           ▼                    ▼                    ▼                   │
│  ┌────────────────┐  ┌────────────────┐  ┌────────────────┐           │
│  │ EvolutionService│  │ 技能市场联动   │  │ 团队共享进化    │           │
│  │ + rollback_skill│  │ publish_to_   │  │ share_to_team  │           │
│  │ + watcher_status│  │ market()      │  │ ()             │           │
│  │ + pipeline_stats│  │                │  │                │           │
│  └────────────────┘  └────────────────┘  └────────────────┘           │
└─────────────────────────────────────────────────────────────────────────┘
                                  │
                                  ▼
┌─────────────────────────────────────────────────────────────────────────┐
│                      前端 - v2增强                                       │
│                                                                         │
│  技能图谱面板A          进化时间线面板B       AI能力画像面板D             │
│  ┌─────────────────┐   ┌─────────────────┐   ┌─────────────────┐       │
│  │ 🆕 baby萌芽动画  │   │ 🆕 导出PNG/PDF  │   │ 🆕 分享卡片     │       │
│  │ 🆕 staging呼吸  │   │    下拉菜单      │   │    主题切换     │       │
│  │    动画          │   │                  │   │                 │       │
│  └─────────────────┘   └─────────────────┘   └─────────────────┘       │
│                                                                         │
│  AI聊天页面                    技能详情弹窗                              │
│  ┌─────────────────┐          ┌─────────────────┐                      │
│  │ 🆕 Skill加载提示 │          │ 🆕 版本历史+回滚 │                      │
│  │    标签          │          │ 🆕 发布到市场    │                      │
│  └─────────────────┘          │ 🆕 团队共享开关  │                      │
│                               └─────────────────┘                      │
└─────────────────────────────────────────────────────────────────────────┘

5.6 完整API接口清单(v1已有 + v2新增)

接口 方法 版本 说明
/app/api/evolution/skills GET v1 获取技能列表
/app/api/evolution/skills/{name} GET v1 获取技能详情
/app/api/evolution/skills/{name} PUT v1 编辑技能
/app/api/evolution/skills/{name} DELETE v1 删除技能
/app/api/evolution/skills/{name}/freeze POST v1 冻结技能
/app/api/evolution/skills/{name}/unfreeze POST v1 解冻技能
/app/api/evolution/skills/{name}/history GET v1 技能版本历史
/app/api/evolution/skills/{name}/trajectories GET v1 技能来源轨迹
/app/api/evolution/skills/{name}/rollback/{version} POST v2 新增 回滚技能到指定版本
/app/api/evolution/skills/{name}/publish POST v2 新增 发布技能到应用市场
/app/api/evolution/skills/{name}/share-to-team POST v2 新增 设置技能团队共享
/app/api/evolution/events GET v1 进化事件列表
/app/api/evolution/dashboard/skill-tree GET v1 技能图谱数据
/app/api/evolution/dashboard/timeline GET v1 进化时间线数据
/app/api/evolution/dashboard/statistics GET v1 技能使用统计
/app/api/evolution/dashboard/profile GET v1 AI能力画像数据
/app/api/evolution/trajectory/submit POST v1 提交对话轨迹
/app/api/evolution/pipeline/status GET v2 新增 流水线运行状态
/app/api/evolution/pipeline/trigger POST v2 新增 手动触发流水线
/app/api/evolution/watcher/status GET v2 新增 Watcher状态与统计
/app/api/evolution/reports GET v2 新增 进化报告列表
/app/api/evolution/reports/{id} GET v2 新增 进化报告详情
/app/api/admin/evolution/watchers GET v2 新增 [管理] 全平台watcher汇总

v1已有14个端点,v2新增9个端点,总计23个端点。


5.7 数据库变更

5.7.1 现有表新增字段

表名 新增字段 类型 说明
evolution_trajectories error_msg VARCHAR(500) 轨迹处理失败的错误信息
evolution_trajectories retry_count INT DEFAULT 0 失败重试次数
evolution_trajectories tasks_extracted INT DEFAULT 0 拆分的AtomTask数量
messages used_skills JSON 该轮对话调用的进化技能名列表
user_evolution_config watcher_error VARCHAR(500) watcher异常信息

5.7.2 新增表

表名 说明 核心字段
evolution_reports 进化报告表 id, user_id, report_type(weekly/monthly), period_start, period_end, report_data(JSON), created_at
team_shared_skills 团队共享技能表 id, team_id, skill_id, shared_by, created_at
skill_publish_records 技能市场发布记录表 id, skill_id, market_app_id, published_by, status(已发布/已下架), created_at

5.8 关键假设与约束

编号 假设/约束 风险等级
A1 xSkill v0.5.2的TaskAgent、TaskClusterAgent、SkillEditAgent在当前环境下可正常运行 中
A2 每用户独立LLM调用不会超出API配额限制 中
A3 单服务器100并发watcher线程在硬件上可行 低
C1 v2不改变v1已有API的请求/响应格式,保证向后兼容 强约束
C2 进化流水线使用用户自有LLM配额(与聊天共用),不额外计费 设计决策
C3 技能回滚的Git操作在每用户独立skill仓库内完成,不影响其他用户 强约束
C4 画像分享卡片仅暴露聚合数据,不暴露具体技能名和对话内容 隐私约束

6. 功能需求清单

v2新增功能清单(共10项功能,34个功能点)

序号 优先级 模块 功能点
1 P0 xSkill流水线调度 PipelineScheduler组件
2 P0 xSkill流水线调度 轨迹状态自动流转(discovered→done)
3 P0 xSkill流水线调度 AtomTask拆分与存储
4 P0 xSkill流水线调度 向量索引构建
5 P0 xSkill流水线调度 技能聚类与生成触发
6 P0 xSkill流水线调度 灰度A/B验证自动判定
7 P0 xSkill流水线调度 流水线状态查询API
8 P0 xSkill流水线调度 手动触发流水线API
9 P0 Watcher线程管理 WatcherManager全局管理器
10 P0 Watcher线程管理 用户注册/登录自动启动watcher
11 P0 Watcher线程管理 watcher状态监控API
12 P0 Watcher线程管理 异常自动恢复(3次重试)
13 P0 Watcher线程管理 优雅关闭机制
14 P0 技能回滚 回滚到指定版本API
15 P0 技能回滚 版本历史弹窗(前端)
16 P0 技能回滚 回滚确认弹窗
17 P1 萌芽动画 baby技能萌芽CSS动画
18 P1 萌芽动画 staging技能呼吸CSS动画
19 P1 萌芽动画 动画开关(localStorage持久化)
20 P1 时间线导出 PNG导出(html2canvas)
21 P1 时间线导出 PDF导出(jsPDF)
22 P1 时间线导出 时间范围选择 + 筛选联动
23 P1 画像分享卡片 分享卡片生成(html2canvas)
24 P1 画像分享卡片 3种主题色切换
25 P1 画像分享卡片 保存/复制/分享操作
26 P1 Skill加载提示标签 消息下方标签渲染
27 P1 Skill加载提示标签 多技能折叠(+N)
28 P1 Skill加载提示标签 点击标签跳转技能详情
29 P1 Skill加载提示标签 聊天接口返回used_skills字段
30 P2 技能市场联动 技能发布到市场
31 P2 技能市场联动 市场进化技能标识
32 P2 团队共享进化 技能团队共享开关
33 P2 团队共享进化 团队技能池+借鉴复制
34 P2 进化报告推送 周报/月报自动生成与推送

7. 版本规划

7.1 第二版交付范围

一次性交付全部P0+P1功能,P2功能选择技能市场联动+进化报告推送两项:

交付物 优先级 内容说明
xSkill流水线自动调度 P0 PipelineScheduler + 6状态流转 + AtomTask拆分/索引/聚类/Skill生成 + 灰度验证
Watcher线程管理 P0 WatcherManager + 自动启动 + 状态监控 + 异常恢复 + 优雅关闭
技能回滚 P0 rollback API + 前端版本历史弹窗 + 回滚确认 + Git集成
萌芽动画 P1 baby/staging状态CSS动画 + 动画开关
时间线导出 P1 PNG/PDF导出 + 时间范围选择
画像分享卡片 P1 分享卡片生成 + 主题切换 + 保存分享操作
Skill加载提示标签 P1 AI聊天消息下方标签 + 多技能折叠 + 点击跳转
技能市场联动 P2 技能一键发布到市场 + 进化技能标识
进化报告推送 P2 周报/月报自动生成 + 消息推送 + 报告查看页面

7.2 后续迭代方向

方向 说明
团队共享进化 与AI团队协作空间联动(P2剩余项)
多模型进化 不同模型独立进化不同技能体系
进化加速 用户可消耗更多Token加速流水线扫描频率
进化质量排行榜 平台级技能质量排行,激励用户培养高质量技能

附录:v2与v1差异对照表

维度 v1(已交付) v2(本次迭代)
API端点 14个 23个(+9)
数据库表 5张 8张(+3)
进化引擎 数据展示层 真实xSkill流水线运行
轨迹处理 仅落盘(status=discovered) 完整6状态流转到done
Watcher 未启动 WatcherManager全生命周期管理
技能回滚 无 Git集成回滚+前端UI
动画效果 静态色标 baby萌芽动画+staging呼吸动画
导出分享 无 时间线PNG/PDF+画像分享卡片
聊天联动 无 Skill加载提示标签+used_skills字段
业务联动 无 技能市场发布+进化报告推送
前端代码量 ~1650行(TSX+CSS) 预计新增~600行

文档状态:已定稿
创建日期:2026-05-29
文档版本:v2.0
基于:PRD v1.0 + 测试用例报告 + 测试GAP清单 + evolution_service.py (495行) + evolution.py (215行)