Undefined-bot 2.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- undefined_bot-2.1.0/.env.example +75 -0
- undefined_bot-2.1.0/.github/release.yml +32 -0
- undefined_bot-2.1.0/.github/workflows/release.yml +95 -0
- undefined_bot-2.1.0/.gitignore +46 -0
- undefined_bot-2.1.0/.gitmodules +3 -0
- undefined_bot-2.1.0/LICENSE +7 -0
- undefined_bot-2.1.0/PKG-INFO +259 -0
- undefined_bot-2.1.0/README.md +213 -0
- undefined_bot-2.1.0/data/.gitignore +3 -0
- undefined_bot-2.1.0/data/debug/.gitignore +1 -0
- undefined_bot-2.1.0/data/debug/.gitkeep +0 -0
- undefined_bot-2.1.0/data/faq/.gitignore +1 -0
- undefined_bot-2.1.0/data/faq/.gitkeep +0 -0
- undefined_bot-2.1.0/data/img/head.jpg +0 -0
- undefined_bot-2.1.0/data/img/xlwy.jpg +0 -0
- undefined_bot-2.1.0/img/.gitignore +2 -0
- undefined_bot-2.1.0/img/.gitkeep +0 -0
- undefined_bot-2.1.0/pyproject.toml +80 -0
- undefined_bot-2.1.0/res/prepared_messages/help_message.txt +47 -0
- undefined_bot-2.1.0/res/prompts/analyze_multimodal.txt +164 -0
- undefined_bot-2.1.0/res/prompts/describe_image.txt +86 -0
- undefined_bot-2.1.0/res/prompts/injection_detector.txt +91 -0
- undefined_bot-2.1.0/res/prompts/injection_response_agent.txt +35 -0
- undefined_bot-2.1.0/res/prompts/merge_summaries.txt +25 -0
- undefined_bot-2.1.0/res/prompts/summarize.txt +21 -0
- undefined_bot-2.1.0/res/prompts/undefined.xml +717 -0
- undefined_bot-2.1.0/src/Undefined/__init__.py +3 -0
- undefined_bot-2.1.0/src/Undefined/__main__.py +6 -0
- undefined_bot-2.1.0/src/Undefined/ai.py +1215 -0
- undefined_bot-2.1.0/src/Undefined/config.py +371 -0
- undefined_bot-2.1.0/src/Undefined/end_summary_storage.py +48 -0
- undefined_bot-2.1.0/src/Undefined/faq.py +244 -0
- undefined_bot-2.1.0/src/Undefined/handlers.py +1247 -0
- undefined_bot-2.1.0/src/Undefined/injection_response_agent.py +131 -0
- undefined_bot-2.1.0/src/Undefined/main.py +126 -0
- undefined_bot-2.1.0/src/Undefined/memory.py +120 -0
- undefined_bot-2.1.0/src/Undefined/onebot.py +512 -0
- undefined_bot-2.1.0/src/Undefined/rate_limit.py +130 -0
- undefined_bot-2.1.0/src/Undefined/render.py +123 -0
- undefined_bot-2.1.0/src/Undefined/scheduled_task_storage.py +88 -0
- undefined_bot-2.1.0/src/Undefined/services/__init__.py +1 -0
- undefined_bot-2.1.0/src/Undefined/services/queue_manager.py +206 -0
- undefined_bot-2.1.0/src/Undefined/skills/README.md +53 -0
- undefined_bot-2.1.0/src/Undefined/skills/__init__.py +10 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/README.md +144 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/__init__.py +116 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/entertainment_agent/config.json +17 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/entertainment_agent/handler.py +220 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/entertainment_agent/intro.md +25 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/entertainment_agent/prompt.md +20 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/entertainment_agent/tools/__init__.py +1 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/entertainment_agent/tools/ai_draw_one/config.json +34 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/entertainment_agent/tools/ai_draw_one/handler.py +62 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/entertainment_agent/tools/ai_study_helper/config.json +22 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/entertainment_agent/tools/ai_study_helper/handler.py +35 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/entertainment_agent/tools/get_current_time/config.json +12 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/entertainment_agent/tools/get_current_time/handler.py +5 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/entertainment_agent/tools/horoscope/config.json +24 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/entertainment_agent/tools/horoscope/handler.py +141 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/entertainment_agent/tools/minecraft_skin/config.json +43 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/entertainment_agent/tools/minecraft_skin/handler.py +55 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/entertainment_agent/tools/novel_search/config.json +25 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/entertainment_agent/tools/novel_search/handler.py +31 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/entertainment_agent/tools/renjian/config.json +12 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/entertainment_agent/tools/renjian/handler.py +30 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/entertainment_agent/tools/wenchang_dijun/config.json +12 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/entertainment_agent/tools/wenchang_dijun/handler.py +44 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/file_analysis_agent/__init__.py +1 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/file_analysis_agent/config.json +21 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/file_analysis_agent/handler.py +248 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/file_analysis_agent/intro.md +22 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/file_analysis_agent/prompt.md +36 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/file_analysis_agent/tools/__init__.py +1 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_code/config.json +17 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_code/handler.py +427 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_multimodal/config.json +25 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_multimodal/handler.py +178 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/file_analysis_agent/tools/cleanup_temp/config.json +16 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/file_analysis_agent/tools/cleanup_temp/handler.py +35 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/file_analysis_agent/tools/detect_file_type/config.json +17 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/file_analysis_agent/tools/detect_file_type/handler.py +221 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/file_analysis_agent/tools/download_file/config.json +21 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/file_analysis_agent/tools/download_file/handler.py +124 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/file_analysis_agent/tools/extract_archive/config.json +25 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/file_analysis_agent/tools/extract_archive/handler.py +190 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/file_analysis_agent/tools/extract_docx/config.json +17 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/file_analysis_agent/tools/extract_docx/handler.py +78 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pdf/config.json +21 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pdf/handler.py +67 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pptx/config.json +17 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pptx/handler.py +73 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/file_analysis_agent/tools/extract_xlsx/config.json +17 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/file_analysis_agent/tools/extract_xlsx/handler.py +101 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/file_analysis_agent/tools/get_current_time/config.json +12 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/file_analysis_agent/tools/get_current_time/handler.py +5 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/file_analysis_agent/tools/read_text_file/config.json +21 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/file_analysis_agent/tools/read_text_file/handler.py +90 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/info_agent/config.json +17 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/info_agent/handler.py +220 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/info_agent/intro.md +22 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/info_agent/prompt.md +27 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/info_agent/tools/__init__.py +1 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/info_agent/tools/baiduhot/config.json +18 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/info_agent/tools/baiduhot/handler.py +49 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/info_agent/tools/base64/config.json +22 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/info_agent/tools/base64/handler.py +44 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/info_agent/tools/douyinhot/config.json +18 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/info_agent/tools/douyinhot/handler.py +53 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/info_agent/tools/get_current_time/config.json +12 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/info_agent/tools/get_current_time/handler.py +5 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/info_agent/tools/gold_price/config.json +12 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/info_agent/tools/gold_price/handler.py +58 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/info_agent/tools/hash/config.json +22 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/info_agent/tools/hash/handler.py +43 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/info_agent/tools/history/config.json +12 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/info_agent/tools/history/handler.py +37 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/info_agent/tools/net_check/config.json +17 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/info_agent/tools/net_check/handler.py +117 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/info_agent/tools/news_tencent/config.json +17 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/info_agent/tools/news_tencent/handler.py +38 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/info_agent/tools/qq_level_query/config.json +29 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/info_agent/tools/qq_level_query/handler.py +48 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/info_agent/tools/speed/config.json +17 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/info_agent/tools/speed/handler.py +37 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/info_agent/tools/tcping/config.json +21 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/info_agent/tools/tcping/handler.py +53 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/info_agent/tools/weather_query/config.json +22 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/info_agent/tools/weather_query/handler.py +207 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/info_agent/tools/weibohot/config.json +18 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/info_agent/tools/weibohot/handler.py +49 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/info_agent/tools/whois/config.json +17 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/info_agent/tools/whois/handler.py +63 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/naga_code_analysis_agent/config.json +17 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/naga_code_analysis_agent/handler.py +222 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/naga_code_analysis_agent/intro.md +17 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/naga_code_analysis_agent/prompt.md +19 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/naga_code_analysis_agent/tools/__init__.py +1 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/naga_code_analysis_agent/tools/get_current_time/config.json +12 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/naga_code_analysis_agent/tools/get_current_time/handler.py +5 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/naga_code_analysis_agent/tools/glob/config.json +17 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/naga_code_analysis_agent/tools/glob/handler.py +37 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/naga_code_analysis_agent/tools/list_directory/config.json +17 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/naga_code_analysis_agent/tools/list_directory/handler.py +31 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_file/config.json +17 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_file/handler.py +66 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_naga_intro/config.json +12 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_naga_intro/handler.py +327 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/naga_code_analysis_agent/tools/search_file_content/config.json +25 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/naga_code_analysis_agent/tools/search_file_content/handler.py +46 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/scheduler_agent/__init__.py +1 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/scheduler_agent/config.json +17 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/scheduler_agent/handler.py +218 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/scheduler_agent/intro.md +17 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/scheduler_agent/prompt.md +67 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/scheduler_agent/tools/__init__.py +1 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/scheduler_agent/tools/create_schedule_task/config.json +37 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/scheduler_agent/tools/create_schedule_task/handler.py +68 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/scheduler_agent/tools/delete_schedule_task/config.json +19 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/scheduler_agent/tools/delete_schedule_task/handler.py +26 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/scheduler_agent/tools/get_current_time/config.json +12 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/scheduler_agent/tools/get_current_time/handler.py +5 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/scheduler_agent/tools/list_schedule_tasks/config.json +11 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/scheduler_agent/tools/list_schedule_tasks/handler.py +47 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/scheduler_agent/tools/update_schedule_task/config.json +39 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/scheduler_agent/tools/update_schedule_task/handler.py +46 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/social_agent/config.json +17 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/social_agent/handler.py +220 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/social_agent/intro.md +17 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/social_agent/prompt.md +19 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/social_agent/tools/__init__.py +1 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/social_agent/tools/bilibili_search/config.json +21 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/social_agent/tools/bilibili_search/handler.py +68 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/social_agent/tools/bilibili_user_info/config.json +17 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/social_agent/tools/bilibili_user_info/handler.py +68 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/social_agent/tools/get_current_time/config.json +12 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/social_agent/tools/get_current_time/handler.py +5 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/social_agent/tools/music_global_search/config.json +21 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/social_agent/tools/music_global_search/handler.py +47 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/social_agent/tools/music_info_get/config.json +22 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/social_agent/tools/music_info_get/handler.py +35 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/social_agent/tools/music_lyrics/config.json +22 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/social_agent/tools/music_lyrics/handler.py +26 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/social_agent/tools/video_random_recommend/config.json +21 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/social_agent/tools/video_random_recommend/handler.py +21 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/web_agent/config.json +17 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/web_agent/handler.py +221 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/web_agent/intro.md +14 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/web_agent/prompt.md +16 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/web_agent/tools/__init__.py +1 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/web_agent/tools/crawl_webpage/config.json +21 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/web_agent/tools/crawl_webpage/handler.py +102 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/web_agent/tools/get_current_time/config.json +12 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/web_agent/tools/get_current_time/handler.py +5 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/web_agent/tools/web_search/config.json +21 -0
- undefined_bot-2.1.0/src/Undefined/skills/agents/web_agent/tools/web_search/handler.py +29 -0
- undefined_bot-2.1.0/src/Undefined/skills/tools/README.md +85 -0
- undefined_bot-2.1.0/src/Undefined/skills/tools/__init__.py +120 -0
- undefined_bot-2.1.0/src/Undefined/skills/tools/debug/config.json +17 -0
- undefined_bot-2.1.0/src/Undefined/skills/tools/debug/handler.py +35 -0
- undefined_bot-2.1.0/src/Undefined/skills/tools/end/config.json +17 -0
- undefined_bot-2.1.0/src/Undefined/skills/tools/end/handler.py +24 -0
- undefined_bot-2.1.0/src/Undefined/skills/tools/get_current_time/config.json +12 -0
- undefined_bot-2.1.0/src/Undefined/skills/tools/get_current_time/handler.py +5 -0
- undefined_bot-2.1.0/src/Undefined/skills/tools/get_forward_msg/config.json +17 -0
- undefined_bot-2.1.0/src/Undefined/skills/tools/get_forward_msg/handler.py +131 -0
- undefined_bot-2.1.0/src/Undefined/skills/tools/get_group_member_info/config.json +38 -0
- undefined_bot-2.1.0/src/Undefined/skills/tools/get_group_member_info/handler.py +142 -0
- undefined_bot-2.1.0/src/Undefined/skills/tools/get_messages_by_time/config.json +30 -0
- undefined_bot-2.1.0/src/Undefined/skills/tools/get_messages_by_time/handler.py +128 -0
- undefined_bot-2.1.0/src/Undefined/skills/tools/get_picture/config.json +45 -0
- undefined_bot-2.1.0/src/Undefined/skills/tools/get_picture/handler.py +191 -0
- undefined_bot-2.1.0/src/Undefined/skills/tools/get_recent_messages/config.json +30 -0
- undefined_bot-2.1.0/src/Undefined/skills/tools/get_recent_messages/handler.py +88 -0
- undefined_bot-2.1.0/src/Undefined/skills/tools/qq_like/config.json +22 -0
- undefined_bot-2.1.0/src/Undefined/skills/tools/qq_like/handler.py +58 -0
- undefined_bot-2.1.0/src/Undefined/skills/tools/render_html/config.json +26 -0
- undefined_bot-2.1.0/src/Undefined/skills/tools/render_html/handler.py +39 -0
- undefined_bot-2.1.0/src/Undefined/skills/tools/render_latex/config.json +26 -0
- undefined_bot-2.1.0/src/Undefined/skills/tools/render_latex/handler.py +78 -0
- undefined_bot-2.1.0/src/Undefined/skills/tools/render_markdown/config.json +26 -0
- undefined_bot-2.1.0/src/Undefined/skills/tools/render_markdown/handler.py +63 -0
- undefined_bot-2.1.0/src/Undefined/skills/tools/save_memory/config.json +17 -0
- undefined_bot-2.1.0/src/Undefined/skills/tools/save_memory/handler.py +17 -0
- undefined_bot-2.1.0/src/Undefined/skills/tools/send_message/config.json +21 -0
- undefined_bot-2.1.0/src/Undefined/skills/tools/send_message/handler.py +60 -0
- undefined_bot-2.1.0/src/Undefined/skills/tools/send_private_message/config.json +21 -0
- undefined_bot-2.1.0/src/Undefined/skills/tools/send_private_message/handler.py +35 -0
- undefined_bot-2.1.0/src/Undefined/utils/__init__.py +0 -0
- undefined_bot-2.1.0/src/Undefined/utils/common.py +186 -0
- undefined_bot-2.1.0/src/Undefined/utils/history.py +284 -0
- undefined_bot-2.1.0/src/Undefined/utils/scheduler.py +286 -0
- undefined_bot-2.1.0/src/Undefined/utils/sender.py +140 -0
- undefined_bot-2.1.0/uv.lock +3265 -0
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# ================================
|
|
2
|
+
# 机器人小号配置
|
|
3
|
+
# ================================
|
|
4
|
+
BOT_QQ= # 机器人QQ号
|
|
5
|
+
SUPERADMIN_QQ= # 超级管理员QQ号(唯一,可添加其他管理员)
|
|
6
|
+
ADMIN_QQ= # 初始管理员QQ号列表(逗号分隔,可选)
|
|
7
|
+
FORWARD_PROXY_QQ= # 音频转发代理QQ号(用于群聊音频转发,可选)
|
|
8
|
+
|
|
9
|
+
# ================================
|
|
10
|
+
# OneBot WebSocket 配置
|
|
11
|
+
# ================================
|
|
12
|
+
ONEBOT_WS_URL=ws://127.0.0.1:3001 # NapCat WebSocket 地址
|
|
13
|
+
ONEBOT_TOKEN= # Access Token(可选)
|
|
14
|
+
|
|
15
|
+
# ================================
|
|
16
|
+
# 对话模型配置 (用于总结聊天记录)
|
|
17
|
+
# ================================
|
|
18
|
+
CHAT_MODEL_API_URL=
|
|
19
|
+
CHAT_MODEL_API_KEY=
|
|
20
|
+
CHAT_MODEL_NAME=
|
|
21
|
+
CHAT_MODEL_MAX_TOKENS=8192
|
|
22
|
+
CHAT_MODEL_THINKING_ENABLED=false # 是否启用 thinking(思维链)
|
|
23
|
+
CHAT_MODEL_THINKING_BUDGET_TOKENS=20000 # thinking budget tokens
|
|
24
|
+
|
|
25
|
+
# ================================
|
|
26
|
+
# 视觉模型配置 (用于图片描述和OCR)
|
|
27
|
+
# ================================
|
|
28
|
+
VISION_MODEL_API_URL=
|
|
29
|
+
VISION_MODEL_API_KEY=
|
|
30
|
+
VISION_MODEL_NAME=
|
|
31
|
+
VISION_MODEL_THINKING_ENABLED=false # 是否启用 thinking(思维链)
|
|
32
|
+
VISION_MODEL_THINKING_BUDGET_TOKENS=20000 # thinking budget tokens
|
|
33
|
+
|
|
34
|
+
# ================================
|
|
35
|
+
# 安全模型配置 (用于防注入检测和注入后的回复生成)
|
|
36
|
+
# ================================
|
|
37
|
+
SECURITY_MODEL_API_URL=
|
|
38
|
+
SECURITY_MODEL_API_KEY=
|
|
39
|
+
SECURITY_MODEL_NAME=
|
|
40
|
+
SECURITY_MODEL_MAX_TOKENS=100 # 可选限制
|
|
41
|
+
SECURITY_MODEL_THINKING_ENABLED=false # 是否启用 thinking(思维链)
|
|
42
|
+
SECURITY_MODEL_THINKING_BUDGET_TOKENS=0 # thinking budget tokens
|
|
43
|
+
|
|
44
|
+
# ================================
|
|
45
|
+
# Agent 模型配置 (用于执行 agents)
|
|
46
|
+
# ================================
|
|
47
|
+
AGENT_MODEL_API_URL=
|
|
48
|
+
AGENT_MODEL_API_KEY=
|
|
49
|
+
AGENT_MODEL_NAME=
|
|
50
|
+
AGENT_MODEL_MAX_TOKENS=4096 # 可选限制
|
|
51
|
+
AGENT_MODEL_THINKING_ENABLED=false # 是否启用 thinking(思维链)
|
|
52
|
+
AGENT_MODEL_THINKING_BUDGET_TOKENS=0 # thinking budget tokens
|
|
53
|
+
|
|
54
|
+
# ================================
|
|
55
|
+
# 日志配置
|
|
56
|
+
# ================================
|
|
57
|
+
LOG_LEVEL=INFO # 日志级别(DEBUG/INFO/WARNING/ERROR)
|
|
58
|
+
LOG_FILE_PATH=logs/bot.log # 日志文件路径
|
|
59
|
+
LOG_MAX_SIZE_MB=10 # 单个日志文件最大大小(MB)
|
|
60
|
+
LOG_BACKUP_COUNT=5 # 保留日志文件数量
|
|
61
|
+
|
|
62
|
+
# ================================
|
|
63
|
+
# 搜索服务配置 (SearXNG)
|
|
64
|
+
# ================================
|
|
65
|
+
SEARXNG_URL= # SearXNG 搜索服务地址,如 http://127.0.0.1:8849
|
|
66
|
+
|
|
67
|
+
# ================================
|
|
68
|
+
# 天气API配置 (心知天气)
|
|
69
|
+
# ================================
|
|
70
|
+
WEATHER_API_KEY= # 心知天气API密钥,从 https://www.seniverse.com/ 获取
|
|
71
|
+
|
|
72
|
+
# ================================
|
|
73
|
+
# XXAPI API 配置
|
|
74
|
+
# ================================
|
|
75
|
+
XXAPI_API_TOKEN= # XXAPI Token,前往 https://xxapi.cn 获取
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
changelog:
|
|
2
|
+
exclude:
|
|
3
|
+
labels:
|
|
4
|
+
- ignore-for-release
|
|
5
|
+
authors:
|
|
6
|
+
- github-actions
|
|
7
|
+
categories:
|
|
8
|
+
- title: "🚀 New Features | 新功能"
|
|
9
|
+
labels:
|
|
10
|
+
- enhancement
|
|
11
|
+
- feature
|
|
12
|
+
- "new feature"
|
|
13
|
+
- title: "🐛 Bug Fixes | Bug 修复"
|
|
14
|
+
labels:
|
|
15
|
+
- bug
|
|
16
|
+
- fix
|
|
17
|
+
- error
|
|
18
|
+
- title: "📚 Documentation | 文档"
|
|
19
|
+
labels:
|
|
20
|
+
- documentation
|
|
21
|
+
- doc
|
|
22
|
+
- docs
|
|
23
|
+
- title: "🛠 Maintenance | 维护与重构"
|
|
24
|
+
labels:
|
|
25
|
+
- chore
|
|
26
|
+
- maintenance
|
|
27
|
+
- refactor
|
|
28
|
+
- style
|
|
29
|
+
- test
|
|
30
|
+
- title: "📦 Dependencies | 依赖更新"
|
|
31
|
+
labels:
|
|
32
|
+
- dependencies
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- "v*"
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: write
|
|
10
|
+
id-token: write
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
build-and-release:
|
|
14
|
+
name: Build and Release
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
environment: release
|
|
17
|
+
steps:
|
|
18
|
+
- name: Checkout code
|
|
19
|
+
uses: actions/checkout@v4
|
|
20
|
+
with:
|
|
21
|
+
fetch-depth: 0
|
|
22
|
+
|
|
23
|
+
- name: Fetch tags
|
|
24
|
+
run: git fetch --tags --force
|
|
25
|
+
|
|
26
|
+
- name: Install uv
|
|
27
|
+
uses: astral-sh/setup-uv@v5
|
|
28
|
+
with:
|
|
29
|
+
enable-cache: true
|
|
30
|
+
|
|
31
|
+
- name: Set up Python
|
|
32
|
+
run: uv python install 3.12
|
|
33
|
+
|
|
34
|
+
- name: Build project
|
|
35
|
+
run: uv build
|
|
36
|
+
|
|
37
|
+
- name: Create Release
|
|
38
|
+
env:
|
|
39
|
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
40
|
+
run: |
|
|
41
|
+
# 1. 检查是否为注解标签 (Annotated Tag)
|
|
42
|
+
TAG_TYPE=$(git cat-file -t ${{ github.ref_name }})
|
|
43
|
+
TAG_CONTENT=""
|
|
44
|
+
|
|
45
|
+
if [ "$TAG_TYPE" = "tag" ]; then
|
|
46
|
+
# 使用 %(contents) 获取完整的 Tag Message
|
|
47
|
+
TAG_CONTENT=$(git tag -l --format='%(contents)' ${{ github.ref_name }})
|
|
48
|
+
# 移除 PGP 签名(如果存在)
|
|
49
|
+
TAG_CONTENT=$(echo "$TAG_CONTENT" | sed '/-----BEGIN PGP SIGNATURE-----/,/-----END PGP SIGNATURE-----/d')
|
|
50
|
+
fi
|
|
51
|
+
|
|
52
|
+
# 2. 获取上一个 Tag
|
|
53
|
+
PREV_TAG=$(git describe --tags --abbrev=0 ${{ github.ref_name }}^ 2>/dev/null || git rev-list --max-parents=0 HEAD)
|
|
54
|
+
|
|
55
|
+
# 3. 初始化 tag_message.txt
|
|
56
|
+
if [ -n "$TAG_CONTENT" ]; then
|
|
57
|
+
echo "$TAG_CONTENT" > tag_message.txt
|
|
58
|
+
echo -e "\n---\n" >> tag_message.txt
|
|
59
|
+
else
|
|
60
|
+
touch tag_message.txt
|
|
61
|
+
fi
|
|
62
|
+
|
|
63
|
+
# 4. 追加"Detailed Changes"标题
|
|
64
|
+
echo -e "## 📝 Detailed Changes\n" >> tag_message.txt
|
|
65
|
+
|
|
66
|
+
# 5. 自动生成基于 Commit 的详细列表 (Angular 规范分类)
|
|
67
|
+
# 仅在有对应 commits 时才显示标题
|
|
68
|
+
FEAT_COMMITS=$(git log ${PREV_TAG}..${{ github.ref_name }} --grep="^feat" --pretty=format:"* %s (%h)" 2>/dev/null || true)
|
|
69
|
+
if [ -n "$FEAT_COMMITS" ]; then
|
|
70
|
+
echo -e "### 🚀 Features" >> tag_message.txt
|
|
71
|
+
echo "$FEAT_COMMITS" >> tag_message.txt
|
|
72
|
+
echo -e "\n" >> tag_message.txt
|
|
73
|
+
fi
|
|
74
|
+
|
|
75
|
+
FIX_COMMITS=$(git log ${PREV_TAG}..${{ github.ref_name }} --grep="^fix" --pretty=format:"* %s (%h)" 2>/dev/null || true)
|
|
76
|
+
if [ -n "$FIX_COMMITS" ]; then
|
|
77
|
+
echo -e "### 🐛 Bug Fixes" >> tag_message.txt
|
|
78
|
+
echo "$FIX_COMMITS" >> tag_message.txt
|
|
79
|
+
echo -e "\n" >> tag_message.txt
|
|
80
|
+
fi
|
|
81
|
+
|
|
82
|
+
OTHER_COMMITS=$(git log ${PREV_TAG}..${{ github.ref_name }} --grep="^feat\|^fix" --invert-grep --pretty=format:"* %s (%h)" 2>/dev/null || true)
|
|
83
|
+
if [ -n "$OTHER_COMMITS" ]; then
|
|
84
|
+
echo -e "### 🛠 Maintenance & Others" >> tag_message.txt
|
|
85
|
+
echo "$OTHER_COMMITS" >> tag_message.txt
|
|
86
|
+
fi
|
|
87
|
+
|
|
88
|
+
# 6. 创建 Release
|
|
89
|
+
gh release create ${{ github.ref_name }} dist/* \
|
|
90
|
+
--title "Undefined ${{ github.ref_name }}" \
|
|
91
|
+
--notes-file tag_message.txt \
|
|
92
|
+
--generate-notes
|
|
93
|
+
|
|
94
|
+
- name: Publish to PyPI
|
|
95
|
+
run: uv publish
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Compiled and build artifacts
|
|
2
|
+
*.pyc
|
|
3
|
+
__pycache__/
|
|
4
|
+
|
|
5
|
+
# Dependencies
|
|
6
|
+
.venv/
|
|
7
|
+
venv/
|
|
8
|
+
node_modules/
|
|
9
|
+
|
|
10
|
+
# Logs and temp files
|
|
11
|
+
*.log
|
|
12
|
+
*.tmp
|
|
13
|
+
*.swp
|
|
14
|
+
temp/
|
|
15
|
+
|
|
16
|
+
# Environment
|
|
17
|
+
.env
|
|
18
|
+
|
|
19
|
+
# Editors
|
|
20
|
+
.vscode/
|
|
21
|
+
.idea/
|
|
22
|
+
|
|
23
|
+
# Coverage reports
|
|
24
|
+
coverage/
|
|
25
|
+
htmlcov/
|
|
26
|
+
.coverage
|
|
27
|
+
|
|
28
|
+
# Python specific
|
|
29
|
+
*.pyc
|
|
30
|
+
__pycache__/
|
|
31
|
+
*.pyo
|
|
32
|
+
*.pyd
|
|
33
|
+
.Python
|
|
34
|
+
*.so
|
|
35
|
+
|
|
36
|
+
# Testing
|
|
37
|
+
.pytest_cache/
|
|
38
|
+
.mypy_cache/
|
|
39
|
+
|
|
40
|
+
logs/*
|
|
41
|
+
|
|
42
|
+
AGENTS.md
|
|
43
|
+
.DS_Store
|
|
44
|
+
.claude/
|
|
45
|
+
|
|
46
|
+
config.local.json
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
Copyright (c) <2025> <Null>
|
|
2
|
+
|
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
4
|
+
|
|
5
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
6
|
+
|
|
7
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: Undefined-bot
|
|
3
|
+
Version: 2.1.0
|
|
4
|
+
Summary: A high-performance, highly scalable QQ group and private chat robot based on a self-developed architecture.
|
|
5
|
+
Project-URL: Homepage, https://www.pylindex.top
|
|
6
|
+
Project-URL: Repository, https://github.com/69gg/Undefined
|
|
7
|
+
Project-URL: Issues, https://github.com/69gg/Undefined/issues
|
|
8
|
+
Author-email: Null <pylindex@qq.com>
|
|
9
|
+
License-File: LICENSE
|
|
10
|
+
Requires-Python: <=3.13,>=3.12
|
|
11
|
+
Requires-Dist: aiofiles>=25.1.0
|
|
12
|
+
Requires-Dist: aiohttp>=3.13.2
|
|
13
|
+
Requires-Dist: apscheduler>=3.10.0
|
|
14
|
+
Requires-Dist: chardet>=5.2.0
|
|
15
|
+
Requires-Dist: crawl4ai>=0.3.0
|
|
16
|
+
Requires-Dist: croniter>=2.0.0
|
|
17
|
+
Requires-Dist: httpx>=0.27.0
|
|
18
|
+
Requires-Dist: imgkit
|
|
19
|
+
Requires-Dist: langchain-community>=0.3.0
|
|
20
|
+
Requires-Dist: linkify-it-py>=2.0.3
|
|
21
|
+
Requires-Dist: markdown-it-py[plugins]>=4.0.0
|
|
22
|
+
Requires-Dist: markdown>=3.10
|
|
23
|
+
Requires-Dist: matplotlib
|
|
24
|
+
Requires-Dist: mdit-py-plugins>=0.5.0
|
|
25
|
+
Requires-Dist: openpyxl>=3.1.5
|
|
26
|
+
Requires-Dist: pillow
|
|
27
|
+
Requires-Dist: playwright>=1.57.0
|
|
28
|
+
Requires-Dist: py7zr>=1.1.0
|
|
29
|
+
Requires-Dist: pymdown-extensions>=10.20
|
|
30
|
+
Requires-Dist: pymupdf>=1.26.7
|
|
31
|
+
Requires-Dist: python-docx>=1.2.0
|
|
32
|
+
Requires-Dist: python-dotenv>=1.0.0
|
|
33
|
+
Requires-Dist: python-markdown-math>=0.9
|
|
34
|
+
Requires-Dist: python-pptx>=1.0.2
|
|
35
|
+
Requires-Dist: rarfile>=4.2
|
|
36
|
+
Requires-Dist: tiktoken>=0.7.0
|
|
37
|
+
Requires-Dist: types-aiofiles>=25.1.0.20251011
|
|
38
|
+
Requires-Dist: types-markdown>=3.10.0.20251106
|
|
39
|
+
Requires-Dist: websockets>=12.0
|
|
40
|
+
Provides-Extra: dev
|
|
41
|
+
Requires-Dist: mypy>=1.8.0; extra == 'dev'
|
|
42
|
+
Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
|
|
43
|
+
Requires-Dist: pytest-cov>=5.0.0; extra == 'dev'
|
|
44
|
+
Requires-Dist: pytest>=8.0.0; extra == 'dev'
|
|
45
|
+
Description-Content-Type: text/markdown
|
|
46
|
+
|
|
47
|
+
<table border="0">
|
|
48
|
+
<tr>
|
|
49
|
+
<td width="70%" valign="top">
|
|
50
|
+
<div align="center">
|
|
51
|
+
<h1>Undefined</h1>
|
|
52
|
+
<em>A high-performance, highly scalable QQ group and private chat robot based on a self-developed architecture.</em>
|
|
53
|
+
<br/><br/>
|
|
54
|
+
<a href="https://www.python.org/"><img src="https://img.shields.io/badge/Python-3.12-blue.svg" alt="Python"></a>
|
|
55
|
+
<a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-green.svg" alt="License"></a>
|
|
56
|
+
<br/><br/>
|
|
57
|
+
<p>大鹏一日同风起,扶摇直上九万里。</p>
|
|
58
|
+
</div>
|
|
59
|
+
<h3>项目简介</h3>
|
|
60
|
+
<p>
|
|
61
|
+
<strong>Undefined</strong> 是一个功能强大的 QQ 机器人平台,采用全新的 <strong>自研 Skills</strong> 架构。基于现代 Python 异步技术栈构建,它不仅提供基础的对话能力,更通过内置的多个智能 Agent 实现了代码分析、网络搜索、娱乐互动等多模态综合能力。
|
|
62
|
+
</p>
|
|
63
|
+
</td>
|
|
64
|
+
<td width="30%">
|
|
65
|
+
<img src="./data/img/head.jpg" width="100%" alt="Undefined" />
|
|
66
|
+
</td>
|
|
67
|
+
</tr>
|
|
68
|
+
</table>
|
|
69
|
+
|
|
70
|
+
### _与 [NagaAgent](https://github.com/Xxiii8322766509/NagaAgent) 进行联动!_
|
|
71
|
+
|
|
72
|
+
## 立即体验
|
|
73
|
+
|
|
74
|
+
[点击添加官方实例QQ](https://qm.qq.com/q/cvjJoNysGA)
|
|
75
|
+
|
|
76
|
+
## 核心特性
|
|
77
|
+
|
|
78
|
+
- **Skills 架构**:全新设计的技能系统,将基础工具(Tools)与智能代理(Agents)分层管理,支持自动发现与注册。
|
|
79
|
+
- **并行工具执行**:无论是主 AI 还是子 Agent,均支持 `asyncio` 并发工具调用,大幅提升多任务处理速度(如同时读取多个文件或搜索多个关键词)。
|
|
80
|
+
- **智能 Agent 矩阵**:内置多个专业 Agent,分工协作处理复杂任务。
|
|
81
|
+
- **思维链支持**:支持开启思维链,提升复杂逻辑推理能力。
|
|
82
|
+
- **高并发架构**:基于 `asyncio` 全异步设计,支持多队列消息处理与工具并发执行,轻松应对高并发场景。
|
|
83
|
+
- **安全防护**:内置独立的安全模型,实时检测注入攻击与恶意内容。
|
|
84
|
+
- **OneBot 协议**:完美兼容 OneBot V11 协议,支持多种前端实现(如 NapCat)。
|
|
85
|
+
|
|
86
|
+
## 安装与部署
|
|
87
|
+
|
|
88
|
+
### 方式一:使用 pip 安装(推荐)
|
|
89
|
+
|
|
90
|
+
如果您只是想使用机器人,推荐直接从 Release 下载安装包或通过 pip 安装。
|
|
91
|
+
|
|
92
|
+
#### 1. 安装
|
|
93
|
+
|
|
94
|
+
直接通过 PyPI 安装:
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
pip install Undefined-bot
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
或者下载 Release 中的 `.whl` 文件运行:
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
pip install /path/to/Undefined_bot-x.x.x-py3-none-any.whl
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
还需要安装浏览器内核(如果尚未安装):
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
playwright install
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
#### 2. 配置与运行
|
|
113
|
+
|
|
114
|
+
1. 创建一个文件夹作为机器人的**工作目录**。
|
|
115
|
+
2. 克隆 [_NagaAgent_ 仓库](https://github.com/Xxiii8322766509/NagaAgent) 至 `./code/NagaAgent`。
|
|
116
|
+
3. 在工作目录下创建一个 `.env` 文件,填入您的配置信息(参考下方配置说明或于 Github 中打开 `.env.example` 查看注释)。
|
|
117
|
+
4. 在工作目录下打开终端,直接输入命令启动:
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
Undefined
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
> **注意**:程序会自动读取当前运行目录下的 `.env` 文件作为配置。
|
|
124
|
+
|
|
125
|
+
### 方式二:源码部署(开发)
|
|
126
|
+
|
|
127
|
+
如果您想进行二次开发或调试,请使用此方式。
|
|
128
|
+
|
|
129
|
+
#### 1. 克隆项目
|
|
130
|
+
|
|
131
|
+
由于项目中使用了 `NagaAgent` 作为子模块,请使用以下命令克隆项目:
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
git clone --recursive https://github.com/69gg/Undefined.git
|
|
135
|
+
cd Undefined
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
如果已经克隆了项目但没有初始化子模块:
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
git submodule update --init --recursive
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
#### 2. 安装依赖
|
|
145
|
+
|
|
146
|
+
推荐使用 `uv` 进行依赖管理:
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
uv sync
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
#### 3. 配置环境
|
|
153
|
+
|
|
154
|
+
复制所有的示例配置文件(.env.example -> .env)并填写你的配置信息。
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
cp .env.example .env
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
#### 4. 启动运行
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
uv run -m Undefined
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### 配置说明(通用)
|
|
167
|
+
|
|
168
|
+
无论使用哪种方式,都需要配置 `.env` 文件:
|
|
169
|
+
|
|
170
|
+
- **基础配置**:`BOT_QQ`, `SUPERADMIN_QQ`, `ONEBOT_WS_URL`
|
|
171
|
+
- **模型配置**:
|
|
172
|
+
- `CHAT_MODEL_*`:主对话模型
|
|
173
|
+
- `VISION_MODEL_*`:视觉识别模型
|
|
174
|
+
- `AGENT_MODEL_*`:Agent 专用模型(建议使用能力更强的模型)
|
|
175
|
+
- `SECURITY_MODEL_*`:安全审核模型
|
|
176
|
+
- **功能配置**:`LOG_LEVEL` 等
|
|
177
|
+
|
|
178
|
+
> 启动项目需要 OneBot 实例,推荐使用 [NapCat](https://napneko.github.io/)。
|
|
179
|
+
|
|
180
|
+
## 使用说明
|
|
181
|
+
|
|
182
|
+
### 部署后的初始化
|
|
183
|
+
|
|
184
|
+
机器人启动后会自动连接到 OneBot 实例。如果连接成功,您会在日志中看到机器人 QQ 号及管理员信息。
|
|
185
|
+
|
|
186
|
+
### Agent 能力展示
|
|
187
|
+
|
|
188
|
+
机器人通过自然语言自动调用相应的 Agent 完成任务:
|
|
189
|
+
|
|
190
|
+
#### 1. 网络与信息
|
|
191
|
+
- "搜索一下最近的 AI 新闻"
|
|
192
|
+
- "看看今天的微博热搜"
|
|
193
|
+
- "查询北京明天的天气"
|
|
194
|
+
|
|
195
|
+
#### 2. 代码与开发
|
|
196
|
+
- "分析一下当前项目的目录结构"
|
|
197
|
+
- "读取 src/main.py 的内容并解释"
|
|
198
|
+
- "在代码库中搜索 'AgentRegistry'"
|
|
199
|
+
|
|
200
|
+
#### 3. 娱乐与社交
|
|
201
|
+
- "搜一首周杰伦的歌"
|
|
202
|
+
- "找一下 B 站关于 Python 的教程"
|
|
203
|
+
- "画一只赛博朋克风格的猫"
|
|
204
|
+
- "看一下今天的运势"
|
|
205
|
+
|
|
206
|
+
### 管理员命令
|
|
207
|
+
|
|
208
|
+
```bash
|
|
209
|
+
/help # 查看帮助
|
|
210
|
+
/lsadmin # 查看管理员列表
|
|
211
|
+
/addadmin <QQ> # 添加管理员(仅超级管理员)
|
|
212
|
+
/rmadmin <QQ> # 移除管理员(仅超级管理员)
|
|
213
|
+
/bugfix <QQ> <Time> # 生成 Bug 修复报告
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
### 消息优先级
|
|
217
|
+
|
|
218
|
+
系统采用多级优先队列设计:
|
|
219
|
+
1. **最高**:超级管理员私聊
|
|
220
|
+
2. **高**:普通私聊
|
|
221
|
+
3. **中**:群聊被 @
|
|
222
|
+
4. **低**:群聊普通消息
|
|
223
|
+
|
|
224
|
+
## 目录结构
|
|
225
|
+
|
|
226
|
+
```
|
|
227
|
+
src/Undefined/
|
|
228
|
+
├── skills/
|
|
229
|
+
│ ├── agents/ # 智能体集合 (Web, Code, Social...)
|
|
230
|
+
│ └── tools/ # 基础工具 (SendMsg, Render...)
|
|
231
|
+
├── config.py # 配置管理
|
|
232
|
+
├── handlers.py # 消息处理器
|
|
233
|
+
└── ai.py # AI 核心逻辑
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
## 扩展与开发
|
|
237
|
+
|
|
238
|
+
Undefined 采用模块化的 **Skills** 架构,扩展非常简单:
|
|
239
|
+
|
|
240
|
+
- **添加工具**: 在 `skills/tools/` 下新建目录,添加 `config.json` 和 `handler.py`。
|
|
241
|
+
- **添加 Agent**: 在 `skills/agents/` 下新建目录,定义 `intro.md` 和 `prompt.md`。
|
|
242
|
+
|
|
243
|
+
## 致谢与友链
|
|
244
|
+
|
|
245
|
+
### NagaAgent
|
|
246
|
+
|
|
247
|
+
本项目集成 **NagaAgent** 子模块。Undefined 诞生于 NagaAgent 社区,感谢作者及社区的支持。
|
|
248
|
+
|
|
249
|
+
> [NagaAgent - A simple yet powerful agent framework.](https://github.com/Xxiii8322766509/NagaAgent)
|
|
250
|
+
|
|
251
|
+
## 开源协议
|
|
252
|
+
|
|
253
|
+
本项目遵循 [MIT License](LICENSE) 开源协议。
|
|
254
|
+
|
|
255
|
+
<div align="center">
|
|
256
|
+
|
|
257
|
+
**⭐ 如果这个项目对您有帮助,请考虑给我们一个 Star**
|
|
258
|
+
|
|
259
|
+
</div>
|