camel-ai 0.2.23__tar.gz → 0.2.24__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.

Potentially problematic release.


This version of camel-ai might be problematic. Click here for more details.

Files changed (344) hide show
  1. {camel_ai-0.2.23 → camel_ai-0.2.24}/PKG-INFO +12 -3
  2. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/__init__.py +1 -1
  3. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/configs/anthropic_config.py +45 -11
  4. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/models/anthropic_model.py +5 -1
  5. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/societies/role_playing.py +119 -0
  6. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/__init__.py +6 -0
  7. camel_ai-0.2.24/camel/toolkits/file_write_toolkit.py +371 -0
  8. camel_ai-0.2.24/camel/toolkits/mcp_toolkit.py +251 -0
  9. camel_ai-0.2.24/camel/toolkits/terminal_toolkit.py +421 -0
  10. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/web_toolkit.py +4 -5
  11. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/types/enums.py +3 -0
  12. {camel_ai-0.2.23 → camel_ai-0.2.24}/pyproject.toml +16 -3
  13. {camel_ai-0.2.23 → camel_ai-0.2.24}/.gitignore +0 -0
  14. {camel_ai-0.2.23 → camel_ai-0.2.24}/LICENSE +0 -0
  15. {camel_ai-0.2.23 → camel_ai-0.2.24}/README.md +0 -0
  16. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/agents/__init__.py +0 -0
  17. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/agents/_types.py +0 -0
  18. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/agents/_utils.py +0 -0
  19. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/agents/base.py +0 -0
  20. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/agents/chat_agent.py +0 -0
  21. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/agents/critic_agent.py +0 -0
  22. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/agents/deductive_reasoner_agent.py +0 -0
  23. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/agents/embodied_agent.py +0 -0
  24. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/agents/knowledge_graph_agent.py +0 -0
  25. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/agents/multi_hop_generator_agent.py +0 -0
  26. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/agents/programmed_agent_instruction.py +0 -0
  27. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/agents/role_assignment_agent.py +0 -0
  28. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/agents/search_agent.py +0 -0
  29. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/agents/task_agent.py +0 -0
  30. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/agents/tool_agents/__init__.py +0 -0
  31. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/agents/tool_agents/base.py +0 -0
  32. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/agents/tool_agents/hugging_face_tool_agent.py +0 -0
  33. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/benchmarks/__init__.py +0 -0
  34. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/benchmarks/apibank.py +0 -0
  35. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/benchmarks/apibench.py +0 -0
  36. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/benchmarks/base.py +0 -0
  37. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/benchmarks/gaia.py +0 -0
  38. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/benchmarks/nexus.py +0 -0
  39. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/benchmarks/ragbench.py +0 -0
  40. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/bots/__init__.py +0 -0
  41. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/bots/discord/__init__.py +0 -0
  42. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/bots/discord/discord_app.py +0 -0
  43. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/bots/discord/discord_installation.py +0 -0
  44. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/bots/discord/discord_store.py +0 -0
  45. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/bots/slack/__init__.py +0 -0
  46. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/bots/slack/models.py +0 -0
  47. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/bots/slack/slack_app.py +0 -0
  48. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/bots/telegram_bot.py +0 -0
  49. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/configs/__init__.py +0 -0
  50. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/configs/aiml_config.py +0 -0
  51. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/configs/base_config.py +0 -0
  52. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/configs/cohere_config.py +0 -0
  53. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/configs/deepseek_config.py +0 -0
  54. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/configs/gemini_config.py +0 -0
  55. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/configs/groq_config.py +0 -0
  56. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/configs/internlm_config.py +0 -0
  57. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/configs/litellm_config.py +0 -0
  58. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/configs/mistral_config.py +0 -0
  59. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/configs/moonshot_config.py +0 -0
  60. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/configs/nvidia_config.py +0 -0
  61. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/configs/ollama_config.py +0 -0
  62. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/configs/openai_config.py +0 -0
  63. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/configs/qwen_config.py +0 -0
  64. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/configs/reka_config.py +0 -0
  65. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/configs/samba_config.py +0 -0
  66. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/configs/sglang_config.py +0 -0
  67. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/configs/siliconflow_config.py +0 -0
  68. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/configs/togetherai_config.py +0 -0
  69. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/configs/vllm_config.py +0 -0
  70. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/configs/yi_config.py +0 -0
  71. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/configs/zhipuai_config.py +0 -0
  72. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/data_collector/__init__.py +0 -0
  73. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/data_collector/alpaca_collector.py +0 -0
  74. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/data_collector/base.py +0 -0
  75. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/data_collector/sharegpt_collector.py +0 -0
  76. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/datagen/__init__.py +0 -0
  77. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/datagen/cot_datagen.py +0 -0
  78. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/datagen/self_improving_cot.py +0 -0
  79. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/datagen/self_instruct/__init__.py +0 -0
  80. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/datagen/self_instruct/filter/__init__.py +0 -0
  81. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/datagen/self_instruct/filter/filter_function.py +0 -0
  82. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/datagen/self_instruct/filter/filter_registry.py +0 -0
  83. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/datagen/self_instruct/filter/instruction_filter.py +0 -0
  84. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/datagen/self_instruct/self_instruct.py +0 -0
  85. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/datagen/self_instruct/templates.py +0 -0
  86. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/datagen/source2synth/__init__.py +0 -0
  87. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/datagen/source2synth/data_processor.py +0 -0
  88. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/datagen/source2synth/models.py +0 -0
  89. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/datagen/source2synth/user_data_processor_config.py +0 -0
  90. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/datahubs/__init__.py +0 -0
  91. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/datahubs/base.py +0 -0
  92. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/datahubs/huggingface.py +0 -0
  93. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/datahubs/models.py +0 -0
  94. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/datasets/__init__.py +0 -0
  95. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/datasets/base.py +0 -0
  96. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/embeddings/__init__.py +0 -0
  97. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/embeddings/base.py +0 -0
  98. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/embeddings/jina_embedding.py +0 -0
  99. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/embeddings/mistral_embedding.py +0 -0
  100. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/embeddings/openai_compatible_embedding.py +0 -0
  101. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/embeddings/openai_embedding.py +0 -0
  102. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/embeddings/sentence_transformers_embeddings.py +0 -0
  103. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/embeddings/vlm_embedding.py +0 -0
  104. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/environments/__init__.py +0 -0
  105. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/environments/base.py +0 -0
  106. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/extractors/__init__.py +0 -0
  107. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/extractors/base.py +0 -0
  108. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/generators.py +0 -0
  109. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/human.py +0 -0
  110. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/interpreters/__init__.py +0 -0
  111. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/interpreters/base.py +0 -0
  112. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/interpreters/docker/Dockerfile +0 -0
  113. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/interpreters/docker_interpreter.py +0 -0
  114. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/interpreters/e2b_interpreter.py +0 -0
  115. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/interpreters/internal_python_interpreter.py +0 -0
  116. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/interpreters/interpreter_error.py +0 -0
  117. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/interpreters/ipython_interpreter.py +0 -0
  118. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/interpreters/subprocess_interpreter.py +0 -0
  119. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/loaders/__init__.py +0 -0
  120. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/loaders/apify_reader.py +0 -0
  121. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/loaders/base_io.py +0 -0
  122. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/loaders/chunkr_reader.py +0 -0
  123. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/loaders/firecrawl_reader.py +0 -0
  124. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/loaders/jina_url_reader.py +0 -0
  125. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/loaders/mineru_extractor.py +0 -0
  126. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/loaders/panda_reader.py +0 -0
  127. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/loaders/unstructured_io.py +0 -0
  128. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/logger.py +0 -0
  129. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/memories/__init__.py +0 -0
  130. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/memories/agent_memories.py +0 -0
  131. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/memories/base.py +0 -0
  132. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/memories/blocks/__init__.py +0 -0
  133. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/memories/blocks/chat_history_block.py +0 -0
  134. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/memories/blocks/vectordb_block.py +0 -0
  135. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/memories/context_creators/__init__.py +0 -0
  136. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/memories/context_creators/score_based.py +0 -0
  137. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/memories/records.py +0 -0
  138. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/messages/__init__.py +0 -0
  139. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/messages/base.py +0 -0
  140. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/messages/conversion/__init__.py +0 -0
  141. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/messages/conversion/alpaca.py +0 -0
  142. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/messages/conversion/conversation_models.py +0 -0
  143. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/messages/conversion/sharegpt/__init__.py +0 -0
  144. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/messages/conversion/sharegpt/function_call_formatter.py +0 -0
  145. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/messages/conversion/sharegpt/hermes/__init__.py +0 -0
  146. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/messages/conversion/sharegpt/hermes/hermes_function_formatter.py +0 -0
  147. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/messages/func_message.py +0 -0
  148. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/models/__init__.py +0 -0
  149. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/models/_utils.py +0 -0
  150. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/models/aiml_model.py +0 -0
  151. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/models/azure_openai_model.py +0 -0
  152. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/models/base_audio_model.py +0 -0
  153. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/models/base_model.py +0 -0
  154. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/models/cohere_model.py +0 -0
  155. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/models/deepseek_model.py +0 -0
  156. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/models/fish_audio_model.py +0 -0
  157. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/models/gemini_model.py +0 -0
  158. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/models/groq_model.py +0 -0
  159. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/models/internlm_model.py +0 -0
  160. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/models/litellm_model.py +0 -0
  161. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/models/mistral_model.py +0 -0
  162. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/models/model_factory.py +0 -0
  163. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/models/model_manager.py +0 -0
  164. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/models/moonshot_model.py +0 -0
  165. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/models/nemotron_model.py +0 -0
  166. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/models/nvidia_model.py +0 -0
  167. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/models/ollama_model.py +0 -0
  168. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/models/openai_audio_models.py +0 -0
  169. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/models/openai_compatible_model.py +0 -0
  170. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/models/openai_model.py +0 -0
  171. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/models/qwen_model.py +0 -0
  172. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/models/reka_model.py +0 -0
  173. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/models/reward/__init__.py +0 -0
  174. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/models/reward/base_reward_model.py +0 -0
  175. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/models/reward/evaluator.py +0 -0
  176. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/models/reward/nemotron_model.py +0 -0
  177. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/models/reward/skywork_model.py +0 -0
  178. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/models/samba_model.py +0 -0
  179. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/models/sglang_model.py +0 -0
  180. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/models/siliconflow_model.py +0 -0
  181. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/models/stub_model.py +0 -0
  182. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/models/togetherai_model.py +0 -0
  183. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/models/vllm_model.py +0 -0
  184. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/models/yi_model.py +0 -0
  185. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/models/zhipuai_model.py +0 -0
  186. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/personas/__init__.py +0 -0
  187. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/personas/persona.py +0 -0
  188. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/personas/persona_hub.py +0 -0
  189. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/prompts/__init__.py +0 -0
  190. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/prompts/ai_society.py +0 -0
  191. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/prompts/base.py +0 -0
  192. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/prompts/code.py +0 -0
  193. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/prompts/evaluation.py +0 -0
  194. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/prompts/generate_text_embedding_data.py +0 -0
  195. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/prompts/image_craft.py +0 -0
  196. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/prompts/misalignment.py +0 -0
  197. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/prompts/multi_condition_image_craft.py +0 -0
  198. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/prompts/object_recognition.py +0 -0
  199. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/prompts/persona_hub.py +0 -0
  200. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/prompts/prompt_templates.py +0 -0
  201. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/prompts/role_description_prompt_template.py +0 -0
  202. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/prompts/solution_extraction.py +0 -0
  203. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/prompts/task_prompt_template.py +0 -0
  204. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/prompts/translation.py +0 -0
  205. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/prompts/video_description_prompt.py +0 -0
  206. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/responses/__init__.py +0 -0
  207. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/responses/agent_responses.py +0 -0
  208. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/retrievers/__init__.py +0 -0
  209. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/retrievers/auto_retriever.py +0 -0
  210. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/retrievers/base.py +0 -0
  211. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/retrievers/bm25_retriever.py +0 -0
  212. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/retrievers/cohere_rerank_retriever.py +0 -0
  213. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/retrievers/hybrid_retrival.py +0 -0
  214. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/retrievers/vector_retriever.py +0 -0
  215. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/runtime/__init__.py +0 -0
  216. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/runtime/api.py +0 -0
  217. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/runtime/base.py +0 -0
  218. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/runtime/configs.py +0 -0
  219. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/runtime/docker_runtime.py +0 -0
  220. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/runtime/llm_guard_runtime.py +0 -0
  221. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/runtime/remote_http_runtime.py +0 -0
  222. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/runtime/utils/__init__.py +0 -0
  223. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/runtime/utils/function_risk_toolkit.py +0 -0
  224. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/runtime/utils/ignore_risk_toolkit.py +0 -0
  225. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/schemas/__init__.py +0 -0
  226. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/schemas/base.py +0 -0
  227. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/schemas/openai_converter.py +0 -0
  228. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/schemas/outlines_converter.py +0 -0
  229. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/societies/__init__.py +0 -0
  230. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/societies/babyagi_playing.py +0 -0
  231. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/societies/workforce/__init__.py +0 -0
  232. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/societies/workforce/base.py +0 -0
  233. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/societies/workforce/prompts.py +0 -0
  234. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/societies/workforce/role_playing_worker.py +0 -0
  235. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/societies/workforce/single_agent_worker.py +0 -0
  236. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/societies/workforce/task_channel.py +0 -0
  237. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/societies/workforce/utils.py +0 -0
  238. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/societies/workforce/worker.py +0 -0
  239. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/societies/workforce/workforce.py +0 -0
  240. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/storages/__init__.py +0 -0
  241. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/storages/graph_storages/__init__.py +0 -0
  242. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/storages/graph_storages/base.py +0 -0
  243. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/storages/graph_storages/graph_element.py +0 -0
  244. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/storages/graph_storages/nebula_graph.py +0 -0
  245. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/storages/graph_storages/neo4j_graph.py +0 -0
  246. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/storages/key_value_storages/__init__.py +0 -0
  247. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/storages/key_value_storages/base.py +0 -0
  248. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/storages/key_value_storages/in_memory.py +0 -0
  249. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/storages/key_value_storages/json.py +0 -0
  250. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/storages/key_value_storages/redis.py +0 -0
  251. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/storages/object_storages/__init__.py +0 -0
  252. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/storages/object_storages/amazon_s3.py +0 -0
  253. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/storages/object_storages/azure_blob.py +0 -0
  254. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/storages/object_storages/base.py +0 -0
  255. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/storages/object_storages/google_cloud.py +0 -0
  256. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/storages/vectordb_storages/__init__.py +0 -0
  257. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/storages/vectordb_storages/base.py +0 -0
  258. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/storages/vectordb_storages/milvus.py +0 -0
  259. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/storages/vectordb_storages/qdrant.py +0 -0
  260. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/tasks/__init__.py +0 -0
  261. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/tasks/task.py +0 -0
  262. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/tasks/task_prompt.py +0 -0
  263. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/terminators/__init__.py +0 -0
  264. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/terminators/base.py +0 -0
  265. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/terminators/response_terminator.py +0 -0
  266. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/terminators/token_limit_terminator.py +0 -0
  267. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/arxiv_toolkit.py +0 -0
  268. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/ask_news_toolkit.py +0 -0
  269. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/audio_analysis_toolkit.py +0 -0
  270. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/base.py +0 -0
  271. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/code_execution.py +0 -0
  272. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/dalle_toolkit.py +0 -0
  273. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/dappier_toolkit.py +0 -0
  274. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/data_commons_toolkit.py +0 -0
  275. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/excel_toolkit.py +0 -0
  276. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/function_tool.py +0 -0
  277. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/github_toolkit.py +0 -0
  278. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/google_maps_toolkit.py +0 -0
  279. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/google_scholar_toolkit.py +0 -0
  280. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/human_toolkit.py +0 -0
  281. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/image_analysis_toolkit.py +0 -0
  282. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/linkedin_toolkit.py +0 -0
  283. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/math_toolkit.py +0 -0
  284. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/meshy_toolkit.py +0 -0
  285. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/mineru_toolkit.py +0 -0
  286. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/networkx_toolkit.py +0 -0
  287. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/notion_toolkit.py +0 -0
  288. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/open_api_specs/biztoc/__init__.py +0 -0
  289. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/open_api_specs/biztoc/ai-plugin.json +0 -0
  290. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/open_api_specs/biztoc/openapi.yaml +0 -0
  291. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/open_api_specs/coursera/__init__.py +0 -0
  292. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/open_api_specs/coursera/openapi.yaml +0 -0
  293. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/open_api_specs/create_qr_code/__init__.py +0 -0
  294. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/open_api_specs/create_qr_code/openapi.yaml +0 -0
  295. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/open_api_specs/klarna/__init__.py +0 -0
  296. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/open_api_specs/klarna/openapi.yaml +0 -0
  297. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/open_api_specs/nasa_apod/__init__.py +0 -0
  298. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/open_api_specs/nasa_apod/openapi.yaml +0 -0
  299. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/open_api_specs/outschool/__init__.py +0 -0
  300. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/open_api_specs/outschool/ai-plugin.json +0 -0
  301. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/open_api_specs/outschool/openapi.yaml +0 -0
  302. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/open_api_specs/outschool/paths/__init__.py +0 -0
  303. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/open_api_specs/outschool/paths/get_classes.py +0 -0
  304. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/open_api_specs/outschool/paths/search_teachers.py +0 -0
  305. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/open_api_specs/security_config.py +0 -0
  306. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/open_api_specs/speak/__init__.py +0 -0
  307. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/open_api_specs/speak/openapi.yaml +0 -0
  308. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/open_api_specs/web_scraper/__init__.py +0 -0
  309. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/open_api_specs/web_scraper/ai-plugin.json +0 -0
  310. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/open_api_specs/web_scraper/openapi.yaml +0 -0
  311. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/open_api_specs/web_scraper/paths/__init__.py +0 -0
  312. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/open_api_specs/web_scraper/paths/scraper.py +0 -0
  313. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/open_api_toolkit.py +0 -0
  314. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/openbb_toolkit.py +0 -0
  315. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/page_script.js +0 -0
  316. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/reddit_toolkit.py +0 -0
  317. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/retrieval_toolkit.py +0 -0
  318. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/search_toolkit.py +0 -0
  319. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/semantic_scholar_toolkit.py +0 -0
  320. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/slack_toolkit.py +0 -0
  321. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/stripe_toolkit.py +0 -0
  322. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/sympy_toolkit.py +0 -0
  323. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/twitter_toolkit.py +0 -0
  324. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/video_analysis_toolkit.py +0 -0
  325. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/video_download_toolkit.py +0 -0
  326. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/weather_toolkit.py +0 -0
  327. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/whatsapp_toolkit.py +0 -0
  328. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/toolkits/zapier_toolkit.py +0 -0
  329. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/types/__init__.py +0 -0
  330. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/types/agents/__init__.py +0 -0
  331. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/types/agents/tool_calling_record.py +0 -0
  332. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/types/openai_types.py +0 -0
  333. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/types/unified_model_type.py +0 -0
  334. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/utils/__init__.py +0 -0
  335. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/utils/async_func.py +0 -0
  336. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/utils/commons.py +0 -0
  337. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/utils/constants.py +0 -0
  338. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/utils/deduplication.py +0 -0
  339. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/utils/response_format.py +0 -0
  340. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/utils/token_counting.py +0 -0
  341. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/verifiers/__init__.py +0 -0
  342. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/verifiers/base.py +0 -0
  343. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/verifiers/models.py +0 -0
  344. {camel_ai-0.2.23 → camel_ai-0.2.24}/camel/verifiers/python_verifier.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: camel-ai
