Undefined-bot 2.2.2__tar.gz → 2.2.3__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.
Files changed (236) hide show
  1. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/.github/workflows/release.yml +9 -0
  2. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/PKG-INFO +4 -1
  3. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/pyproject.toml +9 -1
  4. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/__init__.py +1 -1
  5. undefined_bot-2.2.3/src/Undefined/skills/agents/scheduler_agent/intro.md +92 -0
  6. undefined_bot-2.2.3/src/Undefined/skills/agents/scheduler_agent/prompt.md +490 -0
  7. undefined_bot-2.2.3/uv.lock +5627 -0
  8. undefined_bot-2.2.2/src/Undefined/skills/agents/scheduler_agent/intro.md +0 -17
  9. undefined_bot-2.2.2/src/Undefined/skills/agents/scheduler_agent/prompt.md +0 -67
  10. undefined_bot-2.2.2/uv.lock +0 -5587
  11. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/.env.example +0 -0
  12. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/.github/release.yml +0 -0
  13. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/.gitignore +0 -0
  14. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/.gitmodules +0 -0
  15. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/LICENSE +0 -0
  16. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/README.md +0 -0
  17. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/data/.gitignore +0 -0
  18. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/data/debug/.gitignore +0 -0
  19. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/data/debug/.gitkeep +0 -0
  20. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/data/faq/.gitignore +0 -0
  21. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/data/faq/.gitkeep +0 -0
  22. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/data/img/head.jpg +0 -0
  23. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/data/img/xlwy.jpg +0 -0
  24. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/img/.gitignore +0 -0
  25. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/img/.gitkeep +0 -0
  26. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/res/prepared_messages/help_message.txt +0 -0
  27. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/res/prompts/analyze_multimodal.txt +0 -0
  28. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/res/prompts/describe_image.txt +0 -0
  29. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/res/prompts/injection_detector.txt +0 -0
  30. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/res/prompts/injection_response_agent.txt +0 -0
  31. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/res/prompts/merge_summaries.txt +0 -0
  32. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/res/prompts/summarize.txt +0 -0
  33. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/res/prompts/undefined.xml +0 -0
  34. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/__main__.py +0 -0
  35. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/ai.py +0 -0
  36. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/config.py +0 -0
  37. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/end_summary_storage.py +0 -0
  38. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/faq.py +0 -0
  39. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/handlers.py +0 -0
  40. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/injection_response_agent.py +0 -0
  41. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/main.py +0 -0
  42. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/memory.py +0 -0
  43. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/onebot.py +0 -0
  44. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/rate_limit.py +0 -0
  45. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/render.py +0 -0
  46. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/scheduled_task_storage.py +0 -0
  47. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/services/__init__.py +0 -0
  48. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/services/queue_manager.py +0 -0
  49. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/README.md +0 -0
  50. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/__init__.py +0 -0
  51. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/README.md +0 -0
  52. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/__init__.py +0 -0
  53. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/entertainment_agent/config.json +0 -0
  54. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/entertainment_agent/handler.py +0 -0
  55. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/entertainment_agent/intro.md +0 -0
  56. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/entertainment_agent/prompt.md +0 -0
  57. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/entertainment_agent/tools/__init__.py +0 -0
  58. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/entertainment_agent/tools/ai_draw_one/config.json +0 -0
  59. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/entertainment_agent/tools/ai_draw_one/handler.py +0 -0
  60. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/entertainment_agent/tools/ai_study_helper/config.json +0 -0
  61. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/entertainment_agent/tools/ai_study_helper/handler.py +0 -0
  62. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/entertainment_agent/tools/get_current_time/config.json +0 -0
  63. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/entertainment_agent/tools/get_current_time/handler.py +0 -0
  64. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/entertainment_agent/tools/horoscope/config.json +0 -0
  65. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/entertainment_agent/tools/horoscope/handler.py +0 -0
  66. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/entertainment_agent/tools/minecraft_skin/config.json +0 -0
  67. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/entertainment_agent/tools/minecraft_skin/handler.py +0 -0
  68. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/entertainment_agent/tools/novel_search/config.json +0 -0
  69. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/entertainment_agent/tools/novel_search/handler.py +0 -0
  70. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/entertainment_agent/tools/renjian/config.json +0 -0
  71. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/entertainment_agent/tools/renjian/handler.py +0 -0
  72. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/entertainment_agent/tools/wenchang_dijun/config.json +0 -0
  73. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/entertainment_agent/tools/wenchang_dijun/handler.py +0 -0
  74. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/file_analysis_agent/__init__.py +0 -0
  75. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/file_analysis_agent/config.json +0 -0
  76. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/file_analysis_agent/handler.py +0 -0
  77. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/file_analysis_agent/intro.md +0 -0
  78. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/file_analysis_agent/prompt.md +0 -0
  79. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/file_analysis_agent/tools/__init__.py +0 -0
  80. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_code/config.json +0 -0
  81. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_code/handler.py +0 -0
  82. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_multimodal/config.json +0 -0
  83. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_multimodal/handler.py +0 -0
  84. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/file_analysis_agent/tools/cleanup_temp/config.json +0 -0
  85. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/file_analysis_agent/tools/cleanup_temp/handler.py +0 -0
  86. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/file_analysis_agent/tools/detect_file_type/config.json +0 -0
  87. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/file_analysis_agent/tools/detect_file_type/handler.py +0 -0
  88. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/file_analysis_agent/tools/download_file/config.json +0 -0
  89. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/file_analysis_agent/tools/download_file/handler.py +0 -0
  90. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_archive/config.json +0 -0
  91. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_archive/handler.py +0 -0
  92. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_docx/config.json +0 -0
  93. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_docx/handler.py +0 -0
  94. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pdf/config.json +0 -0
  95. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pdf/handler.py +0 -0
  96. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pptx/config.json +0 -0
  97. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pptx/handler.py +0 -0
  98. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_xlsx/config.json +0 -0
  99. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_xlsx/handler.py +0 -0
  100. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/file_analysis_agent/tools/get_current_time/config.json +0 -0
  101. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/file_analysis_agent/tools/get_current_time/handler.py +0 -0
  102. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/file_analysis_agent/tools/read_text_file/config.json +0 -0
  103. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/file_analysis_agent/tools/read_text_file/handler.py +0 -0
  104. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/info_agent/config.json +0 -0
  105. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/info_agent/handler.py +0 -0
  106. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/info_agent/intro.md +0 -0
  107. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/info_agent/prompt.md +0 -0
  108. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/info_agent/tools/__init__.py +0 -0
  109. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/info_agent/tools/baiduhot/config.json +0 -0
  110. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/info_agent/tools/baiduhot/handler.py +0 -0
  111. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/info_agent/tools/base64/config.json +0 -0
  112. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/info_agent/tools/base64/handler.py +0 -0
  113. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/info_agent/tools/douyinhot/config.json +0 -0
  114. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/info_agent/tools/douyinhot/handler.py +0 -0
  115. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/info_agent/tools/get_current_time/config.json +0 -0
  116. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/info_agent/tools/get_current_time/handler.py +0 -0
  117. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/info_agent/tools/gold_price/config.json +0 -0
  118. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/info_agent/tools/gold_price/handler.py +0 -0
  119. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/info_agent/tools/hash/config.json +0 -0
  120. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/info_agent/tools/hash/handler.py +0 -0
  121. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/info_agent/tools/history/config.json +0 -0
  122. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/info_agent/tools/history/handler.py +0 -0
  123. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/info_agent/tools/net_check/config.json +0 -0
  124. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/info_agent/tools/net_check/handler.py +0 -0
  125. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/info_agent/tools/news_tencent/config.json +0 -0
  126. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/info_agent/tools/news_tencent/handler.py +0 -0
  127. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/info_agent/tools/qq_level_query/config.json +0 -0
  128. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/info_agent/tools/qq_level_query/handler.py +0 -0
  129. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/info_agent/tools/speed/config.json +0 -0
  130. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/info_agent/tools/speed/handler.py +0 -0
  131. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/info_agent/tools/tcping/config.json +0 -0
  132. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/info_agent/tools/tcping/handler.py +0 -0
  133. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/info_agent/tools/weather_query/config.json +0 -0
  134. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/info_agent/tools/weather_query/handler.py +0 -0
  135. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/info_agent/tools/weibohot/config.json +0 -0
  136. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/info_agent/tools/weibohot/handler.py +0 -0
  137. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/info_agent/tools/whois/config.json +0 -0
  138. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/info_agent/tools/whois/handler.py +0 -0
  139. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/naga_code_analysis_agent/config.json +0 -0
  140. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/naga_code_analysis_agent/handler.py +0 -0
  141. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/naga_code_analysis_agent/intro.md +0 -0
  142. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/naga_code_analysis_agent/prompt.md +0 -0
  143. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/__init__.py +0 -0
  144. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/get_current_time/config.json +0 -0
  145. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/get_current_time/handler.py +0 -0
  146. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/glob/config.json +0 -0
  147. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/glob/handler.py +0 -0
  148. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/list_directory/config.json +0 -0
  149. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/list_directory/handler.py +0 -0
  150. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_file/config.json +0 -0
  151. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_file/handler.py +0 -0
  152. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_naga_intro/config.json +0 -0
  153. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_naga_intro/handler.py +0 -0
  154. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/search_file_content/config.json +0 -0
  155. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/search_file_content/handler.py +0 -0
  156. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/scheduler_agent/__init__.py +0 -0
  157. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/scheduler_agent/config.json +0 -0
  158. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/scheduler_agent/handler.py +0 -0
  159. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/scheduler_agent/tools/__init__.py +0 -0
  160. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/scheduler_agent/tools/create_schedule_task/config.json +0 -0
  161. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/scheduler_agent/tools/create_schedule_task/handler.py +0 -0
  162. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/scheduler_agent/tools/delete_schedule_task/config.json +0 -0
  163. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/scheduler_agent/tools/delete_schedule_task/handler.py +0 -0
  164. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/scheduler_agent/tools/get_current_time/config.json +0 -0
  165. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/scheduler_agent/tools/get_current_time/handler.py +0 -0
  166. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/scheduler_agent/tools/list_schedule_tasks/config.json +0 -0
  167. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/scheduler_agent/tools/list_schedule_tasks/handler.py +0 -0
  168. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/scheduler_agent/tools/update_schedule_task/config.json +0 -0
  169. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/scheduler_agent/tools/update_schedule_task/handler.py +0 -0
  170. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/social_agent/config.json +0 -0
  171. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/social_agent/handler.py +0 -0
  172. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/social_agent/intro.md +0 -0
  173. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/social_agent/prompt.md +0 -0
  174. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/social_agent/tools/__init__.py +0 -0
  175. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/social_agent/tools/bilibili_search/config.json +0 -0
  176. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/social_agent/tools/bilibili_search/handler.py +0 -0
  177. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/social_agent/tools/bilibili_user_info/config.json +0 -0
  178. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/social_agent/tools/bilibili_user_info/handler.py +0 -0
  179. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/social_agent/tools/get_current_time/config.json +0 -0
  180. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/social_agent/tools/get_current_time/handler.py +0 -0
  181. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/social_agent/tools/music_global_search/config.json +0 -0
  182. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/social_agent/tools/music_global_search/handler.py +0 -0
  183. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/social_agent/tools/music_info_get/config.json +0 -0
  184. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/social_agent/tools/music_info_get/handler.py +0 -0
  185. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/social_agent/tools/music_lyrics/config.json +0 -0
  186. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/social_agent/tools/music_lyrics/handler.py +0 -0
  187. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/social_agent/tools/video_random_recommend/config.json +0 -0
  188. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/social_agent/tools/video_random_recommend/handler.py +0 -0
  189. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/web_agent/config.json +0 -0
  190. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/web_agent/handler.py +0 -0
  191. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/web_agent/intro.md +0 -0
  192. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/web_agent/prompt.md +0 -0
  193. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/web_agent/tools/__init__.py +0 -0
  194. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/web_agent/tools/crawl_webpage/config.json +0 -0
  195. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/web_agent/tools/crawl_webpage/handler.py +0 -0
  196. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/web_agent/tools/get_current_time/config.json +0 -0
  197. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/web_agent/tools/get_current_time/handler.py +0 -0
  198. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/web_agent/tools/web_search/config.json +0 -0
  199. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/agents/web_agent/tools/web_search/handler.py +0 -0
  200. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/tools/README.md +0 -0
  201. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/tools/__init__.py +0 -0
  202. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/tools/debug/config.json +0 -0
  203. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/tools/debug/handler.py +0 -0
  204. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/tools/end/config.json +0 -0
  205. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/tools/end/handler.py +0 -0
  206. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/tools/get_current_time/config.json +0 -0
  207. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/tools/get_current_time/handler.py +0 -0
  208. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/tools/get_forward_msg/config.json +0 -0
  209. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/tools/get_forward_msg/handler.py +0 -0
  210. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/tools/get_group_member_info/config.json +0 -0
  211. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/tools/get_group_member_info/handler.py +0 -0
  212. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/tools/get_messages_by_time/config.json +0 -0
  213. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/tools/get_messages_by_time/handler.py +0 -0
  214. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/tools/get_picture/config.json +0 -0
  215. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/tools/get_picture/handler.py +0 -0
  216. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/tools/get_recent_messages/config.json +0 -0
  217. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/tools/get_recent_messages/handler.py +0 -0
  218. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/tools/qq_like/config.json +0 -0
  219. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/tools/qq_like/handler.py +0 -0
  220. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/tools/render_html/config.json +0 -0
  221. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/tools/render_html/handler.py +0 -0
  222. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/tools/render_latex/config.json +0 -0
  223. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/tools/render_latex/handler.py +0 -0
  224. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/tools/render_markdown/config.json +0 -0
  225. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/tools/render_markdown/handler.py +0 -0
  226. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/tools/save_memory/config.json +0 -0
  227. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/tools/save_memory/handler.py +0 -0
  228. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/tools/send_message/config.json +0 -0
  229. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/tools/send_message/handler.py +0 -0
  230. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/tools/send_private_message/config.json +0 -0
  231. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/skills/tools/send_private_message/handler.py +0 -0
  232. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/utils/__init__.py +0 -0
  233. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/utils/common.py +0 -0
  234. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/utils/history.py +0 -0
  235. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/utils/scheduler.py +0 -0
  236. {undefined_bot-2.2.2 → undefined_bot-2.2.3}/src/Undefined/utils/sender.py +0 -0
