Week 4-5+ 实施计划
📋 总览
Week 4: Monorepo实施 (5天)
Day 1: 目录结构重组
Day 2: Git Subtree设置
Day 3: Docker配置优化
Day 4: CI/CD准备
Day 5: 文档整理与验证
Week 5+: 功能开发 (持续)
阶段1: 新功能开发
阶段2: 性能优化
阶段3: 用户体验改进
🗂️ Week 4: Monorepo实施
Day 1: 目录结构重组 (已完成70%)
当前状态
已有结构:
✅ opensource/ - 开源项目目录
✅ mbe-education/ - 教育应用
✅ mbe-sdk-python/ - Python SDK
✅ mbe-mcp-server/ - MCP服务器
✅ src/ - 核心私有代码
✅ docs/ - 完整文档
✅ docker-compose.*.yml - 多环境配置
缺少:
⚠️ private/ - 私有代码独立目录
⚠️ public/ - 公开代码统一目录
⚠️ tools/ - 工具脚本完善
目标结构
mises-behavior-engine/ (Monorepo根目录)
├── private/ # 🆕 私有闭源代码
│ ├── core/ # 核心引擎
│ ├── moe/ # MOE架构
│ ├── hope/ # HOPE学习
│ ├── titans/ # TITANS系统
│ └── api/ # 内部API
│
├── public/ # 🆕 公开开源代码
│ ├── sdk-python/ # Python SDK
│ ├── sdk-js/ # JavaScript SDK
│ ├── mcp-server/ # MCP服务器
│ └── education/ # 教育应用
│
├── shared/ # 🆕 共享代码
│ ├── models/ # 数据模型
│ ├── utils/ # 工具函数
│ └── types/ # 类型定义
│
├── tools/ # ✅ 工具脚本
│ ├── publish/ # 发布脚本
│ ├── dev/ # 开发工具
│ └── ci/ # CI/CD脚本
│
├── docker/ # 🆕 Docker配置
│ ├── dev/
│ ├── prod/
│ └── test/
│
├── docs/ # ✅ 文档 (已完善)
├── tests/ # ✅ 测试
└── scripts/ # ✅ 脚本
实施步骤
# Step 1: 创建新目录结构
mkdir -p private/{core,moe,hope,titans,api}
mkdir -p public/{sdk-python,sdk-js,mcp-server,education}
mkdir -p shared/{models,utils,types}
mkdir -p tools/{publish,dev,ci}
mkdir -p docker/{dev,prod,test}
# Step 2: 移动现有代码到private/
# (核心代码保持私有)
mv src/core private/
mv src/moe private/
mv src/knowledge/hope_moe.py private/hope/
mv src/knowledge/titans_*.py private/titans/
# ... 其他核心模块
# Step 3: 移动开源代码到public/
mv opensource/mbe-sdk-python public/sdk-python
mv opensource/mbe-mcp-server public/mcp-server
mv opensource/mbe-education public/education
# Step 4: 创建共享代码
# 提取公共模型和工具到shared/
# Step 5: 更新所有import路径
# 使用脚本批量更新
Day 2: Git Subtree设置
2.1 设置GitHub远程仓库
# 1. 为每个公开项目创建GitHub仓库
# - mbe-sdk-python → github.com/mises-org/mbe-sdk-python
# - mbe-mcp-server → github.com/mises-org/mbe-mcp-server
# - mbe-education → github.com/mises-org/mbe-education
# 2. 添加远程仓库
git remote add sdk-python git@github.com:mises-org/mbe-sdk-python.git
git remote add mcp-server git@github.com:mises-org/mbe-mcp-server.git
git remote add education git@github.com:mises-org/mbe-education.git
2.2 设置Git Subtree
# 推送SDK到GitHub
git subtree push --prefix=public/sdk-python sdk-python main
# 推送MCP服务器到GitHub
git subtree push --prefix=public/mcp-server mcp-server main
# 推送教育应用到GitHub
git subtree push --prefix=public/education education main
2.3 创建发布脚本
# tools/publish/publish_sdk.sh
#!/bin/bash
echo "📦 Publishing SDK to GitHub..."
# 验证代码安全
python tools/publish/validate_public.py public/sdk-python
if [ $? -ne 0 ]; then
echo "❌ Validation failed"
exit 1
fi
# 推送到GitHub
git subtree push --prefix=public/sdk-python sdk-python main
echo "✅ SDK published successfully"
Day 3: Docker配置优化
3.1 分离Docker配置
# docker/dev/docker-compose.yml
version: '3.8'
services:
mbe-api-dev:
build:
context: ../..
dockerfile: docker/dev/Dockerfile
volumes:
- ../../private:/app/private
- ../../public:/app/public
- ../../shared:/app/shared
environment:
- ENV=development
- DEBUG=true
postgres-dev:
image: pgvector/pgvector:pg16
environment:
- POSTGRES_DB=mbe_dev
# docker/prod/docker-compose.yml
version: '3.8'
services:
mbe-api:
build:
context: ../..
dockerfile: docker/prod/Dockerfile
volumes:
- /app/data:/app/data # 只挂载数据
environment:
- ENV=production
- DEBUG=false
postgres:
image: pgvector/pgvector:pg16
environment:
- POSTGRES_DB=mbe_prod
3.2 多阶段构建优化
# docker/prod/Dockerfile
FROM nvidia/cuda:11.8.0-cudnn8-runtime-ubuntu22.04 as base
# 基础环境
RUN apt-get update && apt-get install -y \
python3.10 python3-pip \
&& rm -rf /var/lib/apt/lists/*
# 依赖层
FROM base as dependencies
COPY requirements.txt /tmp/
RUN pip install --no-cache-dir -r /tmp/requirements.txt
# 应用层
FROM dependencies as app
WORKDIR /app
# 只复制私有代码和共享代码
COPY private/ /app/private/
COPY shared/ /app/shared/
# 公开代码不包含在生产镜像中
# (通过API调用公开服务)
EXPOSE 8000
CMD ["uvicorn", "private.api.main:app", "--host", "0.0.0.0", "--port", "8000"]
Day 4: CI/CD准备
4.1 GitHub Actions配置
# .github/workflows/test.yml
name: Test
on:
push:
branches: [main, dev]
pull_request:
branches: [main]
jobs:
test-private:
name: Test Private Code
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Install dependencies
run: |
pip install -r requirements.txt
pip install pytest pytest-cov
- name: Run tests
run: |
pytest tests/private/ --cov=private/
- name: Upload coverage
uses: codecov/codecov-action@v3
test-public:
name: Test Public Code
runs-on: ubuntu-latest
strategy:
matrix:
project: [sdk-python, mcp-server, education]
steps:
- uses: actions/checkout@v3
- name: Test ${{ matrix.project }}
run: |
cd public/${{ matrix.project }}
pip install -r requirements.txt
pytest tests/
validate-public:
name: Validate Public Code
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Check for private dependencies
run: |
python tools/publish/validate_public.py
# .github/workflows/publish.yml
name: Publish to GitHub
on:
push:
branches: [main]
paths:
- 'public/**'
jobs:
publish-sdk:
if: contains(github.event.head_commit.modified, 'public/sdk-python')
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0 # 需要完整历史
- name: Validate SDK
run: python tools/publish/validate_public.py public/sdk-python
- name: Push to GitHub
run: |
git subtree push --prefix=public/sdk-python \
https://${{ secrets.GH_TOKEN }}@github.com/mises-org/mbe-sdk-python.git \
main
publish-mcp:
if: contains(github.event.head_commit.modified, 'public/mcp-server')
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Validate MCP Server
run: python tools/publish/validate_public.py public/mcp-server
- name: Push to GitHub
run: |
git subtree push --prefix=public/mcp-server \
https://${{ secrets.GH_TOKEN }}@github.com/mises-org/mbe-mcp-server.git \
main
4.2 Pre-commit Hooks
# .pre-commit-config.yaml
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
- id: check-added-large-files
- repo: https://github.com/psf/black
rev: 23.3.0
hooks:
- id: black
files: ^(private|public|shared)/.*\.py$
- repo: local
hooks:
- id: validate-public
name: Validate Public Code
entry: python tools/publish/validate_public.py
language: system
files: ^public/.*\.py$
pass_filenames: false
Day 5: 文档整理与验证
5.1 更新README
# Mises Behavior Engine (MBE)
## 项目结构
此项目采用Monorepo + Git Subtree架构:
- `private/` - 闭源核心代码 (AGPL + 商业授权)
- `public/` - 开源项目 (AGPL-3.0)
- `sdk-python/` - Python SDK
- `mcp-server/` - MCP服务器
- `education/` - 教育应用
- `shared/` - 共享代码
- `tools/` - 工具脚本
- `docker/` - Docker配置
## 快速开始
### 开发环境
\`\`\`bash
# 克隆仓库
git clone <private-repo-url>
cd mises-behavior-engine
# 启动开发环境
docker compose -f docker/dev/docker-compose.yml up
\`\`\`
### 使用公开SDK
\`\`\`bash
# 从GitHub安装
pip install git+https://github.com/mises-org/mbe-sdk-python.git
\`\`\`
## 贡献指南
详见 [CONTRIBUTING.md](docs/CONTRIBUTING.md)
5.2 创建CONTRIBUTING.md
# 贡献指南
## 开源项目贡献
我们欢迎对以下开源项目的贡献:
- [mbe-sdk-python](https://github.com/mises-org/mbe-sdk-python)
- [mbe-mcp-server](https://github.com/mises-org/mbe-mcp-server)
- [mbe-education](https://github.com/mises-org/mbe-education)
请直接在对应的GitHub仓库提交PR。
## 核心引擎改进
如需改进核心引擎,请联系团队获取访问权限。
## 开发流程
1. Fork对应项目
2. 创建功能分支
3. 提交PR
4. 等待Review
5. 合并后自动同步回Monorepo
🚀 Week 5+: 功能开发
阶段1: 新功能开发
1.1 教育应用增强
目标: 完善教育应用的核心功能
功能列表:
✅ 数据库模型 (已完成)
⚠️ 前端界面 (进行中)
⚠️ LLM内容生成 (待开发)
⚠️ 用户个性化 (待开发)
⚠️ 进度追踪 (待开发)
实施计划:
Week 5: 前端界面完成
Week 6: LLM内容生成集成
Week 7: 用户个性化功能
Week 8: 进度追踪系统
1.2 SDK功能扩展
Python SDK增强:
- 异步API支持
- 批量操作
- WebSocket实时通信
- 错误重试机制
- 详细的类型提示
JavaScript SDK (新增):
- TypeScript支持
- React Hooks
- Vue Composables
- WebSocket客户端
- 完整的类型定义
1.3 MCP服务器增强
新增功能:
- 更多工具支持
- 流式响应
- 批量处理
- 缓存优化
- 性能监控
阶段2: 性能优化
2.1 检索性能
已完成:
✅ 缓存机制 (25%+命中率)
✅ TitansRAG集成
待优化:
⚠️ 缓存预热
⚠️ 智能缓存淘汰
⚠️ 分布式缓存 (Redis)
⚠️ 向量索引优化
⚠️ GPU加速优化
目标:
- 缓存命中率: 25% → 60%+
- 检索延迟: 100ms → 30ms
- QPS: 100 → 500+
2.2 API性能
优化项目:
- 数据库查询优化
- N+1查询消除
- 连接池调优
- 异步处理
- 批量操作
目标:
- API响应时间: 200ms → 50ms
- 并发处理: 100 → 1000+
- 资源使用: -30%
2.3 MOE性能
优化项目:
- 专家选择加速
- 并行推理
- 模型量化
- 批处理优化
- GPU利用率提升
目标:
- 推理延迟: 500ms → 200ms
- GPU利用率: 60% → 90%+
- 吞吐量: +200%
阶段3: 用户体验改进
3.1 错误处理增强
已完成:
✅ 5层Fallback机制
✅ 详细的错误日志
✅ 友好的错误消息
待改进:
⚠️ 错误恢复建议
⚠️ 自动重试机制
⚠️ 降级策略
⚠️ 用户通知系统
3.2 文档和示例
文档改进:
- API参考文档
- 快速入门教程
- 最佳实践指南
- 故障排查手册
- 视频教程
示例代码:
- 基础使用示例
- 高级功能示例
- 集成示例
- 性能优化示例
- 完整应用示例
3.3 开发者工具
工具开发:
- CLI工具
- VS Code扩展
- 调试工具
- 性能分析工具
- 测试工具
目标:
- 降低学习曲线
- 提升开发效率
- 改善调试体验
📅 时间表
Week 4 (当前周):
Day 1: ✅ 目录结构规划
Day 2: ⚠️ Git Subtree设置
Day 3: ⚠️ Docker配置
Day 4: ⚠️ CI/CD准备
Day 5: ⚠️ 文档整理
Week 5-6: 教育应用完善
- 前端界面完成
- LLM集成
- 基础功能测试
Week 7-8: SDK和MCP增强
- Python SDK v2.0
- JavaScript SDK v1.0
- MCP服务器增强
Week 9-10: 性能优化
- 检索优化
- API优化
- MOE优化
Week 11-12: 用户体验
- 文档完善
- 工具开发
- 示例丰富
🎯 成功标准
Week 4完成标准
目录结构:
✅ private/ 独立
✅ public/ 统一
✅ shared/ 提取
✅ tools/ 完善
Git Subtree:
✅ 3个公开项目独立仓库
✅ 自动同步脚本
✅ 验证机制
Docker:
✅ 开发环境配置
✅ 生产环境配置
✅ 测试环境配置
CI/CD:
✅ 自动测试
✅ 自动发布
✅ Pre-commit hooks
文档:
✅ README更新
✅ CONTRIBUTING.md
✅ 架构文档
Week 5+成功标准
新功能:
✅ 教育应用可用
✅ SDK功能完整
✅ MCP服务稳定
性能:
✅ 缓存命中率 60%+
✅ API响应 < 50ms
✅ QPS 500+
用户体验:
✅ 文档完善
✅ 示例丰富
✅ 工具易用
📝 注意事项
代码安全
重要:
- private/ 代码绝不同步到GitHub
- public/ 代码经过validate_public.py验证
- 敏感配置使用环境变量
- 定期安全审计
保护机制:
- Pre-commit hooks
- CI/CD验证
- 代码审查
- 自动扫描
向后兼容
原则:
- 不破坏现有API
- 渐进式迁移
- 保留旧路径兼容
- 充分的过渡期
策略:
- 版本标记
- 弃用警告
- 迁移指南
- 自动化工具
计划制定时间: 2026-02-01
预计完成时间: 2026-04-30 (Week 4-16)
当前状态: Week 4 Day 1规划完成
下一步: 开始实施Day 2 Git Subtree设置