Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions .container/.env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Necessary Keys
OPENAI_API_KEY=sk-123456789

# Optional Keys
# For Jina URL Reader
JINA_API_KEY=jina_123456789

# For Cohere Rerank
COHERE_API_KEY=abcdefghi

# For Google Search API
# https://developers.google.com/custom-search/v1/overview
GOOGLE_API_KEY=123456789
# https://cse.google.com/cse/all
SEARCH_ENGINE_ID=123456789

# For OpenWeatherMap API
OPENWEATHERMAP_API_KEY=123456789
22 changes: 22 additions & 0 deletions .container/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
FROM python:3.10-bookworm

# Install uv and common tools
RUN apt-get update && apt-get install -y curl git && \
pip install uv && \
rm -rf /var/lib/apt/lists/*

# Set workdir
WORKDIR /app/oasis

# Copy code
COPY . .

# Set up venv + install dev deps
RUN uv venv .venv --python=3.10 && \
. .venv/bin/activate && \
uv pip install -e ".[dev]" && \
pip install pre-commit mypy && \
pre-commit install

# Keep container alive for development
CMD ["tail", "-f", "/dev/null"]
96 changes: 96 additions & 0 deletions .container/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
# Install OASIS with Docker

Docker provides a consistent and isolated environment to build, run, and develop oasis without worrying about system dependencies. This guide walks you through setting up oasis using Docker, running it, and developing with it.

## Prerequisites

- Docker:https://docs.docker.com/engine/install/
- Docker Compose:https://docs.docker.com/compose/install/

## Configure Environment

Before starting the container, you need to navigate into the
[.container](../.container) folder and create a `.env` file **with your own
API keys**, so that these keys will be present in the environment variables of
the container, which will later be used by OASIS.

```bash
cd .container

# Create your own .env file by copying the example
cp .env.example .env

# Edit .env to add your API keys or custom settings
```

## Start Container

To build and start the development container:

```bash
docker compose up -d
```

This will:

- Build the image oasis:localdev
- Start the container oasis-localdev
- Set up all necessary dependencies

After the build is complete, you can verify the list of images and all running containers.

```bash
# List all Docker images
docker images
# Check running containers
docker ps
```

## Enter the Container

Once running, you can access the container like this:

```bash
docker compose exec oasis bash
```

You’ll now be inside the oasis dev environment.

From here, you can activate your virtual environment (if used) and run tests:

```bash
# Any other dev/test command
pytest
pre-commit run --all-files
```

## Save Your Progress

Your local code is volume-mounted into the container. That means any changes you make inside the container are reflected in your local project folder — no need to worry about losing your work.

## Exit, Stop and Delete the Container

You can simply press `Ctrl + D` or use the `exit` command to exit the
container.

After exiting the container, under normal cases the container will still be
running in the background. If you don't need the container anymore, you can
stop and delete the container with the following command.

```bash
docker compose down
```

## Online Images

For users who only want to have a quick tryout on OASIS, we also provide the
pre-built images on
[our GitHub Container Registry](<>).

## Pre-built Image (Optional)

If you only want to try oasis without setting up the build:

```bash

```
12 changes: 12 additions & 0 deletions .container/docker-compose.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
services:
oasis:
image: oasis:localdev
container_name: oasis-localdev
build:
context: ../
dockerfile: .container/Dockerfile
volumes:
- ../:/app/oasis
env_file:
- .env
command: ["tail", "-f", "/dev/null"]
7 changes: 7 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,11 @@ Go over all the following points, and put an `x` in all the boxes that apply.
- [ ] I have updated the documentation if needed:
- [ ] I have added examples if this is a new feature

**Note:** If you are developing a new action for `SocialAgent`, please review the checklist below and mark all applicable items with an `x`. If you're not adding a new action, you can skip this section.

- [ ] I have added the new action to `ActionType` in [`typing.py`](https://github.com/camel-ai/oasis/blob/main/oasis/social_platform/typing.py).
- [ ] I have added a corresponding test or a similar function, as shown in [`test_user_create_post.py`](https://github.com/camel-ai/oasis/blob/main/test/infra/database/test_user_create_post.py).
- [ ] I have included the new `ActionType` in both [`test_action_docstring.py`](https://github.com/camel-ai/oasis/blob/main/test/agent/test_action_docstring.py) and [`test_twitter_user_agent_all_actions.py`](https://github.com/camel-ai/oasis/blob/main/test/agent/test_twitter_user_agent_all_actions.py).
- [ ] I have documented the new action in [`actions.mdx`](https://github.com/camel-ai/oasis/blob/main/docs/key_modules/actions.mdx); the Mintlify GitHub app will deploy the changes automatically.

If you are unsure about any of these, don't hesitate to ask. We are here to help!
1 change: 1 addition & 0 deletions .github/workflows/python-app.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ jobs:

- name: Run tests
env:
OPENAI_BASE_URL: ${{ secrets.OPENAI_BASE_URL }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
run: |
pytest
3 changes: 3 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
default_language_version:
python: python3

repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.5.0
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -229,7 +229,7 @@ Sprint planning defines what can be delivered in the sprint and how it will be a

Our aim is to make the developer setup as straightforward as possible. If you encounter any challenges during the setup process, don't hesitate to reach out to a maintainer. We're here to assist you and ensure that the experience is smooth not just for you but also for future contributors. 😊

In line with this, we do have specific guidelines for code linting, formatting, and documentation in the codebase. If you find these requirements difficult or even just bothersome to work with, please feel free to get in touch with a maintainer — you can *@ziyi yang in Discord or @ in the WeChat group*. We don't want these guidelines to hinder the integration of good code into the codebase, so we're more than happy to provide support and find a solution that works for you. 🤝
In line with this, we do have specific guidelines for code linting, formatting, and documentation in the codebase. If you find these requirements difficult or even just bothersome to work with, please feel free to get in touch with a maintainer — you can *@doudou_wu in Discord or @张再斌 in the WeChat group*. We don't want these guidelines to hinder the integration of good code into the codebase, so we're more than happy to provide support and find a solution that works for you. 🤝

## Quick Start 🚀

Expand Down
10 changes: 9 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -249,8 +249,9 @@ To discover how to create profiles for large-scale users, as well as how to visu

### Latest Updates

📢 Add features for creating group chats, sending messages in group chats, and leaving group chats. - 📆 June 6, 2025
📢 Add the report post action to mark inappropriate content. - 📆 June 8, 2025

- Add features for creating group chats, sending messages in group chats, and leaving group chats. - 📆 June 6, 2025
- Support Interview Action for asking agents specific questions and getting answers. - 📆 June 2, 2025
- Support customization of each agent's models, tools, and prompts; refactor the interface to follow the PettingZoo style. - 📆 May 22, 2025
- Refactor into the OASIS environment, publish camel-oasis on PyPI, and release the documentation. - 📆 April 24, 2025
Expand All @@ -262,6 +263,13 @@ To discover how to create profiles for large-scale users, as well as how to visu
- OASIS initially released on arXiv - 📆 November 19, 2024
- OASIS GitHub repository initially launched - 📆 November 19, 2024

## 🔎 Follow-up Research

- [MultiAgent4Collusion](https://github.com/renqibing/MultiAgent4Collusion): multi-agent collusion simulation framework in social systems
- More to come...

If your research is based on OASIS, we'd be happy to feature your work here—feel free to reach out or submit a pull request to add it to the [README](https://github.com/camel-ai/oasis/blob/main/README.md)!

## 🥂 Contributing to OASIS🏝️

> 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 OASIS [contributing guidelines](https://github.com/camel-ai/oasis/blob/master/CONTRIBUTING.md). 🤝🚀
Expand Down
Binary file modified assets/wechatgroup.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading