Files
smartmate/AGENTS.md
LoveLosita 96be3e2a02 Version: 0.6.6.dev.260317
 feat(task,agent): 新增任务完成接口,并打通聊天全链路 Token 记账

-  新增“标记任务为完成”接口,并补充幂等保护,避免重复完成导致状态污染
- 📊 为聊天链路补充 Token 统计能力:
  - 流式主对话链路直接读取模型 `usage`
  - Agent 链路通过 `Eino callback + ctx` 聚合 `Generate usage`
  - 在流式场景下补齐缺失的 `usage` 数据
- 🧾 按口径 B 完成 Token 落库:
  - 用户消息 `token` 记为 `0`
  - 助手消息记录本轮总 `token`
  - 持久化时同步更新 `chat_histories.tokens_consumed`、`agent_chats.tokens_total`、`users.token_usage`
- 🔄 异步标题生成产生的 Token 通过 Outbox 事件完成账本增量调整,保证统计口径一致
- 📝 同步更新 `AGENTS.md` 与 `.gitignore`
- 📚 小幅更新 README 说明文档
2026-03-17 18:23:07 +08:00

38 lines
1.7 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` 目录,避免缓存文件长期堆积。
## 注释规范(强制)
1. 默认使用中文注释,禁止英文注释(专业术语除外)。
2. 复杂逻辑必须写“步骤化注释”,用 `1. / 2. / 2.1` 这种编号,说明:
- 这一步要做什么
- 为什么要这样做
- 失败时怎么处理
- 兜底/回退策略是什么
3. 函数注释至少说明“职责边界”:
- 这个函数负责什么
- 不负责什么
- 输入输出语义(尤其是 bool、error、状态字段
4. 涉及分支、重试、事务、幂等、并发、状态机的代码,必须写清楚判断依据与流转条件。
5. 跨文件调用前必须写“调用目的注释”,让读者不跳转文件也能理解当前代码意图。
6. 注释禁止空话(如“设置变量”“调用方法”);必须写业务意图与约束。
7. 改动代码时,如修改了复杂逻辑,必须同步更新注释;注释过期视为不合格提交。
8. 不要求每行都注释;简单直白代码可省略,重点保证关键路径可读性。
## 注释风格示例
推荐:
- `// 1. 先查缓存,命中则避免回源 DB降低接口延迟。`
- `// 2. 缓存未命中再查库;若查库失败直接返回,避免写入不完整状态。`
- `// 3. 写库成功后再更新缓存,保证“先真后快”,避免脏缓存。`
不推荐:
- `// 查询缓存`
- `// 调用 DAO`
- `// 返回结果`