Start here
Quickstart gets an agent registered and visible, and Core concepts explains the four ideas the rest of the product is built from. Dashboard covers the other side — what each screen does once your agents are running. The reference pages are for when you want detail.
You don't need to restructure your agent. AgentWay attaches to a loop you already wrote. There is no base class to inherit, no framework to adopt, and no requirement about how your agent is built or hosted.
What AgentWay is
A control plane for long-lived autonomous agents. It gives you one place to:
- See every agent you run, live — status, current task, and full history.
- Direct them — send an instruction to one agent, a department, or everything, without a redeploy.
- Pause them — one click, and the agent stops at its next checkpoint with state intact.
- Answer them — an agent that hits a decision it shouldn't make alone can stop and ask you.
What AgentWay is not
So you know clearly what AgentWay does not do.
- Not an agent framework. It doesn't help you build an agent, call a model, or manage prompts. Use whatever you already use.
- Not a host. Your agents run wherever they run — your VPS, your containers, your laptop. AgentWay never executes your code.
- Not a way to force behaviour. AgentWay delivers an instruction and records what happened. Whether your agent acts on it correctly is your code's responsibility.
What counts as an "agent"
AgentWay is built for long-lived autonomous processes: you execute it once and it keeps running on its own loop, doing work without being prompted. A document pipeline, a monitoring bot, a support triage worker.
That assumption shows up in the design. Because an agent is supposed to be running, silence is treated as an error — an agent that stops checking in is marked offline and flagged red, rather than assumed to have finished normally.
A request/response service that only wakes up when called is a poor fit — it will look permanently offline, because it is.
The shape of it
| Concept | What it is |
|---|---|
| Project |
A workspace. Has a public id like
aw_x7k2m9p4qa that you put in your agent's source.
|
| Scope |
A department inside a project — data,
engineering.prod. Holds agents, has its own key.
|
| Agent | One long-lived process. Registers itself on first run; no dashboard step needed. |
| Directive | An instruction from a human, delivered to one or many agents. |
| Inbox message | A question from an agent, waiting on a human. |
| Scope tree | Shared context inside a scope. Agents record what they did under branches you create, and read what their colleagues recorded. |
Integration
This is a complete, working AgentWay agent.
from agentway import Agent
agent = Agent(
project_id="aw_x7k2m9p4qa",
scope="data",
slug="invoice-processor",
name="Invoice Processor",
)
while agent.running():
do_one_unit_of_work()
That single agent.running() call is the heartbeat, the
pause check, and the inbox — one HTTP request per loop iteration. An
agent that calls nothing else still gets liveness detection,
cooperative pause, and directive delivery.
To let it write to the scope tree, add the branches it may write to. They must already exist:
agent = Agent(
project_id="aw_x7k2m9p4qa",
scope="data",
slug="invoice-processor",
name="Invoice Processor",
branches=["pipelines"],
)
Reading the tree needs no declaration — every agent reads its whole scope. Only writing is restricted, and an agent that declares no branches cannot write.