3
- Version: 0.2.23
3
+ Version: 0.2.24
4
4
  Summary: Communicative Agents for AI Society Study
5
5
  Project-URL: Homepage, https://www.camel-ai.org/
6
6
  Project-URL: Repository, https://github.com/camel-ai/camel
@@ -27,7 +27,7 @@ Provides-Extra: all
27
27
  Requires-Dist: accelerate<0.27,>=0.26.0; extra == 'all'
28
28
  Requires-Dist: agentops<0.4,>=0.3.21; extra == 'all'
29
29
  Requires-Dist: aiosqlite<0.21,>=0.20.0; extra == 'all'
30
- Requires-Dist: anthropic<0.43,>=0.42.0; extra == 'all'
30
+ Requires-Dist: anthropic<0.50.0,>=0.47.0; extra == 'all'
31
31
  Requires-Dist: apify-client<2,>=1.8.1; extra == 'all'
32
32
  Requires-Dist: arxiv2text<0.2,>=0.1.14; extra == 'all'
33
33
  Requires-Dist: arxiv<3,>=2.1.3; extra == 'all'
@@ -43,12 +43,14 @@ Requires-Dist: diffusers<0.26,>=0.25.0; extra == 'all'
43
43
  Requires-Dist: discord-py<3,>=2.3.2; extra == 'all'
