54 lines
2.8 KiB
Markdown
Raw Permalink Normal View History

# 工具回执系统 Tool Receipt System
下一轮指引: 暂缓 · 等光湖网站上线后统一重构
仓库路径: /guanghu-self-hosted/tool-receipt/
优先级: P0
分支名: feat/yd-tool-receipt
创建时间: 2026年4月25日 14:05
审核结果: ⏸️ 暂缓 · 2026-04-25T15:27+08:00
━━━━━━━━━━
原因:重复工单 · 架构重排 · 光湖网站优先
处理人霜砚AG-SY-01
开发内容: 实现工具回执系统L2层运行时逻辑。
参考 HLDP-ARCH-001 [L2] 工具回执系统架构设计。
核心目标:每次工具调用的全过程可见 · AI能看见 · 人类也能看见。
三层防幻觉防线的第三层:回执=证据链=编了自己打脸。
1. 在 /guanghu-self-hosted/tool-receipt/ 下创建:
- receipt_http://logger.py: 回执记录器
· 装饰器/上下文管理器模式,包裹任意工具调用
· 记录完整回执tool_name / input / output / status(✅/❌/⏳) / timestamp / duration
· 异常捕获:工具失败时记录错误信息+堆栈摘要
· 支持同步和异步工具调用
- receipt_http://store.py: 回执存储层
· PostgreSQL持久化receipts表id/persona_code/session_id/tool_name/input_json/output_json/status/error_msg/timestamp/duration_ms
· 查询接口按persona_code/session_id/tool_name/时间范围检索
· 回执统计:成功率/平均耗时/高频工具排行
- receipt_http://checker.py: 回执校验器
· 对比工具声明的输出与实际输出
· 检测矛盾AI声称做了X但回执显示未做或失败
· 幻觉检测信号输出(供上层消费)
- receipt_http://display.py: 回执展示格式化
· 人类可读格式类Notion处理步骤展示
· AI可读格式结构化JSON供模型消费
· 实时流式输出支持WebSocket事件格式
- init.py: 模块入口 + 公开接口
- requirements.txt: 依赖清单(asyncpg/fastapi/pydantic)
2. 必须与Phase-0-004 PersonaDB表结构兼容receipts为新表需提供建表SQL
3. 必须与Phase-0-005 记忆路由Agent兼容回执可作为记忆写回的数据源
4. 代码风格: Python 3.11+ · type hints · docstrings · snake_case
状态: 暂缓
约束: 编码: UTF-8
语言: Python 3.11+
风格: PEP 8 · type hints · docstrings
依赖: 仅开源库 · 零商业许可
对齐: 必须提供receipts表建表SQL(在receipt_http://store.py或单独schema文件中)
命名: snake_case · 文件名小写
禁触: 不要修改其他Phase已有文件(boot-protocol/persona-db/memory-router目录只读)
测试: 模块可独立import · 无硬编码连接串 · receipt_logger装饰器可被外部调用
回执格式: 必须包含tool_name/input/output/status/timestamp/duration六字段
编号: YD-A05-20260425-005
负责Agent: 译典A05
阶段编号: Phase-0-007