AI Town: Multilingual AI Simulations with SEA-LION
AI Town presents a fascinating microcosm, a virtual environment where AI-driven characters live, chat and socialise. South East Asian Languages in One Network (SEA-LION) is a family of open-source Large Language Models (LLMs) that better understands Southeast Asia’s (SEA) diverse contexts, languages, and cultures. This post describes the installation of AI Town, and how SEA-LION is used to run the multilingual simulation as the LLM and generate the AI characters.
The AI Town with SEA-LION can be accessed via https://ai-town.sea-lion.ai/. The characters are regenerated with new descriptions every day.

Prerequisites
Please check that the following are installed.
Self-Hosted Installation with Docker
Please refer to the instructions in the AI Town repository.
Clone the repository.
git clone https://github.com/a16z-infra/ai-town.git cd ai-town
Set up the frontend, backend, and dashboard with Docker Compose.
docker compose up --build -d
Generate the Convex admin key.
docker compose exec backend ./generate_admin_key.sh
Add the Convex admin key in .env.local.
# .env.local CONVEX_SELF_HOSTED_ADMIN_KEY="<ADMIN-KEY>" CONVEX_SELF_HOSTED_URL="http://127.0.0.1:3210"
Set up the Convex backend.
npm run predev
SEA-LION API Key
Follow the guide at https://docs.sea-lion.ai/guides/inferencing/api to get the SEA-LION API Key.
Set the LLM parameters. Replace <YOUR-API-KEY> with the obtained key.
npx convex env set LLM_API_URL 'https://api.sea-lion.ai' npx convex env set LLM_API_KEY '<YOUR-API-KEY>' npx convex env set LLM_MODEL 'aisingapore/Llama-SEA-LION-v3-70B-IT' npx convex env set LLM_EMBEDDING_MODEL 'BAAI/bge-m3'
At the time of writing, the SEA-LION API rate limit is set to 10 requests per minute per user. Please update constants.ts to reduce the simulation speed accordingly.
Character Descriptions with SEA-LION
The character descriptions can be edited in characters.ts.
Using the SEA-LION API and a prompt, new character descriptions can be generated, like the following:
{
name: 'Alice',
character: 'f3',
identity: 'Alice is a Renewable Energy Engineer who develops sustainable power solutions. Her innovations reduce carbon footprints. She enjoys reading mystery novels. She speaks in Vietnamese only.',
plan: 'You want to implement solar energy systems.',
},
{
name: 'Pete',
character: 'f7',
identity: 'Pete is a Geologist who studies earthquake patterns. His research predicts seismic activity. He loves rock climbing. He speaks in English only.',
plan: 'You want to create an earthquake warning system.',
},
Send the contents of characters.ts to the SEA-LION API together with the sample prompt below.
Create new descriptions for these characters, keeping their names but giving them completely different professions and goals. Each character should: 1. Have a unique profession different from the others, examples: AI Scientist, Linguist, Anthropologist, etc. 2. Speak in a single language only: Indonesian, Filipino, Tamil, Thai, Vietnamese, English, Chinese 3. Have clear interests and expertise 4. Have a single hobby in the identity description 5. Have a concise plan Return the result in the exact same TypeScript format, using the same structure but with new content. Escape single quotes within the descriptions and plans.
Use Cases
Combining AI Town with SEA-LION opens up a range of use cases, leveraging SEA-LION’s specialised understanding of Southeast Asian languages, cultures, and contexts. Here are several potential applications:
- Synthetic Data: Rich, multi-turn dialogues in various SEA languages (e.g., Bahasa Indonesia, Filipino, Thai, Vietnamese), reflecting the various regional conversational styles.
- Immersive Language Environment: AI Town is a virtual space where users can practice speaking and interacting in Southeast Asian languages with AI characters. SEA-LION’s proficiency in these languages would provide realistic conversational partners.
- Model QA: SEA-LION’s multilingual capabilities are put to the test in a perpetual simulation.
The key advantage in these use cases is SEA-LION’s ability to go beyond generic AI responses and provide interactions that are linguistically accurate and culturally nuanced for the Southeast Asian region.
Links
- AI Town repository: https://github.com/a16z-infra/ai-town/
- SEA-LION API: https://docs.sea-lion.ai/guides/inferencing/api
- AI Town with SEA-LION: https://ai-town.sea-lion.ai/