44
44
  Requires-Dist: docker<8,>=7.1.0; extra == 'all'
45
45
  Requires-Dist: docx2txt<0.9,>=0.8; extra == 'all'
46
+ Requires-Dist: docx>=0.2.4; extra == 'all'
46
47
  Requires-Dist: duckduckgo-search<7,>=6.3.5; extra == 'all'
47
48
  Requires-Dist: e2b-code-interpreter<2,>=1.0.3; extra == 'all'
48
49
  Requires-Dist: fastapi>=0.115.11; extra == 'all'
49
50
  Requires-Dist: ffmpeg-python<0.3,>=0.2.0; extra == 'all'
50
51
  Requires-Dist: firecrawl-py<2,>=1.0.0; extra == 'all'
51
52
  Requires-Dist: fish-audio-sdk<2025,>=2024.12.5; extra == 'all'
53
+ Requires-Dist: fpdf>=1.7.2; extra == 'all'
52
54
  Requires-Dist: google-cloud-storage<3,>=2.18.0; extra == 'all'
53
55
  Requires-Dist: googlemaps<5,>=4.10.0; extra == 'all'
54
56
  Requires-Dist: gradio<4,>=3; extra == 'all'
@@ -58,6 +60,7 @@ Requires-Dist: ipykernel<7,>=6.0.0; extra == 'all'
58
60
  Requires-Dist: jupyter-client<9,>=8.6.2; extra == 'all'
