Files
assistant/scripts/check-conversations.sh
wangliang e093995368 feat: 增强 Agent 系统和完善项目结构
主要改进:
- Agent 增强: 订单查询、售后支持、客服路由等功能优化
- 新增语言检测和 Token 管理模块
- 改进 Chatwoot webhook 处理和用户标识
- MCP 服务器增强: 订单 MCP 和 Strapi MCP 功能扩展
- 新增商城客户端、知识库、缓存和同步模块
- 添加多语言提示词系统 (YAML)
- 完善项目结构: 整理文档、脚本和测试文件
- 新增调试和测试工具脚本

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-16 16:28:47 +08:00

103 lines
3.3 KiB
Bash
Executable File
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# 检查 Chatwoot 会话和消息
echo "======================================"
echo "Chatwoot 会话检查工具"
echo "======================================"
echo ""
# 需要设置环境变量
if [ -z "$CHATWOOT_API_TOKEN" ]; then
echo "❌ 请先设置 CHATWOOT_API_TOKEN 环境变量"
echo ""
echo "获取方式:"
echo "1. 访问 http://localhost:3000"
echo "2. 登录后进入 Settings → Profile → Access Tokens"
echo "3. 创建一个新的 Access Token"
echo ""
echo "然后运行:"
echo " CHATWOOT_API_TOKEN=your_token $0"
echo ""
exit 1
fi
CHATWOOT_BASE_URL="http://localhost:3000"
ACCOUNT_ID="2"
echo "🔍 正在检查 Chatwoot 会话..."
echo ""
# 1. 获取所有收件箱
echo "1⃣ 获取所有收件箱..."
INBOXES=$(curl -s \
-H "Authorization: Bearer $CHATWOOT_API_TOKEN" \
"$CHATWOOT_BASE_URL/api/v1/accounts/$ACCOUNT_ID/inboxes")
INBOX_IDS=$(echo "$INBOXES" | grep -o '"id":[0-9]*' | grep -o '[0-9]*' | sort -u | head -5)
echo " 找到收件箱: $(echo "$INBOX_IDS" | wc -l)"
echo ""
# 2. 检查每个收件箱的会话
echo "2⃣ 检查最近的会话..."
echo "======================================"
for INBOX_ID in $INBOX_IDS; do
echo ""
echo "📬 收件箱 ID: $INBOX_ID"
echo "--------------------------------------"
# 获取收件箱名称
INBOX_NAME=$(echo "$INBOXES" | grep -o "\"id\":$INBOX_ID" -A 20 | grep '"name":"' | head -1 | cut -d'"' -f4)
echo " 名称: $INBOX_NAME"
# 获取最近5个会话
CONVERSATIONS=$(curl -s \
-H "Authorization: Bearer $CHATWOOT_API_TOKEN" \
"$CHATWOOT_BASE_URL/api/v1/accounts/$ACCOUNT_ID/conversations?inbox_id=$INBOX_ID&sort=-created_at" | head -100)
CONV_IDS=$(echo "$CONVERSATIONS" | grep -o '"id":[0-9]*' | grep -o '[0-9]*' | head -5)
if [ -z "$CONV_IDS" ]; then
echo " 没有会话"
continue
fi
echo " 最近的会话:"
echo "$CONV_IDS" | while read CONV_ID; do
# 获取会话详情
CONV_DETAIL=$(curl -s \
-H "Authorization: Bearer $CHATWOOT_API_TOKEN" \
"$CHATWOOT_BASE_URL/api/v1/accounts/$ACCOUNT_ID/conversations/$CONV_ID")
# 提取会话信息
STATUS=$(echo "$CONV_DETAIL" | grep -o '"status":"[^"]*"' | head -1 | cut -d'"' -f4)
CREATED_AT=$(echo "$CONV_DETAIL" | grep -o '"created_at":[^,}]*' | head -1 | cut -d'"' -f2)
# 获取消息数量
MESSAGES=$(curl -s \
-H "Authorization: Bearer $CHATWOOT_API_TOKEN" \
"$CHATWOOT_BASE_URL/api/v1/accounts/$ACCOUNT_ID/conversations/$CONV_ID/messages")
MSG_COUNT=$(echo "$MESSAGES" | grep -o '"content":' | wc -l)
echo " • 会话 #$CONV_ID - 状态: $Status - 消息数: $MSG_COUNT"
# 获取最后几条消息
echo "$MESSAGES" | grep -o '"content":"[^"]*"' | tail -3 | while read MSG; do
CONTENT=$(echo "$MSG" | cut -d'"' -f4 | sed 's/&quot;/"/g' | head -c 50)
echo " - $CONTENT..."
done
done
done
echo ""
echo "======================================"
echo ""
echo "💡 提示:"
echo "1. 查看上面的会话列表"
echo "2. 记录你正在测试的会话 ID"
echo "3. 在 Agent 日志中查找相同的 conversation_id"
echo "4. 如果会话 ID 不匹配,说明 Widget 连接到了错误的会话"
echo ""