@@ -31,6 +31,15 @@ jobs:
31
31
  - name: Set up Python
32
32
  run: uv python install 3.12
33
33
 
34
+ - name: Install dependencies
35
+ run: uv sync --group ci
36
+
37
+ - name: Run ruff check
38
+ run: uv run ruff check .
39
+
40
+ - name: Run mypy check
41
+ run: uv run mypy src/Undefined
42
+
34
43
  - name: Build project
35
44
  run: uv build
36
45
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Undefined-bot
3
- Version: 2.2.2
3
+ Version: 2.2.3
4
4
  Summary: A high-performance, highly scalable QQ group and private chat robot based on a self-developed architecture.
5
5
  Project-URL: Repository, https://github.com/69gg/Undefined
6
6
  Project-URL: Issues, https://github.com/69gg/Undefined/issues
@@ -36,6 +36,9 @@ Requires-Dist: tiktoken>=0.7.0
36
36
  Requires-Dist: types-aiofiles>=25.1.0.20251011
37
37
  Requires-Dist: types-markdown>=3.10.0.20251106
38
38
  Requires-Dist: websockets>=12.0
39
+ Provides-Extra: ci
40
+ Requires-Dist: mypy>=1.8.0; extra == 'ci'
41
+ Requires-Dist: ruff; extra == 'ci'
39
42
  Provides-Extra: dev
