# 子Agent使用时的最佳实践 ## 1. 推荐的引用方式 ### 完整引用(最佳) ``` # 通用基础 @子agent/00-通用基础/base_prompt.md @子agent/00-通用基础/project_structure.md @子agent/00-通用基础/essential_docs.md # 架构规划(强烈推荐) @考培练系统规划/后端开发拆分策略/协作机制设计.md @考培练系统规划/后端开发拆分策略/模块分工指南.md @考培练系统规划/后端开发拆分策略/开发规范文档.md # Agent特定 @子agent/01-Agent-Auth/prompt.md @子agent/01-Agent-Auth/context.md @子agent/01-Agent-Auth/checklist.md 我是Agent-Auth,准备开始开发认证模块。 我已经理解了项目的整体架构和协作机制。 ``` ### 标准引用 ``` @子agent/01-Agent-Auth/prompt.md @子agent/01-Agent-Auth/context.md 按照Agent-Auth的角色开发认证模块。 ``` ### 最小引用 ``` @子agent/01-Agent-Auth/prompt.md 开始开发Auth模块。 ``` ## 2. Agent启动提示词模板 ```markdown 我是[Agent名称],我已经阅读了: 1. 通用开发规范(base_prompt.md) 2. 项目结构说明(project_structure.md) 3. 我的角色定义(prompt.md) 4. 项目上下文(context.md) 我理解我需要: - 遵循统一的代码规范 - 使用项目的基础类和工具 - 与其他模块保持接口一致 - 编写测试和文档 项目根目录是:/Users/nongjun/Desktop/Ai公司/本地开发与测试/kaopeilian-backend/ 我现在开始按照checklist.md的步骤进行开发。 ``` ## 3. 常见问题的预防性提醒 ### 开始开发前 ``` 提醒: 1. 所有import从app开始,不是从根目录 2. 继承BaseModel和相应的Mixin 3. 使用项目定义的异常类 4. 遵循日志规范 5. API响应使用ResponseModel包装 ``` ### 创建新文件时 ``` 注意文件位置: - API路由放在 app/api/v1/ - 模型放在 app/models/ - Schema放在 app/schemas/ - 服务放在 app/services/ - 测试放在 tests/ ``` ### 依赖其他模块时 ``` 检查依赖关系: - 从 app.api.deps 导入认证依赖 - 不要循环依赖 - 使用依赖注入而不是直接导入 ``` ## 4. 分步开发策略 ### 第一步:理解和规划 ``` 1. 仔细阅读所有文档 2. 列出需要创建的文件 3. 确认依赖关系 4. 制定开发顺序 ``` ### 第二步:创建基础结构 ``` 1. 先创建数据模型 2. 定义Schema 3. 创建空的Service类 4. 创建路由框架 ``` ### 第三步:实现核心功能 ``` 1. 实现一个最简单的功能 2. 测试是否能正常运行 3. 逐步添加其他功能 4. 同步编写测试 ``` ### 第四步:完善和优化 ``` 1. 添加错误处理 2. 完善日志记录 3. 优化性能 4. 补充文档 ``` ## 5. 协作开发技巧 ### 模拟其他模块 ```python # 当依赖的模块还未完成时 # mocks/auth.py async def get_current_user_mock(): return User(id=1, username="test", role="admin") # 在开发时临时使用 from mocks.auth import get_current_user_mock as get_current_user ``` ### 定义接口契约 ```python # interfaces/auth_interface.py from typing import Protocol class AuthServiceInterface(Protocol): async def get_current_user(self, token: str) -> User: ... async def verify_token(self, token: str) -> dict: ... ``` ### 集成测试桩 ```python # tests/stubs/external_service.py class DifyServiceStub: async def generate_exam_questions(self, **kwargs): return [{"question": "测试题目", "answer": "A"}] ``` ## 6. 输出质量检查 ### 代码风格 - [ ] 是否遵循了PEP 8 - [ ] 导入是否按规范排序 - [ ] 是否有类型注解 - [ ] 文档字符串是否完整 ### 功能完整性 - [ ] 是否实现了所有要求的API - [ ] 错误处理是否完善 - [ ] 日志记录是否充分 - [ ] 是否有相应的测试 ### 安全性 - [ ] 是否有SQL注入风险 - [ ] 是否验证了所有输入 - [ ] 敏感信息是否加密 - [ ] 权限检查是否到位 ## 7. 调试和验证 ### 快速验证API ```python # 在main.py临时添加 @app.get("/debug/routes") async def debug_routes(): routes = [] for route in app.routes: if hasattr(route, "methods"): routes.append({ "path": route.path, "methods": list(route.methods), "name": route.name }) return routes ``` ### 检查数据库连接 ```python # 临时健康检查 @app.get("/debug/db") async def check_db(db: AsyncSession = Depends(get_db)): try: await db.execute("SELECT 1") return {"status": "connected"} except Exception as e: return {"status": "error", "message": str(e)} ``` ## 8. 持续改进 ### 收集反馈 - 记录Agent生成代码的问题 - 改进prompt和示例 - 更新checklist ### 知识共享 - 将好的代码片段加入examples - 更新常见问题解答 - 分享成功经验 通过遵循这些最佳实践,可以让Agent更高效、更准确地完成开发任务。