Common Questions and Use-cases
What can MUXI do? How do I...?
Find your question, get the answer. Each section links to deeper documentation.
Building Agents
How do I define an agent?
In YAML. Create an .afs file (Agent Formation Schema) with your agent's name, role, LLM provider, and capabilities. No framework code required.
name: support-agent
agents:
support:
soul: "Helpful customer support specialist"
provider: openai/gpt-4o
tools: [search, ticket-system]
knowledge: ./docs/
Learn more: Formation Schema | Quickstart
How do agents remember context?
MUXI has a four-layer memory system:
- Buffer - Recent messages (fast, in-memory)
- Working - Session state and tool outputs (FAISSx vector store)
- User Synopsis - Who the user is (LLM-synthesized profile)
- Persistent - Long-term storage (Postgres for multi-tenancy, SQLite for single-user)
User Synopsis reduces token usage by 80%+ by replacing full history with a concise profile.
Note: Long-term memory requires either Postgres (multi-tenant) or SQLite (single-user).
Learn more: Memory System | Memory Internals | Add Memory
How do I give agents access to tools and APIs?
Via MCP (Model Context Protocol). MUXI supports 1,000+ pre-built tools: web search, databases, file systems, APIs, and more.
tools:
- mcp: brave-search
- mcp: postgres
- mcp: slack
Tools are loaded efficiently - schemas indexed once, not dumped into every request.
Learn more: Tools & MCP | Add Tools
What happens when tools fail?
Agents self-heal. When a tool fails, agents analyze the error and take corrective action:
User: "Create file at /reports/q4/summary.txt"
Agent: write_file(...) โ Error: "Directory doesn't exist"
Agent: create_directory("/reports/q4") โ Success
Agent: write_file(...) โ Success!
The user never sees the error - the agent just handles it. This works for missing directories, authentication issues, rate limits, and more.
Learn more: Tools & MCP
How do I give agents domain knowledge?
Point agents at documents. MUXI indexes PDFs, Markdown, Word, Excel, images, and more. Each agent can have its own knowledge set.
agents:
legal:
knowledge: ./contracts/
support:
knowledge: ./help-docs/
Uses semantic search (meaning, not keywords) and incremental indexing (only re-indexes changed files).
Learn more: Knowledge & RAG | Add Knowledge
Can I define workflows or procedures for agents?
Yes - Standard Operating Procedures (SOPs). Create markdown files in sops/ that define step-by-step procedures:
<!-- sops/refund-request.md -->
---
type: sop
name: Refund Processing
mode: guide
tags: refund, customer, payment
## Steps
1. **Verify Purchase** - Look up order in system
2. **Check Policy** - Verify refund eligibility
3. **Process or Deny** - Issue refund or explain denial
When a user request matches an SOP (via semantic search), the agent follows that procedure. SOPs have highest routing priority.
Note: SOPs are predefined templates. Regular workflows are created dynamically by the Overlord for each request.
Learn more: SOPs | Create SOPs
Can agents ask clarifying questions?
Yes. When a request is ambiguous, agents can ask for clarification instead of guessing:
User: "Book a flight"
Agent: "I'd be happy to help. Where are you flying to, and what dates work for you?"
Configure clarification behavior per agent - when to ask, what to ask, how many times.
Learn more: Clarifications
Can agents generate files?
Yes - artifacts. Agents can create documents, images, code files, reports, and more:
User: "Create a sales report for Q4"
Agent: "Here's your Q4 sales report" + [sales-report-q4.pdf]
Artifacts are returned alongside the response and can be downloaded or processed by your app.
Learn more: Artifacts
Can I customize the agent's personality?
Yes, but only the Overlord has a soul. Users talk to MUXI (the Overlord), not individual agents - so the soul defines how MUXI communicates.
Create a SOUL.md file in your formation directory:
<!-- SOUL.md -->
You are a friendly, professional assistant.
Be concise but warm. Use simple language.
Never use jargon unless the user does first.
Individual agents have system prompts (instructions for task execution) and capabilities (metadata for routing) - but not souls.
Learn more: Overlord Soul | The Overlord
Can I get structured JSON responses?
Yes - structured output. Define a schema and get validated JSON back:
agents:
extractor:
output_format:
type: object
properties:
name: { type: string }
email: { type: string }
sentiment: { type: string, enum: [positive, neutral, negative] }
Response is guaranteed to match your schema.
Learn more: Structured Output
Multi-Agent Systems
How do multiple agents work together?
The Overlord orchestrates everything:
- Intelligent Routing - Requests go to the best agent automatically
- Task Decomposition - Complex requests broken into steps
- Agent-to-Agent (A2A) - Agents delegate to specialists across formations
You define agents with specialties; the Overlord figures out who handles what.
Learn more: The Overlord | Agents & Orchestration | How Orchestration Works
Which LLMs are supported?
All of them. MUXI is LLM-agnostic:
- OpenAI (GPT-4o, GPT-4, etc.)
- Anthropic (Claude 3.5, Claude 3, etc.)
- Google (Gemini)
- Ollama (local models)
- Any OpenAI-compatible API
Different agents can use different providers in the same formation.
Learn more: LLM Providers | Formation Schema
Production & Scale
Can multiple users share one deployment?
Yes - multi-tenancy is built in. Each user gets:
- Isolated memory (no data leakage)
- Separate conversation history
- Their own API credentials for tools
One server, many users, complete isolation.
Learn more: Multi-Tenancy | Multi-Tenancy Deep Dive
Can the same user chat on Slack AND web?
Yes - multi-identity lets you link multiple identifiers to one user:
# Same user, different platforms
formation.associate_user_identifiers(
identifiers=[
"alice@email.com", # Email
"U12345ABC", # Slack ID
"user_123" # Your internal ID
]
)
# Now they all share the same memory
formation.chat("Hi", user_id="alice@email.com") # Same user
formation.chat("Hi", user_id="U12345ABC") # Same user
User chats on Slack, email, or web - same context everywhere.
Learn more: Multi-Identity Users | SDKs
Can users recall past conversations?
Yes - cross-session memory. Working memory spans sessions:
User: "Remember when we discussed Japan last week?"
MUXI: "Yes! You mentioned a 2-week trip in March..."
โ Found in working memory from previous session
Sessions are separate conversation threads, but memory flows across them. Users can reference past chats without specifying which session.
Learn more: Sessions | Memory System
How do I deploy to production?
One command:
muxi deploy
MUXI is a single binary - no dependencies, no Docker required (though Docker is supported). Supports GitOps workflows for PR-based deployments.
Learn more: Deploy to Production | Set Up CI/CD | Production Checklist
How do I monitor my agents?
Built-in observability. Every agent action emits structured events:
- LLM calls (tokens, latency, cost)
- Tool usage
- Workflow steps
- Errors
Export to Datadog, Elastic, Splunk, OpenTelemetry, or webhooks - no sidecars needed.
Learn more: Observability | Observability Events | Set Up Monitoring
Can I see what users are asking about?
Yes - automatic topic tagging. Every request gets 1-5 semantic topic tags:
Request: "Debug the OAuth authentication flow"
Topics: ["debugging", "oauth", "authentication", "api"]
No extra LLM calls - topics are extracted during request analysis. Use topics for dashboards, filtering, trend analysis, and alerting.
Learn more: Observability
Is it reliable enough for production?
Yes. Enterprise resilience patterns are baked in:
- Circuit breakers for failing dependencies
- Retries with exponential backoff
- Graceful degradation
- LLM response caching to reduce load and latency
- Auto-restart for crashed formations
Learn more: Resilience | Security Model
What do users see when something fails?
Helpful messages, not cryptic errors. The resilience layer translates technical failures:
Traditional: "Error: 401 Unauthorized"
MUXI: "Unable to connect to Linear. Please check that your
API token is configured correctly in settings."
Plus automatic context-aware handling:
- Rate limited? โ "Waiting 30 seconds before retrying..."
- Timeout? โ "The service is slow, retrying..."
- Partial failure? โ Delivers what succeeded + explains what didn't
Users stay informed, not frustrated.
How do I reduce LLM costs?
Several built-in features help:
Semantic LLM Caching - Not just exact matches! Similar requests hit cache:
"What's the weather?" โ "How's the weather today?" โ Cache hit!Typical savings: 70%+ cost reduction
- User Synopsis Caching - Compress long conversation history (80%+ token reduction)
- Efficient tool loading - Tool schemas indexed once, not sent every request
- Model mixing - Use cheaper models for simple tasks, expensive ones for complex
Learn more: LLM Caching | Memory Internals
Can I schedule recurring tasks?
Yes - scheduled tasks. Cron-style or natural language:
triggers:
daily-report:
schedule: "0 9 * * *" # Every day at 9am
action: "Generate daily analytics summary"
weekly-cleanup:
schedule: "every monday at 6am"
action: "Archive old conversations"
Learn more: Scheduled Tasks | Triggers & Webhooks
What if I need human approval for certain actions?
Use human-in-the-loop (HITL). Define which actions require approval:
agents:
finance:
approvals:
- action: "process_refund"
when: "amount > 1000"
notify: "finance-team@company.com"
The agent pauses, notifies the approver, and continues only after approval.
Learn more: Human-in-the-Loop
Real-Time & Async
Can I stream responses in real-time?
Yes. MUXI supports:
- SSE (Server-Sent Events) - Stream tokens as the model thinks
- WebSockets - Bidirectional real-time communication
Perfect for chat UIs and live dashboards.
Learn more: Real-Time Streaming | Response Formats
What about long-running tasks?
Use async operations. Long tasks run in the background with status updates. Users aren't left waiting.
Learn more: Async Operations
Can external systems trigger agents?
Yes - triggers and webhooks:
- HTTP webhooks trigger agent actions
- Cron-style scheduled tasks
- Natural language scheduling ("remind me tomorrow")
Learn more: Triggers & Webhooks | Create Triggers
Security
How are secrets and API keys handled?
Encrypted at rest. API keys never stored in plain text. Per-user credentials supported - each user can store their own keys for tools.
Learn more: Secrets & Security
How does authentication work?
HMAC-signed requests between CLI, SDKs, and server. Plus complete user isolation - data never leaks between users.
Learn more: Authentication | Security Model
Can users bring their own API keys?
Yes - per-user credentials. Each user can store their own API keys for tools:
# User stores their own OpenAI key
client.set_user_secret("openai_api_key", "sk-...")
# Agent uses user's key for their requests
# Other users' requests use other keys (or formation default)
Great for platforms where users pay for their own LLM usage.
Learn more: User Credentials | Secrets & Security
Developer Experience
How do I develop locally?
muxi dev
Runs your formation locally with hot reload. Change your .afs file, see changes immediately.
Learn more: Quickstart | CLI Cheatsheet
Are there SDKs?
Yes - Python, TypeScript, and Go:
from muxi import Muxi
client = Muxi()
response = client.chat("Hello!")
Learn more: Python SDK | TypeScript SDK | Go SDK
Can I embed MUXI in my own app?
Yes. The embeddable runtime lets you run MUXI inside your application - no separate server process.
Learn more: Embed in Your App
Registry & Sharing
Can I use pre-built agents?
Can I share my formations?
Yes. Publish to the registry:
muxi publish
Supports semantic versioning, private formations, and organization sharing.
Learn more: Publish Formations | Versioning
Business & Licensing
Is MUXI really free?
Yes. The core stack is always free and self-hostable. No paywalls, no feature restrictions, no bait-and-switch licensing.
- Server, Runtime, CLI, SDKs - all open source
- Self-host on your infrastructure forever
- No usage limits, no "free tier"
Learn more: Our creed
How do you make money?
MUXI follows the standard open-source infrastructure model:
- GitHub Sponsors - Supporting OSS development
- Professional services - Priority support and deployment help for production teams
The core product stays free. Revenue comes from optional services, not from restricting features.
What's the licensing model?
| Component | License | What it means |
|---|---|---|
| Server & Runtime | Elastic License 2.0 | Free to use, can't resell as a hosted service |
| CLI & SDKs | Apache 2.0 | Fully permissive, do anything |
| Formations | Apache 2.0 | Your agents are yours |
You CAN:
- Use freely for internal projects, products, research
- Use freely for building platforms and commercial applications
- Build and sell products that use MUXI
- Deploy for clients and customers
- Self-host on your infrastructure
You CAN'T:
- Offer MUXI itself as a hosted service (that's it)
What if you disappear tomorrow?
You're protected:
- Self-hosted - Runs on your infrastructure, not ours
- Open source - Fork and maintain the code yourself
- Portable formats - Formations are YAML, not proprietary
- Standard protocols - MCP and A2A work with other systems
MUXI is backed by VarOps LLC with a long-term commitment. Revenue comes from sustainable services, not VC burn rate.
How is this different from LangChain/CrewAI?
Different layer of the stack:
| LangChain/CrewAI | MUXI | |
|---|---|---|
| What | Python frameworks | Production server |
| How | Write code | Declare in YAML |
| Deploy | You figure it out | muxi deploy
|
| Memory | BYO | Built-in (3-tier) |
| Multi-tenant | BYO | Built-in |
| Observability | BYO | Built-in |
LangChain helps you build agents in code. MUXI runs agents in production.
Next Steps
Quickstart - Build your first agent in 5 minutes
Installation - Get MUXI running on your machine
Architecture - Understand how it all fits together
Examples - See real formations in action