Files
smartmate/AGENTS.md
Losita bcee43b610 Version: 0.9.0.dev.260405
后端:
1.新建tools/write_helpers.go:写工具专用辅助函数(冲突检测、范围校验、嵌入宿主查找、锁定检查、格式化)
2.新建tools/write_tools.go:实现5个写工具(Place/Move/Swap/BatchMove/Unplace),含嵌入逻辑、原子性批量操作、双向嵌入关系清理,26个单元测试全部通过
3.新建tools/registry.go:工具注册表(ToolRegistry),统一管理10个工具的注册/查找/执行,支持读写工具区分和参数解析
4.更新model/graph_run_state.go:
新增 ScheduleStateProvider 接口和 ToolRegistry 依赖注入,AgentGraphState 支持按需加载ScheduleState
5.更新 node/execute.go:接入 ToolRegistry 实现真实工具调用,替换原骨架实现
6.更新 AGENTS.md
前端:无
仓库:无
2026-04-05 15:22:46 +08:00

50 lines
3.8 KiB
Markdown
Raw 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.
# AGENTS.md
## 协作偏好(逐条追加)
1. 默认语言规则:所有注释、接口文案、说明、评审反馈均使用中文。
2. 请勤加注释,尤其是复杂逻辑部分,确保代码易于理解和维护。
3. 每次在本地执行测试命令(如 `go test`)后,必须清理项目根目录下的 `.gocache` 目录,避免缓存文件长期堆积。
4. 文件编码统一使用 UTF-8无 BOM禁止使用 GBK、GB2312 等其他编码,避免中文内容出现乱码。
5. 进行结构重构时,优先采用“并行迁移”策略:允许新旧目录并存,先迁移、再切流、再验证、最后删除旧实现,禁止一步到位式重命名大改。
6. 遇到公共能力如模型调用、JSON 解析、阶段推送、深拷贝、缓存快照读写)时,若在第二处出现重复实现,必须优先评估是否抽公共层,禁止无脑复制第三份。
7. 迁移期每一轮只允许处理一个能力域或一类公共件,禁止同一轮同时改多个 skill 的结构与逻辑,避免回归问题无法定位。
8. 新增代码时,必须优先复用已有公共能力;如果暂时无法复用,必须在注释或文档中写明“为什么这次不能抽公共层”,禁止默认复制粘贴旧实现。
9. 对于明显过大的文件(尤其是同时承载编排、业务、模型交互、工具分发的文件),后续重构时必须拆分职责,禁止继续向单文件堆砌新逻辑。
10. Prompt、State、模型交互、Graph 连线应尽量分目录/分文件管理,禁止把大段 prompt、节点逻辑、模型 helper 长期混写在同一文件中。
11. 若本轮任务包含“结构迁移”,最终答复中必须明确说明:本轮迁了什么、哪些旧实现仍保留、当前切流点在哪里、下一轮建议迁什么。
12. 若后续在 `backend/agent` 中新增、下沉、替换任何“通用能力”,必须同步更新 `backend/agent/通用能力接入文档.md`,否则视为重构信息不完整。
13. 写完代码后,如果输入输出格式明确、逻辑可验证(如数据转换函数、解析函数、工具层操作),必须编写单元测试验证正确性。跑完之后删除测试文件(`*_test.go`),禁止把测试文件长期留在项目中。
14. 当 Claude Code 帮助操作 git 提交时commit message 中禁止出现与 Claude 协同相关的描述(如 Co-Authored-By 等),只保留项目本身的内容。
## 注释规范(强制)
1. 默认使用中文注释,禁止英文注释(专业术语除外)。
2. 复杂逻辑必须写“步骤化注释”,用 `1. / 2. / 2.1` 这种编号,说明:
- 这一步要做什么
- 为什么要这样做
- 失败时怎么处理
- 兜底/回退策略是什么
3. 函数注释至少说明“职责边界”:
- 这个函数负责什么
- 不负责什么
- 输入输出语义(尤其是 bool、error、状态字段
4. 涉及分支、重试、事务、幂等、并发、状态机的代码,必须写清楚判断依据与流转条件。
5. 跨文件调用前必须写“调用目的注释”,让读者不跳转文件也能理解当前代码意图。
6. 注释禁止空话(如“设置变量”“调用方法”);必须写业务意图与约束。
7. 改动代码时,如修改了复杂逻辑,必须同步更新注释;注释过期视为不合格提交。
8. 不要求每行都注释;简单直白代码可省略,重点保证关键路径可读性。
## 注释风格示例
推荐:
- `// 1. 先查缓存,命中则避免回源 DB降低接口延迟。`
- `// 2. 缓存未命中再查库;若查库失败直接返回,避免写入不完整状态。`
- `// 3. 写库成功后再更新缓存,保证“先真后快”,避免脏缓存。`
不推荐:
- `// 查询缓存`
- `// 调用 DAO`
- `// 返回结果`