59
61
  Requires-Dist: linkup-sdk<0.3,>=0.2.1; extra == 'all'
60
62
  Requires-Dist: litellm<2,>=1.38.1; extra == 'all'
63
+ Requires-Dist: mcp>=1.3.0; extra == 'all'
61
64
  Requires-Dist: mistralai<2,>=1.1.0; extra == 'all'
62
65
  Requires-Dist: mock<6,>=5; extra == 'all'
63
66
  Requires-Dist: mypy<2,>=1.5.1; extra == 'all'
@@ -108,6 +111,7 @@ Requires-Dist: torch; extra == 'all'
108
111
  Requires-Dist: transformers<5,>=4; extra == 'all'
109
112
  Requires-Dist: tree-sitter-python<0.24,>=0.23.6; extra == 'all'
110
113
  Requires-Dist: tree-sitter<0.24,>=0.23.2; extra == 'all'
114
+ Requires-Dist: typer>=0.15.2; extra == 'all'
111
115
  Requires-Dist: types-colorama<0.5,>=0.4.15; extra == 'all'
112
116
  Requires-Dist: types-mock<6,>=5.1.0; extra == 'all'
113
117
  Requires-Dist: types-pyyaml<7,>=6.0.12; extra == 'all'
@@ -152,14 +156,17 @@ Requires-Dist: types-pyyaml<7,>=6.0.12; extra == 'dev'
152
156
  Requires-Dist: types-requests<3,>=2.31.0; extra == 'dev'
