返回顶部
c

chat_logger

|

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
67
下载量
0
收藏
概述
安装方式
版本历史

chat_logger

# Chat Logger(严格触发规则版) ## ⚠️ 严格触发规则(AGENTS.md 必须遵守) ### 触发规则表 | 用户消息 | 执行动作 | 主 Agent 行为 | |:---|:---|:---| | `chatlog汇总` | 调用 `handle_chat_query()` | **禁止处理,直接返回结果** | | `今日简报` | 调用 `handle_chat_query()` | **禁止处理,直接返回结果** | | `我的记录` | 调用 `handle_chat_query()` | **禁止处理,直接返回结果** | | 其他消息 | 调用 `record_message()` | 正常处理 | ### 主 Agent 必须遵守的流程 ```python from skills.chat_logger.skill import handle_chat_query, record_message # 第1步:检查是否是 Chat-Logger 查询指令(严格匹配) if message.strip() in ["chatlog汇总", "今日简报", "我的记录"]: # 严格触发规则:只能执行 Chat-Logger,禁止主 Agent 处理 result = handle_chat_query(message, user_name, channel) if result: print(result) # 直接返回,不执行其他逻辑 return # 立即返回,禁止继续处理 # 第2步:非查询指令,记录消息 record_message(channel, user_name, message, chat_type) # 第3步:正常处理消息 # ... 主 Agent 其他逻辑 ``` ### 禁止行为 ❌ **禁止**:主 Agent 自己读取 chat-logs 文件生成回复 ❌ **禁止**:主 Agent 修改 Chat-Logger 返回的格式 ❌ **禁止**:主 Agent 绕过 `handle_chat_query()` 直接查询 ✅ **必须**:严格匹配指令,直接调用 `handle_chat_query()` ✅ **必须**:返回结果后立即 `return`,禁止继续执行 ✅ **必须**:非查询指令才调用 `record_message()` 和正常处理 ## 核心设计 ## 核心设计 ### 方案B:Hook + 显式调用双保险 **记录功能(双保险):** - ✅ **Hook 自动记录** - `on_incoming_message_hook` 自动触发 - ✅ **主 Agent 显式调用** - `record_message()` 备用 - ✅ **两者都执行** - 确保消息不丢失 **查询功能(主 Agent 显式调用):** - ✅ `handle_chat_query()` - 主 Agent 检查并处理查询指令 - ✅ 查询前自动记录当前消息 ### 为什么用双保险? | 方案 | 优点 | 缺点 | |:---|:---|:---| | 纯 Hook | 自动,无需干预 | Hook 可能失效,难调试 | | 纯显式调用 | 可控,易调试 | 依赖主 Agent 遵守约定 | | **双保险(方案B)** | **自动 + 可控** | **稍复杂,但最可靠** | ## 使用方式 ### 1. 主 Agent 调用约定(AGENTS.md) **每次收到用户消息时,必须调用:** ```python from skills.chat_logger.skill import record_message # 记录用户消息 record_message( channel="feishu", # 或 "dingtalk" user_name="孟凡军", user_content="用户消息内容", chat_type="direct" # direct=私聊, group=群聊(群聊自动跳过) ) ``` ### 2. 查询指令处理 **当用户发送查询指令时,调用:** ```python from skills.chat_logger.skill import handle_chat_query result = handle_chat_query( message="chatlog汇总", user_name="孟凡军", channel="feishu" # 当前渠道 ) if result: print(result) # 直接返回结果 ``` 支持的查询指令: - `chatlog汇总` - 查看所有用户完整汇总 - `今日简报` - 查看今日对话汇总 - `我的记录` - 查看个人今日记录 ### 3. 自检功能 ```python from skills.chat_logger.skill import check_health status = check_health() print(status) # { # 'status': 'ok', # 'base_dir_exists': True, # 'base_dir_writable': True, # 'total_channels': 2, # 'total_users': 4, # 'total_files': 9, # 'last_error': None # } ``` ## API 参考 ### record_message(channel, user_name, user_content, chat_type='direct') 记录用户消息 **参数:** - `channel` (str): 渠道名称 (feishu/dingtalk/飞书/钉钉) - `user_name` (str): 用户名称 - `user_content` (str): 用户消息内容 - `chat_type` (str): 聊天类型,默认 'direct'(私聊) **返回:** - `bool`: 是否记录成功 ### handle_chat_query(message, user_name, channel=None) 处理查询指令 **参数:** - `message` (str): 用户消息 - `user_name` (str): 用户名称 - `channel` (str, optional): 当前渠道 **返回:** - `str or None`: 查询结果或 None(非查询指令) ### get_chatlog_summary() -> str 生成完整汇总报告 ### get_daily_summary(user_name=None, date=None) -> str 生成每日简报 ### check_health() -> dict 检查系统健康状态 ## 存储结构 ``` memory/chat-logs/ ├── feishu/ │ └── {用户名}/ │ └── YYYY-MM-DD.md └── dingtalk/ └── {用户名}/ └── YYYY-MM-DD.md ``` ## 文件格式 ```markdown # 2026-03-23 提问记录 - 孟凡军(feishu) ## 提问列表 --- ### 07:17 **用户**:chatlog汇总 ### 07:26 **用户**:chatlog汇总 ``` ## 注意事项 1. **群聊自动跳过** - chat_type='group' 时自动返回 True,不记录 2. **渠道名称自动转换** - '飞书' 自动转为 'feishu','钉钉' 自动转为 'dingtalk' 3. **文件名安全处理** - 用户名称中的特殊字符会被替换为下划线 4. **查询前自动记录** - handle_chat_query 会先记录当前查询消息

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 chat-logger-1776059762 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 chat-logger-1776059762 技能

通过命令行安装

skillhub install chat-logger-1776059762

下载 Zip 包

⬇ 下载 chat_logger v1.0.0

文件大小: 6.3 KB | 发布时间: 2026-4-14 13:28

v1.0.0 最新 2026-4-14 13:28
chat-logger v1.0.0

- First release: provides strict-rule chat logging for Feishu/Dingtalk messaging.
- Supports precise trigger commands: “chatlog汇总”, “今日简报”, “我的记录”.
- Strict separation: only this Skill handles trigger commands, main Agent must not process or alter results.
- Dual mechanism records messages via both automatic hook and explicit Agent calls to ensure reliability.
- Includes health check, flexible query/report APIs, and robust storage structure with daily user logs.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部