camel-ai 0.2.76a0__tar.gz → 0.2.76a2__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.
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/PKG-INFO +84 -6
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/README.md +82 -5
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/__init__.py +1 -1
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/agents/chat_agent.py +8 -1
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/environments/tic_tac_toe.py +1 -1
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/memories/__init__.py +2 -1
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/memories/agent_memories.py +3 -1
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/memories/blocks/chat_history_block.py +17 -2
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/base_model.py +30 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/societies/workforce/single_agent_worker.py +44 -38
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/societies/workforce/workforce.py +10 -1
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/storages/object_storages/google_cloud.py +1 -1
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/__init__.py +9 -2
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/aci_toolkit.py +45 -0
- camel_ai-0.2.76a2/camel/toolkits/context_summarizer_toolkit.py +683 -0
- camel_ai-0.2.76a0/camel/toolkits/file_write_toolkit.py → camel_ai-0.2.76a2/camel/toolkits/file_toolkit.py +194 -34
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/hybrid_browser_toolkit/config_loader.py +4 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/hybrid_browser_toolkit/hybrid_browser_toolkit.py +67 -2
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/hybrid_browser_toolkit/hybrid_browser_toolkit_ts.py +62 -45
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/hybrid_browser_toolkit/ts/src/browser-session.ts +489 -60
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/hybrid_browser_toolkit/ts/src/config-loader.ts +5 -2
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/hybrid_browser_toolkit/ts/src/hybrid-browser-toolkit.ts +72 -12
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/hybrid_browser_toolkit/ts/src/snapshot-parser.ts +2 -14
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/hybrid_browser_toolkit/ts/src/types.ts +1 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/hybrid_browser_toolkit/ws_wrapper.py +228 -62
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/hybrid_browser_toolkit_py/hybrid_browser_toolkit.py +4 -4
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/markitdown_toolkit.py +27 -1
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/note_taking_toolkit.py +18 -8
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/slack_toolkit.py +50 -1
- camel_ai-0.2.76a2/camel/toolkits/vertex_ai_veo_toolkit.py +590 -0
- camel_ai-0.2.76a2/camel/toolkits/wechat_official_toolkit.py +483 -0
- camel_ai-0.2.76a2/camel/utils/context_utils.py +395 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/hatch_build_npm.py +12 -1
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/pyproject.toml +4 -3
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/.gitignore +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/LICENSE +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/agents/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/agents/_types.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/agents/_utils.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/agents/base.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/agents/critic_agent.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/agents/deductive_reasoner_agent.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/agents/embodied_agent.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/agents/knowledge_graph_agent.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/agents/mcp_agent.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/agents/multi_hop_generator_agent.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/agents/programmed_agent_instruction.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/agents/repo_agent.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/agents/role_assignment_agent.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/agents/search_agent.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/agents/task_agent.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/agents/tool_agents/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/agents/tool_agents/base.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/agents/tool_agents/hugging_face_tool_agent.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/benchmarks/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/benchmarks/apibank.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/benchmarks/apibench.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/benchmarks/base.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/benchmarks/browsecomp.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/benchmarks/gaia.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/benchmarks/mock_website/README.md +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/benchmarks/mock_website/mock_web.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/benchmarks/mock_website/requirements.txt +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/benchmarks/mock_website/shopping_mall/app.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/benchmarks/mock_website/task.json +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/benchmarks/nexus.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/benchmarks/ragbench.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/bots/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/bots/discord/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/bots/discord/discord_app.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/bots/discord/discord_installation.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/bots/discord/discord_store.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/bots/slack/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/bots/slack/models.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/bots/slack/slack_app.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/bots/telegram_bot.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/configs/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/configs/aiml_config.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/configs/amd_config.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/configs/anthropic_config.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/configs/base_config.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/configs/bedrock_config.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/configs/cohere_config.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/configs/crynux_config.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/configs/deepseek_config.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/configs/gemini_config.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/configs/groq_config.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/configs/internlm_config.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/configs/litellm_config.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/configs/lmstudio_config.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/configs/mistral_config.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/configs/modelscope_config.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/configs/moonshot_config.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/configs/nebius_config.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/configs/netmind_config.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/configs/novita_config.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/configs/nvidia_config.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/configs/ollama_config.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/configs/openai_config.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/configs/openrouter_config.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/configs/ppio_config.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/configs/qianfan_config.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/configs/qwen_config.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/configs/reka_config.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/configs/samba_config.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/configs/sglang_config.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/configs/siliconflow_config.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/configs/togetherai_config.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/configs/vllm_config.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/configs/watsonx_config.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/configs/yi_config.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/configs/zhipuai_config.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/data_collectors/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/data_collectors/alpaca_collector.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/data_collectors/base.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/data_collectors/sharegpt_collector.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/datagen/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/datagen/cot_datagen.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/datagen/evol_instruct/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/datagen/evol_instruct/evol_instruct.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/datagen/evol_instruct/scorer.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/datagen/evol_instruct/templates.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/datagen/self_improving_cot.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/datagen/self_instruct/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/datagen/self_instruct/filter/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/datagen/self_instruct/filter/filter_function.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/datagen/self_instruct/filter/filter_registry.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/datagen/self_instruct/filter/instruction_filter.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/datagen/self_instruct/self_instruct.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/datagen/self_instruct/templates.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/datagen/source2synth/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/datagen/source2synth/data_processor.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/datagen/source2synth/models.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/datagen/source2synth/user_data_processor_config.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/datahubs/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/datahubs/base.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/datahubs/huggingface.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/datahubs/models.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/datasets/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/datasets/base_generator.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/datasets/few_shot_generator.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/datasets/models.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/datasets/self_instruct_generator.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/datasets/static_dataset.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/embeddings/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/embeddings/azure_embedding.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/embeddings/base.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/embeddings/gemini_embedding.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/embeddings/jina_embedding.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/embeddings/mistral_embedding.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/embeddings/openai_compatible_embedding.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/embeddings/openai_embedding.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/embeddings/sentence_transformers_embeddings.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/embeddings/together_embedding.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/embeddings/vlm_embedding.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/environments/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/environments/models.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/environments/multi_step.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/environments/rlcards_env.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/environments/single_step.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/extractors/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/extractors/base.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/extractors/python_strategies.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/generators.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/human.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/interpreters/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/interpreters/base.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/interpreters/docker/Dockerfile +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/interpreters/docker_interpreter.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/interpreters/e2b_interpreter.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/interpreters/internal_python_interpreter.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/interpreters/interpreter_error.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/interpreters/ipython_interpreter.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/interpreters/microsandbox_interpreter.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/interpreters/subprocess_interpreter.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/loaders/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/loaders/apify_reader.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/loaders/base_io.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/loaders/base_loader.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/loaders/chunkr_reader.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/loaders/crawl4ai_reader.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/loaders/firecrawl_reader.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/loaders/jina_url_reader.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/loaders/markitdown.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/loaders/mineru_extractor.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/loaders/mistral_reader.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/loaders/pandas_reader.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/loaders/scrapegraph_reader.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/loaders/unstructured_io.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/logger.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/memories/base.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/memories/blocks/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/memories/blocks/vectordb_block.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/memories/context_creators/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/memories/context_creators/score_based.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/memories/records.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/messages/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/messages/base.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/messages/conversion/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/messages/conversion/alpaca.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/messages/conversion/conversation_models.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/messages/conversion/sharegpt/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/messages/conversion/sharegpt/function_call_formatter.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/messages/conversion/sharegpt/hermes/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/messages/conversion/sharegpt/hermes/hermes_function_formatter.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/messages/func_message.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/_utils.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/aiml_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/amd_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/anthropic_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/aws_bedrock_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/azure_openai_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/base_audio_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/cohere_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/crynux_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/deepseek_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/fish_audio_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/gemini_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/groq_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/internlm_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/litellm_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/lmstudio_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/mistral_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/model_factory.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/model_manager.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/modelscope_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/moonshot_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/nebius_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/nemotron_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/netmind_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/novita_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/nvidia_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/ollama_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/openai_audio_models.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/openai_compatible_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/openai_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/openrouter_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/ppio_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/qianfan_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/qwen_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/reka_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/reward/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/reward/base_reward_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/reward/evaluator.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/reward/nemotron_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/reward/skywork_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/samba_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/sglang_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/siliconflow_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/stub_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/togetherai_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/vllm_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/volcano_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/watsonx_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/yi_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/models/zhipuai_model.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/personas/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/personas/persona.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/personas/persona_hub.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/prompts/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/prompts/ai_society.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/prompts/base.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/prompts/code.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/prompts/evaluation.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/prompts/generate_text_embedding_data.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/prompts/image_craft.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/prompts/misalignment.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/prompts/multi_condition_image_craft.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/prompts/object_recognition.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/prompts/persona_hub.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/prompts/prompt_templates.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/prompts/role_description_prompt_template.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/prompts/solution_extraction.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/prompts/task_prompt_template.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/prompts/translation.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/prompts/video_description_prompt.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/py.typed +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/responses/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/responses/agent_responses.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/retrievers/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/retrievers/auto_retriever.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/retrievers/base.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/retrievers/bm25_retriever.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/retrievers/cohere_rerank_retriever.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/retrievers/hybrid_retrival.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/retrievers/vector_retriever.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/runtimes/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/runtimes/api.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/runtimes/base.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/runtimes/configs.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/runtimes/daytona_runtime.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/runtimes/docker_runtime.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/runtimes/llm_guard_runtime.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/runtimes/remote_http_runtime.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/runtimes/ubuntu_docker_runtime.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/runtimes/utils/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/runtimes/utils/function_risk_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/runtimes/utils/ignore_risk_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/schemas/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/schemas/base.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/schemas/openai_converter.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/schemas/outlines_converter.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/services/agent_openapi_server.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/societies/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/societies/babyagi_playing.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/societies/role_playing.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/societies/workforce/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/societies/workforce/base.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/societies/workforce/prompts.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/societies/workforce/role_playing_worker.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/societies/workforce/structured_output_handler.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/societies/workforce/task_channel.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/societies/workforce/utils.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/societies/workforce/worker.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/societies/workforce/workforce_logger.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/storages/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/storages/graph_storages/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/storages/graph_storages/base.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/storages/graph_storages/graph_element.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/storages/graph_storages/nebula_graph.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/storages/graph_storages/neo4j_graph.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/storages/key_value_storages/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/storages/key_value_storages/base.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/storages/key_value_storages/in_memory.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/storages/key_value_storages/json.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/storages/key_value_storages/mem0_cloud.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/storages/key_value_storages/redis.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/storages/object_storages/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/storages/object_storages/amazon_s3.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/storages/object_storages/azure_blob.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/storages/object_storages/base.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/storages/vectordb_storages/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/storages/vectordb_storages/base.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/storages/vectordb_storages/chroma.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/storages/vectordb_storages/faiss.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/storages/vectordb_storages/milvus.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/storages/vectordb_storages/oceanbase.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/storages/vectordb_storages/pgvector.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/storages/vectordb_storages/qdrant.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/storages/vectordb_storages/surreal.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/storages/vectordb_storages/tidb.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/storages/vectordb_storages/weaviate.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/tasks/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/tasks/task.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/tasks/task_prompt.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/terminators/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/terminators/base.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/terminators/response_terminator.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/terminators/token_limit_terminator.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/arxiv_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/ask_news_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/async_browser_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/audio_analysis_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/base.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/bohrium_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/browser_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/browser_toolkit_commons.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/code_execution.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/craw4ai_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/dappier_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/data_commons_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/edgeone_pages_mcp_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/excel_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/function_tool.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/github_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/google_calendar_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/google_drive_mcp_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/google_maps_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/google_scholar_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/human_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/hybrid_browser_toolkit/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/hybrid_browser_toolkit/ts/package-lock.json +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/hybrid_browser_toolkit/ts/package.json +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/hybrid_browser_toolkit/ts/src/browser-scripts.js +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/hybrid_browser_toolkit/ts/src/index.ts +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/hybrid_browser_toolkit/ts/src/parent-child-filter.ts +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/hybrid_browser_toolkit/ts/src/som-screenshot-injected.ts +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/hybrid_browser_toolkit/ts/tsconfig.json +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/hybrid_browser_toolkit/ts/websocket-server.js +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/hybrid_browser_toolkit_py/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/hybrid_browser_toolkit_py/actions.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/hybrid_browser_toolkit_py/agent.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/hybrid_browser_toolkit_py/browser_session.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/hybrid_browser_toolkit_py/config_loader.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/hybrid_browser_toolkit_py/snapshot.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/hybrid_browser_toolkit_py/stealth_script.js +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/hybrid_browser_toolkit_py/unified_analyzer.js +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/image_analysis_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/image_generation_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/jina_reranker_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/klavis_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/linkedin_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/math_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/mcp_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/memory_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/meshy_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/message_agent_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/message_integration.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/mineru_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/minimax_mcp_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/networkx_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/notion_mcp_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/notion_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/open_api_specs/biztoc/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/open_api_specs/biztoc/ai-plugin.json +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/open_api_specs/biztoc/openapi.yaml +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/open_api_specs/coursera/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/open_api_specs/coursera/openapi.yaml +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/open_api_specs/create_qr_code/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/open_api_specs/create_qr_code/openapi.yaml +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/open_api_specs/klarna/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/open_api_specs/klarna/openapi.yaml +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/open_api_specs/nasa_apod/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/open_api_specs/nasa_apod/openapi.yaml +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/open_api_specs/outschool/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/open_api_specs/outschool/ai-plugin.json +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/open_api_specs/outschool/openapi.yaml +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/open_api_specs/outschool/paths/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/open_api_specs/outschool/paths/get_classes.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/open_api_specs/outschool/paths/search_teachers.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/open_api_specs/security_config.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/open_api_specs/speak/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/open_api_specs/speak/openapi.yaml +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/open_api_specs/web_scraper/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/open_api_specs/web_scraper/ai-plugin.json +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/open_api_specs/web_scraper/openapi.yaml +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/open_api_specs/web_scraper/paths/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/open_api_specs/web_scraper/paths/scraper.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/open_api_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/openbb_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/origene_mcp_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/page_script.js +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/playwright_mcp_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/pptx_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/pubmed_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/pulse_mcp_search_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/pyautogui_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/reddit_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/retrieval_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/screenshot_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/search_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/searxng_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/semantic_scholar_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/stripe_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/sympy_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/task_planning_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/terminal_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/thinking_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/twitter_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/video_analysis_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/video_download_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/weather_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/web_deploy_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/whatsapp_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/wolfram_alpha_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/toolkits/zapier_toolkit.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/types/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/types/agents/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/types/agents/tool_calling_record.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/types/enums.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/types/mcp_registries.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/types/openai_types.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/types/unified_model_type.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/utils/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/utils/async_func.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/utils/chunker/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/utils/chunker/base.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/utils/chunker/code_chunker.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/utils/chunker/uio_chunker.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/utils/commons.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/utils/constants.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/utils/deduplication.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/utils/filename.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/utils/langfuse.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/utils/mcp.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/utils/mcp_client.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/utils/message_summarizer.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/utils/response_format.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/utils/token_counting.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/utils/tool_result.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/verifiers/__init__.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/verifiers/base.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/verifiers/math_verifier.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/verifiers/models.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/camel/verifiers/physics_verifier.py +0 -0
- {camel_ai-0.2.76a0 → camel_ai-0.2.76a2}/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.
|
|
3
|
+
Version: 0.2.76a2
|
|
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
|
|
@@ -57,6 +57,7 @@ Requires-Dist: flask>=2.0; extra == 'all'
|
|
|
57
57
|
Requires-Dist: google-api-python-client==2.166.0; extra == 'all'
|
|
58
58
|
Requires-Dist: google-auth-httplib2==0.2.0; extra == 'all'
|
|
59
59
|
Requires-Dist: google-auth-oauthlib==1.2.1; extra == 'all'
|
|
60
|
+
Requires-Dist: google-cloud-aiplatform>=1.111.0; extra == 'all'
|
|
60
61
|
Requires-Dist: google-cloud-storage<3,>=2.18.0; extra == 'all'
|
|
61
62
|
Requires-Dist: google-genai>=1.13.0; extra == 'all'
|
|
62
63
|
Requires-Dist: googlemaps<5,>=4.10.0; extra == 'all'
|
|
@@ -447,12 +448,52 @@ Join us ([*Discord*](https://discord.camel-ai.org/) or [*WeChat*](https://ghli.o
|
|
|
447
448
|
</div>
|
|
448
449
|
|
|
449
450
|
<div align="center">
|
|
450
|
-
<img src="docs/images/
|
|
451
|
+
<img src="docs/images/stars.gif" alt="Star">
|
|
451
452
|
</a>
|
|
452
453
|
</div>
|
|
453
454
|
|
|
454
455
|
<br>
|
|
455
456
|
|
|
457
|
+
<details>
|
|
458
|
+
<summary><kbd>Table of contents</kbd></summary>
|
|
459
|
+
|
|
460
|
+
<br/>
|
|
461
|
+
|
|
462
|
+
- [CAMEL Framework Design Principles](#camel-framework-design-principles)
|
|
463
|
+
- [Why Use CAMEL for Your Research?](#why-use-camel-for-your-research)
|
|
464
|
+
- [What Can You Build With CAMEL?](#what-can-you-build-with-camel)
|
|
465
|
+
- [Data Generation](#1-data-generation)
|
|
466
|
+
- [Task Automation](#2-task-automation)
|
|
467
|
+
- [World Simulation](#3-world-simulation)
|
|
468
|
+
- [Quick Start](#quick-start)
|
|
469
|
+
- [Starting with ChatAgent](#starting-with-chatagent)
|
|
470
|
+
- [Seeking Help](#seeking-help)
|
|
471
|
+
- [Tech Stack](#tech-stack)
|
|
472
|
+
- [Research](#research)
|
|
473
|
+
- [Synthetic Datasets](#synthetic-datasets)
|
|
474
|
+
- [Cookbooks (Usecases)](#cookbooks-usecases)
|
|
475
|
+
- [Basic Concepts](#1-basic-concepts)
|
|
476
|
+
- [Advanced Features](#2-advanced-features)
|
|
477
|
+
- [Model Training & Data Generation](#3-model-training--data-generation)
|
|
478
|
+
- [Multi-Agent Systems & Applications](#4-multi-agent-systems--applications)
|
|
479
|
+
- [Data Processing](#5-data-processing)
|
|
480
|
+
- [Real-World Usecases](#real-world-usecases)
|
|
481
|
+
- [🧱 Built with CAMEL (Real-world Producs & Research)](#-built-with-camel-real-world-producs--research)
|
|
482
|
+
- [Research Projects](#research-projects)
|
|
483
|
+
- [Product Projects](#product-projects)
|
|
484
|
+
- [🗓️ Events](#️-events)
|
|
485
|
+
- [Contributing to CAMEL](#contributing-to-camel)
|
|
486
|
+
- [Community & Contact](#community--contact)
|
|
487
|
+
- [Citation](#citation)
|
|
488
|
+
- [Acknowledgment](#acknowledgment)
|
|
489
|
+
- [License](#license)
|
|
490
|
+
|
|
491
|
+
####
|
|
492
|
+
|
|
493
|
+
<br/>
|
|
494
|
+
|
|
495
|
+
</details>
|
|
496
|
+
|
|
456
497
|
|
|
457
498
|
## CAMEL Framework Design Principles
|
|
458
499
|
|
|
@@ -686,6 +727,18 @@ We believe that studying these agents on a large scale offers valuable insights
|
|
|
686
727
|
|
|
687
728
|
**Explore our research projects:**
|
|
688
729
|
|
|
730
|
+
<div align="center">
|
|
731
|
+
<a href="https://github.com/camel-ai/owl">
|
|
732
|
+
<img src="docs/images/owl.png" alt="OWL">
|
|
733
|
+
</a>
|
|
734
|
+
</div>
|
|
735
|
+
|
|
736
|
+
<div align="center">
|
|
737
|
+
<a href="https://oasis.camel-ai.org/">
|
|
738
|
+
<img src="docs/images/oasis.png" alt="OASIS">
|
|
739
|
+
</a>
|
|
740
|
+
</div>
|
|
741
|
+
|
|
689
742
|
<div align="center">
|
|
690
743
|
<a href="https://crab.camel-ai.org/">
|
|
691
744
|
<img src="docs/images/crab.png" alt="CRAB">
|
|
@@ -693,14 +746,14 @@ We believe that studying these agents on a large scale offers valuable insights
|
|
|
693
746
|
</div>
|
|
694
747
|
|
|
695
748
|
<div align="center">
|
|
696
|
-
<a href="https://
|
|
697
|
-
<img src="docs/images/
|
|
749
|
+
<a href="https://github.com/camel-ai/loong">
|
|
750
|
+
<img src="docs/images/loong.png" alt="Loong">
|
|
698
751
|
</a>
|
|
699
752
|
</div>
|
|
700
753
|
|
|
701
754
|
<div align="center">
|
|
702
|
-
<a href="https://
|
|
703
|
-
<img src="docs/images/
|
|
755
|
+
<a href="https://agent-trust.camel-ai.org/">
|
|
756
|
+
<img src="docs/images/agent_trust.png" alt="Agent Trust">
|
|
704
757
|
</a>
|
|
705
758
|
</div>
|
|
706
759
|
|
|
@@ -834,6 +887,31 @@ Real-world usecases demonstrating how CAMEL’s multi-agent framework enables re
|
|
|
834
887
|
|
|
835
888
|
<br>
|
|
836
889
|
|
|
890
|
+
## 🧱 Built with CAMEL (Real-world Producs & Research)
|
|
891
|
+
<div align="left">
|
|
892
|
+
<a href="https://www.camel-ai.org/">
|
|
893
|
+
<img src="docs/images/built_with_CAMEL.png" alt="Built with CAMEL" height="40px">
|
|
894
|
+
</a>
|
|
895
|
+
</div>
|
|
896
|
+
|
|
897
|
+
### Research Projects
|
|
898
|
+
|
|
899
|
+
| Name | Description |
|
|
900
|
+
|:---|:---|
|
|
901
|
+
| **[ChatDev](https://github.com/OpenBMB/ChatDev/tree/main/camel)** | Communicative Agents for software Development |
|
|
902
|
+
| **[Paper2Poster](https://github.com/Paper2Poster/Paper2Poster)** | Multimodal poster automation from scientific papers |
|
|
903
|
+
|
|
904
|
+
### Product Projects
|
|
905
|
+
|
|
906
|
+
| Name | Description |
|
|
907
|
+
|:---|:---|
|
|
908
|
+
| **[Eigent](https://www.eigent.ai/)** | The World First Multi-agent Workforce |
|
|
909
|
+
| **[EigentBot](https://bot.eigent.ai/)** | One EigentBot,
|
|
910
|
+
Every Code Answer |
|
|
911
|
+
| **[Matrix](https://matrix.eigent.ai/)** | Social Media Simulation |
|
|
912
|
+
| **[AI Geometric](https://www.linkedin.com/posts/aigeometric_ai-interviewpreparation-careerdevelopment-activity-7261428422516555776-MtaK/?utm_source=share&utm_medium=member_desktop&rcm=ACoAAChHluEB9xRwkjiJ6VSAzqM2Y-U4NI2sKGY)** | AI-powered interview copilot |
|
|
913
|
+
| **[Log10](https://github.com/log10-io/log10/blob/main/src/log10/agents/camel.py)** | AI accuracy, delivered |
|
|
914
|
+
|
|
837
915
|
|
|
838
916
|
## 🗓️ Events
|
|
839
917
|
|
|
@@ -51,12 +51,52 @@ Join us ([*Discord*](https://discord.camel-ai.org/) or [*WeChat*](https://ghli.o
|
|
|
51
51
|
</div>
|
|
52
52
|
|
|
53
53
|
<div align="center">
|
|
54
|
-
<img src="docs/images/
|
|
54
|
+
<img src="docs/images/stars.gif" alt="Star">
|
|
55
55
|
</a>
|
|
56
56
|
</div>
|
|
57
57
|
|
|
58
58
|
<br>
|
|
59
59
|
|
|
60
|
+
<details>
|
|
61
|
+
<summary><kbd>Table of contents</kbd></summary>
|
|
62
|
+
|
|
63
|
+
<br/>
|
|
64
|
+
|
|
65
|
+
- [CAMEL Framework Design Principles](#camel-framework-design-principles)
|
|
66
|
+
- [Why Use CAMEL for Your Research?](#why-use-camel-for-your-research)
|
|
67
|
+
- [What Can You Build With CAMEL?](#what-can-you-build-with-camel)
|
|
68
|
+
- [Data Generation](#1-data-generation)
|
|
69
|
+
- [Task Automation](#2-task-automation)
|
|
70
|
+
- [World Simulation](#3-world-simulation)
|
|
71
|
+
- [Quick Start](#quick-start)
|
|
72
|
+
- [Starting with ChatAgent](#starting-with-chatagent)
|
|
73
|
+
- [Seeking Help](#seeking-help)
|
|
74
|
+
- [Tech Stack](#tech-stack)
|
|
75
|
+
- [Research](#research)
|
|
76
|
+
- [Synthetic Datasets](#synthetic-datasets)
|
|
77
|
+
- [Cookbooks (Usecases)](#cookbooks-usecases)
|
|
78
|
+
- [Basic Concepts](#1-basic-concepts)
|
|
79
|
+
- [Advanced Features](#2-advanced-features)
|
|
80
|
+
- [Model Training & Data Generation](#3-model-training--data-generation)
|
|
81
|
+
- [Multi-Agent Systems & Applications](#4-multi-agent-systems--applications)
|
|
82
|
+
- [Data Processing](#5-data-processing)
|
|
83
|
+
- [Real-World Usecases](#real-world-usecases)
|
|
84
|
+
- [🧱 Built with CAMEL (Real-world Producs & Research)](#-built-with-camel-real-world-producs--research)
|
|
85
|
+
- [Research Projects](#research-projects)
|
|
86
|
+
- [Product Projects](#product-projects)
|
|
87
|
+
- [🗓️ Events](#️-events)
|
|
88
|
+
- [Contributing to CAMEL](#contributing-to-camel)
|
|
89
|
+
- [Community & Contact](#community--contact)
|
|
90
|
+
- [Citation](#citation)
|
|
91
|
+
- [Acknowledgment](#acknowledgment)
|
|
92
|
+
- [License](#license)
|
|
93
|
+
|
|
94
|
+
####
|
|
95
|
+
|
|
96
|
+
<br/>
|
|
97
|
+
|
|
98
|
+
</details>
|
|
99
|
+
|
|
60
100
|
|
|
61
101
|
## CAMEL Framework Design Principles
|
|
62
102
|
|
|
@@ -290,6 +330,18 @@ We believe that studying these agents on a large scale offers valuable insights
|
|
|
290
330
|
|
|
291
331
|
**Explore our research projects:**
|
|
292
332
|
|
|
333
|
+
<div align="center">
|
|
334
|
+
<a href="https://github.com/camel-ai/owl">
|
|
335
|
+
<img src="docs/images/owl.png" alt="OWL">
|
|
336
|
+
</a>
|
|
337
|
+
</div>
|
|
338
|
+
|
|
339
|
+
<div align="center">
|
|
340
|
+
<a href="https://oasis.camel-ai.org/">
|
|
341
|
+
<img src="docs/images/oasis.png" alt="OASIS">
|
|
342
|
+
</a>
|
|
343
|
+
</div>
|
|
344
|
+
|
|
293
345
|
<div align="center">
|
|
294
346
|
<a href="https://crab.camel-ai.org/">
|
|
295
347
|
<img src="docs/images/crab.png" alt="CRAB">
|
|
@@ -297,14 +349,14 @@ We believe that studying these agents on a large scale offers valuable insights
|
|
|
297
349
|
</div>
|
|
298
350
|
|
|
299
351
|
<div align="center">
|
|
300
|
-
<a href="https://
|
|
301
|
-
<img src="docs/images/
|
|
352
|
+
<a href="https://github.com/camel-ai/loong">
|
|
353
|
+
<img src="docs/images/loong.png" alt="Loong">
|
|
302
354
|
</a>
|
|
303
355
|
</div>
|
|
304
356
|
|
|
305
357
|
<div align="center">
|
|
306
|
-
<a href="https://
|
|
307
|
-
<img src="docs/images/
|
|
358
|
+
<a href="https://agent-trust.camel-ai.org/">
|
|
359
|
+
<img src="docs/images/agent_trust.png" alt="Agent Trust">
|
|
308
360
|
</a>
|
|
309
361
|
</div>
|
|
310
362
|
|
|
@@ -438,6 +490,31 @@ Real-world usecases demonstrating how CAMEL’s multi-agent framework enables re
|
|
|
438
490
|
|
|
439
491
|
<br>
|
|
440
492
|
|
|
493
|
+
## 🧱 Built with CAMEL (Real-world Producs & Research)
|
|
494
|
+
<div align="left">
|
|
495
|
+
<a href="https://www.camel-ai.org/">
|
|
496
|
+
<img src="docs/images/built_with_CAMEL.png" alt="Built with CAMEL" height="40px">
|
|
497
|
+
</a>
|
|
498
|
+
</div>
|
|
499
|
+
|
|
500
|
+
### Research Projects
|
|
501
|
+
|
|
502
|
+
| Name | Description |
|
|
503
|
+
|:---|:---|
|
|
504
|
+
| **[ChatDev](https://github.com/OpenBMB/ChatDev/tree/main/camel)** | Communicative Agents for software Development |
|
|
505
|
+
| **[Paper2Poster](https://github.com/Paper2Poster/Paper2Poster)** | Multimodal poster automation from scientific papers |
|
|
506
|
+
|
|
507
|
+
### Product Projects
|
|
508
|
+
|
|
509
|
+
| Name | Description |
|
|
510
|
+
|:---|:---|
|
|
511
|
+
| **[Eigent](https://www.eigent.ai/)** | The World First Multi-agent Workforce |
|
|
512
|
+
| **[EigentBot](https://bot.eigent.ai/)** | One EigentBot,
|
|
513
|
+
Every Code Answer |
|
|
514
|
+
| **[Matrix](https://matrix.eigent.ai/)** | Social Media Simulation |
|
|
515
|
+
| **[AI Geometric](https://www.linkedin.com/posts/aigeometric_ai-interviewpreparation-careerdevelopment-activity-7261428422516555776-MtaK/?utm_source=share&utm_medium=member_desktop&rcm=ACoAAChHluEB9xRwkjiJ6VSAzqM2Y-U4NI2sKGY)** | AI-powered interview copilot |
|
|
516
|
+
| **[Log10](https://github.com/log10-io/log10/blob/main/src/log10/agents/camel.py)** | AI accuracy, delivered |
|
|
517
|
+
|
|
441
518
|
|
|
442
519
|
## 🗓️ Events
|
|
443
520
|
|
|
@@ -63,6 +63,7 @@ from camel.memories import (
|
|
|
63
63
|
MemoryRecord,
|
|
64
64
|
ScoreBasedContextCreator,
|
|
65
65
|
)
|
|
66
|
+
from camel.memories.blocks.chat_history_block import EmptyMemoryWarning
|
|
66
67
|
from camel.messages import (
|
|
67
68
|
BaseMessage,
|
|
68
69
|
FunctionCallingMessage,
|
|
@@ -841,7 +842,12 @@ class ChatAgent(BaseAgent):
|
|
|
841
842
|
current_tokens = token_counter.count_tokens_from_messages(
|
|
842
843
|
[message.to_openai_message(role)]
|
|
843
844
|
)
|
|
844
|
-
|
|
845
|
+
import warnings
|
|
846
|
+
|
|
847
|
+
with warnings.catch_warnings():
|
|
848
|
+
warnings.filterwarnings("ignore", category=EmptyMemoryWarning)
|
|
849
|
+
_, ctx_tokens = self.memory.get_context()
|
|
850
|
+
|
|
845
851
|
remaining_budget = max(0, token_limit - ctx_tokens)
|
|
846
852
|
|
|
847
853
|
if current_tokens <= remaining_budget:
|
|
@@ -1035,6 +1041,7 @@ class ChatAgent(BaseAgent):
|
|
|
1035
1041
|
None
|
|
1036
1042
|
"""
|
|
1037
1043
|
self.memory.clear()
|
|
1044
|
+
|
|
1038
1045
|
if self.system_message is not None:
|
|
1039
1046
|
self.update_memory(self.system_message, OpenAIBackendRole.SYSTEM)
|
|
1040
1047
|
|
|
@@ -483,7 +483,7 @@ class TicTacToeEnv(MultiStepEnv):
|
|
|
483
483
|
# Check all win combinations.
|
|
484
484
|
for a, b, c in TicTacToeEnv.WIN_COMBINATIONS:
|
|
485
485
|
if board[a] != " " and board[a] == board[b] == board[c]:
|
|
486
|
-
return board[a]
|
|
486
|
+
return board[a] # type: ignore[return-value]
|
|
487
487
|
# Check for draw.
|
|
488
488
|
if all(cell != " " for cell in board):
|
|
489
489
|
return "draw"
|
|
@@ -18,7 +18,7 @@ from .agent_memories import (
|
|
|
18
18
|
VectorDBMemory,
|
|
19
19
|
)
|
|
20
20
|
from .base import AgentMemory, BaseContextCreator, MemoryBlock
|
|
21
|
-
from .blocks.chat_history_block import ChatHistoryBlock
|
|
21
|
+
from .blocks.chat_history_block import ChatHistoryBlock, EmptyMemoryWarning
|
|
22
22
|
from .blocks.vectordb_block import VectorDBBlock
|
|
23
23
|
from .context_creators.score_based import ScoreBasedContextCreator
|
|
24
24
|
from .records import ContextRecord, MemoryRecord
|
|
@@ -35,4 +35,5 @@ __all__ = [
|
|
|
35
35
|
'ChatHistoryBlock',
|
|
36
36
|
'VectorDBBlock',
|
|
37
37
|
'LongtermAgentMemory',
|
|
38
|
+
'EmptyMemoryWarning',
|
|
38
39
|
]
|
|
@@ -51,7 +51,9 @@ class ChatHistoryMemory(AgentMemory):
|
|
|
51
51
|
raise ValueError("`window_size` must be non-negative.")
|
|
52
52
|
self._context_creator = context_creator
|
|
53
53
|
self._window_size = window_size
|
|
54
|
-
self._chat_history_block = ChatHistoryBlock(
|
|
54
|
+
self._chat_history_block = ChatHistoryBlock(
|
|
55
|
+
storage=storage,
|
|
56
|
+
)
|
|
55
57
|
self._agent_id = agent_id
|
|
56
58
|
|
|
57
59
|
@property
|
|
@@ -21,6 +21,17 @@ from camel.storages.key_value_storages.in_memory import InMemoryKeyValueStorage
|
|
|
21
21
|
from camel.types import OpenAIBackendRole
|
|
22
22
|
|
|
23
23
|
|
|
24
|
+
class EmptyMemoryWarning(UserWarning):
|
|
25
|
+
"""Warning raised when attempting to access an empty memory.
|
|
26
|
+
|
|
27
|
+
This warning is raised when operations are performed on memory
|
|
28
|
+
that contains no records. It can be safely caught and suppressed
|
|
29
|
+
in contexts where empty memory is expected.
|
|
30
|
+
"""
|
|
31
|
+
|
|
32
|
+
pass
|
|
33
|
+
|
|
34
|
+
|
|
24
35
|
class ChatHistoryBlock(MemoryBlock):
|
|
25
36
|
r"""An implementation of the :obj:`MemoryBlock` abstract base class for
|
|
26
37
|
maintaining a record of chat histories.
|
|
@@ -39,7 +50,7 @@ class ChatHistoryBlock(MemoryBlock):
|
|
|
39
50
|
last message is 1.0, and with each step taken backward, the score
|
|
40
51
|
of the message is multiplied by the `keep_rate`. Higher `keep_rate`
|
|
41
52
|
leads to high possibility to keep history messages during context
|
|
42
|
-
creation.
|
|
53
|
+
creation. (default: :obj:`0.9`)
|
|
43
54
|
"""
|
|
44
55
|
|
|
45
56
|
def __init__(
|
|
@@ -70,7 +81,11 @@ class ChatHistoryBlock(MemoryBlock):
|
|
|
70
81
|
"""
|
|
71
82
|
record_dicts = self.storage.load()
|
|
72
83
|
if len(record_dicts) == 0:
|
|
73
|
-
warnings.warn(
|
|
84
|
+
warnings.warn(
|
|
85
|
+
"The `ChatHistoryMemory` is empty.",
|
|
86
|
+
EmptyMemoryWarning,
|
|
87
|
+
stacklevel=1,
|
|
88
|
+
)
|
|
74
89
|
return list()
|
|
75
90
|
|
|
76
91
|
if window_size is not None and window_size >= 0:
|
|
@@ -24,6 +24,7 @@ from openai.lib.streaming.chat import (
|
|
|
24
24
|
)
|
|
25
25
|
from pydantic import BaseModel
|
|
26
26
|
|
|
27
|
+
from camel.logger import get_logger as camel_get_logger
|
|
27
28
|
from camel.messages import OpenAIMessage
|
|
28
29
|
from camel.types import (
|
|
29
30
|
ChatCompletion,
|
|
@@ -34,6 +35,21 @@ from camel.types import (
|
|
|
34
35
|
)
|
|
35
36
|
from camel.utils import BaseTokenCounter
|
|
36
37
|
|
|
38
|
+
if os.environ.get("TRACEROOT_ENABLED", "False").lower() == "true":
|
|
39
|
+
try:
|
|
40
|
+
from traceroot import get_logger # type: ignore[import]
|
|
41
|
+
from traceroot import trace as observe # type: ignore[import]
|
|
42
|
+
|
|
43
|
+
logger = get_logger('base_model')
|
|
44
|
+
except ImportError:
|
|
45
|
+
from camel.utils import observe
|
|
46
|
+
|
|
47
|
+
logger = camel_get_logger('base_model')
|
|
48
|
+
else:
|
|
49
|
+
from camel.utils import observe
|
|
50
|
+
|
|
51
|
+
logger = camel_get_logger('base_model')
|
|
52
|
+
|
|
37
53
|
|
|
38
54
|
class ModelBackendMeta(abc.ABCMeta):
|
|
39
55
|
r"""Metaclass that automatically preprocesses messages in run method.
|
|
@@ -364,6 +380,7 @@ class BaseModelBackend(ABC, metaclass=ModelBackendMeta):
|
|
|
364
380
|
"""
|
|
365
381
|
pass
|
|
366
382
|
|
|
383
|
+
@observe()
|
|
367
384
|
def run(
|
|
368
385
|
self,
|
|
369
386
|
messages: List[OpenAIMessage],
|
|
@@ -403,7 +420,13 @@ class BaseModelBackend(ABC, metaclass=ModelBackendMeta):
|
|
|
403
420
|
elif not tools:
|
|
404
421
|
tools = None
|
|
405
422
|
|
|
423
|
+
logger.info("Running model: %s", self.model_type)
|
|
424
|
+
logger.info("Messages: %s", messages)
|
|
425
|
+
logger.info("Response format: %s", response_format)
|
|
426
|
+
logger.info("Tools: %s", tools)
|
|
427
|
+
|
|
406
428
|
result = self._run(messages, response_format, tools)
|
|
429
|
+
logger.info("Result: %s", result)
|
|
407
430
|
|
|
408
431
|
# Log the response if logging is enabled
|
|
409
432
|
if log_path:
|
|
@@ -411,6 +434,7 @@ class BaseModelBackend(ABC, metaclass=ModelBackendMeta):
|
|
|
411
434
|
|
|
412
435
|
return result
|
|
413
436
|
|
|
437
|
+
@observe()
|
|
414
438
|
async def arun(
|
|
415
439
|
self,
|
|
416
440
|
messages: List[OpenAIMessage],
|
|
@@ -448,7 +472,13 @@ class BaseModelBackend(ABC, metaclass=ModelBackendMeta):
|
|
|
448
472
|
elif not tools:
|
|
449
473
|
tools = None
|
|
450
474
|
|
|
475
|
+
logger.info("Running model: %s", self.model_type)
|
|
476
|
+
logger.info("Messages: %s", messages)
|
|
477
|
+
logger.info("Response format: %s", response_format)
|
|
478
|
+
logger.info("Tools: %s", tools)
|
|
479
|
+
|
|
451
480
|
result = await self._arun(messages, response_format, tools)
|
|
481
|
+
logger.info("Result: %s", result)
|
|
452
482
|
|
|
453
483
|
# Log the response if logging is enabled
|
|
454
484
|
if log_path:
|
|
@@ -35,8 +35,8 @@ from camel.tasks.task import Task, TaskState, is_task_result_insufficient
|
|
|
35
35
|
class AgentPool:
|
|
36
36
|
r"""A pool of agent instances for efficient reuse.
|
|
37
37
|
|
|
38
|
-
This pool manages a collection of pre-cloned agents
|
|
39
|
-
|
|
38
|
+
This pool manages a collection of pre-cloned agents with automatic
|
|
39
|
+
scaling and idle timeout cleanup.
|
|
40
40
|
|
|
41
41
|
Args:
|
|
42
42
|
base_agent (ChatAgent): The base agent to clone from.
|
|
@@ -48,6 +48,8 @@ class AgentPool:
|
|
|
48
48
|
(default: :obj:`True`)
|
|
49
49
|
idle_timeout (float): Time in seconds after which idle agents are
|
|
50
50
|
removed. (default: :obj:`180.0`)
|
|
51
|
+
cleanup_interval (float): Fixed interval in seconds between cleanup
|
|
52
|
+
checks. (default: :obj:`60.0`)
|
|
51
53
|
"""
|
|
52
54
|
|
|
53
55
|
def __init__(
|
|
@@ -56,12 +58,14 @@ class AgentPool:
|
|
|
56
58
|
initial_size: int = 1,
|
|
57
59
|
max_size: int = 10,
|
|
58
60
|
auto_scale: bool = True,
|
|
59
|
-
idle_timeout: float = 180.0,
|
|
61
|
+
idle_timeout: float = 180.0,
|
|
62
|
+
cleanup_interval: float = 60.0,
|
|
60
63
|
):
|
|
61
64
|
self.base_agent = base_agent
|
|
62
65
|
self.max_size = max_size
|
|
63
66
|
self.auto_scale = auto_scale
|
|
64
67
|
self.idle_timeout = idle_timeout
|
|
68
|
+
self.cleanup_interval = cleanup_interval
|
|
65
69
|
|
|
66
70
|
# Pool management
|
|
67
71
|
self._available_agents: deque = deque()
|
|
@@ -73,6 +77,7 @@ class AgentPool:
|
|
|
73
77
|
self._total_borrows = 0
|
|
74
78
|
self._total_clones_created = 0
|
|
75
79
|
self._pool_hits = 0
|
|
80
|
+
self._agents_cleaned = 0
|
|
76
81
|
|
|
77
82
|
# Initialize pool
|
|
78
83
|
self._initialize_pool(initial_size)
|
|
@@ -82,6 +87,7 @@ class AgentPool:
|
|
|
82
87
|
for _ in range(min(size, self.max_size)):
|
|
83
88
|
agent = self._create_fresh_agent()
|
|
84
89
|
self._available_agents.append(agent)
|
|
90
|
+
self._agent_last_used[id(agent)] = time.time()
|
|
85
91
|
|
|
86
92
|
def _create_fresh_agent(self) -> ChatAgent:
|
|
87
93
|
r"""Create a fresh agent instance."""
|
|
@@ -94,53 +100,46 @@ class AgentPool:
|
|
|
94
100
|
async with self._lock:
|
|
95
101
|
self._total_borrows += 1
|
|
96
102
|
|
|
97
|
-
# Try to get from available agents first
|
|
98
103
|
if self._available_agents:
|
|
99
104
|
agent = self._available_agents.popleft()
|
|
100
105
|
self._in_use_agents.add(id(agent))
|
|
101
106
|
self._pool_hits += 1
|
|
102
|
-
|
|
103
|
-
# Reset the agent state
|
|
104
|
-
agent.reset()
|
|
105
107
|
return agent
|
|
106
108
|
|
|
107
|
-
# Check if we can create new
|
|
108
|
-
|
|
109
|
-
self._in_use_agents
|
|
110
|
-
)
|
|
111
|
-
if total_agents < self.max_size:
|
|
109
|
+
# Check if we can create a new agent
|
|
110
|
+
if len(self._in_use_agents) < self.max_size or self.auto_scale:
|
|
112
111
|
agent = self._create_fresh_agent()
|
|
113
112
|
self._in_use_agents.add(id(agent))
|
|
114
113
|
return agent
|
|
115
114
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
agent = self._available_agents.popleft()
|
|
126
|
-
self._in_use_agents.add(id(agent))
|
|
127
|
-
agent.reset()
|
|
128
|
-
return agent
|
|
115
|
+
# Wait for available agent
|
|
116
|
+
while True:
|
|
117
|
+
async with self._lock:
|
|
118
|
+
if self._available_agents:
|
|
119
|
+
agent = self._available_agents.popleft()
|
|
120
|
+
self._in_use_agents.add(id(agent))
|
|
121
|
+
self._pool_hits += 1
|
|
122
|
+
return agent
|
|
123
|
+
await asyncio.sleep(0.05)
|
|
129
124
|
|
|
130
125
|
async def return_agent(self, agent: ChatAgent) -> None:
|
|
131
126
|
r"""Return an agent to the pool."""
|
|
127
|
+
agent_id = id(agent)
|
|
128
|
+
|
|
132
129
|
async with self._lock:
|
|
133
|
-
agent_id
|
|
130
|
+
if agent_id not in self._in_use_agents:
|
|
131
|
+
return
|
|
134
132
|
|
|
135
|
-
|
|
136
|
-
self._in_use_agents.remove(agent_id)
|
|
133
|
+
self._in_use_agents.discard(agent_id)
|
|
137
134
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
135
|
+
# Only add back to pool if under max size
|
|
136
|
+
if len(self._available_agents) < self.max_size:
|
|
137
|
+
agent.reset()
|
|
138
|
+
self._agent_last_used[agent_id] = time.time()
|
|
139
|
+
self._available_agents.append(agent)
|
|
140
|
+
else:
|
|
141
|
+
# Remove tracking for agents not returned to pool
|
|
142
|
+
self._agent_last_used.pop(agent_id, None)
|
|
144
143
|
|
|
145
144
|
async def cleanup_idle_agents(self) -> None:
|
|
146
145
|
r"""Remove idle agents from the pool to free memory."""
|
|
@@ -148,30 +147,35 @@ class AgentPool:
|
|
|
148
147
|
return
|
|
149
148
|
|
|
150
149
|
async with self._lock:
|
|
150
|
+
if not self._available_agents:
|
|
151
|
+
return
|
|
152
|
+
|
|
151
153
|
current_time = time.time()
|
|
152
154
|
agents_to_remove = []
|
|
153
155
|
|
|
154
156
|
for agent in list(self._available_agents):
|
|
155
157
|
agent_id = id(agent)
|
|
156
158
|
last_used = self._agent_last_used.get(agent_id, current_time)
|
|
157
|
-
|
|
158
159
|
if current_time - last_used > self.idle_timeout:
|
|
159
160
|
agents_to_remove.append(agent)
|
|
160
161
|
|
|
161
162
|
for agent in agents_to_remove:
|
|
162
163
|
self._available_agents.remove(agent)
|
|
163
|
-
|
|
164
|
-
self.
|
|
164
|
+
self._agent_last_used.pop(id(agent), None)
|
|
165
|
+
self._agents_cleaned += 1
|
|
165
166
|
|
|
166
167
|
def get_stats(self) -> dict:
|
|
167
168
|
r"""Get pool statistics."""
|
|
168
169
|
return {
|
|
169
170
|
"available_agents": len(self._available_agents),
|
|
170
171
|
"in_use_agents": len(self._in_use_agents),
|
|
172
|
+
"pool_size": len(self._available_agents)
|
|
173
|
+
+ len(self._in_use_agents),
|
|
171
174
|
"total_borrows": self._total_borrows,
|
|
172
175
|
"total_clones_created": self._total_clones_created,
|
|
173
176
|
"pool_hits": self._pool_hits,
|
|
174
177
|
"hit_rate": self._pool_hits / max(self._total_borrows, 1),
|
|
178
|
+
"agents_cleaned_up": self._agents_cleaned,
|
|
175
179
|
}
|
|
176
180
|
|
|
177
181
|
|
|
@@ -477,7 +481,9 @@ class SingleAgentWorker(Worker):
|
|
|
477
481
|
r"""Periodically clean up idle agents from the pool."""
|
|
478
482
|
while True:
|
|
479
483
|
try:
|
|
480
|
-
|
|
484
|
+
# Fixed interval cleanup
|
|
485
|
+
await asyncio.sleep(self.agent_pool.cleanup_interval)
|
|
486
|
+
|
|
481
487
|
if self.agent_pool:
|
|
482
488
|
await self.agent_pool.cleanup_idle_agents()
|
|
483
489
|
except asyncio.CancelledError:
|
|
@@ -16,6 +16,7 @@ from __future__ import annotations
|
|
|
16
16
|
import asyncio
|
|
17
17
|
import concurrent.futures
|
|
18
18
|
import json
|
|
19
|
+
import os
|
|
19
20
|
import time
|
|
20
21
|
import uuid
|
|
21
22
|
from collections import deque
|
|
@@ -79,7 +80,15 @@ from camel.utils import dependencies_required
|
|
|
79
80
|
|
|
80
81
|
from .workforce_logger import WorkforceLogger
|
|
81
82
|
|
|
82
|
-
|
|
83
|
+
if os.environ.get("TRACEROOT_ENABLED", "False").lower() == "true":
|
|
84
|
+
try:
|
|
85
|
+
import traceroot # type: ignore[import]
|
|
86
|
+
|
|
87
|
+
logger = traceroot.get_logger('camel')
|
|
88
|
+
except ImportError:
|
|
89
|
+
logger = get_logger(__name__)
|
|
90
|
+
else:
|
|
91
|
+
logger = get_logger(__name__)
|
|
83
92
|
|
|
84
93
|
# Constants for configuration values
|
|
85
94
|
MAX_TASK_RETRIES = 3
|
|
@@ -46,7 +46,7 @@ class GoogleCloudStorage(BaseObjectStorage):
|
|
|
46
46
|
create_if_not_exists: bool = True,
|
|
47
47
|
anonymous: bool = False,
|
|
48
48
|
) -> None:
|
|
49
|
-
from google.cloud import storage
|
|
49
|
+
from google.cloud import storage # type: ignore[attr-defined]
|
|
50
50
|
|
|
51
51
|
self.create_if_not_exists = create_if_not_exists
|
|
52
52
|
|