Go to file
hailin 16cc0e4c08 feat(agents): implement multi-agent collaboration architecture
借鉴 Claude Code 的架构模式,将单一 Agent 重构为 Coordinator + 6 Specialist 多 Agent 协作系统。

## 新增文件 (36个)

### 架构设计文档 (docs/architecture/, 12个)
- 00-overview.md ~ 11-prompt-templates.md: 完整架构设计,覆盖所有 Agent 的详细设计、
  Prompt 模板、协作流程、工具并发系统、动态上下文注入

### 多 Agent 系统 (infrastructure/agents/, 23个)
- coordinator/coordinator-agent.service.ts: 主协调器,替代 ClaudeAgentServiceV2
- coordinator/agent-loop.ts: 核心递归 async generator 循环(参考 Claude Code aM())
- coordinator/context-injector.service.ts: 动态上下文注入(8种上下文类型按优先级注入)
- specialists/base-specialist.service.ts: Agent 基类(封装 Claude API 调用 + prompt 缓存)
- specialists/policy-expert.service.ts: 政策专家 (Sonnet 4, temp=0)
- specialists/assessment-expert.service.ts: 评估专家 (Sonnet 4, temp=0)
- specialists/strategist.service.ts: 策略顾问 (Sonnet 4, temp=0.3)
- specialists/objection-handler.service.ts: 异议处理 (Sonnet 4, temp=0.2)
- specialists/case-analyst.service.ts: 案例分析 (Haiku, temp=0)
- specialists/memory-manager.service.ts: 记忆管理 (Haiku, temp=0)
- prompts/coordinator-system-prompt.ts: 协调器 Prompt(1095行,13章)
- prompts/{policy,assessment,strategist,objection,case,memory}-*-prompt.ts: 各专家 Prompt
- tools/coordinator-tools.ts: 16个工具定义(6 Agent 调用 + 10 直接工具)
- tools/tool-execution-queue.ts: 并发执行队列(isConcurrencySafe 控制并行/串行)
- types/agent.types.ts: Agent 配置、输入/输出类型定义
- types/stream.types.ts: 流式事件类型(含 agent_start/complete/coordinator_thinking)
- types/context.types.ts: 上下文注入类型
- agents.module.ts: NestJS 模块注册

### 前端 Agent 状态展示 (1个)
- AgentStatusIndicator.tsx: 多 Agent 工作状态组件(含动画)

## 修改文件 (15个)

### 后端集成
- conversation.service.ts: 切换到 CoordinatorAgentService
- conversation.gateway.ts: 新增 agent_start/agent_complete/coordinator_thinking 事件
- claude.module.ts: 引入 AgentsModule
- agents.module.ts: 注册 ImmigrationToolsService(复用旧版生产测试的工具实现)
- knowledge-client.service.ts: 新增 search()/getUserContext() 便捷方法

### 旧代码标记 @deprecated
- claude-agent.service.ts, claude-agent-v2.service.ts
- strategy-engine.service.ts, intent-classifier.ts, response-gate.ts

### 前端适配
- chatStore.ts: 新增 ActiveAgent/CompletedAgent/CoordinatorPhase 状态
- useChat.ts: 新增 WebSocket 事件处理
- ChatWindow.tsx: 集成 AgentStatusIndicator
- globals.css: 新增 agentPulse/agentSlideIn 动画

### 共享类型
- conversation.types.ts: 新增 AGENT_START/AGENT_COMPLETE/COORDINATOR_THINKING 事件

## 核心设计决策

1. **新旧结合**: Coordinator 的 10 个直接工具委托给旧版 ImmigrationToolsService
   (经过生产测试的 Google Search、汇率 API、新闻 API 等),6 个 Agent 调用工具
   走新的 Specialist Agent 系统
2. **递归 async generator**: agent-loop 支持流式输出 + 工具递归 + 成本/轮次控制
3. **并行 Agent 执行**: ToolExecutionQueue 根据 isConcurrencySafe 自动并行/串行
4. **Prompt 缓存**: 所有 Agent 的 system prompt 使用 cache_control: ephemeral
5. **速率限制重试**: 429/529 指数退避,最多 2 次
6. **向后兼容**: LegacyConversationContext 类型别名,StreamChunk 扩展不破坏现有结构

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 04:26:39 -08:00
.claude fix(evolution): handle super admin login without tenant context 2026-01-26 08:20:26 -08:00
database/migrations docs(migration): add is_super_admin column to admins table migration 2026-01-26 08:35:07 -08:00
docs feat(agents): implement multi-agent collaboration architecture 2026-02-06 04:26:39 -08:00
infrastructure feat(multimodal): add file upload and image support for chat 2026-01-10 05:34:41 -08:00
kong feat(kong): add analytics and audit routes for evolution-service 2026-01-25 08:22:30 -08:00
nginx fix(nginx): fix admin location try_files path and add multi-tenancy migrations 2026-01-26 07:46:52 -08:00
packages feat(agents): implement multi-agent collaboration architecture 2026-02-06 04:26:39 -08:00
scripts feat(multi-tenant): add super admin module and user profile pages 2026-01-26 06:41:11 -08:00
.builder.Dockerfile fix(tenant): use TenantContextModule.forRoot() for global tenant context 2026-01-26 04:31:56 -08:00
.dockerignore Initial commit: iConsulting 香港移民咨询智能客服系统 2026-01-09 00:01:12 -08:00
.env.example feat(embedding): add OpenAI proxy support for IP-based URLs 2026-01-23 05:42:22 -08:00
.gitignore Initial commit: iConsulting 香港移民咨询智能客服系统 2026-01-09 00:01:12 -08:00
README.md docs: add link to Agent Evaluation Report in README 2026-01-23 04:56:27 -08:00
deploy.sh feat(multi-tenant): add super admin module and user profile pages 2026-01-26 06:41:11 -08:00
docker-compose.yml feat(multi-tenant): add super admin module and user profile pages 2026-01-26 06:41:11 -08:00
iconsulting部署架构.jpg Initial commit: iConsulting 香港移民咨询智能客服系统 2026-01-09 00:01:12 -08:00
package.json feat(multi-tenant): add super admin module and user profile pages 2026-01-26 06:41:11 -08:00
pnpm-lock.yaml feat(multi-tenant): apply tenant middleware and refactor repositories 2026-01-25 18:30:31 -08:00
pnpm-workspace.yaml Initial commit: iConsulting 香港移民咨询智能客服系统 2026-01-09 00:01:12 -08:00
tsconfig.base.json Initial commit: iConsulting 香港移民咨询智能客服系统 2026-01-09 00:01:12 -08:00
turbo.json refactor(services): implement 4-layer Clean Architecture for all backend services 2026-01-24 22:18:22 -08:00
优才.jpg docs: add QMAS (优才计划) reference image 2026-01-22 23:47:03 -08:00
香港移民类别.jpg Initial commit: iConsulting 香港移民咨询智能客服系统 2026-01-09 00:01:12 -08:00