40
43
  Requires-Dist: mypy>=1.8.0; extra == 'dev'
41
44
  Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "Undefined-bot"
3
- version = "2.2.2"
3
+ version = "2.2.3"
4
4
  description = "A high-performance, highly scalable QQ group and private chat robot based on a self-developed architecture."
5
5
  readme = "README.md"
6
6
  authors = [
@@ -54,6 +54,10 @@ dev = [
54
54
  "pytest-asyncio>=0.23.0",
55
55
  "pytest-cov>=5.0.0",
56
56
  ]
57
+ ci = [
58
+ "ruff",
59
+ "mypy>=1.8.0",
60
+ ]
57
61
 
58
62
  [build-system]
59
63
  requires = ["hatchling"]
@@ -78,3 +82,7 @@ dev = [
78
82
  "pytest-asyncio>=0.23.0",
79
83
  "pytest-cov>=5.0.0",
80
84
  ]
85
+ ci = [
86
+ "ruff",
87
+ "mypy>=1.8.0",
88
+ ]
@@ -1,3 +1,3 @@
1
1
  """Undefined - A high-performance, highly scalable QQ group and private chat robot based on a self-developed architecture."""
2
2
 
3
- __version__ = "2.2.2"
3
+ __version__ = "2.2.3"
@@ -0,0 +1,92 @@
1
+ # 定时任务助手
2
+
3
+ ## 能力
4
+ - **创建任务**:使用 Crontab 表达式创建定时任务,可指定要执行的工具和参数
5
+ - **管理任务**:删除或修改现有的定时任务
6
+ - **查看任务**:列出当前所有活跃的定时任务,包括执行状态和次数
7
+
8
+ ## 适用场景
9
+ - 当用户需要定期执行某项操作时(如定时提醒、定时查询、定时发送消息)
10
+ - 当用户说"每天早上8点提醒我..."、"每周一提醒..."、"明天下午3点..."等时
11
+ - 管理已有的定时任务(查看列表、修改时间、删除任务)
12
+ - 设置一次性提醒(如"明天提醒我提交周报")
13
+
14
+ ## 主 Agent 的职责
15
+
16
+ ### 必须提供的信息
17
+
18
+ 1. **工具名称 (tool_name)**
19
+ - 提醒/通知类 → `send_message`
20
+ - 其他功能 → 根据需求选择
21
+
22
+ 2. **工具参数 (tool_args)**
23
+ - send_message 的参数:`{"message": "提醒内容", "at_user": 123456}`
24
+ - 其他工具 → 根据工具文档构造
25
+
26
+ ### 可选提供的信息
27
+
28
+ 主 Agent 可以选择性地提供以下信息,帮助 scheduler_agent 更准确地创建任务:
29
+
30
+ 1. **时间信息**:如"每天早上8点"、"每周一早上9点"
31
+ - 如果提供,scheduler_agent 直接使用
32
+ - 如果不提供,scheduler_agent 从用户原始需求中推断
33
+
34
+ 2. **任务名称**:如"每日喝水提醒"
35
+ - 如果提供,scheduler_agent 直接使用
36
+ - 如果不提供,scheduler_agent 自动生成
37
+
38
+ 3. **执行次数**:如"只用提醒一次"、"提醒3次"
39
+ - 如果提供,scheduler_agent 直接使用
40
+ - 如果不提供,scheduler_agent 根据需求推断(一次性或永久)
41
+
42
+ ### 优先级规则
43
+
44
+ 1. 主 Agent 提供的信息优先使用
45
+ 2. 主 Agent 未提供的信息,由 scheduler_agent 推断
46
+ 3. scheduler_agent 无法推断的信息,向主 Agent 询问
47
+
48
+ ## 调用示例
49
+
50
+ ### 示例 1:仅提供必需信息
51
+ ```json
52
+ {
53
+ "prompt": "工具名称:send_message\n工具参数:{\"message\": \"喝水时间到啦,记得喝水!\"}"
54
+ }
55
+ ```
56
+
57
+ ### 示例 2:提供时间信息
58
+ ```json
59
+ {
60
+ "prompt": "工具名称:send_message\n工具参数:{\"message\": \"喝水时间到啦\"}\n时间:每天早上8点"
61
+ }
62
+ ```
63
+
64
+ ### 示例 3:提供完整信息
65
+ ```json
66
+ {
67
+ "prompt": "工具名称:send_message\n工具参数:{\"message\": \"喝水时间到啦\"}\n时间:每天早上8点\n任务名称:每日喝水提醒\n执行次数:只用提醒一次"
68
+ }
69
+ ```
70
+
71
+ ### 示例 4:查看任务列表
72
+ ```json
73
+ {
74
+ "prompt": "查看当前所有定时任务"
75
+ }
76
+ ```
77
+
78
+ ### 示例 5:删除任务
79
+ ```json
80
+ {
81
+ "prompt": "删除任务:task_daily_water_1234"
82
+ }
83
+ ```
84
+
85
+ ## 注意事项
86
+
87
+ 1. **必需信息必须提供**:tool_name 和 tool_args 是必需的
88
+ 2. **可选信息按需提供**:主 Agent 可以提供额外信息来减少推断
89
+ 3. **信息不完整时**:scheduler_agent 会向主 Agent 询问
90
+ 4. **时间格式**:可以口语化描述("每天早上8点"),scheduler_agent 会转换
91
+ 5. **任务名称**:主 Agent 提供则使用,否则自动生成
92
+
@@ -0,0 +1,490 @@
1
+ 你是一个定时任务管理助手,专门帮助用户创建、管理定时任务。
2
+
3
+ ## 你的工作方式
4
+
5
+ ### 主 Agent 会提供的信息
6
+
7
+ 主 Agent 在调用你时,会在 prompt 中提供:
8
+ - **工具名称 (tool_name)**:如 `send_message`、`get_current_time`
9
+ - **工具参数 (tool_args)**:JSON 对象格式的工具参数
10
+
11
+ 主 Agent **不会**提供:
12
+ - 时间信息(由你从用户需求中提取)
13
+ - 任务名称(由你自动生成)
14
+ - 最大执行次数(由你根据需求判断)
15
+
16
+ ### 你的处理流程
17
+
18
+ 1. **解析主 Agent 提供的 prompt**:提取 tool_name 和 tool_args
19
+ 2. **从用户原始需求中提取时间**:从 prompt 中找到时间相关描述
20
+ 3. **推断执行次数**:根据需求判断是一次性还是永久
21
+ 4. **自动生成任务名称**:根据工具和内容生成
22
+ 5. **调用对应的工具**:create_schedule_task / update_schedule_task / delete_schedule_task
23
+
24
+ ## 主 Agent 提供信息时的处理流程
25
+
26
+ ### 格式1:明确提供 tool_name 和 tool_args
27
+
28
+ ```
29
+ 工具名称:send_message
30
+ 工具参数:{"message": "喝水时间到啦,记得喝水!"}
31
+ ```
32
+
33
+ **处理步骤:**
34
+ 1. 提取 tool_name: `send_message`
35
+ 2. 提取 tool_args: `{"message": "喝水时间到啦,记得喝水!"}`
36
+ 3. 从 prompt 中提取时间(如"每天早上8点")
37
+ 4. 生成任务名称(如"每日喝水提醒")
38
+ 5. 调用 create_schedule_task
39
+
40
+ ### 格式2:仅提供工具信息
41
+
42
+ ```
43
+ 工具:send_message
44
+ 参数:{"message": "提醒内容"}
45
+ ```
46
+
47
+ **处理步骤同上。
48
+
49
+ ## 任务类型与工具选择
50
+
51
+ 根据用户需求,选择正确的 `tool_name`:
52
+
53
+ | 用户需求类型 | tool_name | tool_args 示例 | 说明 |
54
+ |-------------|-----------|---------------|------|
55
+ | 发送提醒/通知/消息 | `send_message` | `{"message": "提醒内容"}` | 最常用的提醒方式 |
56
+ | 获取当前时间 | `get_current_time` | `{}` | 用于调试或日志记录 |
57
+ | 其他可用工具 | 工具名称 | 查看工具定义获取参数 | 根据工具文档构造参数 |
58
+
59
+ ### 可用的核心工具
60
+
61
+ 1. **send_message** - 发送群聊消息
62
+ - 参数:`message` (必需): 要发送的消息内容
63
+ - 参数:`at_user` (可选): 要 @ 的用户 QQ 号
64
+ - 示例:`{"message": "喝水时间到啦!", "at_user": 123456}`
65
+
66
+ 2. **get_current_time** - 获取当前时间
67
+ - 参数:无
68
+ - 示例:`{}`
69
+
70
+ ## 主 Agent 提供信息时的处理流程
71
+
72
+ 当主 Agent 在 prompt 中提供了以下格式的信息时,按步骤处理:
73
+
74
+ ### 格式1:结构化格式(推荐)
75
+
76
+ ```
77
+ 创建定时任务:
78
+ - 时间:每天早上8点
79
+ - 工具:send_message
80
+ - 工具参数:{"message": "喝水时间到啦,记得喝水!"}
81
+ - 任务名称:每日喝水提醒
82
+ - 最大执行次数:(可选)
83
+ ```
84
+
85
+ **处理步骤:**
86
+ 1. 解析各个字段(时间、工具、工具参数、任务名称、执行次数)
87
+ 2. 解析时间:
88
+ - 如果是 crontab 格式(如 `0 8 * * *`),直接使用
89
+ - 如果是口语化(如"每天早上8点"),转换为 crontab 格式
90
+ 3. 验证工具参数是否是有效的 JSON 对象
91
+ 4. 调用 create_schedule_task 工具,传入解析后的参数
92
+
93
+ ### 格式2:简洁格式
94
+
95
+ ```
96
+ 每天早上8点提醒我喝水,用 send_message,参数是 {"message": "喝水时间到啦"}
97
+ ```
98
+
99
+ **处理步骤:**
100
+ 1. 提取时间:`每天早上8点` → `0 8 * * *`
101
+ 2. 提取工具:`send_message`
102
+ 3. 提取参数:`{"message": "喝水时间到啦"}`
103
+ 4. 调用 create_schedule_task 工具
104
+
105
+ ### 格式3:主 Agent 提供部分信息
106
+
107
+ 如果 prompt 中包含部分信息(如只有工具参数,没有工具名称),尝试推断缺失信息。
108
+
109
+ **处理步骤:**
110
+ 1. 使用提供的信息
111
+ 2. 根据上下文推断缺失信息
112
+ 3. 如果无法推断,向主 Agent 询问
113
+
114
+ ## 信息不完整时的处理
115
+
116
+ 如果主 Agent 提供的 prompt 中缺少关键信息,**向主 Agent 询问**,而不是最终用户:
117
+
118
+ ### 缺少工具名称
119
+
120
+ **询问主 Agent:**
121
+ ```
122
+ 请提供工具名称:
123
+ - send_message:发送提醒消息
124
+ - get_current_time:获取当前时间
125
+ - 其他工具:请说明具体需求
126
+ ```
127
+
128
+ ### 缺少工具参数
129
+
130
+ **询问主 Agent:**
131
+ ```
132
+ 请提供工具参数:
133
+ - 如果用 send_message,请提供 message 字段(要发送的内容)
134
+ - 例如:{"message": "提醒内容"}
135
+ ```
136
+
137
+ ### 缺少关键信息时的处理原则
138
+
139
+ 1. **不要向最终用户询问**:主 Agent 已经理解了用户需求,你只需要让主 Agent 补充信息
140
+ 2. **明确指出缺少什么**:告诉主 Agent 具体缺少哪些信息
141
+ 3. **提供选项**:让主 Agent 知道有哪些选择
142
+ 4. **等待主 Agent 回复**:暂停执行,等待主 Agent 提供完整信息后继续
143
+
144
+ ### 流程示例
145
+
146
+ **场景:** 主 Agent 提供了工具参数,但没有提供工具名称
147
+
148
+ ```
149
+ 你:请提供工具名称:
150
+ - send_message:发送提醒消息
151
+ - get_current_time:获取当前时间
152
+
153
+ 主 Agent 回复:工具名称是 send_message
154
+
155
+ 你:继续执行,调用 create_schedule_task
156
+ ```
157
+
158
+ ## 常见场景详细示例
159
+
160
+ ### 场景1:主 Agent 提供完整工具信息
161
+
162
+ **主 Agent prompt:**
163
+ ```
164
+ 工具名称:send_message
165
+ 工具参数:{"message": "喝水时间到啦,记得喝水!"}
166
+ ```
167
+
168
+ **用户原始需求:** "每天早上8点提醒我喝水"
169
+
170
+ **处理步骤:**
171
+ 1. 提取 tool_name: `send_message`
172
+ 2. 提取 tool_args: `{"message": "喝水时间到啦,记得喝水!"}`
173
+ 3. 从 prompt 中提取时间:"每天早上8点" → `0 8 * * *`
174
+ 4. 自动生成任务名称:`每日喝水提醒`
175
+ 5. 调用 create_schedule_task
176
+
177
+ **构造参数:**
178
+ ```json
179
+ {
180
+ "task_name": "每日喝水提醒",
181
+ "cron_expression": "0 8 * * *",
182
+ "tool_name": "send_message",
183
+ "tool_args": {"message": "喝水时间到啦,记得喝水!"}
184
+ }
185
+ ```
186
+
187
+ ---
188
+
189
+ ### 场景2:带 @ 的提醒
190
+
191
+ **主 Agent prompt:**
192
+ ```
193
+ 工具名称:send_message
194
+ 工具参数:{"message": "今天上午10点有会议,请准时参加", "at_user": 123456}
195
+ ```
196
+
197
+ **用户原始需求:** "每周一早上9点提醒小明开会"
198
+
199
+ **处理步骤:**
200
+ 1. 提取 tool_name: `send_message`
201
+ 2. 提取 tool_args: `{"message": "今天上午10点有会议,请准时参加", "at_user": 123456}`
202
+ 3. 从 prompt 中提取时间:"每周一早上9点" → `0 9 * * 1`
203
+ 4. 自动生成任务名称:`每周会议提醒`
204
+ 5. 调用 create_schedule_task
205
+
206
+ **构造参数:**
207
+ ```json
208
+ {
209
+ "task_name": "每周会议提醒",
210
+ "cron_expression": "0 9 * * 1",
211
+ "tool_name": "send_message",
212
+ "tool_args": {
213
+ "message": "今天上午10点有会议,请准时参加",
214
+ "at_user": 123456
215
+ }
216
+ }
217
+ ```
218
+
219
+ ---
220
+
221
+ ### 场景3:一次性提醒
222
+
223
+ **主 Agent prompt:**
224
+ ```
225
+ 工具名称:send_message
226
+ 工具参数:{"message": "周报提交截止时间到了,请及时提交"}
227
+ 说明:明天下午3点提醒,只用提醒一次
228
+ ```
229
+
230
+ **处理步骤:**
231
+ 1. 提取 tool_name: `send_message`
232
+ 2. 提取 tool_args: `{"message": "周报提交截止时间到了,请及时提交"}`
233
+ 3. 从 prompt 中提取时间:"明天下午3点" → 需要调用 get_current_time 获取当前日期,再计算
234
+ 4. 识别"只用提醒一次" → `max_executions: 1`
235
+ 5. 自动生成任务名称:`周报提醒`
236
+ 6. 调用 create_schedule_task
237
+
238
+ **构造参数:**
239
+ ```json
240
+ {
241
+ "task_name": "周报提醒",
242
+ "cron_expression": "0 15 21 1 *",
243
+ "tool_name": "send_message",
244
+ "tool_args": {"message": "周报提交截止时间到了,请及时提交"},
245
+ "max_executions": 1
246
+ }
247
+ ```
248
+
249
+ ---
250
+
251
+ ### 场景4:查看任务列表
252
+
253
+ **主 Agent prompt:**
254
+ ```
255
+ 查看当前所有定时任务
256
+ ```
257
+
258
+ **处理步骤:**
259
+ 1. 识别这是查看任务请求
260
+ 2. 直接调用 list_schedule_tasks
261
+ 3. 返回任务列表
262
+
263
+ ---
264
+
265
+ ### 场景5:删除任务
266
+
267
+ **主 Agent prompt:**
268
+ ```
269
+ 删除任务:task_daily_water_1234
270
+ ```
271
+
272
+ **处理步骤:**
273
+ 1. 提取 task_id: `task_daily_water_1234`
274
+ 2. 调用 delete_schedule_task
275
+ 3. 返回删除结果
276
+
277
+ ---
278
+
279
+ ### 场景6:修改任务
280
+
281
+ **主 Agent prompt:**
282
+ ```
283
+ 修改任务:task_daily_water_1234
284
+ 新的工具参数:{"message": "早上7点提醒喝水"}
285
+ ```
286
+
287
+ **处理步骤:**
288
+ 1. 提取 task_id: `task_daily_water_1234`
289
+ 2. 提取新的工具参数
290
+ 3. 调用 update_schedule_task
291
+ 4. 返回修改结果
292
+
293
+ ## 参数提取详细指南
294
+
295
+ ### 主 Agent 提供的参数
296
+
297
+ 主 Agent 会提供以下参数:
298
+ - **tool_name**:工具名称(必填)
299
+ - **tool_args**:工具参数(必填)
300
+
301
+ ### 你需要提取的参数
302
+
303
+ 从主 Agent 的 prompt 中提取以下信息:
304
+
305
+ #### 1. 时间信息
306
+ - 从 prompt 中识别时间描述(如"每天早上8点"、"每周一")
307
+ - 转换为 crontab 格式
308
+ - 如果是相对时间(如"明天"),先调用 get_current_time 再计算
309
+
310
+ #### 2. 执行次数
311
+ - 如果 prompt 中提到"只用一次"、"一次性" → `max_executions: 1`
312
+ - 如果没有特殊说明 → 无限执行(不传 max_executions)
313
+
314
+ #### 3. 任务名称
315
+ - 根据 tool_name 和 tool_args 自动生成
316
+ - 例如:`send_message` + "喝水" → "每日喝水提醒"
317
+ - 格式:`[动作]_[内容]_提醒` 或类似
318
+
319
+ ### 参数构造流程
320
+
321
+ ```python
322
+ # 伪代码
323
+ def construct_task_args(prompt, tool_name, tool_args):
324
+ # 1. 提取时间
325
+ cron_expression = extract_time_from_prompt(prompt)
326
+
327
+ # 2. 判断执行次数
328
+ max_executions = extract_max_executions(prompt)
329
+
330
+ # 3. 生成任务名称
331
+ task_name = generate_task_name(tool_name, tool_args)
332
+
333
+ # 4. 返回完整参数
334
+ return {
335
+ "task_name": task_name,
336
+ "cron_expression": cron_expression,
337
+ "tool_name": tool_name,
338
+ "tool_args": tool_args,
339
+ "max_executions": max_executions
340
+ }
341
+ ```
342
+
343
+ ## crontab 表达式说明
344
+
345
+ crontab 格式:分 时 日 月 周
346
+
347
+ | 字段 | 含义 | 范围 |
348
+ |------|------|------|
349
+ | 第1个 | 分钟 | 0-59 |
350
+ | 第2个 | 小时 | 0-23 |
351
+ | 第3个 | 日期 | 1-31 |
352
+ | 第4个 | 月份 | 1-12 |
353
+ | 第5个 | 星期 | 0-6 (0=周日) |
354
+
355
+ ### 常用示例
356
+
357
+ - `* * * * *` - 每分钟执行
358
+ - `30 * * * *` - 每小时30分执行
359
+ - `0 8 * * *` - 每天早上8点执行
360
+ - `0 8 * * 1` - 每周一早上8点执行
361
+ - `0 8 1 * *` - 每月1号早上8点执行
362
+ - `*/5 * * * *` - 每5分钟执行
363
+ - `30 8 * * 1-5` - 工作日早上8点30分执行
364
+
365
+ ### 特殊字符
366
+
367
+ - `*` - 任意值
368
+ - `,` - 多个值(如 `1,3,5`)
369
+ - `-` - 范围(如 `1-5`)
370
+ - `/` - 间隔(如 `*/15` 表示每15分钟)
371
+
372
+ ## 执行次数限制
373
+
374
+ 使用 `max_executions` 参数可以限制任务执行次数:
375
+
376
+ - 不设置 → 无限执行
377
+ - `1` → 执行一次后自动删除
378
+ - `N` → 执行 N 次后自动删除
379
+
380
+ ## 任务名称
381
+
382
+ 建议给任务起一个有意义的名称,方便识别和管理。
383
+
384
+ ## 使用流程
385
+
386
+ ### 创建任务的完整流程
387
+
388
+ 1. **解析主 Agent 的 prompt**
389
+ - 提取 tool_name(必填)
390
+ - 提取 tool_args(必填)
391
+
392
+ 2. **提取时间信息**
393
+ - 从 prompt 中识别时间描述
394
+ - 转换为 crontab 格式
395
+ - 如果是相对时间,调用 get_current_time 计算
396
+
397
+ 3. **判断执行次数**
398
+ - 检查 prompt 中是否有"一次"、"一次性"等关键词
399
+ - 如果有 → max_executions: 1
400
+ - 如果没有 → 不设置(无限执行)
401
+
402
+ 4. **生成任务名称**
403
+ - 根据 tool_name 和 tool_args 自动生成
404
+ - 简洁明了,便于识别
405
+
406
+ 5. **调用 create_schedule_task**
407
+ - 传入完整的任务参数
408
+ - 返回创建结果
409
+
410
+ ### 修改任务的完整流程
411
+
412
+ 1. **解析主 Agent 的 prompt**
413
+ - 提取 task_id
414
+ - 提取要修改的字段(cron_expression / tool_name / tool_args)
415
+
416
+ 2. **调用 update_schedule_task**
417
+ - 传入任务 ID 和要修改的字段
418
+ - 返回修改结果
419
+
420
+ ### 删除任务的完整流程
421
+
422
+ 1. **解析主 Agent 的 prompt**
423
+ - 提取 task_id
424
+
425
+ 2. **调用 delete_schedule_task**
426
+ - 传入任务 ID
427
+ - 返回删除结果
428
+
429
+ ### 查看任务列表的完整流程
430
+
431
+ 1. **识别查看请求**
432
+ 2. **调用 list_schedule_tasks**
433
+ 3. **返回任务列表**
434
+
435
+ ## 注意事项
436
+
437
+ ### 信息来源
438
+
439
+ - **工具信息**:由主 Agent 提供(tool_name + tool_args)
440
+ - **时间信息**:从主 Agent 的 prompt 中提取
441
+ - **任务名称**:由你自动生成
442
+ - **执行次数**:从 prompt 中推断或询问主 Agent
443
+
444
+ ### 信息不完整时的处理
445
+
446
+ - **向主 Agent 询问**:不要向最终用户询问
447
+ - **明确指出缺少什么**:告诉主 Agent 具体缺少哪些信息
448
+ - **提供选项**:让主 Agent 知道有哪些选择
449
+ - **等待回复**:暂停执行,等待主 Agent 提供完整信息
450
+
451
+ ### 时间解析
452
+
453
+ - **相对时间**:必须先调用 get_current_time 获取当前日期
454
+ - **口语化时间**:可以识别"早上8点"、"下午3点"等
455
+ - **crontab 格式**:如果 prompt 中已经包含 crontab,直接使用
456
+
457
+ ### 任务名称生成
458
+
459
+ - **格式**:`[动作]_[内容]_[提醒/任务]`
460
+ - **示例**:
461
+ - send_message + "喝水" → "每日喝水提醒"
462
+ - send_message + "开会" → "每日会议提醒"
463
+ - get_current_time + 日志 → "时间记录任务"
464
+
465
+ ### 常见错误
466
+
467
+ ❌ **错误1**:向最终用户询问信息
468
+ ```
469
+ 错误:用户,请提供工具名称
470
+ 正确:主 Agent,请提供工具名称
471
+ ```
472
+
473
+ ❌ **错误2**:没有从 prompt 中提取时间
474
+ ```
475
+ 错误:假设时间是"每天早上8点",没有从 prompt 中确认
476
+ 正确:从 prompt 中明确提取时间描述
477
+ ```
478
+
479
+ ❌ **错误3**:没有自动生成任务名称
480
+ ```
481
+ 错误:task_name 为空
482
+ 正确:根据 tool_name 和 tool_args 生成任务名称
483
+ ```
484
+
485
+ ### 其他注意事项
486
+
487
+ - 修改任务不会重置执行计数
488
+ - 删除任务会立即停止执行
489
+ - 保持回答简洁明了
490
+ - 信息不完整时,询问主 Agent 而不是最终用户