{ "id": "com.yuxi.channels.qqbot", "name": "QQ Bot", "version": "1.0.0", "channel_type": "qqbot", "icon": "message-circle", "entry_module": "yuxi.channels.plugins.qqbot.entry", "provides": ["qqbot"], "lifecycle": ["init", "start", "stop", "pause", "resume", "unload", "reconfigure", "fail"], "compatibility": { "min_host_version": "1.0.0", "qqbot_api_version": "v2" }, "failure_policy": "degrade", "depends": [], "critical": false, "requires_dm_pairing": true, "requires_outbound_delivery": true, "max_message_length": 4000, "supports_credential_cloning": false, "transport_mode": "stream", "credential_strategy": { "type": "static", "acquire_method": "manual", "required_fields": ["app_id", "app_secret"], "optional_fields": [], "supports_rotation": true, "supports_revocation": false }, "capabilities": { "rich_message": true, "streaming": false, "typing_indicator": false, "message_edit": false, "message_recall": true, "supports_reaction": false, "supports_pin": false, "supports_card_update": false, "supports_card_update_streaming": false, "supports_image_inbound": true, "supports_video_inbound": true, "supports_image_outbound": true, "supports_video_outbound": true, "mention": true, "command": false, "directory": true, "doctor": true, "whitelist": true, "wizard": true, "tools": false, "status": true, "probeable": true, "identity_resolver": true, "lifecycle": true, "supports_qr_login": false, "agent_collaboration": false }, "capability_requirements": [ ["rich_message", ["app_id", "app_secret"]], ["message_recall", ["app_id", "app_secret"]], ["supports_image_inbound", ["app_id", "app_secret"]], ["supports_video_inbound", ["app_id", "app_secret"]], ["supports_image_outbound", ["app_id", "app_secret"]], ["supports_video_outbound", ["app_id", "app_secret"]], ["mention", ["app_id", "app_secret"]], ["directory", ["app_id", "app_secret"]], ["doctor", ["app_id", "app_secret"]], ["whitelist", ["app_id", "app_secret"]], ["wizard", ["app_id", "app_secret"]], ["status", ["app_id", "app_secret"]], ["probeable", ["app_id", "app_secret"]], ["identity_resolver", ["app_id", "app_secret"]], ["lifecycle", ["app_id", "app_secret"]] ], "resource_quota": { "max_cpu": "15.0", "max_memory": "128MB", "max_connections": 20, "max_calls_per_sec": 20 }, "accessible_ports": [ "ConfigPort", "LoggerPort", "PersistencePort", "CachePort", "TracerPort", "ConversationPort", "IdentityResolverPort" ], "injectable_pipelines": ["inbound", "outbound"], "config_schema": [ {"key": "app_id", "type": "string", "required": true, "default": null, "hot_reloadable": false, "scope": "account", "constraints": {}}, {"key": "app_secret", "type": "string", "required": true, "default": null, "hot_reloadable": false, "sensitive": true, "scope": "account", "constraints": {}}, {"key": "intents", "type": "integer", "required": false, "default": 100663296, "hot_reloadable": false, "scope": "channel", "constraints": {"min": 0, "max": 2147483647}}, {"key": "api_base", "type": "string", "required": false, "default": "https://api.sgroup.qq.com", "hot_reloadable": false, "scope": "channel", "constraints": {"pattern": "^https://"}}, {"key": "gateway_url", "type": "string", "required": false, "default": null, "hot_reloadable": false, "scope": "channel", "constraints": {"pattern": "^(wss|https)://"}}, {"key": "sandbox", "type": "boolean", "required": false, "default": false, "hot_reloadable": false, "scope": "channel", "constraints": {}}, {"key": "http_timeout_ms", "type": "integer", "required": false, "default": 30000, "hot_reloadable": true, "scope": "channel", "constraints": {"min": 5000, "max": 60000}}, {"key": "ws_heartbeat_interval_ms", "type": "integer", "required": false, "default": 30000, "hot_reloadable": true, "scope": "channel", "constraints": {"min": 10000, "max": 60000}}, {"key": "ws_stall_timeout_ms", "type": "integer", "required": false, "default": 120000, "hot_reloadable": true, "scope": "channel", "constraints": {"min": 60000, "max": 300000}}, {"key": "passive_reply_limit_c2c", "type": "integer", "required": false, "default": 4, "hot_reloadable": true, "scope": "channel", "constraints": {"min": 1, "max": 10}}, {"key": "passive_reply_limit_group", "type": "integer", "required": false, "default": 5, "hot_reloadable": true, "scope": "channel", "constraints": {"min": 1, "max": 10}}, {"key": "passive_reply_ttl_c2c_ms", "type": "integer", "required": false, "default": 3600000, "hot_reloadable": true, "scope": "channel", "constraints": {"min": 600000, "max": 7200000}}, {"key": "passive_reply_ttl_group_ms", "type": "integer", "required": false, "default": 300000, "hot_reloadable": true, "scope": "channel", "constraints": {"min": 60000, "max": 1800000}}, {"key": "group_active_qpm_account_verified", "type": "integer", "required": false, "default": 60, "hot_reloadable": true, "scope": "channel", "constraints": {"min": 1, "max": 120}}, {"key": "group_active_qpm_account_unverified", "type": "integer", "required": false, "default": 30, "hot_reloadable": true, "scope": "channel", "constraints": {"min": 1, "max": 120}}, {"key": "group_active_qpm_per_group", "type": "integer", "required": false, "default": 20, "hot_reloadable": true, "scope": "channel", "constraints": {"min": 1, "max": 60}}, {"key": "token_cache_ttl", "type": "integer", "required": false, "default": 7200, "hot_reloadable": true, "scope": "channel", "constraints": {"min": 60, "max": 7200}}, {"key": "user_cache_ttl", "type": "integer", "required": false, "default": 3600, "hot_reloadable": true, "scope": "channel", "constraints": {"min": 60, "max": 7200}}, {"key": "identity_cache_ttl", "type": "integer", "required": false, "default": 60, "hot_reloadable": true, "scope": "channel", "constraints": {"min": 10, "max": 600}}, {"key": "url_whitelist", "type": "array", "required": false, "default": [], "hot_reloadable": true, "scope": "channel", "constraints": {"max_items": 20}} ], "env_vars": [ {"name": "QQBOT_APP_ID", "description": "QQ Bot 应用 App ID", "required": true, "default": null, "sensitive": false}, {"name": "QQBOT_APP_SECRET", "description": "QQ Bot 应用 Client Secret", "required": true, "default": null, "sensitive": true}, {"name": "QQBOT_INTENTS", "description": "Intents 位掩码(十进制或 0x 十六进制)", "required": false, "default": "0x06000000", "sensitive": false}, {"name": "QQBOT_API_BASE", "description": "QQ Bot API 基础地址", "required": false, "default": "https://api.sgroup.qq.com", "sensitive": false}, {"name": "QQBOT_GATEWAY_URL", "description": "WebSocket Gateway 接入点(留空则通过 /gateway 动态获取)", "required": false, "default": null, "sensitive": false}, {"name": "QQBOT_SANDBOX", "description": "是否使用沙箱环境", "required": false, "default": "false", "sensitive": false}, {"name": "QQBOT_HTTP_TIMEOUT_MS", "description": "HTTP 客户端超时(毫秒)", "required": false, "default": "30000", "sensitive": false} ] }