README.md

iConsulting - 香港移民在线咨询系统

基于 Claude Agent SDK 的智能在线客服系统,专注于提供香港移民咨询服务。

功能特性

  • 智能咨询: 基于 Claude Agent SDK 的自然语言对话
  • 付费评估: 移民资格评估服务,支持支付宝/微信/信用卡
  • 知识增强: RAG + Neo4j 知识图谱
  • 自我进化: 从对话中学习,根据管理员指令调整
  • 长期记忆: 基于时间线的知识图谱记录
  • 多端支持: PC Web / H5 响应式设计

支持的移民类别

  1. 优才计划 (QMAS) - 行业翘楚、精英人士
  2. 专才计划 (GEP) - 专业人才
  3. 留学IANG - 非本地毕业生
  4. 高才通 (TTPS) - 高端人才
  5. 投资移民 (CIES) - 投资者
  6. 科技人才 (TechTAS) - 科技领域人才

技术架构

├── 前端 (Clean Architecture)
│   ├── React 18 + TypeScript
│   ├── TailwindCSS + Radix UI
│   └── Zustand + React Query
│
├── 后端 (DDD + Hexagonal + 微服务)
│   ├── NestJS
│   ├── Claude Agent SDK
│   └── TypeORM
│
└── 基础设施
    ├── PostgreSQL + pgvector (RAG)
    ├── Neo4j (知识图谱)
    ├── Redis (缓存)
    └── Kafka (消息队列)

项目结构

iconsulting/
├── packages/
│   ├── shared/                 # 共享类型、常量、工具
│   ├── web-client/             # 用户端 Web 应用
│   ├── admin-client/           # 管理端 Web 应用
│   └── services/               # 后端微服务
│       ├── api-gateway/        # API 网关
│       ├── user-service/       # 用户服务
│       ├── conversation-service/ # 对话服务 (核心)
│       ├── knowledge-service/  # 知识服务
│       ├── payment-service/    # 支付服务
│       ├── admin-service/      # 管理服务
│       └── evolution-service/  # 进化服务
│
├── infrastructure/
│   └── docker/                 # Docker 配置
│
├── DEVELOPMENT_GUIDE.md        # 详细开发指导
└── README.md

快速开始

1. 安装依赖

# 安装 pnpm (如果没有)
npm install -g pnpm

# 安装项目依赖
pnpm install

2. 启动基础设施

# 启动 Docker 容器 (PostgreSQL, Neo4j, Redis, Kafka)
pnpm docker:dev

3. 配置环境变量

# 复制环境变量示例文件
cp .env.example .env

# 编辑 .env 文件,填入必要的配置
# 特别是 ANTHROPIC_API_KEY

4. 运行数据库迁移

pnpm db:migrate

5. 启动开发服务器

# 启动所有服务
pnpm dev

访问:

环境变量

关键配置项:

# Claude API
ANTHROPIC_API_KEY=sk-ant-xxx

# 数据库
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_USER=iconsulting
POSTGRES_PASSWORD=your_password
POSTGRES_DB=iconsulting

# Neo4j
NEO4J_URI=bolt://localhost:7687
NEO4J_USER=neo4j
NEO4J_PASSWORD=your_password

# 支付 (支付宝/微信)
ALIPAY_APP_ID=xxx
WECHAT_APP_ID=xxx

完整配置请参考 .env.example

文档

文档 说明
架构文档 系统整体架构、服务职责、数据流、部署配置
Agent 评估报告 Agent 能力评估、成熟度分析、升级路线图
开发指南 详细开发指导、代码示例、API 设计
MinIO 配置 对象存储配置说明

开发进度

已完成

  • 项目架构设计
  • 开发指导文档
  • Monorepo 配置
  • 共享类型定义
  • Docker 基础设施配置
  • 数据库 Schema
  • 对话服务 (Claude Agent SDK 集成)
  • 用户端前端基础框架

进行中

  • 用户服务
  • 知识服务 (RAG + Neo4j)
  • 支付服务
  • 管理服务 (自我进化)
  • 管理后台前端

贡献指南

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m 'Add some amazing feature')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 创建 Pull Request

许可证

私有项目,保留所有权利。