153
157
  Requires-Dist: types-setuptools<70,>=69.2.0; extra == 'dev'
154
158
  Requires-Dist: types-tqdm<5,>=4.66.0; extra == 'dev'
159
+ Requires-Dist: uv==0.6.5; extra == 'dev'
155
160
  Provides-Extra: dev-tools
156
161
  Requires-Dist: agentops<0.4,>=0.3.21; extra == 'dev-tools'
157
162
  Requires-Dist: docker<8,>=7.1.0; extra == 'dev-tools'
158
163
  Requires-Dist: e2b-code-interpreter<2,>=1.0.3; extra == 'dev-tools'
159
164
  Requires-Dist: ipykernel<7,>=6.0.0; extra == 'dev-tools'
160
165
  Requires-Dist: jupyter-client<9,>=8.6.2; extra == 'dev-tools'
166
+ Requires-Dist: mcp>=1.3.0; extra == 'dev-tools'
161
167
  Requires-Dist: tree-sitter-python<0.24,>=0.23.6; extra == 'dev-tools'
162
168
  Requires-Dist: tree-sitter<0.24,>=0.23.2; extra == 'dev-tools'
169
+ Requires-Dist: typer>=0.15.2; extra == 'dev-tools'
163
170
  Provides-Extra: docs
164
171
  Requires-Dist: docutils<0.20.0; extra == 'docs'
