bidmaster-cli/ARCHITECTURE.md
sladro e6103c711f refactor: 按照PROJECT_SPEC.md规范重构代码
修复架构和代码规范违规问题:

架构修复:
- 创建internal目录(内部模块,禁止外部import)
- 恢复ARCHITECTURE.md文档
- 移除未定义的utils目录
- 清理临时测试目录

代码规范修复(严格遵循核心哲学):
- 移除所有try-except,让错误立即暴露
- 移除所有防护编程(不返回bool/错误字符串)
- 简化为MVP版本(每个命令组只保留核心功能)
- 移除所有美化输出,使用简单print

功能实现:
- 实现generate命令(只保留task子命令)
- 实现assemble命令(只保留tables子命令)
- 修复bidmaster/__init__.py导出
- 添加缺失的TableGenerator类

文件精简:
- generate.py: 262行 → 66行
- assemble.py: 293行 → 64行
- 移除所有延迟导入和内部import

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-26 20:02:59 +08:00

135 lines
3.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# BidMaster-CLI 架构文档
## 系统架构概览
BidMaster-CLI 采用分层架构设计,确保模块间的清晰边界和单向依赖。
```
┌─────────────────────────────────────┐
│ CLI Layer (Interface) │ ← 用户交互层
├─────────────────────────────────────┤
│ Agent Layer (Orchestration) │ ← 业务编排层
├─────────────────────────────────────┤
│ Tools Layer (Infrastructure) │ ← 基础设施层
└─────────────────────────────────────┘
```
## 层级职责
### CLI Layer (命令行接口层)
- **职责**: 处理用户输入,展示输出结果
- **模块**: `src/bidmaster/cli/`
- **依赖**: 可调用 Agent Layer 和 Tools Layer
- **关键组件**:
- `main.py`: CLI入口和命令注册
- `kb.py`: 知识库管理命令
- `project.py`: 项目管理命令
- `generate.py`: 内容生成命令
- `assemble.py`: 合规组装命令
### Agent Layer (业务编排层)
- **职责**: 实现核心业务逻辑,编排工具调用
- **模块**: `src/bidmaster/agents/`
- **依赖**: 仅可调用 Tools Layer
- **关键组件**:
- `analysis.py`: 分析Agent - 解析招标文件
- `generation.py`: 生成Agent - 内容生成
- `assembly.py`: 组装Agent - 表格生成
- `graph.py`: LangGraph工作流编排
### Tools Layer (基础设施层)
- **职责**: 提供原子化的工具函数
- **模块**: `src/bidmaster/tools/`
- **依赖**: 不依赖其他层
- **关键组件**:
- `parser.py`: 文档解析工具
- `rag.py`: RAG检索工具
- `word.py`: Word文档处理
- `table.py`: 表格生成工具
## 辅助模块
### Config (配置管理)
- **路径**: `src/bidmaster/config/`
- **职责**: 统一管理配置
- **文件**: `settings.py`
### Models (数据模型)
- **路径**: `src/bidmaster/models/`
- **职责**: 定义数据结构
- **文件**: `project.py`, `task.py`
### Internal (内部实现)
- **路径**: `src/bidmaster/internal/`
- **职责**: 内部实现细节,禁止外部引用
- **说明**: 存放不对外暴露的内部功能
## 依赖规则
1. **单向依赖**: 上层可以调用下层,禁止逆向引用
2. **跨层调用**: CLI可以直接调用Tools无需经过Agent
3. **内部模块**: internal目录内容仅供内部使用
4. **统一导出**: 通过`__init__.py`管理模块导出
## 数据流
```
用户输入 → CLI Layer → Agent Layer → Tools Layer
↓ ↓ ↓
命令解析 业务编排 工具执行
↓ ↓ ↓
展示结果 ← 返回结果 ← 返回数据
```
## 核心工作流
### 1. 项目创建流程 (project new)
```
CLI(project.py)
→ Analysis Agent
→ Parser Tool (解析招标文件)
→ Word Tool (生成模板)
→ 保存项目文件
```
### 2. 内容生成流程 (generate)
```
CLI(generate.py)
→ Generation Agent
→ RAG Tool (检索知识库)
→ LLM调用
→ 更新任务状态
```
### 3. 合规组装流程 (assemble)
```
CLI(assemble.py)
→ Assembly Agent
→ Table Tool (生成表格)
→ Word Tool (插入文档)
→ 生成最终文档
```
## 设计原则
1. **高内聚低耦合**: 每个模块职责单一
2. **依赖倒置**: 上层定义接口,下层实现
3. **开闭原则**: 对扩展开放,对修改关闭
4. **最小知识原则**: 模块只了解必要的依赖
## 扩展指南
新增功能时遵循以下步骤:
1. 确定功能层级CLI/Agent/Tool
2. 在对应目录创建模块
3. 遵循现有命名规范
4. 更新相应的`__init__.py`
5. 添加单元测试
6. 更新本文档
## 版本历史
- v0.1.0: 初始架构设计
- v0.2.0: 添加internal目录
- v0.3.0: 完善三层架构