| 使用者訊息 | 執行動作 | 主 Agent 行為 |
|---|---|---|
chatlog彙總 |
呼叫 handle_chat_query() |
禁止處理,直接返回結果 |
今日簡報 |
呼叫 handle_chat_query() |
禁止處理,直接返回結果 |
我的記錄 |
呼叫 handle_chat_query() |
禁止處理,直接返回結果 |
| 其他訊息 | 呼叫 record_message() |
正常處理 |
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() 和正常處理
記錄功能(雙保險):
on_incoming_message_hook 自動觸發record_message() 備用查詢功能(主 Agent 顯式呼叫):
handle_chat_query() - 主 Agent 檢查並處理查詢指令| 方案 | 優點 | 缺點 |
|---|---|---|
| 純 Hook | 自動,無需干預 | Hook 可能失效,難除錯 |
| 純顯式呼叫 | 可控,易除錯 | 依賴主 Agent 遵守約定 |
| 雙保險(方案B) | 自動 + 可控 | 稍複雜,但最可靠 |
每次收到使用者訊息時,必須呼叫:
from skills.chat_logger.skill import record_message
# 記錄使用者訊息
record_message(
channel="feishu", # 或 "dingtalk"
user_name="孟凡軍",
user_content="使用者訊息內容",
chat_type="direct" # direct=私聊, group=群聊(群聊自動跳過)
)
當用戶傳送查詢指令時,呼叫:
from skills.chat_logger.skill import handle_chat_query
result = handle_chat_query(
message="chatlog彙總",
user_name="孟凡軍",
channel="feishu" # 當前渠道
)
if result:
print(result) # 直接返回結果
支援的查詢指令:
chatlog彙總 - 檢視所有使用者完整彙總今日簡報 - 檢視今日對話彙總我的記錄 - 檢視個人今日記錄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
# }
記錄使用者訊息
引數:
channel (str): 渠道名稱 (feishu/dingtalk/飛書/釘釘)user_name (str): 使用者名稱稱user_content (str): 使用者訊息內容chat_type (str): 聊天型別,預設 'direct'(私聊)返回:
bool: 是否記錄成功處理查詢指令
引數:
message (str): 使用者訊息user_name (str): 使用者名稱稱channel (str, optional): 當前渠道返回:
str or None: 查詢結果或 None(非查詢指令)小蔥技能7w4.net有更新,你可以訪問看下。
生成完整彙總報告
生成每日簡報
檢查系統健康狀態
memory/chat-logs/
├── feishu/
│ └── {使用者名稱}/
│ └── YYYY-MM-DD.md
└── dingtalk/
└── {使用者名稱}/
└── YYYY-MM-DD.md
# 2026-03-23 提問記錄 - 孟凡軍(feishu)
## 提問列表
---
### 07:17
**使用者**:chatlog彙總
### 07:26
**使用者**:chatlog彙總