Write a .agw agent, validate it before you run it, and reuse or connect it into the rest of Agent Web.
.agw shape
Every file starts with a version pragma, then an agent
block declaring its identity and boundaries, then one or more
intent blocks. Instructions are plain text —
an intent with no instructions: block is
rejected by the daemon (MissingBehavior), so
an agent always says what it does, in its own words:
pragma agw "1.0";
agent MyAgent {
version: "1.0.0";
domain: "my-agent.example.com";
network {
deny all;
}
}
intent DoTheThing {
description: "One-line summary of what this intent does.";
instructions: """
Say, concretely, what the model should do with its input and
what it should return.
""";
}
This is the same shape this repository's own dev-assistant agents use
— see dev-agents/agents/*.agw in the source
tree for complete, working examples (knowledge Q&A, feature
scoping, code review, debugging), each independently reusable.
agw check <file> runs syntax and
semantic analysis only — no output is written, nothing executes. It
exits non-zero on any diagnostic error; --json
emits every diagnostic as one machine-readable array instead of
human-readable text. Run it before you import a file anywhere else.
agw check my-agent.agw
Agent Web mirrors what you author to ~/.agentweb/agents
on disk (disable with ACP_IDE_EXPORT=0,
relocate with ACP_IDE_EXPORT_DIR). The MCP
bridge watches that folder live and, once connected, serves each agent
as a prompt your IDE's own model can call — no API key, no separate
subscription.
agentweb mcp install
Detects VS Code, Cursor, Windsurf, Zed, and Codex and writes each one's config directly. Claude Code and JetBrains IDEs get printed instructions instead, since their MCP config is managed by their own tooling.
In the desktop app, Developer Studio's Bring one in
import loads an existing .agw file or an
exported agent.yaml so you can inspect and
continue editing it — the same "Open Existing Project" path used to
load any of this project's own dev-assistant agents.