File: //opt/OpenManusWeb/DEVELOPMENT_LOG.md
# OpenManus 开发日志
## 项目概述
OpenManus是一个开源的AI助手项目,旨在提供类似于Manus的功能,但无需邀请码。该项目由MetaGPT团队的成员在短时间内快速开发完成,现在添加了Web界面以提升用户体验。
## 开发时间线
### 2025-03-06
- 项目初始化
- 实现基础命令行界面(CLI)版本
- 集成基本的AI模型功能
### 2025-03-07
- 开始设计Web界面
- 创建FastAPI应用程序框架
- 实现基本的路由和模板
### 2025-03-08
- 实现前端界面,包括聊天和日志展示
- 添加WebSocket支持实时通信
- 解决WebSocket依赖问题
- 添加自动打开浏览器功能
- 实现左右布局设计,左侧日志,右侧对话
- 添加停止请求功能
- 实现Manus风格的任务进展日志显示
- 优化Manus风格的进度日志系统
- 调整日志展示样式,使其更加简洁直观
- 完善文档和使用说明
## 技术栈
- 后端:FastAPI, Python 3.12
- 前端:HTML, CSS, JavaScript (原生)
- 通信:WebSocket, REST API
- 容器化:支持Docker部署
- AI模型:支持多种大型语言模型接口
## 功能实现
1. **Web界面**
- 响应式设计,适配移动和桌面设备
- 左右分栏布局:左侧日志,右侧对话
- 实时显示处理状态和日志
2. **实时通信**
- WebSocket实现实时日志更新
- 自动降级到轮询机制(当WebSocket不可用时)
3. **日志系统**
- 支持多种日志级别(info, warning, error, success)
- 按时间顺序实时显示处理步骤
- 实现简单但可靠的日志捕获系统
- **新增:Manus风格的任务进展日志**
- 简洁的进行时任务描述
- 实时展示AI正在执行的思考和研究过程
- 无时间戳的极简呈现方式
- 任务完成时的总结信息
4. **用户体验优化**
- 自动打开浏览器功能
- 停止请求按钮
- 清除对话功能
- 代码块自动格式化
## 遇到的问题和解决方案
### 问题1: WebSocket连接错误
**问题描述**:在启动时出现"Unsupported upgrade request"和"No supported WebSocket library detected"错误。
**解决方案**:
- 添加WebSocket依赖检测
- 安装websockets库或uvicorn[standard]
- 实现前端优雅降级到轮询方式
### 问题2: 日志记录格式错误
**问题描述**:在尝试捕获loguru日志时出现"TypeError: string indices must be integers, not 'str'"错误。
**解决方案**:
- 创建专用的日志处理模块
- 实现SimpleLogCapture类替代loguru的复杂格式
- 使用自定义上下文管理器来处理日志
### 问题3: 界面布局在移动设备上显示问题
**问题描述**:在小屏幕设备上左右布局不合理。
**解决方案**:
- 添加媒体查询
- 在小屏幕上转换为垂直布局
- 调整各组件的最大宽度
### 问题4: 需要实现类Manus的日志展示
**问题描述**:用户期望看到类似Manus的实时任务进展日志,而不是技术性的日志信息。
**解决方案**:
- 创建专门的思考步骤跟踪系统
- 将AI的思考过程转化为简洁的进行时任务描述
- 保持日志界面干净,只展示用户关心的内容
- 添加任务完成的总结信息
## Manus风格日志实现方案
为了实现类似Manus的日志呈现方式,我们采用以下方案:
1. **任务跟踪系统**:
- 创建ThinkingTracker类,记录AI思考过程的关键步骤
- 将复杂的后台处理过程转化为简洁的用户友好描述
- 支持任务进度百分比估计(可选)
2. **前端展示优化**:
- 去除技术性的时间戳和日志级别
- 使用简单的文本行展示,每行代表一个思考步骤
- 使用淡入淡出效果增强用户体验
3. **WebSocket实时更新**:
- 将AI处理过程实时推送到前端
- 支持分批次更新长任务的思考步骤
4. **任务完成总结**:
- 在任务完成时生成简洁的总结信息
- 提供后续操作建议
## 后续开发计划
1. **功能增强**
- 添加用户认证系统
- 支持会话历史保存
- 实现多语言支持
2. **性能优化**
- 优化WebSocket通信效率
- 添加日志分页功能
- 实现请求队列管理
3. **用户体验提升**
- 添加更多主题选项
- 实现对话导出功能
- 添加语音输入支持
- **完善Manus风格日志系统**,增加更多任务类型的处理模板
4. **集成测试**
- 添加端到端测试
- 实现自动化UI测试
- 性能基准测试
## 贡献指南
欢迎对OpenManus Web进行贡献!您可以通过以下方式参与:
1. 报告Bug或提出功能建议
2. 提交代码改进Pull Request
3. 改进文档
4. 分享您的使用体验
请确保您的代码遵循项目的代码风格并通过所有测试。
---
*最后更新: 2025-03-08*