165
172
  Requires-Dist: myst-parser; extra == 'docs'
@@ -170,6 +177,8 @@ Requires-Dist: sphinxext-rediraffe<0.3,>=0.2.7; extra == 'docs'
170
177
  Provides-Extra: document-tools
171
178
  Requires-Dist: beautifulsoup4<5,>=4; extra == 'document-tools'
172
179
  Requires-Dist: docx2txt<0.9,>=0.8; extra == 'document-tools'
180
+ Requires-Dist: docx>=0.2.4; extra == 'document-tools'
181
+ Requires-Dist: fpdf>=1.7.2; extra == 'document-tools'
173
182
  Requires-Dist: openapi-spec-validator<0.8,>=0.7.1; extra == 'document-tools'
174
183
  Requires-Dist: openpyxl>=3.1.5; extra == 'document-tools'
175
184
  Requires-Dist: pandasai<3,>=2.3.0; extra == 'document-tools'
@@ -195,7 +204,7 @@ Requires-Dist: pydub<0.26,>=0.25.1; extra == 'media-tools'
195
204
  Requires-Dist: scenedetect>=0.6.5.2; extra == 'media-tools'
196
205
  Requires-Dist: yt-dlp<2025,>=2024.11.4; extra == 'media-tools'
197
206
  Provides-Extra: model-platforms
198
- Requires-Dist: anthropic<0.43,>=0.42.0; extra == 'model-platforms'
207
+ Requires-Dist: anthropic<0.50.0,>=0.47.0; extra == 'model-platforms'
199
208
  Requires-Dist: cohere<6,>=5.11.0; extra == 'model-platforms'
200
209
  Requires-Dist: fish-audio-sdk<2025,>=2024.12.5; extra == 'model-platforms'
201
210
  Requires-Dist: litellm<2,>=1.38.1; extra == 'model-platforms'
@@ -14,7 +14,7 @@
14
14
 
15
15
  from camel.logger import disable_logging, enable_logging, set_log_level
16
16
 
17
- __version__ = '0.2.23'
17
+ __version__ = '0.2.24'
18
18
 
