| commit | 6a6d91d4229182b365bb94d0a26727c881d011f6 | [log] [download] |
|---|---|---|
| author | Rivoreo AutoPilot <autopilot@rivoreo.one> | Fri Oct 03 20:07:26 2025 +0800 |
| committer | Rivoreo AutoPilot <autopilot@rivoreo.one> | Fri Oct 03 20:07:26 2025 +0800 |
| tree | 02cae7d15671ba6b86b1c434c6be10d40a0a65e6 | |
| parent | 0d37a8eb9567425c4504f9870b76bd5819bc9f00 [diff] |
fix(webhook): resolve datetime JSON serialization error Fix "Object of type datetime is not JSON serializable" error that occurred during bot registration to webhook server by: - Add ConfigDict with json_encoders for datetime fields in BotRegistration and WebhookResponse models - Replace deprecated .dict() calls with .model_dump(mode='json') in webhook client and server for proper Pydantic v2 serialization - Ensure all datetime objects are properly converted to ISO format strings This resolves the webhook integration initialization failure and enables successful bot-to-bot communication setup. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
基于Claude Code SDK的智能助手项目,支持多种交互模式和Telegram Bot功能。
claude-agent/ ├── src/claude_agent/ # 源代码 │ ├── core/ # 核心Agent功能 │ │ └── agent.py # Agent核心逻辑 │ ├── telegram/ # Telegram Bot模块 │ │ ├── bot.py # Bot主类 │ │ ├── message_handler.py # 消息处理器 │ │ ├── context_manager.py # 上下文管理 │ │ ├── file_handler.py # 文件处理 │ │ ├── stream_sender.py # 流式消息发送 │ │ ├── claude_adapter.py # Claude Agent适配器 │ │ └── interfaces.py # 接口定义 │ ├── storage/ # 持久化存储 │ │ └── persistence.py # 数据持久化 │ └── utils/ # 工具函数 ├── scripts/ # 启动脚本 │ ├── start_telegram_bot.py # Telegram Bot启动脚本 │ ├── verify_telegram_bot.py # 功能验证脚本 │ ├── main.py # 基础CLI │ └── main_enhanced.py # 增强CLI ├── run/telegrambot/ # Telegram Bot专用运行环境 │ ├── CLAUDE.md # Bot个性化提示词 │ └── start_telegrambot.sh # 便捷启动脚本 ├── configs/ # 配置文件 │ ├── default.toml # 默认配置模板 │ ├── local.toml # 本地开发配置 │ └── production.toml # 生产环境配置 ├── tests/ # 测试套件 │ ├── unit/ # 单元测试 │ ├── integration/ # 集成测试 │ └── blackbox/ # 黑盒测试 ├── data/ # 运行时数据 │ └── storage/ # 持久化数据存储 └── temp/ # 临时文件
# 激活虚拟环境 source venv/bin/activate # 确保依赖已安装 pip install -r requirements.txt
获取Bot Token:
配置文件设置 (configs/local.toml):
[telegram] bot_token = "YOUR_BOT_TOKEN_HERE" allowed_users = [YOUR_USER_ID] allowed_groups = [YOUR_GROUP_ID] [telegram.message] stream_update_interval = 1.0 max_message_length = 4096 context_history_limit = 50
获取用户/群组ID:
# 运行Bot后查看日志获取ID python scripts/start_telegram_bot.py
# 方式1: 使用专用启动脚本(推荐) cd run/telegrambot ./start_telegrambot.sh # 方式2: 直接启动 python scripts/start_telegram_bot.py # 方式3: 指定配置环境 CLAUDE_CONFIG=production python scripts/start_telegram_bot.py
# 完整测试套件 python -m pytest tests/unit/ -v # Telegram模块测试 python -m pytest tests/unit/telegram/ -v # 覆盖率检查 python -m pytest tests/unit/ --cov=src/claude_agent --cov-report=term # 功能验证 python scripts/verify_telegram_bot.py
[telegram] bot_token = "BOT_TOKEN" # Telegram Bot Token allowed_users = [123456] # 允许的用户ID列表 allowed_groups = [-1001234567] # 允许的群组ID列表 [telegram.message] stream_update_interval = 1.0 # 流式消息更新间隔(秒) max_message_length = 4096 # 最大消息长度 context_history_limit = 50 # 上下文历史保留数量 [telegram.files] max_file_size_mb = 20 # 最大文件大小(MB) temp_dir = "temp/telegram" # 临时文件目录
Bot Token无效
❌ 请配置有效的Telegram Bot Token
解决: 检查 configs/local.toml 中的 bot_token 配置
权限被拒绝
❌ 用户无权限访问
解决: 将用户/群组ID添加到白名单
Markdown解析错误
❌ Can't parse entities
解决: 已修复Markdown清理机制,确保格式正确
# 运行测试 python -m pytest tests/unit/ -v # 代码格式化 black src/ tests/ # 类型检查 mypy src/
MIT License - 详见 LICENSE 文件
注意: 请勿将包含真实Bot Token的配置文件提交到版本控制系统。