# 英语句子扩写智能体

> 基于多智能体协作的英语写作教练应用，通过记者提问法将简单英文句子逐步扩写为高级长句

## 📝 项目简介

本项目是一个创新的英语写作学习工具，旨在帮助英语学习者通过系统化的方法提升写作能力。项目采用多智能体协作架构，模拟真实的写作教学场景：

- **解决什么问题？**
  - 英语学习者常面临句子简单、缺乏变化的问题
  - 传统写作练习缺乏系统性的指导和反馈
  - 难以掌握从简单句到复杂句的渐进式扩写技巧

- **有什么特色功能？**
  - 记者提问法：通过三个阶段的针对性提问，引导学生逐步扩写句子
  - 双模式交互：支持手动模式（逐步引导）和自动模式（一键演示）
  - 实时语法点评：智能评估学生提交的句子，提供语法纠错和改进建议
  - 满分润色：基于三轮扩写记录，生成润色后的高级句子和结构分析

- **适用于什么场景？**
  - 英语写作教学和练习
  - 句子扩写技巧学习
  - 语法结构进阶训练
  - 自主学习和教师辅助教学

## ✨ 核心功能

- [x] **手动模式**：逐步引导，逐阶段回答记者提问，适合深度学习
- [x] **自动模式**：一键自动演示全过程，适合快速了解和展示
- [x] **三阶段扩写流程**：
  - Stage 1：增加细节（使用形容词、副词等修饰成分）
  - Stage 2：增加时空背景（使用介词短语补充时间或地点信息）
  - Stage 3：增加结构深度（使用非谓语动词、定语从句或状语从句修饰）
- [x] **智能语法点评**：实时评估语法正确性，提供纠错建议
- [x] **最终润色生成**：基于三轮扩写记录生成满分句子和结构分析
- [x] **SSE流式传输**：自动模式支持实时流式推送，提升用户体验

## 🛠️ 技术栈

### 前端技术
- **Vue 3**：渐进式 JavaScript 框架
- **TypeScript**：类型安全的 JavaScript 超集
- **Vite**：新一代前端构建工具
- **Pinia**：Vue 3 官方状态管理库
- **SSE (Server-Sent Events)**：服务器推送技术，用于自动模式的实时流式传输

### 后端技术
- **FastAPI**：现代、高性能的 Python Web 框架
- **HelloAgents框架**：多智能体协作框架
- **Pydantic**：数据验证和设置管理

### 智能体架构
项目采用多智能体协作范式，包含以下核心 Agent：

1. **OrchestratorAgent（流程调度 Agent）**
   - 负责整体流程调度和状态管理
   - 协调其他 Agent 的协作
   - 决定下一阶段的执行策略

2. **InterviewerAgent（记者提问 Agent）**
   - 扮演记者角色，根据当前阶段生成针对性提问
   - 提供语法结构提示和示范改写
   - 三个阶段各有不同的提问策略

3. **EvaluatorAgent（语法点评 Agent）**
   - 对学生提交的句子进行语法评估
   - 提供详细的点评和纠错建议
   - 判断句子是否符合阶段目标

4. **PolisherAgent（满分润色 Agent）**
   - 接收三轮扩写的完整记录
   - 生成润色后的满分句子
   - 提供语法结构分析和亮点总结

5. **AutoModeAgent（自动演示 Agent）**
   - 自动完成三轮扩写流程
   - 模拟学生回答和智能体反馈
   - 通过 SSE 流式推送进度

## 🚀 快速开始

### 环境要求

- Python 3.10+
- Node.js 16+
- npm 或 yarn

### 后端设置

1. **进入后端目录**
```bash
cd backend
```

2. **创建虚拟环境**
```bash
python -m venv .venv
```

3. **激活虚拟环境**
```bash
# Windows
.venv\Scripts\activate

# macOS/Linux
source .venv/bin/activate
```

4. **安装依赖**
```bash
pip install -r requirements.txt
```

5. **配置环境变量**
```bash
# 复制环境变量模板
cp .env.example .env

# 编辑 .env 文件，填入你的 API 配置
```

6. **启动后端服务**
```bash
python src/main.py
```

后端服务将在 `http://localhost:8000` 启动

### 前端设置

1. **进入前端目录**
```bash
cd frontend
```

2. **安装依赖**
```bash
npm install
```

3. **配置环境变量**
```bash
# 复制环境变量模板
cp .env.example .env

# 编辑 .env 文件，配置后端 API 地址
# VITE_API_BASE_URL=http://localhost:8000
```

4. **启动开发服务器**
```bash
npm run dev
```

前端应用将在 `http://localhost:3000` 启动（具体端口以终端输出为准）

### 访问应用

打开浏览器访问前端地址，即可开始使用英语句子扩写智能体。

## 📖 使用示例

### 手动模式示例

1. **输入种子句**
   ```
   I like reading.
   ```

2. **选择手动模式并开始**

3. **Stage 1 - 增加细节**
   - 记者提问："你有多喜欢读什么样风格或题材的书籍相关内容呢？"
   - 学生回答："I really like reading science fiction novels."
   - 语法点评："很棒！你在动词like前加了表示程度的副词really，在名词novels前加了复合形容词science fiction，完美符合本阶段添加修饰细节的目标。"

4. **Stage 2 - 增加时空背景**
   - 记者提问："你通常喜欢在什么时候、什么地点读科幻小说呢？"
   - 学生回答："I really like reading science fiction novels in my free time at my home."
   - 语法点评："很好地延续了上阶段对动词和名词的修饰，还精准补充了记者提问中涉及的时间和地点背景，介词短语使用准确。"

5. **Stage 3 - 增加结构深度**
   - 记者提问："你喜欢在家空闲时间读的科幻小说通常有什么吸引人的核心特点，或者你喜欢读这类小说的具体深层原因是什么？"
   - 学生回答："I really like reading science fiction novels in my free time at my home because they stimulate my imagination and take me to new worlds."
   - 语法点评："非常出色！你不仅延续了前两个阶段对动词、名词、时间地点的修饰，还精准添加了记者提问想要的逻辑因果状语从句作为右分支结构，内容紧扣主题。"

### 自动模式示例

1. **输入种子句**
   ```
   She enjoys music.
   ```

2. **选择自动模式并开始**

3. **观看自动演示**
   - 系统自动完成三轮扩写
   - 实时显示每个阶段的提问、回答和点评
   - 最终展示润色后的满分句子

## 🎯 项目亮点

- **多智能体协作架构**：采用专业的多智能体设计，每个 Agent 职责明确，协作高效
- **渐进式学习路径**：三阶段扩写流程符合认知规律，从简单到复杂循序渐进
- **双模式交互设计**：手动模式适合深度学习，自动模式适合快速演示和展示
- **实时反馈机制**：语法点评和错误纠正帮助学生及时发现问题
- **流式用户体验**：SSE 技术实现自动模式的实时推送，交互更加流畅
- **类型安全**：前端使用 TypeScript，后端使用 Pydantic，确保数据类型安全
- **现代化技术栈**：Vue 3 + FastAPI 组合，开发效率和运行性能兼顾

## 🔮 未来计划

- [ ] 持久化存储：将会话数据保存到数据库
- [ ] 用户系统：支持用户注册、登录和历史记录
- [ ] 更多扩写模板：支持不同类型的句子扩写模板
- [ ] 难度分级：根据用户水平调整提问难度

## 📄 许可证

MIT License

## 👤 作者

- GitHub: [@xujikai](https://github.com/xujikai)
- 项目: SentenceExpandAgent

## 🙏 致谢

感谢 Datawhale 社区和 Hello-Agents 项目提供的框架支持！