19
19
  __all__ = [
20
20
  '__version__',
@@ -23,23 +23,24 @@ class AnthropicConfig(BaseConfig):
23
23
  r"""Defines the parameters for generating chat completions using the
24
24
  Anthropic API.
25
25
 
26
- See: https://docs.anthropic.com/claude/reference/complete_post
26
+ See: https://docs.anthropic.com/en/api/messages
27
27
  Args:
28
28
  max_tokens (int, optional): The maximum number of tokens to
29
29
  generate before stopping. Note that Anthropic models may stop
30
30
  before reaching this maximum. This parameter only specifies the
31
31
  absolute maximum number of tokens to generate.
32
32
  (default: :obj:`8192`)
33
- stop_sequences (List[str], optional): Sequences that will cause the
34
- model to stop generating completion text. Anthropic models stop
35
- on "\n\nHuman:", and may include additional built-in stop sequences
36
- in the future. By providing the stop_sequences parameter, you may
37
- include additional strings that will cause the model to stop
38
- generating. (default: :obj:`[]`)
33
+ stop_sequences (List[str], optional): Custom text sequences that will
34
+ cause the model to stop generating. The models will normally stop
35
+ when they have naturally completed their turn. If the model
36
+ encounters one of these custom sequences, the response will be
37
+ terminated and the stop_reason will be "stop_sequence".
38
+ (default: :obj:`[]`)
39
39
  temperature (float, optional): Amount of randomness injected into the
40
40
  response. Defaults to 1. Ranges from 0 to 1. Use temp closer to 0
41
41
  for analytical / multiple choice, and closer to 1 for creative
42
- and generative tasks. (default: :obj:`1`)
42
+ and generative tasks. Note that even with temperature of 0.0, the
43
+ results will not be fully deterministic. (default: :obj:`1`)
43
44
  top_p (float, optional): Use nucleus sampling. In nucleus sampling, we
44
45
  compute the cumulative distribution over all the options for each
45
46
  subsequent token in decreasing probability order and cut it off
@@ -49,9 +50,20 @@ class AnthropicConfig(BaseConfig):
49
50
  top_k (int, optional): Only sample from the top K options for each
50
51
  subsequent token. Used to remove "long tail" low probability
51
52
  responses. (default: :obj:`5`)
52
- metadata: An object describing metadata about the request.
53
53
  stream (bool, optional): Whether to incrementally stream the response
54
54
  using server-sent events. (default: :obj:`False`)
55
+ metadata (Union[dict, NotGiven], optional): An object describing
56
+ metadata about the request. Can include user_id as an external
57
+ identifier for the user associated with the request.
58
+ (default: :obj:`NotGiven()`)
59
+ thinking (Union[dict, NotGiven], optional): Configuration for enabling
60
+ Claude's extended thinking. When enabled, responses include
61
+ thinking content blocks showing Claude's thinking process.
62
+ (default: :obj:`NotGiven()`)
63
+ tool_choice (Union[dict, NotGiven], optional): How the model should
64
+ use the provided tools. The model can use a specific tool, any
65
+ available tool, decide by itself, or not use tools at all.
66
+ (default: :obj:`NotGiven()`)
55
67
  """
56
68
 
57
69
  max_tokens: int = 8192
@@ -60,11 +72,33 @@ class AnthropicConfig(BaseConfig):
60
72
  top_p: Union[float, NotGiven] = 0.7
61
73
  top_k: Union[int, NotGiven] = 5
62
74
  stream: bool = False
75
+ metadata: Union[dict, NotGiven] = NotGiven()
76
+ thinking: Union[dict, NotGiven] = NotGiven()
77
+ tool_choice: Union[dict, NotGiven] = NotGiven()
63
78
 
64
79
  def as_dict(self) -> dict[str, Any]:
65
80
  config_dict = super().as_dict()
66
- if "tools" in config_dict:
67
- del config_dict["tools"] # TODO: Support tool calling.
81
+ # Create a list of keys to remove to avoid modifying dict
82
+ keys_to_remove = [
83
+ key
84
+ for key, value in config_dict.items()
85
+ if isinstance(value, NotGiven)
86
+ ]
87
+
88
+ for key in keys_to_remove:
89
+ del config_dict[key]
90
+
91
+ # remove some keys if thinking is enabled
92
+ thinking_enabled = (
93
+ not isinstance(self.thinking, NotGiven)
94
+ and self.thinking["type"] == "enabled"
95
+ )
96
+ if thinking_enabled:
97
+ # `top_p`, `top_k`, `temperature` must be unset when thinking is
98
+ # enabled.
99
+ config_dict.pop("top_k", None)
100
+ config_dict.pop("top_p", None)
101
+ config_dict.pop("temperature", None)
68
102
  return config_dict
69
103
 
70
104
 
@@ -84,7 +84,11 @@ class AnthropicModel(BaseModelBackend):
84
84
  index=0,
85
85
  message={
86
86
  "role": "assistant",
87
- "content": response.content[0].text,
87
+ "content": next(
88
+ content.text
89
+ for content in response.content
90
+ if content.type == "text"
91
+ ),
88
92
  },
89
93
  finish_reason=response.stop_reason,
90
94
  )
@@ -468,6 +468,42 @@ class RolePlaying:
468
468
 
469
469
  return init_msg
470
470
 
471
+ async def ainit_chat(
472
+ self, init_msg_content: Optional[str] = None
473
+ ) -> BaseMessage:
474
+ r"""Asynchronously initializes the chat by resetting both of the
475
+ assistant and user agents. Returns an initial message for the
476
+ role-playing session.
477
+
478
+ Args:
479
+ init_msg_content (str, optional): A user-specified initial message.
480
+ Will be sent to the role-playing session as the initial
481
+ message. (default: :obj:`None`)
482
+
483
+ Returns:
484
+ BaseMessage: A single `BaseMessage` representing the initial
485
+ message.
486
+ """
487
+ # Currently, reset() is synchronous, but if it becomes async in the
488
+ # future, we can await it here
489
+ self.assistant_agent.reset()
490
+ self.user_agent.reset()
491
+ default_init_msg_content = (
492
+ "Now start to give me instructions one by one. "
493
+ "Only reply with Instruction and Input."
494
+ )
495
+ if init_msg_content is None:
496
+ init_msg_content = default_init_msg_content
497
+
498
+ # Initialize a message sent by the assistant
499
+ init_msg = BaseMessage.make_assistant_message(
500
+ role_name=getattr(self.assistant_sys_msg, 'role_name', None)
501
+ or "assistant",
502
+ content=init_msg_content,
503
+ )
504
+
505
+ return init_msg
506
+
471
507
  def step(
472
508
  self,
473
509
  assistant_msg: BaseMessage,
@@ -549,3 +585,86 @@ class RolePlaying:
549
585
  info=user_response.info,
550
586
  ),
