Skip to content

[refactor] 统一三鹦鹉架构 - UniversalParrot 重构 #125

@hrygo

Description

@hrygo

背景

当前三只鹦鹉(MemoParrot、ScheduleParrotV2、AmazingParrot)存在以下问题:

  • ~70% 代码重复:ReAct 循环、缓存、统计等逻辑高度重复
  • 架构不统一:ScheduleParrotV2 使用 Native Tool Calling,其他使用 ReAct
  • 扩展困难:新增能力需要修改多处代码

目标

创建 UniversalParrot 统一基类,三只鹦鹉仅在 Prompt工具链 上有差异。

架构决策

基于 Agent 设计模式调研报告,确认以下决策:

决策点 选择 说明
Q1: 架构模式 Centralized Orchestrator Anthropic 模式,统一调度
Q2: ScheduleParrotV2 统一到 ReAct + 快速通道 保留简单 CRUD 的 Native 调用路径
Q3: Prompt 管理 PromptRegistry 集中 扩展现有基础设施
Q4: 工具链管理 能力声明式 考虑未来扩展性
Q5: 兼容策略 一次性大重构 破坏性变更,同步更新所有调用方

详细设计文档

UniversalParrot 统一架构设计文档 已完成 ✅

设计文档包含:

  • 组件架构图
  • 工具集注册表设计
  • 快速通道策略
  • 数据结构定义
  • 5 个实现阶段详解
  • 关键代码实现片段
  • 风险缓解措施

实现计划

Phase 1: UniversalParrot 基类

  • 创建 ai/agent/universal_parrot.go
  • 统一 ReAct 循环引擎
  • 实现快速通道(Native Tool Calling)
  • 能力声明式工具管理
  • 统一 SessionStats 收集

Phase 2: PromptRegistry 扩展

  • 扩展 ai/agent/prompt_registry.go
  • 迁移 MemoParrot prompt
  • 迁移 ScheduleParrotV2 prompt
  • 迁移 AmazingParrot prompt

Phase 3: 三鹦鹉重构

  • 重构 MemoParrot 基于 UniversalParrot
  • 重构 ScheduleParrotV2 基于 UniversalParrot
  • 重构 AmazingParrot 基于 UniversalParrot

Phase 4: 调用方更新

  • 更新 ChatRouter
  • 更新 GeekParrot(如需)
  • 更新所有测试文件

Phase 5: 清理

  • 删除重复代码
  • 更新文档
  • 性能验证

参考文档

验收标准

  • 三只鹦鹉功能与重构前完全一致
  • 代码重复率 < 10%
  • 所有测试通过
  • 性能无明显下降
  • 文档更新完成

Co-Authored-By: Claude Opus 4.6

Metadata

Metadata

Assignees

No one assigned

    Labels

    backendBackend related changesrefactorCode refactoring

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions