Lilli Logo

Simile believes in the following: simulating our lives will transform how we make decisions.

We're in currently stealth mode.
Reach us at here.

Human decisions are filled with uncertainty. How will our messages be received? How will our actions shape our surroundings? How will our strategy connect to the future we desire? Simulations that searches through not of what has been, but of what will be, can lift these uncertainties.

Who we are

We are a team of leading AI scientists, engineers, and builders who have created AI technologies you might have used. We introduced agents and simulations powered by generative AI to the field, developed some of the most widely adopted open-source projects and benchmarks, and coined concepts that have shaped the foundations of today's generative AI paradigms.

Join us

At Simile, we are building simulation engines powered by generative AI that enable you to explore tomorrow. Our team is passionate about bridging groundbreaking research with a bold product vision (and perhaps with a touch of artistic flair). We're looking for colleagues to help shape this vision.

If you think you might be a fit, please get in touch.

Today, simulation is at its GPT-3.5 moment—ready to deliver real value that can transform how people make decisions, while also ripe for continued research breakthroughs as we move closer to simulating our entire world.

At Simile, we believe that the best way to advance our simulations is through collaboration with the broader research community and builders. Our team is at the forefront of research in generative AI, agents, and trustworthy simulations of human behavior. Rooted in a culture of open science, we will be regularly publishing technical blog posts, research papers, and open-source code here.

We believe that sharing our work not only benefits the public but also strengthens our research culture—driving better ideas, deeper insights, and greater impact.

Simile is building simulation engines powered by generative AI that enable you to explore tomorrow. If you are passionate about bridging AI research with impactful real-world applications, reach out. We are looking to add a small number of people to our team. We work together in person in Palo Alto, CA.

Below, we’ve listed the roles we're currently hiring for:

  • Product Engineer: We are looking for full-stack engineers who can rapidly develop products from 0 to service-ready. Successful candidates will have strong technical fundamentals and excellent implementation skills (full-stack), with a keen eye for creating compelling user experiences.
  • Product Manager: We are looking for a product manager who can bridge research innovations with product vision in areas where simulations may be applied (e.g., market research). Successful candidates will have either deep 0-to-1 product development experience and go-to-market strategy expertise, deep domain expertise in simulation applications, or both.
  • Research Scientist/Engineer: We are looking for a research scientist or engineer with a strong track record in machine learning, agents, and simulation research. Successful candidates will have both excellent theoretical foundations and strong implementation skills. We welcome applications from academic researchers as well as those with unconventional backgrounds.

If you are interested in joining, please send an email here with the subject line: "Candidate Application: <name-of-the-role>" (e.g., Candidate Application: Product Engineer). If you have a unique skill set you'd like us to consider, please apply with the subject line: "Candidate Application: <insert-role-you-excel-at>."


© 2025 by Simile.

Agent Bank For Developers Log in

Developer Quickstart

Start simulating generative agents with the Simile API. Generative agents in Simile capture the likeness of real people, allowing you to translate a description of an individual into an agent that can generate compelling, context-aware behaviors.


Overview

The Simile API provides a straightforward way to manage “agents,” which represent people or characters with unique traits and backgrounds. You can then pose questions to these agents and receive generated responses—whether categorical, numerical, or open-ended “chat” style.

The library also supports populations, i.e., groups of agents that allow you to organize, sample, or batch-process multiple agents at once. An agent can belong to multiple populations (for instance, a college student living in Philadelphia could be part of both a “college student” population and a “Philly residents” population).


Installation & Setup

Install the simile package via pip:

pip install simile

Then import and set your API key (first sign up, and then get your API key here):

import simile
 
# Set your API key
simile.api_key = "YOUR_API_KEY"
Python

General Workflow

In Simile, there are two core resource classes:

  • Agent – a single entity with a defined personality, background, and optional data attachments
  • Population – a group of agents that can be managed collectively

Common use cases include:

  • Asking multiple agents (e.g., different demographic backgrounds) a question to see varied responses—like an A/B test or a quick poll.
  • Holding a focused interview with a specific agent who represents certain traits, such as a Colorado-based rock climber.

Interacting with Agents

You can ask the agent different types of questions or prompts. The generate_response method currently supports:

  • categorical: The agent picks from a list of provided options
  • numerical: The agent returns a numeric value (within a specified range)
  • chat: A freeform utterance in a dialogue format

Retrieving Agent Details

existing_details = simile.Agent.retrieve_details(new_agent_id)
print("Agent details:", existing_details)
Python

Categorical Example

agent_id = "AGENT_ID"
cat_question_payload = {
    "question": "What is your favorite color?",
    "options": ["Red", "Blue", "Green"]
}
cat_result = simile.Agent.generate_response(agent_id, "categorical", cat_question_payload)
print(cat_result)
Python

Numerical Example

num_question_payload = {
    "question": "How old are you?",
    "range": [0, 120]
}
num_result = simile.Agent.generate_response(agent_id, "numerical", num_question_payload)
print(num_result)
Python

Chat / Utterance Example

chat_payload = {
    "dialogue": [
        ["user", "Hello Agent, how are you?"],
        ["agent", "I'm doing well, thank you!"]
    ],
    "context": "Some prior conversation context or background..."
}
chat_result = simile.Agent.generate_response(agent_id, "chat", chat_payload)
print(chat_result)
Python

Managing Populations

Populations allow you to manage groups of agents.

Sample a Sub-Population

# Getting a random sample
subpop_result = simile.Population.get_sub_population(population_id=population_id, n=2)
print(subpop_result)
Python

The returned sub-population result a list of sampled agents. n has to be less than the number of agents in the population.


Error Handling

The simile.error module defines custom exceptions you may encounter:

  • ApiKeyNotSetError – If you try to make a request without simile.api_key set
  • AuthenticationError – If the server returns a 401 (invalid API key)
  • RequestError – For other 4xx or 5xx HTTP errors, or network issues
try:
    agent_info = simile.Agent.retrieve_details("nonexistent_id")
except simile.error.RequestError as e:
    print("Request failed:", e)
Python

Putting It All Together

Here’s a quick outline showing how you might combine these methods in a script.

import simile
 
# Set your Simile API key
simile.api_key = "YOUR_API_KEY"
 
# Specify the population from which we want to sample
population_id = "YOUR_POPULATION_ID"
 
try:
    # Get a random sample of agents (e.g., 3) from your population
    subpop = simile.Population.get_sub_population(population_id, n=3)
 
    # For each agent in our sampled sub-population:
    for agent_info in subpop:
        agent_id = agent_info["agent_id"]  # or however the agent ID is accessed
 
        print(f"---\nAsking agent {agent_id} a categorical question...")
 
        # Define a categorical question payload
        cat_question_payload = {
            "question": "Do you prefer red, blue, or green?",
            "options": ["Red", "Blue", "Green"]
        }
 
        # Generate a response for the question
        cat_result = simile.Agent.generate_response(agent_id, "categorical", cat_question_payload)
 
        # Print out the agent’s response
        print(f"Agent {agent_id} answered: {cat_result}")
 
except simile.error.RequestError as e:
    print("Request failed:", e)
Python

With this approach, you can experiment with different question types (categorical, numerical, chat) and create or manage multiple agents/populations.


That’s it for the Quick Start! For more advanced usage and detailed configuration options, see the Main Documentation.

56 Pageviews
Mar. 02nd - Apr. 02nd