Files
smartmate/backend/agent
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
..
2026-03-17 18:23:07 +08:00
2026-03-16 22:30:45 +08:00
2026-03-16 22:30:45 +08:00
2026-03-16 22:30:45 +08:00
2026-03-14 19:42:26 +08:00

backend/agent 目录说明

该目录已按“路由 / 聊天 / 随口记”三层拆分,便于阅读、调试与扩展:

  1. route/
  • route.go:只负责模型控制码分流(quick_note / chat)。
  • 提供控制码解析、nonce 校验、路由兜底,不参与写库与回复拼装。
  1. chat/
  • stream.go普通聊天流式输出封装SSE/OpenAI 兼容 chunk 转换)。
  • prompt.go:聊天主系统提示词。
  1. quicknote/
  • graph.go:只负责图编排连线与分支,不承载节点内部实现。
  • nodes.go:节点实现(意图识别、优先级评估、持久化、分支选择)。
  • tool.go工具定义、参数校验、deadline 解析、写库工具打包。
  • state.go:随口记状态容器与重试状态记录。
  • prompt.go:随口记提示词(控制码路由、聚合规划、优先级评估、回复润色)。
  1. README.md(当前文件)
  • 记录目录职责边界,帮助后续继续按同样范式扩展 query/update 等技能链路。

说明:服务层仍通过 RunQuickNoteGraph 调用随口记图;若判定为非随口记意图,会自动回落到普通流式聊天链路。