Quick Start
🔵 Goal — get Agent OS running in a couple of minutes and see a working agent:
open the widget and chat with hello-agent — the demo agent from the starter
config.
2.1 Launch
You need the compiled agent-os binary (a single CLI, subcommand serve) and
the config/ tree. The distribution (download) has both:
the binaries are in bin/, the starter config is in config/.
The server is launched from the root of the unpacked archive — config/ and .env
are looked up relative to the current folder, not next to the binary:
agent-os-distrib/ ← launch from here
├── bin/agent-os
├── config/
├── .env.example
└── .env ← you create this
The API key goes into .env — secrets only there, not in YAML:
cp .env.example .env # Windows: copy .env.example .env
Open .env and put your key into DEEPSEEK_API_KEY (also works with
AGENT_OS_API_KEY). The remaining lines in the template are commented out — no need to
touch them. The key is optional: without it the server still starts, and agents respond
with simulated answers (a warning will appear in the log).
Then launch:
./bin/agent-os serve # Windows: bin\agent-os.exe serve
The server comes up on 127.0.0.1:3000. A different address — via a variable
(in .env or in the environment):
AGENT_OS_BIND=0.0.0.0:8080 ./bin/agent-os serve
Check that the server is alive and which agents are loaded:
curl http://127.0.0.1:3000/health
The templates field should contain hello-agent and mcp-demo-agent.
2.2 See the agent right away
Open in your browser:
http://127.0.0.1:3000/widget?model=hello-agent
This is the widget page, already connected to the hello-agent agent — you can type in
the chat. Ask it to count words or characters in a text: it will call its
text_stats tool (a JavaScript script from
config/agents/hello/tools/).
In ?model= you specify the template name — the name: field from agent.yaml
(hello-agent), not the folder name (hello).
The second demo agent, mcp-demo-agent, reads files through an external MCP server and
requires Node.js to be installed (npx in PATH); without Node it will load, but
the tool call will return an error.
Other ready-made pages:
| URL | What it is |
|---|---|
/widget?model=hello-agent |
widget with a specific agent |
/demo |
widget demo |
/demo/overlay |
widget over live sites (tabs from config/demo.yaml) |
/site/ |
markdown site from config/web/ |
/sessions, /dashboard |
admin panels (sessions, system state) |
/v1/templates |
list of available agent templates |
The starter config has neither config/web/ nor config/demo.yaml, so
/site/ returns 404, and /demo/overlay has no tabs — until you
add them. The site is described in 13-web-content; the overlay
tabs are set in config/demo.yaml (tabs: [{label, url, model}],
hot-reloads on the fly).
2.3 Provider — not just DeepSeek
The model is set in config/server.yaml in the provider block. By default it's
DeepSeek, but any OpenAI-compatible API and local models will work:
provider:
base_url: "https://api.deepseek.com"
model: "deepseek-chat"
api_key: "" # пусто → ключ берётся из .env
Examples:
- Ollama (local):
base_url: "http://localhost:11434/v1",model: "llama3". - OpenAI:
base_url: "https://api.openai.com/v1",model: "gpt-4o".
The provider's address and model are set only here; any provider's key
goes into .env as AGENT_OS_API_KEY (or DEEPSEEK_API_KEY). Variables
like OPENAI_API_KEY, OPENAI_BASE_URL, and AGENT_OS_MODEL are not read by the server.
Several models at once — via named models: configs; the agent template
selects the one it needs with the model: field in its agent.yaml.
2.4 Chat via the API
For integration, the same conversation is available through the chat endpoint (SSE stream):
curl http://127.0.0.1:3000/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{"model":"hello-agent","messages":[{"role":"user","content":"Привет!"}]}'
Here model is the agent template name. The full request and event format is in
08-http-api.
2.5 Embed the widget
On any page of a site:
<script src="http://127.0.0.1:3000/widget.js"></script>
2.6 Where to go next
- Configure the server (provider, scheduler, budgets, auth) →
03-server-configuration. - Create your own agent →
04-building-an-agent.