Amidst the swirling sands of the cosmos, Ix stands as an enigmatic jewel,
where the brilliance of human ingenuity dances on the edge of forbidden
knowledge, casting a shadow of intrigue over the galaxy.
- Atreides Scribe, The Chronicles of Ixian Innovation
The backend supports multiple agents running in parallel and communicating with each other.
- OpenAI
- Google PaLM (Experimental)
- Anthropic (Experimental)
- Llama (Experimental)
No-code editor for creating and testing agents. The editor provides an interface to drop and connect nodes into a graph representing the cognitive logic of an agent. Chat is embedded in the editor to allow for rapid testing and debugging.
MetaphorCreateShort_V2.mp4
The chat room supports multiple agents. The IX moderator delegates by default, and you can @mention an agent to request a specific agent to complete the task.
fizzbuzz.mkv_V2.mp4
Agents in the room and Artifacts created by tasks may be referenced for use in subsequent requests. The smart input bar searches and auto-completes references.
smart_input.mkv_V2.mp4
The agent runner backend is dockerized and is triggered with a celery message queue. This allows the backend to scale horizontally to support a fleet of agents running in parallel.
IX implements a component config layer that maps LangChain components to the configuration graph. The config layer powers a number of other systems and features. For example, component field and connector definitions are used to render nodes and forms dynamically in the no-code editor.
You chat with an agent that uses that direction to investigate, plan, and complete tasks. The agents are capable of searching the web, writing code, creating images, interacting with other APIs and services. If it can be coded, it's within the realm of possibility that an agent can be built to assist you.
-
Setup the server and visit
http://localhost:8000
, a new chat will be created automatically -
Enter a request and the IX moderator will delegate the task to the agent best suited for the response. Or @mention an agent to request a specific agent to complete the task.
-
Customized agents may be added or removed from the chat as needed to process your tasks
IX provides the moderator agent IX, a coder agent, and other example agents. Custom agents may be built using the chain editor or the python API.
- Chains no-code editor
- Chains python API docs
Agents and chains are built from a graph of LangChain components. Each node in the graph is either a property config node or a runnable Chain or Agent node. The graph configures the properties and the flow of the agent.
Ix doesn't support all LangChain components yet, but it's easy to add new components. More will be added in subsequent releases.
- Python 3.11
- Django 4.2
- PostgreSQL 15.3 + pg_vector
- Pydantic / FastAPI
- React 18
- LangChain
- Integrated with OpenAI GPT models
Before getting started, ensure you have the following software installed on your system:
- Windows Linux Subsystem (windows only)
- Open powershell
- run
wsl --install
to install and/or activate WSL
- git
- make
- Docker:
git clone https://github.com/kreneskyp/ix.git
cd ix
Setup config in .env
cp .env.template .env
OPENAI_API_KEY=YOUR_KEY_HERE
Set NO_IMAGE_BUILD=1 to skip rebuilding the image
make dev_setup
Set NO_IMAGE_BUILD=1 to skip rebuilding the image
make cluster
Web server logs
make server
Agent worker logs
make worker
make down
Recycle workers to deploy new code changes.
make worker-reset
Visit http://localhost:8000
to access the user interface and start creating tasks for the autonomous GPT-4 agents.
The platform will automatically spawn agent processes to research and complete tasks as needed.
Run as many worker processes as you want with make worker
.
Here are some helpful commands for developers to set up and manage the development environment:
make server
: Start the application in development mode on0.0.0.0:8000
.make worker
: Start an Agent worker.
make image
: Build the Docker image.make frontend
: Rebuild the front end (GraphQL, relay, webpack).make webpack
: Rebuild JavaScript only.make webpack-watch
: Rebuild JavaScript on file changes.make dev_setup
: Builds frontend and generates database.make node_types_fixture
: Builds database fixture for component type definitions.
make migrate
: Run Django database migrations.make migrations
: Generate new Django database migration files.
make bash
: Open a bash shell in the Docker container.make shell
: Open a Django shell_plus session.