What is CoralOS?
CoralOS is a platform for deploying and orchestrating agents that connect easily (with each other, your application, agentic middleware, …) CoralOS consists of the Coral Server and supporting tooling/ecosystem. Think of CoralOS as the “Kubernetes for agents”: you have a HTTP API, like a control plane, that lets you spin up a graph of agents with fully controlled lifecycles.What makes an agent a CoralOS agent?
The basic requirements for an agent to run via Coral and be fully interoperable with the ecosystem are:- it can run in a container
- it connects to the supplied unique MCP server URL passed to it
- Custom tools can be provided to any agent by the consuming application
- Agents can discover and work with the other agents they are in groups with
- Their lifecycles are fully managed, with configurable time-to-live for cost predictability.
What are some more advanced features of CoralOS?
CoralOS makes many more interesting things easy:- Pushing your agents to a marketplace, where they may be used securely for free or become their own revenue streams
- Agent re-usability via exposable configuration (options)
- Safely intercept & manipulate LLM requests in-flight, to e.g. patch prompts, add memory to memoryless agents, or change the model used; without touching agent code (coming soon)
Getting started
Run the server
Running the server is easy:
After the server starts, it prints an address to the Coral Console. You can “login” with the auth key
dev or whatever you passed for the auth.keys parameter.Make sure to use a secure auth key in production, and follow conventional security practices when exposing your Coral Server to the public internet!
Create your own agent
Let’s create a new agent from source to use in our server.We will use a template for convenience, but writing agents in any framework (or modifying existing to work with Coral) is also easy.
This will create a Kotlin agent using JetBrain’s wonderful Koog framework You should now have a file structure that looks something like this:
Missing any? Come to our discord to share your own examples or ask for relevant ones.
Using the Koog template (Kotlin)
Using the Koog template (Kotlin)
my-first-agent
src
build.gradle.kts
coral-agent.toml
...
coral-agent.toml is Coral’s entrypoint to this agent, with all relevant agent metadata (runtime, options, etc).Learn more about it hereOther templates & agent examples
Other templates & agent examples
| Language | Framework | Maturity | Repositories |
|---|---|---|---|
| Rust | coral-rs (Rig) | Medium-high | Deepwiki Agent |
| Kotlin | Koog | High | Template |
| Python | LangChain | Low | Template |
Add the agent to your server
Once you have an agent’s source code on your machine, you can “link” it so that any server you run on that machine will have access to it:To “unlink” this agent, you can run:
On Windows, you may need to run as administrator to avoid permission issues creating the symlink
This creates a symlink called
~/.coral/agents/my-first-agent/{agentVersion} pointing to your agent’s directoryCreate a session in Coral Server
Now that you have agent(s) in your server, you can create a multi agent session!Creating a session can be done in one POST request, but for a more convenient experience, you can use Coral Console.
Coral Console (development / testing)
Coral Console (development / testing)
Fill out necessary agent options and session TTL
Depending on your agent(s), you may need to fill out some values here.You must also set the session’s TTL (time-to-live), which determines how long the session can run before it is automatically terminated.
From code (production)
From code (production)
Ultimately it’s intended that Coral sessions are instantiated via code. Coral Console provides the needed JSON payload for the create session endpoint, as well as code snippets that include making the request.Coral Server requires a bearer token for all endpoints. We set our auth key to Naturally, variable substitution and environment variables should be used over hardcoding every option value, since sensitive information like API keys can be passed as agent options.
dev in Step 1, so we must use the header Authorization: Bearer dev.
In the case of Coral Cloud, it must be an API key you create from your account settings.
Make sure to use a secure auth key, and follow conventional security practices when exposing your Coral Server to the public internet!
