{"id":23335855,"url":"https://github.com/camel-ai/oasis","last_synced_at":"2025-05-14T19:07:56.180Z","repository":{"id":263553853,"uuid":"887684103","full_name":"camel-ai/oasis","owner":"camel-ai","description":"🏝️ OASIS: Open Agent Social Interaction Simulations with One Million Agents. https://oasis.camel-ai.org","archived":false,"fork":false,"pushed_at":"2025-05-09T07:05:00.000Z","size":126685,"stargazers_count":1415,"open_issues_count":32,"forks_count":144,"subscribers_count":15,"default_branch":"main","last_synced_at":"2025-05-09T08:22:57.941Z","etag":null,"topics":["agent-based-framework","agent-based-simulation","ai-societies","deep-learning","large-language-models","large-scale","llm-agents","multi-agent-systems","natural-language-processing"],"latest_commit_sha":null,"homepage":"https://docs.oasis.camel-ai.org/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/camel-ai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-11-13T05:20:49.000Z","updated_at":"2025-05-09T08:21:09.000Z","dependencies_parsed_at":"2025-01-02T08:19:58.888Z","dependency_job_id":"ef368be6-a1ec-4306-9421-4f357e6a6eb5","html_url":"https://github.com/camel-ai/oasis","commit_stats":null,"previous_names":["camel-ai/oasis"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/camel-ai%2Foasis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/camel-ai%2Foasis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/camel-ai%2Foasis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/camel-ai%2Foasis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/camel-ai","download_url":"https://codeload.github.com/camel-ai/oasis/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254209859,"owners_count":22032897,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-based-framework","agent-based-simulation","ai-societies","deep-learning","large-language-models","large-scale","llm-agents","multi-agent-systems","natural-language-processing"],"created_at":"2024-12-21T02:01:31.783Z","updated_at":"2025-05-14T19:07:55.747Z","avatar_url":"https://github.com/camel-ai.png","language":"Python","funding_links":[],"categories":["A01_文本生成_文本对话","Datasets and Environments","Python","AI Agent Frameworks \u0026 SDKs"],"sub_categories":["大语言对话模型及数据","Multi-Agent Collaboration Systems"],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://www.camel-ai.org/\"\u003e\n    \u003cimg src=\"assets/banner.png\" alt=banner\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\u003c/br\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n\u003ch1\u003e OASIS: Open Agent Social Interaction Simulations with One Million Agents\n\u003c/h1\u003e\n\n[![Documentation][docs-image]][docs-url]\n[![Discord][discord-image]][discord-url]\n[![X][x-image]][x-url]\n[![Reddit][reddit-image]][reddit-url]\n[![Wechat][wechat-image]][wechat-url]\n[![Wechat][oasis-image]][oasis-url]\n[![Hugging Face][huggingface-image]][huggingface-url]\n[![Star][star-image]][star-url]\n[![Package License][package-license-image]][package-license-url]\n\n\u003ch4 align=\"center\"\u003e\n\n[Community](https://github.com/camel-ai/camel#community) |\n[Paper](https://arxiv.org/abs/2411.11581) |\n[Examples](https://github.com/camel-ai/oasis/tree/main/scripts) |\n[Dataset](https://huggingface.co/datasets/oasis-agent/oasis-dataset) |\n[Citation](https://github.com/camel-ai/oasis#-citation) |\n[Contributing](https://github.com/camel-ai/oasis#-contributing-to-oasis) |\n[CAMEL-AI](https://www.camel-ai.org/)\n\n\u003c/h4\u003e\n\n\u003c/div\u003e\n\n\u003cbr\u003e\n\n\u003cp align=\"left\"\u003e\n  \u003cimg src='assets/intro.png'\u003e\n\n🏝️ OASIS is a scalable, open-source social media simulator that incorporates large language model agents to realistically mimic the behavior of up to one million users on platforms like Twitter and Reddit. It's designed to facilitate the study of complex social phenomena such as information spread, group polarization, and herd behavior, offering a versatile tool for exploring diverse social dynamics and user interactions in digital environments.\n\n\u003c/p\u003e\n\n\u003cbr\u003e\n\n\u003cdiv align=\"center\"\u003e\n🌟 Star OASIS on GitHub and be instantly notified of new releases.\n\u003c/div\u003e\n\n\u003cbr\u003e\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"assets/star.gif\" alt=\"Star\" width=\"196\" height=\"52\"\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\u003cbr\u003e\n\n## ✨ Key Features\n\n### 📈 Scalability\n\nOASIS supports simulations of up to ***one million agents***, enabling studies of social media dynamics at a scale comparable to real-world platforms.\n\n### 📲 Dynamic Environments\n\nAdapts to real-time changes in social networks and content, mirroring the fluid dynamics of platforms like **Twitter** and **Reddit** for authentic simulation experiences.\n\n### 👍🏼 Diverse Action Spaces\n\nAgents can perform **23 actions**, such as following, commenting, and reposting, allowing for rich, multi-faceted interactions.\n\n### 🔥 Integrated Recommendation Systems\n\nFeatures **interest-based** and **hot-score-based recommendation algorithms**, simulating how users discover content and interact within social media platforms.\n\n\u003cbr\u003e\n\n## 📺 Demo Video\n\n### Introducing OASIS: Open Agent Social Interaction Simulations with One Million Agents\n\nhttps://github.com/user-attachments/assets/3bd2553c-d25d-4d8c-a739-1af51354b15a\n\n\u003cbr\u003e\n\nFor more showcaes:\n\n- Can 1,000,000 AI agents simulate social media?\n  [→Watch demo](https://www.youtube.com/watch?v=lprGHqkApus\u0026t=2s)\n\n\u003cbr\u003e\n\n## 🎯 Usecase\n\n\u003cdiv align=\"left\"\u003e\n    \u003cimg src=\"assets/research_simulation.png\" alt=usecase1\u003e\n    \u003cimg src=\"assets/interaction.png\" alt=usecase2\u003e\n   \u003ca href=\"http://www.matrix.eigent.ai\"\u003e\n    \u003cimg src=\"assets/content_creation.png\" alt=usecase3\u003e\n   \u003c/a\u003e\n    \u003cimg src=\"assets/prediction.png\" alt=usecase4\u003e\n\u003c/div\u003e\n\n## ⚙️ Quick Start\n\n1. **Install the OASIS package:**\n\nInstalling OASIS is a breeze thanks to its availability on PyPI. Simply open your terminal and run:\n\n```bash\npip install camel-oasis\n```\n\n2. **Set up your OpenAI API key:**\n\n```bash\n# For Bash shell (Linux, macOS, Git Bash on Windows):\nexport OPENAI_API_KEY=\u003cinsert your OpenAI API key\u003e\n\n# For Windows Command Prompt:\nset OPENAI_API_KEY=\u003cinsert your OpenAI API key\u003e\n```\n\n3. **Prepare the agent profile file:**\n\nCreate the profile you want to assign to the agent. As an example, you can download [user_data_36.json](https://github.com/camel-ai/oasis/blob/main/data/reddit/user_data_36.json) and place it in your local `./data/reddit` folder.\n\n4. **Run the following Python code:**\n\n```python\nimport asyncio\nimport os\n\nfrom camel.models import ModelFactory\nfrom camel.types import ModelPlatformType, ModelType\n\nimport oasis\nfrom oasis import ActionType, EnvAction, SingleAction\n\n\nasync def main():\n  # Define the model for the agents\n  openai_model = ModelFactory.create(\n      model_platform=ModelPlatformType.OPENAI,\n      model_type=ModelType.GPT_4O_MINI,\n  )\n\n  # Define the available actions for the agents\n  available_actions = [\n      ActionType.LIKE_POST,\n      ActionType.CREATE_POST,\n      ActionType.CREATE_COMMENT,\n      ActionType.FOLLOW\n  ]\n\n  # Make the environment\n  env = oasis.make(\n      platform=oasis.DefaultPlatformType.REDDIT,\n      database_path=\"reddit_simulation.db\",\n      agent_profile_path=\"./data/reddit/user_data_36.json\",\n      agent_models=openai_model,\n      available_actions=available_actions,\n  )\n\n  # Run the environment\n  await env.reset()\n\n  action = SingleAction(\n    agent_id=0,\n    action=ActionType.CREATE_POST,\n    args={\"content\": \"Welcome to the OASIS World!\"}\n  )\n\n  env_actions = EnvAction(\n    activate_agents=list(range(10)),  # activate the first 10 agents\n    intervention=[action]\n  )\n\n  # Apply interventions to the environment, refresh the recommendation system, and LLM agent perform actions\n  await env.step(env_actions)\n\n  # Close the environment\n  await env.close()\n\nif __name__ == \"__main__\":\n  asyncio.run(main())\n```\n\n\u003cbr\u003e\n\n\u003e \\[!TIP\\]\n\u003e For more detailed instructions and additional configuration options, check out the [documentation](https://docs.oasis.camel-ai.org/).\n\n### More Tutorials\n\nTo discover how to create profiles for large-scale users, as well as how to visualize and analyze social simulation data once your experiment concludes, please refer to [More Tutorials](examples/experiment/user_generation_visualization.md) for detailed guidance.\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"assets/tutorial.png\" alt=\"Tutorial Overview\"\u003e\n\u003c/div\u003e\n\n## 📢 News\n\n### Upcoming Features \u0026 Contributions\n\n\u003e We welcome community contributions! Join us in building these exciting features.\n\n- [Support Multi Modal Platform](https://github.com/camel-ai/oasis/issues/47)\n- [Connect to the Real World](https://github.com/camel-ai/oasis/issues/79)\n\n\u003c!-- - Public release of our dataset on Hugging Face (November 05, 2024) --\u003e\n\n### Latest Updates\n\n📢 Refactor into the OASIS environment, publish camel-oasis on PyPI, and release the documentation. - 📆 April 24, 2025\n\n- Support OPENAI Embedding model for Twhin-Bert Recommendation System. - 📆 March 25, 2025\n- Updated social media links and QR codes in the README! Join OASIS \u0026 CAMEL on WeChat, X, Reddit, and Discord. - 📆 March 24, 2025\n- Add multi-threading support to speed up LLM inference by 13x - 📆 March 4, 2025\n- Slightly refactoring the database to add Quote Action and modify Repost Action - 📆 January 13, 2025\n- Added the demo video and oasis's star history in the README - 📆 January 5, 2025\n- Introduced an Electronic Mall on the Reddit platform - 📆 December 5, 2024\n- OASIS initially released on arXiv - 📆 November 19, 2024\n- OASIS GitHub repository initially launched - 📆 November 19, 2024\n\n## 🥂 Contributing to OASIS🏝️\n\n\u003e We greatly appreciate your interest in contributing to our open-source initiative. To ensure a smooth collaboration and the success of contributions, we adhere to a set of contributing guidelines similar to those established by CAMEL. For a comprehensive understanding of the steps involved in contributing to our project, please refer to the CAMEL [contributing guidelines](https://github.com/camel-ai/camel/blob/master/CONTRIBUTING.md). 🤝🚀\n\u003e\n\u003e An essential part of contributing involves not only submitting new features with accompanying tests (and, ideally, examples) but also ensuring that these contributions pass our automated pytest suite. This approach helps us maintain the project's quality and reliability by verifying compatibility and functionality.\n\n## 📬 Community \u0026 Contact\n\nIf you're keen on exploring new research opportunities or discoveries with our platform and wish to dive deeper or suggest new features, we're here to talk. Feel free to get in touch for more details at camel.ai.team@gmail.com.\n\n\u003cbr\u003e\n\n- Join us ([*Discord*](https://discord.camel-ai.org/) or [*WeChat*](https://ghli.org/camel/wechat.png)) in pushing the boundaries of finding the scaling laws of agents.\n\n- Join WechatGroup for further discussions!\n\n\u003cdiv align=\"\"\u003e\n  \u003cimg src=\"assets/wechatgroup.png\" alt=\"WeChat Group QR Code\" width=\"600\"\u003e\n\u003c/div\u003e\n\n## 🌟 Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=camel-ai/oasis\u0026type=Date)](https://star-history.com/#camel-ai/oasis\u0026Date)\n\n## 🔗 Citation\n\n```\n@misc{yang2024oasisopenagentsocial,\n      title={OASIS: Open Agent Social Interaction Simulations with One Million Agents},\n      author={Ziyi Yang and Zaibin Zhang and Zirui Zheng and Yuxian Jiang and Ziyue Gan and Zhiyu Wang and Zijian Ling and Jinsong Chen and Martz Ma and Bowen Dong and Prateek Gupta and Shuyue Hu and Zhenfei Yin and Guohao Li and Xu Jia and Lijun Wang and Bernard Ghanem and Huchuan Lu and Chaochao Lu and Wanli Ouyang and Yu Qiao and Philip Torr and Jing Shao},\n      year={2024},\n      eprint={2411.11581},\n      archivePrefix={arXiv},\n      primaryClass={cs.CL},\n      url={https://arxiv.org/abs/2411.11581},\n}\n```\n\n## 🙌 Acknowledgment\n\nWe would like to thank Douglas for designing the logo of our project.\n\n## 🖺 License\n\nThe source code is licensed under Apache 2.0.\n\n[discord-image]: https://img.shields.io/discord/1082486657678311454?logo=discord\u0026labelColor=%20%235462eb\u0026logoColor=%20%23f5f5f5\u0026color=%20%235462eb\n[discord-url]: https://discord.camel-ai.org/\n[docs-image]: https://img.shields.io/badge/Documentation-EB3ECC\n[docs-url]: https://docs.oasis.camel-ai.org/\n[huggingface-image]: https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-CAMEL--AI-ffc107?color=ffc107\u0026logoColor=white\n[huggingface-url]: https://huggingface.co/camel-ai\n[oasis-image]: https://img.shields.io/badge/WeChat-OASISProject-brightgreen?logo=wechat\u0026logoColor=white\n[oasis-url]: ./assets/wechatgroup.png\n[package-license-image]: https://img.shields.io/badge/License-Apache_2.0-blue.svg\n[package-license-url]: https://github.com/camel-ai/oasis/blob/main/licenses/LICENSE\n[reddit-image]: https://img.shields.io/reddit/subreddit-subscribers/CamelAI?style=plastic\u0026logo=reddit\u0026label=r%2FCAMEL\u0026labelColor=white\n[reddit-url]: https://www.reddit.com/r/CamelAI/\n[star-image]: https://img.shields.io/github/stars/camel-ai/oasis?label=stars\u0026logo=github\u0026color=brightgreen\n[star-url]: https://github.com/camel-ai/oasis/stargazers\n[wechat-image]: https://img.shields.io/badge/WeChat-CamelAIOrg-brightgreen?logo=wechat\u0026logoColor=white\n[wechat-url]: ./assets/wechat.JPGwechat.jpg\n[x-image]: https://img.shields.io/twitter/follow/CamelAIOrg?style=social\n[x-url]: https://x.com/CamelAIOrg\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcamel-ai%2Foasis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcamel-ai%2Foasis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcamel-ai%2Foasis/lists"}