An AI chatbot
Fast, but nobody trusts it with anything that matters.
- How long until it works?
- Days
- Can you trust it to operate?
- No: it makes things up and acts unchecked
- Does it account for what it did?
- No record of why
Magnus is the foundation for building applications and agents with AI at the center. The model understands and writes; decisions follow rules, anything irreversible gets confirmed, and every step is recorded.
Table for 4 on Friday at 9pm?
party: 4 · day: Friday · time: 21:00
"booking" flow → check availability
availability(fri 21:00) → table free
booking is irreversible: asks for a yes first
I have a table for 4 on Friday at 9pm. Shall I book it under your name?
The problem
Getting a language model to chat is easy. Letting it operate unsupervised, in front of an end customer, is something else.
It states a policy, a price or an opening time that does not exist.
It confirms a booking, an order or a payment nobody approved.
When something goes wrong, there is no way to reconstruct why it did what it did.
A provider goes down or a conversation gets stuck, and nobody notices until the customer complains.
Your options
Three questions are enough to compare them.
Fast, but nobody trusts it with anything that matters.
Reliable, but slow and expensive.
AI that operates by the rules, without starting from scratch.
Already using OpenAI?
If your application already talks to OpenAI, nothing gets rewritten: the same code points at Magnus, with your Magnus key. The model still understands and writes; what to do is now up to Magnus.
Magnus keeps the conversation: it reads only the new message, and user keeps each customer’s apart. Tools are configured in the agent, not per request, so tools and response_format are not accepted.
from openai import OpenAI client = OpenAI(- api_key="sk-...",+ base_url="https://app.iamagnus.com/v1",+ api_key="magnus_sys_...", ) reply = client.chat.completions.create( model="gpt-4o", messages=[{"role": "user", "content": "A table on Friday?"}],+ user="jane@company.com", # one conversation per customer ) print(reply.choices[0].message.content) import OpenAI from "openai"; const client = new OpenAI({- apiKey: "sk-...",+ baseURL: "https://app.iamagnus.com/v1",+ apiKey: "magnus_sys_...", }); const reply = await client.chat.completions.create({ model: "gpt-4o", messages: [{ role: "user", content: "A table on Friday?" }],+ user: "jane@company.com", // one conversation per customer }); console.log(reply.choices[0].message.content); Our approach
We use the language model where it shines: interpreting what a person says and writing the reply. What to do is decided by a deterministic engine, with declared rules anyone can read and audit.
Explicit rules per industry. Nothing irreversible without a confirmation. Handoff to a person when it is called for.
Every turn leaves a trace: what it understood, what it decided and by which rule, which tool it ran and what came back.
If an AI provider fails, it moves to the next one. Under pressure, the system degrades in a controlled way instead of breaking.
Products
Each level includes everything in the one before. Choose by how much you want to build yourself and how much you want solved for you.
Level 1
The engine that decides
For: Developers
Level 2
The engine, production-ready
For: Engineering teams and integrators
Everything in Zero, plus:
Level 3
Agents ready for your business
For: Businesses, no code needed
Everything in Core, plus:
Agents is what you see.Core is what thinks.Zero is how it decides.
Integration
Your application stays yours, with your interface and your brand. Magnus works behind it, between your application and your systems.
Your application
Sends your customer’s message.
Magnus Core
Understands, decides by the rules, confirms anything irreversible and records every step.
Your systems
Your calendar, stock or CRM: the agent queries and operates them as tools, through MCP or its own.
The answer goes back to your application, ready to show.
pip install iamagnus GitHub → npm install iamagnus GitHub → go get github.com/ABZ-LABS/magnus-go-sdk GitHub → from iamagnus import MagnusClient
with MagnusClient("https://app.iamagnus.com", "magnus_sys_...") as client:
agent = client.list_agents()[0]["id"]
# One thread per end user: `user` continues it, not resent history.
chat = client.conversation(agent, user="jane@company.com")
print(chat.send("Hi, what can you do?"))
print(chat.send("And the price?")) import { MagnusClient } from "iamagnus";
const client = new MagnusClient({
baseUrl: "https://app.iamagnus.com",
apiKey: "magnus_sys_...",
});
const [agent] = await client.listAgents();
// One thread per end user: `user` continues it, not resent history.
const chat = client.conversation(agent.id, { user: "jane@company.com" });
console.log(await chat.send("Hi, what can you do?"));
console.log(await chat.send("And the price?")); client := magnus.New("https://app.iamagnus.com", "magnus_sys_...")
ctx := context.Background()
agents, err := client.ListAgentsContext(ctx)
if err != nil {
log.Fatal(err)
}
// One thread per end user: `user` continues it, not resent history.
chat := client.Conversation(agents[0].ID, "jane@company.com")
answer, _ := chat.SendContext(ctx, "Hi, what can you do?", nil)
fmt.Println(answer) The market
Each available approach solves part of the problem. Magnus targets the empty quadrant: quick to launch and safe to operate.
Standards
We do not invent our own protocols where standards already exist. We adopt them and add governance on top.
Anything that already speaks that chat format speaks to Magnus, without rewriting the integration.
External tools both ways: Magnus uses them and can also be offered as a tool.
The industry is moving from agents that improvise to stateful flows. In Magnus a flow is a file you can read.
Confirmation and handoff are part of how a turn is designed, not a later patch.
No lock-in to one model: if a provider fails, the turn continues with the next.
Any conversation can be rebuilt step by step: what was understood, what was decided and why.
Scripted dialogues and automated checks that catch a regression before it reaches a customer.
The engine is released under Apache-2.0, so anyone can verify how it decides without taking our word for it.
Use cases
16
business domains configured
3
official SDKs: Python, Node and Go
93.3%*
task completion in our benchmark, against 60.0% and 65.8% for two conventional approaches
* Internal benchmark: 120 dialogues across 7 domains. It was designed by the same team that built Magnus, and the baseline systems run without tuning to the dataset. An independent evaluation on unseen data is still pending.
Answers the building intercom through its phone system, talks to whoever is at the door and transfers the call to the right apartment. It does not decide to open the door: it decides who to route to, and logs it.
A management system for the administration and an agent for residents, working on the same data.
Property search, visit scheduling and lead capture, using the listings and time slots the system returns.
Step-by-step order taking, explicit confirmation before closing it, and handoff when a sensitive question comes up.
Support that detects urgency and frustration, and hands off to a person with the conversation context.
Financial projections for banks and credit unions, with each user’s data kept isolated.
Contact
A platform that is built and running, with a clear thesis on how to bring AI into real operations.
Request the executive briefAdd governed agents to your projects with Core, the SDKs and white-label for each client.
Propose a partnershipTell us what you want to automate and we will show you what it looks like running on Magnus.
Book a demo