551
587
  )
588
+
589
+ async def astep(
590
+ self,
591
+ assistant_msg: BaseMessage,
592
+ ) -> Tuple[ChatAgentResponse, ChatAgentResponse]:
593
+ r"""Asynchronously advances the conversation by taking a message from
594
+ the assistant, processing it using the user agent, and then processing
595
+ the resulting message using the assistant agent. Returns a tuple
596
+ containing the resulting assistant message, whether the assistant
597
+ agent terminated the conversation, and any additional assistant
598
+ information, as well as a tuple containing the resulting user message,
599
+ whether the user agent terminated the conversation, and any additional
600
+ user information.
601
+
602
+ Args:
603
+ assistant_msg: A `BaseMessage` representing the message from the
604
+ assistant.
605
+
606
+ Returns:
607
+ Tuple[ChatAgentResponse, ChatAgentResponse]: A tuple containing two
608
+ ChatAgentResponse: the first struct contains the resulting
609
+ assistant message, whether the assistant agent terminated the
610
+ conversation, and any additional assistant information; the
611
+ second struct contains the resulting user message, whether the
612
+ user agent terminated the conversation, and any additional user
613
+ information.
614
+ """
615
+ user_response = await self.user_agent.astep(assistant_msg)
616
+ if user_response.terminated or user_response.msgs is None:
617
+ return (
618
+ ChatAgentResponse(msgs=[], terminated=False, info={}),
619
+ ChatAgentResponse(
620
+ msgs=[],
621
+ terminated=user_response.terminated,
622
+ info=user_response.info,
623
+ ),
624
+ )
625
+ user_msg = self._reduce_message_options(user_response.msgs)
626
+
627
+ # To prevent recording the same memory more than once (once in chat
628
+ # step and once in role play), and the model generates only one
629
+ # response when multi-response support is enabled.
630
+ if (
631
+ 'n' in self.user_agent.model_backend.model_config_dict.keys()
632
+ and self.user_agent.model_backend.model_config_dict['n'] > 1
633
+ ):
634
+ self.user_agent.record_message(user_msg)
635
+
636
+ assistant_response = await self.assistant_agent.astep(user_msg)
637
+ if assistant_response.terminated or assistant_response.msgs is None:
638
+ return (
639
+ ChatAgentResponse(
640
+ msgs=[],
641
+ terminated=assistant_response.terminated,
642
+ info=assistant_response.info,
643
+ ),
644
+ ChatAgentResponse(
645
+ msgs=[user_msg], terminated=False, info=user_response.info
646
+ ),
647
+ )
648
+ assistant_msg = self._reduce_message_options(assistant_response.msgs)
649
+
650
+ # To prevent recording the same memory more than once (once in chat
651
+ # step and once in role play), and the model generates only one
652
+ # response when multi-response support is enabled.
653
+ if (
654
+ 'n' in self.assistant_agent.model_backend.model_config_dict.keys()
655
+ and self.assistant_agent.model_backend.model_config_dict['n'] > 1
656
+ ):
657
+ self.assistant_agent.record_message(assistant_msg)
658
+
659
+ return (
660
+ ChatAgentResponse(
661
+ msgs=[assistant_msg],
662
+ terminated=assistant_response.terminated,
663
+ info=assistant_response.info,
664
+ ),
665
+ ChatAgentResponse(
666
+ msgs=[user_msg],
667
+ terminated=user_response.terminated,
668
+ info=user_response.info,
669
+ ),
670
+ )
@@ -54,7 +54,10 @@ from .audio_analysis_toolkit import AudioAnalysisToolkit
54
54
  from .excel_toolkit import ExcelToolkit
55
55
  from .video_analysis_toolkit import VideoAnalysisToolkit
56
56
  from .image_analysis_toolkit import ImageAnalysisToolkit
57
+ from .mcp_toolkit import MCPToolkit
57
58
  from .web_toolkit import WebToolkit
59
+ from .file_write_toolkit import FileWriteToolkit
60
+ from .terminal_toolkit import TerminalToolkit
58
61
 
59
62
 
60
63
  __all__ = [
@@ -93,9 +96,12 @@ __all__ = [
93
96
  'ZapierToolkit',
94
97
  'SymPyToolkit',
95
98
  'MinerUToolkit',
99
+ 'MCPToolkit',
96
100
  'AudioAnalysisToolkit',
97
101
  'ExcelToolkit',
98
102
  'VideoAnalysisToolkit',
99
103
  'ImageAnalysisToolkit',
100
104
  'WebToolkit',
105
+ 'FileWriteToolkit',
106
+ 'TerminalToolkit',
101
107
  ]