main:新增 AGENTS.md 文档

变更内容:
- 添加 AGENTS.md 文档,指导智能体开发与协作流程。
- 详细说明项目概述、技术架构、代码结构及关键设计约定。
- 提供常用命令与开发规范,明确算法开发与交付标准。
- 优化文档内容,方便团队阅读与高效协作。
This commit is contained in:
2026-02-03 10:38:09 +08:00
parent 22ae858458
commit 9f32ac725a

102
AGENTS.md Normal file
View File

@@ -0,0 +1,102 @@
# Agent.md
本文件为本仓库内各类智能体/助手提供工作指导,内容参考 `CLAUDE.md`,并针对日常开发与协作做了简化归纳。
## 项目概述
**FunctionalScaffold函数式脚手架** 是一个算法工程化 Serverless 解决方案的脚手架生成器。
- 为了方便团队交流,项目自然语言使用中文,包括代码注释和文档
- 核心目标:解决算力弹性、算法工程化门槛与后端集成复杂度问题
## 技术与架构
采用 **Docker 封装的 Serverless API 服务**方案:
- 算法代码 + 运行环境打包为 Docker 镜像
- 部署到云厂商 Serverless 平台实现自动扩缩容
- FastAPI 作为 HTTP 接口层
- 算法逻辑保持独立和专注
架构流程概览:
```
用户请求 → API网关 → 容器实例(冷/热启动)→ FastAPI → 算法程序 → 返回结果
外部服务OSS/数据库)
```
## 代码结构src layout
```
src/functional_scaffold/
├── algorithms/ # 算法层 - 所有算法必须继承 BaseAlgorithm
│ ├── base.py # execute() 包装器(埋点、错误处理)
│ └── prime_checker.py # 示例:质数判断算法
├── api/ # API 层 - FastAPI 路由和模型
│ ├── models.py # Pydantic 数据模型ConfigDict
│ ├── routes.py # 路由定义(/invoke, /healthz, /readyz, /jobs
│ └── dependencies.py # 依赖注入request_id 生成)
├── core/ # 核心功能 - 横切关注点
│ ├── errors.py # 异常类层次结构
│ ├── logging.py # 结构化日志JSON
│ ├── metrics.py # Prometheus 指标和装饰器
│ └── tracing.py # 分布式追踪ContextVar
├── utils/ # 工具函数
│ └── validators.py # 输入验证
├── config.py # 配置管理pydantic-settings
└── main.py # FastAPI 应用入口
```
## 关键设计约定
1. **算法抽象层**:所有算法继承 `BaseAlgorithm`,只实现 `process()``execute()` 负责埋点、日志和错误包装。
2. **依赖注入**FastAPI `Depends()` 注入 `request_id`,通过 `ContextVar` 透传。
3. **配置管理**`pydantic-settings` 读取环境变量或 `.env`,支持类型校验。
4. **可观测性**JSON 结构化日志、Prometheus 指标、Request ID 追踪。
5. **Pydantic V2**:使用 `ConfigDict``model_config`,不使用 `class Config`
## 常用命令
环境设置:
```bash
python -m venv venv
source venv/bin/activate
pip install -e ".[dev]"
```
运行服务:
```bash
./scripts/run_dev.sh
uvicorn src.functional_scaffold.main:app --reload --port 8000
```
测试与质量:
```bash
pytest tests/ -v
black src/ tests/
ruff check src/ tests/
```
## 添加新算法(简版步骤)
1.`src/functional_scaffold/algorithms/` 新建算法类,继承 `BaseAlgorithm` 并实现 `process()`
2.`algorithms/__init__.py` 导出新算法类。
3.`api/routes.py` 添加端点,在 `api/models.py` 添加请求/响应模型。
4.`tests/` 编写对应测试。
## 交付标准
必须包含以下组件与规范:
- `/invoke`, `/jobs`, `/healthz`, `/readyz`, `/metrics` 端点
- 统一的请求/响应 Schema 与错误格式
- 可观测性支持(日志、指标、追踪)
## 开发理念
算法同学只需关注 `process()` 的核心逻辑,其余基础设施能力由脚手架提供。