camel-ai 0.2.6__tar.gz → 0.2.8__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.6 → camel_ai-0.2.8}/PKG-INFO +129 -79
- {camel_ai-0.2.6 → camel_ai-0.2.8}/README.md +123 -78
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/__init__.py +1 -1
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/agents/chat_agent.py +110 -25
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/configs/__init__.py +6 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/configs/base_config.py +21 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/configs/gemini_config.py +17 -9
- camel_ai-0.2.8/camel/configs/qwen_config.py +91 -0
- camel_ai-0.2.8/camel/configs/yi_config.py +58 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/generators.py +93 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/interpreters/docker_interpreter.py +5 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/interpreters/ipython_interpreter.py +2 -1
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/loaders/__init__.py +2 -0
- camel_ai-0.2.8/camel/loaders/apify_reader.py +223 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/memories/agent_memories.py +24 -1
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/messages/base.py +38 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/models/__init__.py +4 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/models/model_factory.py +6 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/models/openai_model.py +1 -1
- camel_ai-0.2.8/camel/models/qwen_model.py +139 -0
- camel_ai-0.2.8/camel/models/yi_model.py +138 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/prompts/image_craft.py +8 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/prompts/video_description_prompt.py +8 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/retrievers/vector_retriever.py +5 -1
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/societies/role_playing.py +29 -18
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/societies/workforce/base.py +7 -1
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/societies/workforce/task_channel.py +10 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/societies/workforce/utils.py +6 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/societies/workforce/worker.py +2 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/storages/vectordb_storages/qdrant.py +147 -24
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/tasks/task.py +15 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/terminators/base.py +4 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/terminators/response_terminator.py +1 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/terminators/token_limit_terminator.py +1 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/__init__.py +4 -1
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/base.py +9 -0
- camel_ai-0.2.8/camel/toolkits/data_commons_toolkit.py +360 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/function_tool.py +174 -7
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/github_toolkit.py +175 -176
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/google_scholar_toolkit.py +36 -7
- camel_ai-0.2.8/camel/toolkits/notion_toolkit.py +279 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/search_toolkit.py +164 -36
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/types/enums.py +88 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/types/unified_model_type.py +10 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/utils/commons.py +2 -1
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/utils/constants.py +2 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/pyproject.toml +21 -1
- {camel_ai-0.2.6 → camel_ai-0.2.8}/LICENSE +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/agents/__init__.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/agents/base.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/agents/critic_agent.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/agents/deductive_reasoner_agent.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/agents/embodied_agent.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/agents/knowledge_graph_agent.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/agents/role_assignment_agent.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/agents/search_agent.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/agents/task_agent.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/agents/tool_agents/__init__.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/agents/tool_agents/base.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/agents/tool_agents/hugging_face_tool_agent.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/bots/__init__.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/bots/discord_app.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/bots/slack/__init__.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/bots/slack/models.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/bots/slack/slack_app.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/bots/telegram_bot.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/configs/anthropic_config.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/configs/groq_config.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/configs/litellm_config.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/configs/mistral_config.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/configs/ollama_config.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/configs/openai_config.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/configs/reka_config.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/configs/samba_config.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/configs/togetherai_config.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/configs/vllm_config.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/configs/zhipuai_config.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/embeddings/__init__.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/embeddings/base.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/embeddings/mistral_embedding.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/embeddings/openai_embedding.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/embeddings/sentence_transformers_embeddings.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/embeddings/vlm_embedding.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/human.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/interpreters/__init__.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/interpreters/base.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/interpreters/internal_python_interpreter.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/interpreters/interpreter_error.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/interpreters/subprocess_interpreter.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/loaders/base_io.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/loaders/chunkr_reader.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/loaders/firecrawl_reader.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/loaders/jina_url_reader.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/loaders/unstructured_io.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/memories/__init__.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/memories/base.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/memories/blocks/__init__.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/memories/blocks/chat_history_block.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/memories/blocks/vectordb_block.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/memories/context_creators/__init__.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/memories/context_creators/score_based.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/memories/records.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/messages/__init__.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/messages/func_message.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/models/anthropic_model.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/models/azure_openai_model.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/models/base_model.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/models/gemini_model.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/models/groq_model.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/models/litellm_model.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/models/mistral_model.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/models/nemotron_model.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/models/ollama_model.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/models/openai_audio_models.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/models/openai_compatible_model.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/models/reka_model.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/models/samba_model.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/models/stub_model.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/models/togetherai_model.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/models/vllm_model.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/models/zhipuai_model.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/prompts/__init__.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/prompts/ai_society.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/prompts/base.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/prompts/code.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/prompts/evaluation.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/prompts/generate_text_embedding_data.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/prompts/misalignment.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/prompts/multi_condition_image_craft.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/prompts/object_recognition.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/prompts/prompt_templates.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/prompts/role_description_prompt_template.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/prompts/solution_extraction.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/prompts/task_prompt_template.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/prompts/translation.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/responses/__init__.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/responses/agent_responses.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/retrievers/__init__.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/retrievers/auto_retriever.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/retrievers/base.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/retrievers/bm25_retriever.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/retrievers/cohere_rerank_retriever.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/societies/__init__.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/societies/babyagi_playing.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/societies/workforce/__init__.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/societies/workforce/prompts.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/societies/workforce/role_playing_worker.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/societies/workforce/single_agent_worker.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/societies/workforce/workforce.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/storages/__init__.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/storages/graph_storages/__init__.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/storages/graph_storages/base.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/storages/graph_storages/graph_element.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/storages/graph_storages/nebula_graph.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/storages/graph_storages/neo4j_graph.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/storages/key_value_storages/__init__.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/storages/key_value_storages/base.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/storages/key_value_storages/in_memory.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/storages/key_value_storages/json.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/storages/key_value_storages/redis.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/storages/object_storages/__init__.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/storages/object_storages/amazon_s3.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/storages/object_storages/azure_blob.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/storages/object_storages/base.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/storages/object_storages/google_cloud.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/storages/vectordb_storages/__init__.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/storages/vectordb_storages/base.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/storages/vectordb_storages/milvus.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/tasks/__init__.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/tasks/task_prompt.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/terminators/__init__.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/arxiv_toolkit.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/ask_news_toolkit.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/code_execution.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/dalle_toolkit.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/google_maps_toolkit.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/linkedin_toolkit.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/math_toolkit.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/open_api_specs/biztoc/__init__.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/open_api_specs/biztoc/ai-plugin.json +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/open_api_specs/biztoc/openapi.yaml +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/open_api_specs/coursera/__init__.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/open_api_specs/coursera/openapi.yaml +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/open_api_specs/create_qr_code/__init__.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/open_api_specs/create_qr_code/openapi.yaml +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/open_api_specs/klarna/__init__.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/open_api_specs/klarna/openapi.yaml +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/open_api_specs/nasa_apod/__init__.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/open_api_specs/nasa_apod/openapi.yaml +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/open_api_specs/outschool/__init__.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/open_api_specs/outschool/ai-plugin.json +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/open_api_specs/outschool/openapi.yaml +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/open_api_specs/outschool/paths/__init__.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/open_api_specs/outschool/paths/get_classes.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/open_api_specs/outschool/paths/search_teachers.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/open_api_specs/security_config.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/open_api_specs/speak/__init__.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/open_api_specs/speak/openapi.yaml +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/open_api_specs/web_scraper/__init__.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/open_api_specs/web_scraper/ai-plugin.json +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/open_api_specs/web_scraper/openapi.yaml +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/open_api_specs/web_scraper/paths/__init__.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/open_api_specs/web_scraper/paths/scraper.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/open_api_toolkit.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/reddit_toolkit.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/retrieval_toolkit.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/slack_toolkit.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/twitter_toolkit.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/weather_toolkit.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/toolkits/whatsapp_toolkit.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/types/__init__.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/types/openai_types.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/utils/__init__.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/utils/async_func.py +0 -0
- {camel_ai-0.2.6 → camel_ai-0.2.8}/camel/utils/token_counting.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: camel-ai
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.8
|
|
4
4
|
Summary: Communicative Agents for AI Society Study
|
|
5
5
|
Home-page: https://www.camel-ai.org/
|
|
6
6
|
License: Apache-2.0
|
|
@@ -29,6 +29,7 @@ Requires-Dist: PyMuPDF (>=1.22.5,<2.0.0) ; extra == "tools" or extra == "all"
|
|
|
29
29
|
Requires-Dist: accelerate (>=0,<1) ; extra == "huggingface-agent" or extra == "all"
|
|
30
30
|
Requires-Dist: agentops (>=0.3.6,<0.4.0) ; extra == "tools" or extra == "all"
|
|
31
31
|
Requires-Dist: anthropic (>=0.29.0,<0.30.0) ; extra == "model-platforms" or extra == "all"
|
|
32
|
+
Requires-Dist: apify_client (>=1.8.1,<2.0.0) ; extra == "tools" or extra == "all"
|
|
32
33
|
Requires-Dist: arxiv (>=2.1.3,<3.0.0) ; extra == "tools" or extra == "all"
|
|
33
34
|
Requires-Dist: arxiv2text (>=0.1.14,<0.2.0) ; extra == "tools" or extra == "all"
|
|
34
35
|
Requires-Dist: asknews (>=0.7.43,<0.8.0) ; extra == "tools" or extra == "all"
|
|
@@ -38,6 +39,8 @@ Requires-Dist: botocore (>=1.35.3,<2.0.0) ; extra == "object-storages" or extra
|
|
|
38
39
|
Requires-Dist: cohere (>=4.56,<5.0) ; extra == "rag" or extra == "retrievers" or extra == "all"
|
|
39
40
|
Requires-Dist: colorama (>=0,<1)
|
|
40
41
|
Requires-Dist: curl_cffi (==0.6.2)
|
|
42
|
+
Requires-Dist: datacommons (>=1.4.3,<2.0.0) ; extra == "tools" or extra == "all"
|
|
43
|
+
Requires-Dist: datacommons_pandas (>=0.0.3,<0.0.4) ; extra == "tools" or extra == "all"
|
|
41
44
|
Requires-Dist: datasets (>=2,<3) ; extra == "huggingface-agent" or extra == "all"
|
|
42
45
|
Requires-Dist: diffusers (>=0,<1) ; extra == "huggingface-agent" or extra == "all"
|
|
43
46
|
Requires-Dist: discord.py (>=2.3.2,<3.0.0) ; extra == "tools" or extra == "all"
|
|
@@ -61,6 +64,7 @@ Requires-Dist: nebula3-python (==3.8.2) ; extra == "rag" or extra == "graph-stor
|
|
|
61
64
|
Requires-Dist: neo4j (>=5.18.0,<6.0.0) ; extra == "rag" or extra == "graph-storages" or extra == "all"
|
|
62
65
|
Requires-Dist: newspaper3k (>=0.2.8,<0.3.0) ; extra == "tools" or extra == "all"
|
|
63
66
|
Requires-Dist: nltk (==3.8.1) ; extra == "tools" or extra == "all"
|
|
67
|
+
Requires-Dist: notion-client (>=2.2.1,<3.0.0) ; extra == "tools" or extra == "all"
|
|
64
68
|
Requires-Dist: numpy (>=1,<2)
|
|
65
69
|
Requires-Dist: openai (>=1.45.0,<2.0.0)
|
|
66
70
|
Requires-Dist: openapi-spec-validator (>=0.7.1,<0.8.0) ; extra == "tools" or extra == "all"
|
|
@@ -91,6 +95,7 @@ Requires-Dist: sentencepiece (>=0,<1) ; extra == "huggingface-agent" or extra ==
|
|
|
91
95
|
Requires-Dist: slack-bolt (>=1.20.1,<2.0.0) ; extra == "tools" or extra == "all"
|
|
92
96
|
Requires-Dist: slack-sdk (>=3.27.2,<4.0.0) ; extra == "tools" or extra == "all"
|
|
93
97
|
Requires-Dist: soundfile (>=0,<1) ; extra == "huggingface-agent" or extra == "all"
|
|
98
|
+
Requires-Dist: tavily-python (>=0.5.0,<0.6.0) ; extra == "search-tools" or extra == "all"
|
|
94
99
|
Requires-Dist: textblob (>=0.18.0.post0,<0.19.0) ; extra == "tools" or extra == "all"
|
|
95
100
|
Requires-Dist: tiktoken (>=0.7.0,<0.8.0)
|
|
96
101
|
Requires-Dist: torch (==2.1.0) ; (platform_system == "Darwin" and platform_machine != "arm64") and (extra == "huggingface-agent" or extra == "all")
|
|
@@ -141,7 +146,37 @@ ______________________________________________________________________
|
|
|
141
146
|
|
|
142
147
|
Join us ([*Discord*](https://discord.camel-ai.org/), [*WeChat*](https://ghli.org/camel/wechat.png) or [*Slack*](https://join.slack.com/t/camel-ai/shared_invite/zt-2g7xc41gy-_7rcrNNAArIP6sLQqldkqQ)) in pushing the boundaries of finding the scaling laws of agents.
|
|
143
148
|
|
|
144
|
-
##
|
|
149
|
+
## What Can You Build With CAMEL?
|
|
150
|
+
|
|
151
|
+
### 🤖 Customize Agents
|
|
152
|
+
- Customizable agents are the fundamental entities of the CAMEL architecture. CAMEL empowers you to customize agents using our modular components for specific tasks.
|
|
153
|
+
|
|
154
|
+
### ⚙️ Build Multi-Agent Systems
|
|
155
|
+
- We propose a multi-agent framework to address agents' autonomous cooperation challenges, guiding agents toward task completion while maintaining human intentions.
|
|
156
|
+
|
|
157
|
+
### 💻 Practical Applications
|
|
158
|
+
- The CAMEL framework serves as a generic infrastructure for a wide range of multi-agent applications, including task automation, data generation, and world simulations.
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
## Why Should You Use CAMEL?
|
|
162
|
+
|
|
163
|
+
1. Comprehensive Customization and Collaboration:
|
|
164
|
+
|
|
165
|
+
- Integrates over 20 advanced model platforms (e.g., commercial models like OpenAI, open-source models such as Llama3, and self-deployment frameworks like Ollama.).
|
|
166
|
+
|
|
167
|
+
- Supports extensive external tools (e.g., Search, Twitter, Github, Google Maps, Reddit, Slack utilities).
|
|
168
|
+
- Includes memory and prompt components for deep customization.
|
|
169
|
+
- Facilitates complex multi-agent systems with advanced collaboration features.
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
2. User-Friendly with Transparent Internal Structure:
|
|
173
|
+
- Designed for transparency and consistency in internal structure.
|
|
174
|
+
|
|
175
|
+
- Offers comprehensive [tutorials and detailed docstrings](https://docs.camel-ai.org/) for all functions.
|
|
176
|
+
- Ensures an approachable learning curve for newcomers.
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
## Try It Yourself
|
|
145
180
|
We provide a [](https://colab.research.google.com/drive/1AzP33O8rnMW__7ocWJhVBXjKziJXPtim?usp=sharing) demo showcasing a conversation between two ChatGPT agents playing roles as a python programmer and a stock trader collaborating on developing a trading bot for stock market.
|
|
146
181
|
|
|
147
182
|
<p align="center">
|
|
@@ -210,8 +245,6 @@ exit
|
|
|
210
245
|
> ```
|
|
211
246
|
|
|
212
247
|
|
|
213
|
-
|
|
214
|
-
|
|
215
248
|
Install `CAMEL` from source with conda and pip:
|
|
216
249
|
```sh
|
|
217
250
|
# Create a conda virtual environment
|
|
@@ -221,7 +254,7 @@ conda create --name camel python=3.10
|
|
|
221
254
|
conda activate camel
|
|
222
255
|
|
|
223
256
|
# Clone github repo
|
|
224
|
-
git clone -b v0.2.
|
|
257
|
+
git clone -b v0.2.8 https://github.com/camel-ai/camel.git
|
|
225
258
|
|
|
226
259
|
# Change directory into project directory
|
|
227
260
|
cd camel
|
|
@@ -239,13 +272,58 @@ Detailed guidance can be find [here](https://github.com/camel-ai/camel/blob/mast
|
|
|
239
272
|
|
|
240
273
|
## Documentation
|
|
241
274
|
|
|
242
|
-
[
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
275
|
+
The [complete documentation](https://camel-ai.github.io/camel/) pages for the CAMEL package. Also, detailed tutorials for each part are provided below:
|
|
276
|
+
|
|
277
|
+
### Agents
|
|
278
|
+
Explore different types of agents, their roles, and their applications.
|
|
279
|
+
|
|
280
|
+
- **[Creating Your First Agent](https://docs.camel-ai.org/cookbooks/create_your_first_agent.html)**
|
|
281
|
+
- **[Creating Your First Agent Society](https://docs.camel-ai.org/cookbooks/create_your_first_agents_society.html)**
|
|
282
|
+
- **[Embodied Agents](https://docs.camel-ai.org/cookbooks/embodied_agents.html)**
|
|
283
|
+
- **[Critic Agents](https://docs.camel-ai.org/cookbooks/critic_agents_and_tree_search.html)**
|
|
284
|
+
|
|
285
|
+
---
|
|
286
|
+
|
|
287
|
+
### Key Modules
|
|
288
|
+
Core components and utilities to build, operate, and enhance CAMEL-AI agents and societies.
|
|
289
|
+
|
|
290
|
+
| Module | Description |
|
|
291
|
+
|:---|:---|
|
|
292
|
+
| **[Models](https://docs.camel-ai.org/key_modules/models.html)** | Model architectures and customization options for agent intelligence. |
|
|
293
|
+
| **[Messages](https://docs.camel-ai.org/key_modules/messages.html)** | Messaging protocols for agent communication. |
|
|
294
|
+
| **[Memory](https://docs.camel-ai.org/key_modules/memory.html)** | Memory storage and retrieval mechanisms. |
|
|
295
|
+
| **[Tools](https://docs.camel-ai.org/key_modules/tools.html)** | Tools integration for specialized agent tasks. |
|
|
296
|
+
| **[Prompts](https://docs.camel-ai.org/key_modules/prompts.html)** | Prompt engineering and customization. |
|
|
297
|
+
| **[Tasks](https://docs.camel-ai.org/key_modules/tasks.html)** | Task creation and management for agent workflows. |
|
|
298
|
+
| **[Loaders](https://docs.camel-ai.org/key_modules/loaders.html)** | Data loading tools for agent operation. |
|
|
299
|
+
| **[Storages](https://docs.camel-ai.org/key_modules/storages.html)** | Storage solutions for agent. |
|
|
300
|
+
| **[Society](https://docs.camel-ai.org/key_modules/society.html)** | Components for building agent societies and inter-agent collaboration. |
|
|
301
|
+
| **[Embeddings](https://docs.camel-ai.org/key_modules/embeddings.html)** | Embedding models for RAG. |
|
|
302
|
+
| **[Retrievers](https://docs.camel-ai.org/key_modules/retrievers.html)** | Retrieval methods for knowledge access. |
|
|
303
|
+
---
|
|
304
|
+
|
|
305
|
+
### Cookbooks
|
|
306
|
+
Practical guides and tutorials for implementing specific functionalities in CAMEL-AI agents and societies.
|
|
307
|
+
|
|
308
|
+
| Cookbook | Description |
|
|
309
|
+
|:---|:---|
|
|
310
|
+
| **[Creating Your First Agent](https://docs.camel-ai.org/cookbooks/create_your_first_agent.html)** | A step-by-step guide to building your first agent. |
|
|
311
|
+
| **[Creating Your First Agent Society](https://docs.camel-ai.org/cookbooks/create_your_first_agents_society.html)** | Learn to build a collaborative society of agents. |
|
|
312
|
+
| **[Society Cookbook](https://docs.camel-ai.org/cookbooks/agents_society.html)** | Advanced configurations for agent societies. |
|
|
313
|
+
| **[Model Speed Comparison Cookbook](https://docs.camel-ai.org/cookbooks/model_speed_comparison.html)** | Benchmarking models for performance. |
|
|
314
|
+
| **[Message Cookbook](https://docs.camel-ai.org/cookbooks/agents_message.html)** | Best practices for message handling in agents. |
|
|
315
|
+
| **[Tools Cookbook](https://docs.camel-ai.org/cookbooks/agents_with_tools.html)** | Integrating tools for enhanced functionality. |
|
|
316
|
+
| **[Memory Cookbook](https://docs.camel-ai.org/cookbooks/agents_with_memory.html)** | Implementing memory systems in agents. |
|
|
317
|
+
| **[RAG Cookbook](https://docs.camel-ai.org/cookbooks/agents_with_rag.html)** | Recipes for Retrieval-Augmented Generation. |
|
|
318
|
+
| **[Prompting Cookbook](https://docs.camel-ai.org/cookbooks/agents_prompting.html)** | Techniques for effective prompt creation. |
|
|
319
|
+
| **[Task Generation Cookbook](https://docs.camel-ai.org/cookbooks/task_generation.html)** | Automating task generation for agents. |
|
|
320
|
+
| **[Graph RAG Cookbook](https://docs.camel-ai.org/cookbooks/knowledge_graph.html)** | Leveraging knowledge graphs with RAG. |
|
|
321
|
+
| **[Role-Playing Scraper for Report & Knowledge Graph Generation](https://docs.camel-ai.org/cookbooks/roleplaying_scraper.html)** | Create role-playing agents for data scraping and reporting. |
|
|
322
|
+
| **[Video Analysis](https://docs.camel-ai.org/cookbooks/video_analysis.html)** | Techniques for agents in video data analysis. |
|
|
323
|
+
| **[Track CAMEL Agents with AgentOps](https://docs.camel-ai.org/cookbooks/agents_tracking.html)** | Tools for tracking and managing agents in operations. |
|
|
324
|
+
| **[Create A Hackathon Judge Committee with Workforce](https://docs.camel-ai.org/cookbooks/workforce_judge_committee.html)** | Building a team of agents for collaborative judging. |
|
|
325
|
+
|
|
326
|
+
## Examples
|
|
249
327
|
|
|
250
328
|
First, you need to add your OpenAI API key to system environment variables. The method to do this depends on your operating system and the shell you're using.
|
|
251
329
|
|
|
@@ -275,83 +353,41 @@ $env:OPENAI_API_BASE_URL="<inert your OpenAI API BASE URL>" #(Should you utiliz
|
|
|
275
353
|
|
|
276
354
|
Replace `<insert your OpenAI API key>` with your actual OpenAI API key in each case. Make sure there are no spaces around the `=` sign.
|
|
277
355
|
|
|
278
|
-
|
|
356
|
+
|
|
357
|
+
Please note that the environment variable is session-specific. If you open a new terminal window or tab, you will need to set the API key again in that new session.
|
|
358
|
+
|
|
359
|
+
After setting the OpenAI API key, you can run the `role_playing.py` script. Find tasks for various assistant-user roles [here](https://drive.google.com/file/d/194PPaSTBR07m-PzjS-Ty6KlPLdFIPQDd/view?usp=share_link).
|
|
279
360
|
|
|
280
361
|
```bash
|
|
281
362
|
# You can change the role pair and initial prompt in role_playing.py
|
|
282
363
|
python examples/ai_society/role_playing.py
|
|
283
364
|
```
|
|
284
365
|
|
|
285
|
-
|
|
366
|
+
Also feel free to run any scripts below that interest you:
|
|
286
367
|
|
|
368
|
+
```bash
|
|
369
|
+
# You can change the role pair and initial prompt in these python files
|
|
287
370
|
|
|
288
|
-
|
|
371
|
+
# Examples of two agents role-playing
|
|
372
|
+
python examples/ai_society/role_playing.py
|
|
289
373
|
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
```bash
|
|
293
|
-
ollama pull llama3
|
|
294
|
-
```
|
|
295
|
-
- Run the script. Enjoy your Llama3 model, enhanced by CAMEL's excellent agents.
|
|
296
|
-
```python
|
|
297
|
-
from camel.agents import ChatAgent
|
|
298
|
-
from camel.messages import BaseMessage
|
|
299
|
-
from camel.models import ModelFactory
|
|
300
|
-
from camel.types import ModelPlatformType
|
|
301
|
-
|
|
302
|
-
ollama_model = ModelFactory.create(
|
|
303
|
-
model_platform=ModelPlatformType.OLLAMA,
|
|
304
|
-
model_type="llama3",
|
|
305
|
-
model_config_dict={"temperature": 0.4},
|
|
306
|
-
)
|
|
307
|
-
|
|
308
|
-
assistant_sys_msg = BaseMessage.make_assistant_message(
|
|
309
|
-
role_name="Assistant",
|
|
310
|
-
content="You are a helpful assistant.",
|
|
311
|
-
)
|
|
312
|
-
agent = ChatAgent(assistant_sys_msg, model=ollama_model, token_limit=4096)
|
|
313
|
-
|
|
314
|
-
user_msg = BaseMessage.make_user_message(
|
|
315
|
-
role_name="User", content="Say hi to CAMEL"
|
|
316
|
-
)
|
|
317
|
-
assistant_response = agent.step(user_msg)
|
|
318
|
-
print(assistant_response.msg.content)
|
|
319
|
-
```
|
|
374
|
+
# The agent answers questions by utilizing code execution tools.
|
|
375
|
+
python examples/toolkits/code_execution_toolkit.py
|
|
320
376
|
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
model_platform=ModelPlatformType.VLLM,
|
|
336
|
-
model_type="microsoft/Phi-3-mini-4k-instruct",
|
|
337
|
-
url="http://localhost:8000/v1",
|
|
338
|
-
model_config_dict={"temperature": 0.0},
|
|
339
|
-
api_key="vllm",
|
|
340
|
-
)
|
|
341
|
-
|
|
342
|
-
assistant_sys_msg = BaseMessage.make_assistant_message(
|
|
343
|
-
role_name="Assistant",
|
|
344
|
-
content="You are a helpful assistant.",
|
|
345
|
-
)
|
|
346
|
-
agent = ChatAgent(assistant_sys_msg, model=vllm_model, token_limit=4096)
|
|
347
|
-
|
|
348
|
-
user_msg = BaseMessage.make_user_message(
|
|
349
|
-
role_name="User",
|
|
350
|
-
content="Say hi to CAMEL AI",
|
|
351
|
-
)
|
|
352
|
-
assistant_response = agent.step(user_msg)
|
|
353
|
-
print(assistant_response.msg.content)
|
|
354
|
-
```
|
|
377
|
+
# Generating a knowledge graph with an agent
|
|
378
|
+
python examples/knowledge_graph/knowledge_graph_agent_example.py
|
|
379
|
+
|
|
380
|
+
# Multiple agents collaborating to decompose and solve tasks
|
|
381
|
+
python examples/workforce/multiple_single_agents.py
|
|
382
|
+
|
|
383
|
+
# Use agent to generate creative image
|
|
384
|
+
python examples/vision/image_crafting.py
|
|
385
|
+
```
|
|
386
|
+
For additional feature examples, see the [`examples`](https://github.com/camel-ai/camel/tree/master/examples) directory.
|
|
387
|
+
|
|
388
|
+
## Utilize Various LLMs as Backends
|
|
389
|
+
|
|
390
|
+
For more details, please see our [`Models Documentation`](https://docs.camel-ai.org/key_modules/models.html#).
|
|
355
391
|
|
|
356
392
|
## Data (Hosted on Hugging Face)
|
|
357
393
|
| Dataset | Chat format | Instruction format | Chat format (translated) |
|
|
@@ -375,7 +411,21 @@ Please note that the environment variable is session-specific. If you open a new
|
|
|
375
411
|
We implemented amazing research ideas from other works for you to build, compare and customize your agents. If you use any of these modules, please kindly cite the original works:
|
|
376
412
|
- `TaskCreationAgent`, `TaskPrioritizationAgent` and `BabyAGI` from *Nakajima et al.*: [Task-Driven Autonomous Agent](https://yoheinakajima.com/task-driven-autonomous-agent-utilizing-gpt-4-pinecone-and-langchain-for-diverse-applications/). [[Example](https://github.com/camel-ai/camel/blob/master/examples/ai_society/babyagi_playing.py)]
|
|
377
413
|
|
|
414
|
+
## Other Research Works Based on Camel
|
|
415
|
+
- [Agent Trust](http://agent-trust.camel-ai.org/): Can Large Language Model Agents Simulate Human Trust Behavior?
|
|
416
|
+
|
|
417
|
+
- [CRAB](https://crab.camel-ai.org/): Cross-environment Agent Benchmark for Multimodal Language Model Agents.
|
|
418
|
+
|
|
419
|
+
- OASIS: Open Agents Social Interaction Simulations on a Large Scale.
|
|
420
|
+
|
|
421
|
+
We warmly invite you to use CAMEL for your impactful research.
|
|
422
|
+
|
|
378
423
|
## News
|
|
424
|
+
📢 Added the Workforce module to the 🐫 CAMEL framework! For more details, see the [post](https://x.com/CamelAIOrg/status/1851682063830720912). (Oct 31, 2024)
|
|
425
|
+
- Added subprocess support for Ollama and vLLM models. (Oct, 29, 2024)
|
|
426
|
+
- Integrated Firecrawl's Map into the 🐫 CAMEL framework. (Oct, 22, 2024)
|
|
427
|
+
- Integrated Nvidia's Llama-3.1-Nemotron-70b-Instruct! (Oct, 17, 2024)
|
|
428
|
+
- ...
|
|
379
429
|
- Released AI Society and Code dataset (April 2, 2023)
|
|
380
430
|
- Initial release of `CAMEL` python library (March 21, 2023)
|
|
381
431
|
|
|
@@ -36,7 +36,37 @@ ______________________________________________________________________
|
|
|
36
36
|
|
|
37
37
|
Join us ([*Discord*](https://discord.camel-ai.org/), [*WeChat*](https://ghli.org/camel/wechat.png) or [*Slack*](https://join.slack.com/t/camel-ai/shared_invite/zt-2g7xc41gy-_7rcrNNAArIP6sLQqldkqQ)) in pushing the boundaries of finding the scaling laws of agents.
|
|
38
38
|
|
|
39
|
-
##
|
|
39
|
+
## What Can You Build With CAMEL?
|
|
40
|
+
|
|
41
|
+
### 🤖 Customize Agents
|
|
42
|
+
- Customizable agents are the fundamental entities of the CAMEL architecture. CAMEL empowers you to customize agents using our modular components for specific tasks.
|
|
43
|
+
|
|
44
|
+
### ⚙️ Build Multi-Agent Systems
|
|
45
|
+
- We propose a multi-agent framework to address agents' autonomous cooperation challenges, guiding agents toward task completion while maintaining human intentions.
|
|
46
|
+
|
|
47
|
+
### 💻 Practical Applications
|
|
48
|
+
- The CAMEL framework serves as a generic infrastructure for a wide range of multi-agent applications, including task automation, data generation, and world simulations.
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
## Why Should You Use CAMEL?
|
|
52
|
+
|
|
53
|
+
1. Comprehensive Customization and Collaboration:
|
|
54
|
+
|
|
55
|
+
- Integrates over 20 advanced model platforms (e.g., commercial models like OpenAI, open-source models such as Llama3, and self-deployment frameworks like Ollama.).
|
|
56
|
+
|
|
57
|
+
- Supports extensive external tools (e.g., Search, Twitter, Github, Google Maps, Reddit, Slack utilities).
|
|
58
|
+
- Includes memory and prompt components for deep customization.
|
|
59
|
+
- Facilitates complex multi-agent systems with advanced collaboration features.
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
2. User-Friendly with Transparent Internal Structure:
|
|
63
|
+
- Designed for transparency and consistency in internal structure.
|
|
64
|
+
|
|
65
|
+
- Offers comprehensive [tutorials and detailed docstrings](https://docs.camel-ai.org/) for all functions.
|
|
66
|
+
- Ensures an approachable learning curve for newcomers.
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
## Try It Yourself
|
|
40
70
|
We provide a [](https://colab.research.google.com/drive/1AzP33O8rnMW__7ocWJhVBXjKziJXPtim?usp=sharing) demo showcasing a conversation between two ChatGPT agents playing roles as a python programmer and a stock trader collaborating on developing a trading bot for stock market.
|
|
41
71
|
|
|
42
72
|
<p align="center">
|
|
@@ -105,8 +135,6 @@ exit
|
|
|
105
135
|
> ```
|
|
106
136
|
|
|
107
137
|
|
|
108
|
-
|
|
109
|
-
|
|
110
138
|
Install `CAMEL` from source with conda and pip:
|
|
111
139
|
```sh
|
|
112
140
|
# Create a conda virtual environment
|
|
@@ -116,7 +144,7 @@ conda create --name camel python=3.10
|
|
|
116
144
|
conda activate camel
|
|
117
145
|
|
|
118
146
|
# Clone github repo
|
|
119
|
-
git clone -b v0.2.
|
|
147
|
+
git clone -b v0.2.8 https://github.com/camel-ai/camel.git
|
|
120
148
|
|
|
121
149
|
# Change directory into project directory
|
|
122
150
|
cd camel
|
|
@@ -134,13 +162,58 @@ Detailed guidance can be find [here](https://github.com/camel-ai/camel/blob/mast
|
|
|
134
162
|
|
|
135
163
|
## Documentation
|
|
136
164
|
|
|
137
|
-
[
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
165
|
+
The [complete documentation](https://camel-ai.github.io/camel/) pages for the CAMEL package. Also, detailed tutorials for each part are provided below:
|
|
166
|
+
|
|
167
|
+
### Agents
|
|
168
|
+
Explore different types of agents, their roles, and their applications.
|
|
169
|
+
|
|
170
|
+
- **[Creating Your First Agent](https://docs.camel-ai.org/cookbooks/create_your_first_agent.html)**
|
|
171
|
+
- **[Creating Your First Agent Society](https://docs.camel-ai.org/cookbooks/create_your_first_agents_society.html)**
|
|
172
|
+
- **[Embodied Agents](https://docs.camel-ai.org/cookbooks/embodied_agents.html)**
|
|
173
|
+
- **[Critic Agents](https://docs.camel-ai.org/cookbooks/critic_agents_and_tree_search.html)**
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
### Key Modules
|
|
178
|
+
Core components and utilities to build, operate, and enhance CAMEL-AI agents and societies.
|
|
179
|
+
|
|
180
|
+
| Module | Description |
|
|
181
|
+
|:---|:---|
|
|
182
|
+
| **[Models](https://docs.camel-ai.org/key_modules/models.html)** | Model architectures and customization options for agent intelligence. |
|
|
183
|
+
| **[Messages](https://docs.camel-ai.org/key_modules/messages.html)** | Messaging protocols for agent communication. |
|
|
184
|
+
| **[Memory](https://docs.camel-ai.org/key_modules/memory.html)** | Memory storage and retrieval mechanisms. |
|
|
185
|
+
| **[Tools](https://docs.camel-ai.org/key_modules/tools.html)** | Tools integration for specialized agent tasks. |
|
|
186
|
+
| **[Prompts](https://docs.camel-ai.org/key_modules/prompts.html)** | Prompt engineering and customization. |
|
|
187
|
+
| **[Tasks](https://docs.camel-ai.org/key_modules/tasks.html)** | Task creation and management for agent workflows. |
|
|
188
|
+
| **[Loaders](https://docs.camel-ai.org/key_modules/loaders.html)** | Data loading tools for agent operation. |
|
|
189
|
+
| **[Storages](https://docs.camel-ai.org/key_modules/storages.html)** | Storage solutions for agent. |
|
|
190
|
+
| **[Society](https://docs.camel-ai.org/key_modules/society.html)** | Components for building agent societies and inter-agent collaboration. |
|
|
191
|
+
| **[Embeddings](https://docs.camel-ai.org/key_modules/embeddings.html)** | Embedding models for RAG. |
|
|
192
|
+
| **[Retrievers](https://docs.camel-ai.org/key_modules/retrievers.html)** | Retrieval methods for knowledge access. |
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
### Cookbooks
|
|
196
|
+
Practical guides and tutorials for implementing specific functionalities in CAMEL-AI agents and societies.
|
|
197
|
+
|
|
198
|
+
| Cookbook | Description |
|
|
199
|
+
|:---|:---|
|
|
200
|
+
| **[Creating Your First Agent](https://docs.camel-ai.org/cookbooks/create_your_first_agent.html)** | A step-by-step guide to building your first agent. |
|
|
201
|
+
| **[Creating Your First Agent Society](https://docs.camel-ai.org/cookbooks/create_your_first_agents_society.html)** | Learn to build a collaborative society of agents. |
|
|
202
|
+
| **[Society Cookbook](https://docs.camel-ai.org/cookbooks/agents_society.html)** | Advanced configurations for agent societies. |
|
|
203
|
+
| **[Model Speed Comparison Cookbook](https://docs.camel-ai.org/cookbooks/model_speed_comparison.html)** | Benchmarking models for performance. |
|
|
204
|
+
| **[Message Cookbook](https://docs.camel-ai.org/cookbooks/agents_message.html)** | Best practices for message handling in agents. |
|
|
205
|
+
| **[Tools Cookbook](https://docs.camel-ai.org/cookbooks/agents_with_tools.html)** | Integrating tools for enhanced functionality. |
|
|
206
|
+
| **[Memory Cookbook](https://docs.camel-ai.org/cookbooks/agents_with_memory.html)** | Implementing memory systems in agents. |
|
|
207
|
+
| **[RAG Cookbook](https://docs.camel-ai.org/cookbooks/agents_with_rag.html)** | Recipes for Retrieval-Augmented Generation. |
|
|
208
|
+
| **[Prompting Cookbook](https://docs.camel-ai.org/cookbooks/agents_prompting.html)** | Techniques for effective prompt creation. |
|
|
209
|
+
| **[Task Generation Cookbook](https://docs.camel-ai.org/cookbooks/task_generation.html)** | Automating task generation for agents. |
|
|
210
|
+
| **[Graph RAG Cookbook](https://docs.camel-ai.org/cookbooks/knowledge_graph.html)** | Leveraging knowledge graphs with RAG. |
|
|
211
|
+
| **[Role-Playing Scraper for Report & Knowledge Graph Generation](https://docs.camel-ai.org/cookbooks/roleplaying_scraper.html)** | Create role-playing agents for data scraping and reporting. |
|
|
212
|
+
| **[Video Analysis](https://docs.camel-ai.org/cookbooks/video_analysis.html)** | Techniques for agents in video data analysis. |
|
|
213
|
+
| **[Track CAMEL Agents with AgentOps](https://docs.camel-ai.org/cookbooks/agents_tracking.html)** | Tools for tracking and managing agents in operations. |
|
|
214
|
+
| **[Create A Hackathon Judge Committee with Workforce](https://docs.camel-ai.org/cookbooks/workforce_judge_committee.html)** | Building a team of agents for collaborative judging. |
|
|
215
|
+
|
|
216
|
+
## Examples
|
|
144
217
|
|
|
145
218
|
First, you need to add your OpenAI API key to system environment variables. The method to do this depends on your operating system and the shell you're using.
|
|
146
219
|
|
|
@@ -170,83 +243,41 @@ $env:OPENAI_API_BASE_URL="<inert your OpenAI API BASE URL>" #(Should you utiliz
|
|
|
170
243
|
|
|
171
244
|
Replace `<insert your OpenAI API key>` with your actual OpenAI API key in each case. Make sure there are no spaces around the `=` sign.
|
|
172
245
|
|
|
173
|
-
|
|
246
|
+
|
|
247
|
+
Please note that the environment variable is session-specific. If you open a new terminal window or tab, you will need to set the API key again in that new session.
|
|
248
|
+
|
|
249
|
+
After setting the OpenAI API key, you can run the `role_playing.py` script. Find tasks for various assistant-user roles [here](https://drive.google.com/file/d/194PPaSTBR07m-PzjS-Ty6KlPLdFIPQDd/view?usp=share_link).
|
|
174
250
|
|
|
175
251
|
```bash
|
|
176
252
|
# You can change the role pair and initial prompt in role_playing.py
|
|
177
253
|
python examples/ai_society/role_playing.py
|
|
178
254
|
```
|
|
179
255
|
|
|
180
|
-
|
|
256
|
+
Also feel free to run any scripts below that interest you:
|
|
181
257
|
|
|
258
|
+
```bash
|
|
259
|
+
# You can change the role pair and initial prompt in these python files
|
|
182
260
|
|
|
183
|
-
|
|
261
|
+
# Examples of two agents role-playing
|
|
262
|
+
python examples/ai_society/role_playing.py
|
|
184
263
|
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
```bash
|
|
188
|
-
ollama pull llama3
|
|
189
|
-
```
|
|
190
|
-
- Run the script. Enjoy your Llama3 model, enhanced by CAMEL's excellent agents.
|
|
191
|
-
```python
|
|
192
|
-
from camel.agents import ChatAgent
|
|
193
|
-
from camel.messages import BaseMessage
|
|
194
|
-
from camel.models import ModelFactory
|
|
195
|
-
from camel.types import ModelPlatformType
|
|
196
|
-
|
|
197
|
-
ollama_model = ModelFactory.create(
|
|
198
|
-
model_platform=ModelPlatformType.OLLAMA,
|
|
199
|
-
model_type="llama3",
|
|
200
|
-
model_config_dict={"temperature": 0.4},
|
|
201
|
-
)
|
|
202
|
-
|
|
203
|
-
assistant_sys_msg = BaseMessage.make_assistant_message(
|
|
204
|
-
role_name="Assistant",
|
|
205
|
-
content="You are a helpful assistant.",
|
|
206
|
-
)
|
|
207
|
-
agent = ChatAgent(assistant_sys_msg, model=ollama_model, token_limit=4096)
|
|
208
|
-
|
|
209
|
-
user_msg = BaseMessage.make_user_message(
|
|
210
|
-
role_name="User", content="Say hi to CAMEL"
|
|
211
|
-
)
|
|
212
|
-
assistant_response = agent.step(user_msg)
|
|
213
|
-
print(assistant_response.msg.content)
|
|
214
|
-
```
|
|
264
|
+
# The agent answers questions by utilizing code execution tools.
|
|
265
|
+
python examples/toolkits/code_execution_toolkit.py
|
|
215
266
|
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
model_platform=ModelPlatformType.VLLM,
|
|
231
|
-
model_type="microsoft/Phi-3-mini-4k-instruct",
|
|
232
|
-
url="http://localhost:8000/v1",
|
|
233
|
-
model_config_dict={"temperature": 0.0},
|
|
234
|
-
api_key="vllm",
|
|
235
|
-
)
|
|
236
|
-
|
|
237
|
-
assistant_sys_msg = BaseMessage.make_assistant_message(
|
|
238
|
-
role_name="Assistant",
|
|
239
|
-
content="You are a helpful assistant.",
|
|
240
|
-
)
|
|
241
|
-
agent = ChatAgent(assistant_sys_msg, model=vllm_model, token_limit=4096)
|
|
242
|
-
|
|
243
|
-
user_msg = BaseMessage.make_user_message(
|
|
244
|
-
role_name="User",
|
|
245
|
-
content="Say hi to CAMEL AI",
|
|
246
|
-
)
|
|
247
|
-
assistant_response = agent.step(user_msg)
|
|
248
|
-
print(assistant_response.msg.content)
|
|
249
|
-
```
|
|
267
|
+
# Generating a knowledge graph with an agent
|
|
268
|
+
python examples/knowledge_graph/knowledge_graph_agent_example.py
|
|
269
|
+
|
|
270
|
+
# Multiple agents collaborating to decompose and solve tasks
|
|
271
|
+
python examples/workforce/multiple_single_agents.py
|
|
272
|
+
|
|
273
|
+
# Use agent to generate creative image
|
|
274
|
+
python examples/vision/image_crafting.py
|
|
275
|
+
```
|
|
276
|
+
For additional feature examples, see the [`examples`](https://github.com/camel-ai/camel/tree/master/examples) directory.
|
|
277
|
+
|
|
278
|
+
## Utilize Various LLMs as Backends
|
|
279
|
+
|
|
280
|
+
For more details, please see our [`Models Documentation`](https://docs.camel-ai.org/key_modules/models.html#).
|
|
250
281
|
|
|
251
282
|
## Data (Hosted on Hugging Face)
|
|
252
283
|
| Dataset | Chat format | Instruction format | Chat format (translated) |
|
|
@@ -270,7 +301,21 @@ Please note that the environment variable is session-specific. If you open a new
|
|
|
270
301
|
We implemented amazing research ideas from other works for you to build, compare and customize your agents. If you use any of these modules, please kindly cite the original works:
|
|
271
302
|
- `TaskCreationAgent`, `TaskPrioritizationAgent` and `BabyAGI` from *Nakajima et al.*: [Task-Driven Autonomous Agent](https://yoheinakajima.com/task-driven-autonomous-agent-utilizing-gpt-4-pinecone-and-langchain-for-diverse-applications/). [[Example](https://github.com/camel-ai/camel/blob/master/examples/ai_society/babyagi_playing.py)]
|
|
272
303
|
|
|
304
|
+
## Other Research Works Based on Camel
|
|
305
|
+
- [Agent Trust](http://agent-trust.camel-ai.org/): Can Large Language Model Agents Simulate Human Trust Behavior?
|
|
306
|
+
|
|
307
|
+
- [CRAB](https://crab.camel-ai.org/): Cross-environment Agent Benchmark for Multimodal Language Model Agents.
|
|
308
|
+
|
|
309
|
+
- OASIS: Open Agents Social Interaction Simulations on a Large Scale.
|
|
310
|
+
|
|
311
|
+
We warmly invite you to use CAMEL for your impactful research.
|
|
312
|
+
|
|
273
313
|
## News
|
|
314
|
+
📢 Added the Workforce module to the 🐫 CAMEL framework! For more details, see the [post](https://x.com/CamelAIOrg/status/1851682063830720912). (Oct 31, 2024)
|
|
315
|
+
- Added subprocess support for Ollama and vLLM models. (Oct, 29, 2024)
|
|
316
|
+
- Integrated Firecrawl's Map into the 🐫 CAMEL framework. (Oct, 22, 2024)
|
|
317
|
+
- Integrated Nvidia's Llama-3.1-Nemotron-70b-Instruct! (Oct, 17, 2024)
|
|
318
|
+
- ...
|
|
274
319
|
- Released AI Society and Code dataset (April 2, 2023)
|
|
275
320
|
- Initial release of `CAMEL` python library (March 21, 2023)
|
|
276
321
|
|