<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>AGW · Put agents to work in your workspace on AGW</title><link>https://agw-docs.pages.dev/</link><description>Recent content in AGW · Put agents to work in your workspace on AGW</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Fri, 25 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://agw-docs.pages.dev/index.xml" rel="self" type="application/rss+xml"/><item><title>Custom agents</title><link>https://agw-docs.pages.dev/docs/features/custom-agent/</link><pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate><guid>https://agw-docs.pages.dev/docs/features/custom-agent/</guid><description>&lt;h2 id="define-an-agent-for-your-task"&gt;Define an agent for your task&#10;&lt;/h2&gt;&#10;&lt;p&gt;In AGW, you can combine a model, instructions, and tools into a reusable agent. It assesses the task and context, selects available tools to act, and uses the results to continue its work.&lt;/p&gt;&#10;&lt;p&gt;For example, create a documentation reviewer that reads material, identifies unclear passages, and suggests revisions. Add the appropriate tools and permissions when it needs to edit files directly.&lt;/p&gt;</description></item><item><title>Agentflow</title><link>https://agw-docs.pages.dev/docs/features/agentflow/</link><pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate><guid>https://agw-docs.pages.dev/docs/features/agentflow/</guid><description>&lt;h2 id="arrange-defined-steps-into-a-workflow"&gt;Arrange defined steps into a workflow&#10;&lt;/h2&gt;&#10;&lt;p&gt;Agentflow means Agent Workflow. &lt;strong&gt;Agents reason and act; Agentflow routes work and executes predefined steps.&lt;/strong&gt; Connect nodes on the canvas to define what happens first, who receives each result, and where human confirmation is required.&lt;/p&gt;&#10;&lt;p&gt;For example, an organizing agent decides which information to retain, and a reviewing agent checks for omissions and unclear wording. Agentflow sets the sequence: organize, review, then request human confirmation.&lt;/p&gt;</description></item><item><title>Development setup</title><link>https://agw-docs.pages.dev/docs/development/setup/</link><pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate><guid>https://agw-docs.pages.dev/docs/development/setup/</guid><description>&lt;p&gt;Prerequisites: .NET 10 SDK, Node.js 24, pnpm 12.5.1 (pinned by &lt;code&gt;packageManager&lt;/code&gt; in &lt;code&gt;src/clients/package.json&lt;/code&gt;), and Git. Docker Buildx is needed only for container images. These application commands run in the AGW repository; the documentation site does not depend on this toolchain.&lt;/p&gt;&#10;&lt;h2 id="backend"&gt;Backend&#10;&lt;/h2&gt;&#10;&lt;div class="td-code td-code--untitled" id="td-code-19f1c2b7-fence-0" data-td-code data-td-code-auto-id&#10; data-td-language="bash" data-td-line-count="6"&gt;&#10; &lt;div class="td-code__viewport" id="td-code-19f1c2b7-fence-0-viewport" data-td-code-viewport&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git clone https://github.com/zxyao145/agw.git&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; agw&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git config core.hooksPath .githooks&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dotnet restore Agw.slnx&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dotnet tool restore&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dotnet run --project src/server/Agw.Standalone.Host&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;Initialize at &lt;code&gt;http://localhost:30816/setup&lt;/code&gt;. Replace &lt;code&gt;dotnet run&lt;/code&gt; with &lt;code&gt;dotnet watch&lt;/code&gt; for hot reload.&lt;/p&gt;</description></item><item><title>Model providers</title><link>https://agw-docs.pages.dev/docs/guides/providers/</link><pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate><guid>https://agw-docs.pages.dev/docs/guides/providers/</guid><description>&lt;p&gt;Before a custom agent can answer, AGW needs to know which model to use, where to send requests, and how to authenticate. Prepare the API endpoint, model ID, and API key supplied by your model service.&lt;/p&gt;&#10;&lt;p&gt;This page covers model configuration in AGW. To use an existing command-line setup, see &lt;a href="https://agw-docs.pages.dev/docs/guides/external-agents/"&gt;External agents&lt;/a&gt;.&lt;/p&gt;&#10;&lt;h2 id="three-configuration-objects"&gt;Three configuration objects&#10;&lt;/h2&gt;&#10;&lt;p&gt;A &lt;strong&gt;Provider&lt;/strong&gt; describes the endpoint and authentication. A &lt;strong&gt;Model&lt;/strong&gt; describes a model and its limits. A &lt;strong&gt;Model Provider&lt;/strong&gt; links the two for agent selection. Creating a Model alone does not establish a connection.&lt;/p&gt;</description></item><item><title>Shared context across agents</title><link>https://agw-docs.pages.dev/docs/features/shared-context/</link><pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate><guid>https://agw-docs.pages.dev/docs/features/shared-context/</guid><description>&lt;h2 id="let-agents-build-on-each-others-work"&gt;Let agents build on each other’s work&#10;&lt;/h2&gt;&#10;&lt;p&gt;Use different agents to analyze requirements, write code, and review results. When you switch targets within the same conversation in a Project, AGW supplies the receiving agent with new public text from the other targets, reducing the need to copy background information and progress updates.&lt;/p&gt;&#10;&lt;p&gt;For example, let Coding make a change, switch to Review to assess it using the discussion so far, then switch back to Coding to address the feedback.&lt;/p&gt;</description></item><item><title>Standalone and Docker</title><link>https://agw-docs.pages.dev/docs/operations/standalone/</link><pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate><guid>https://agw-docs.pages.dev/docs/operations/standalone/</guid><description>&lt;p&gt;Standalone provides management pages, conversations, and scheduled jobs in one Server. It suits a local trial or a single host. Defaults use SQLite for storage and run tasks in the Server process, without a separate database service.&lt;/p&gt;&#10;&lt;p&gt;Use the Docker image, or build a Portable Server for your operating system and processor. Both include Web. Start with local access, then configure directory mounts and remote access as needed.&lt;/p&gt;&#10;&lt;h2 id="local-docker-trial"&gt;Local Docker trial&#10;&lt;/h2&gt;&#10;&lt;div class="td-code td-code--untitled" id="td-code-47058887-fence-0" data-td-code data-td-code-auto-id&#10; data-td-language="bash" data-td-line-count="5"&gt;&#10; &lt;div class="td-code__viewport" id="td-code-47058887-fence-0-viewport" data-td-code-viewport&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker run -d --name agw &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --restart unless-stopped &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -p 127.0.0.1:30816:8080 &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -v agw-data:/data &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ghcr.io/zxyao145/agw:latest&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;Open &lt;code&gt;http://localhost:30816/setup&lt;/code&gt; and initialize. Through a Docker port mapping, the container does not see a loopback source address, so Setup asks for the one-time Setup Code; find “Agw remote setup code” in the startup log with &lt;code&gt;docker logs agw&lt;/code&gt;. The image includes static Web assets, so the browser connects directly to Server. &lt;code&gt;latest&lt;/code&gt; is convenient for evaluation; use a fixed release tag for a maintained deployment.&lt;/p&gt;</description></item><item><title>What is AGW?</title><link>https://agw-docs.pages.dev/docs/start/overview/</link><pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate><guid>https://agw-docs.pages.dev/docs/start/overview/</guid><description>&lt;p&gt;AGW is a self-hosted agent workspace for individuals and small engineering teams. It can also serve as an agent gateway. A shared interface brings together custom agents and external agents such as Claude Code, Codex, and Pi, with conversations and execution records organized around projects.&lt;/p&gt;&#10;&lt;figure class="td-figure"&gt;&#10; &lt;img src="https://agw-docs.pages.dev/images/screenshots/desktop-chat.png" alt="AGW Desktop chat: select a Project and Agent, then enter a message." loading="lazy" decoding="async"&gt;&lt;figcaption&gt; &lt;span class="td-fig-caption"&gt;AGW Desktop chat: select a Project and Agent, then enter a message.&lt;/span&gt;&lt;/figcaption&gt;&#10;&lt;/figure&gt;&lt;h2 id="core-concepts"&gt;Core concepts&#10;&lt;/h2&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--static"&gt;&#10;&lt;table&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col"&gt;Concept&lt;/th&gt;&#10; &lt;th scope="col"&gt;Purpose&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Model Provider&lt;/td&gt;&#10; &lt;td&gt;Connect a provider and model into a usable model configuration&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Agent&lt;/td&gt;&#10; &lt;td&gt;Configure instructions, a model, and capabilities, or connect an external agent&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Project&lt;/td&gt;&#10; &lt;td&gt;A task space containing working directories, context, and conversations&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Chat&lt;/td&gt;&#10; &lt;td&gt;Start interactive execution, inspect messages and tool activity, and answer human input requests&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Agentflow&lt;/td&gt;&#10; &lt;td&gt;Connect nodes into an executable workflow&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Job&lt;/td&gt;&#10; &lt;td&gt;Trigger an agent or agentflow once, at an interval, or on a Cron schedule&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;See &lt;a href="https://agw-docs.pages.dev/docs/start/concepts/"&gt;Core concepts&lt;/a&gt; for the distinctions and how they work together.&lt;/p&gt;</description></item><item><title>Core concepts</title><link>https://agw-docs.pages.dev/docs/start/concepts/</link><pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate><guid>https://agw-docs.pages.dev/docs/start/concepts/</guid><description>&lt;p&gt;In AGW, models provide reasoning, agents organize instructions and capabilities, and Projects provide a workspace. Use Chat to interact with an agent, Agentflows to orchestrate steps, and Jobs to schedule execution.&lt;/p&gt;&#10;&lt;h2 id="models-and-model-providers"&gt;Models and Model Providers&#10;&lt;/h2&gt;&#10;&lt;p&gt;Model configuration has three layers:&lt;/p&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--static"&gt;&#10;&lt;table&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col"&gt;Concept&lt;/th&gt;&#10; &lt;th scope="col"&gt;What it describes&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Provider&lt;/td&gt;&#10; &lt;td&gt;The model service protocol, endpoint, and authentication&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Model&lt;/td&gt;&#10; &lt;td&gt;The model identifier, context window, maximum output, and other specifications&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Model Provider&lt;/td&gt;&#10; &lt;td&gt;A link between a model and the service providing it, selectable by an agent&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;For example, you can link the same model to different Providers, then choose the actual connection for an agent. See &lt;a href="https://agw-docs.pages.dev/docs/guides/providers/"&gt;Model providers&lt;/a&gt; for configuration.&lt;/p&gt;</description></item><item><title>Architecture and module boundaries</title><link>https://agw-docs.pages.dev/docs/development/architecture/</link><pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate><guid>https://agw-docs.pages.dev/docs/development/architecture/</guid><description>&lt;p&gt;Prerequisite: a working source setup. Identify the business owner of a use case before tracing cross-module capabilities through Contracts.&lt;/p&gt;&#10;&lt;h2 id="backend-organization"&gt;Backend organization&#10;&lt;/h2&gt;&#10;&lt;p&gt;AGW is a modular monolith. &lt;code&gt;Agw.Host&lt;/code&gt; supplies shared hosting; Control Plane, Data Plane, and Standalone compose the modules they need. Business modules follow &lt;code&gt;Api → Application → Domain ← Infrastructure&lt;/code&gt;, creating only necessary layers.&lt;/p&gt;&#10;&lt;pre class="td-mermaid-source"&gt;&lt;code class="language-mermaid"&gt;flowchart LR&#10; API[Api] --&amp;gt; APP[Application]&#10; APP --&amp;gt; DOMAIN[Domain]&#10; INFRA[Infrastructure] --&amp;gt; DOMAIN&lt;/code&gt;&lt;/pre&gt;&lt;div class="td-table-scroll td-table-scroll--static"&gt;&#10;&lt;table&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col"&gt;Layer&lt;/th&gt;&#10; &lt;th scope="col"&gt;Responsibility&lt;/th&gt;&#10; &lt;th scope="col"&gt;What to inspect&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Api&lt;/td&gt;&#10; &lt;td&gt;Receive requests and return responses&lt;/td&gt;&#10; &lt;td&gt;Routes, inputs, and outputs&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Application&lt;/td&gt;&#10; &lt;td&gt;Complete a business operation&lt;/td&gt;&#10; &lt;td&gt;Authorization, queries, transactions, and call order&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Domain&lt;/td&gt;&#10; &lt;td&gt;Hold business data and express rules&lt;/td&gt;&#10; &lt;td&gt;Entities, Behaviors, and DomainServices&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Infrastructure&lt;/td&gt;&#10; &lt;td&gt;Connect databases and external systems&lt;/td&gt;&#10; &lt;td&gt;Persistence and concrete adapters&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;Domain entities hold state. A Behavior handles rules within one Aggregate, while a DomainService handles rules that need facts beyond it. Application loads data, coordinates these calls, and persists changes. Ordinary CRUD stays in Application without creating a Behavior for every entity.&lt;/p&gt;</description></item><item><title>Create a custom agent</title><link>https://agw-docs.pages.dev/docs/guides/agents/</link><pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate><guid>https://agw-docs.pages.dev/docs/guides/agents/</guid><description>&lt;p&gt;An agent is a reusable assistant configuration. Its model interprets requests, its instructions define the task, and its tools determine which operations it can perform. For example, create separate agents for explaining code and reviewing documentation, then select one in Chat.&lt;/p&gt;&#10;&lt;p&gt;Start with a working &lt;a href="https://agw-docs.pages.dev/docs/guides/providers/"&gt;Model Provider&lt;/a&gt;. This page covers custom agents run by AGW; see &lt;a href="https://agw-docs.pages.dev/docs/guides/external-agents/"&gt;External agents&lt;/a&gt; for Claude Code, Codex, and Pi.&lt;/p&gt;&#10;&lt;h2 id="create-an-agent"&gt;Create an agent&#10;&lt;/h2&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Open &lt;strong&gt;Agents&lt;/strong&gt; and click &lt;strong&gt;Create&lt;/strong&gt;. Keep &lt;strong&gt;Agent Type&lt;/strong&gt; set to &lt;code&gt;System&lt;/code&gt; (a custom agent) and enter a &lt;strong&gt;Display Name&lt;/strong&gt; that describes its responsibility.&lt;/li&gt;&#10;&lt;li&gt;Select a &lt;strong&gt;Model Provider&lt;/strong&gt;. In &lt;strong&gt;Instructions&lt;/strong&gt;, describe the task, input, and expected output. &lt;strong&gt;Create&lt;/strong&gt; stays disabled until the Display Name and Model Provider are set.&lt;/li&gt;&#10;&lt;li&gt;Configure capabilities as needed in the &lt;strong&gt;Tools&lt;/strong&gt;, &lt;strong&gt;Skills&lt;/strong&gt;, &lt;strong&gt;MCP Tool Server&lt;/strong&gt;, &lt;strong&gt;Integrations&lt;/strong&gt;, and &lt;strong&gt;Environment Variables&lt;/strong&gt; tabs. File capabilities require a correct Project workspace.&lt;/li&gt;&#10;&lt;li&gt;Save, confirm the agent is enabled, and run a small task in Chat.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;For example, start with a “Code explainer” that answers questions, then add read-only file capabilities after verifying the model. Instructions cannot grant tool access beyond execution permissions.&lt;/p&gt;</description></item><item><title>Image input</title><link>https://agw-docs.pages.dev/docs/features/image-input/</link><pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate><guid>https://agw-docs.pages.dev/docs/features/image-input/</guid><description>&lt;h2 id="add-visual-context"&gt;Add visual context&#10;&lt;/h2&gt;&#10;&lt;p&gt;Attach images when asking about a UI problem, design, or chart. For example, send an error screenshot with the steps that led to it, or ask a vision-capable model to inspect a page layout.&lt;/p&gt;&#10;&lt;h2 id="ask-a-specific-question"&gt;Ask a specific question&#10;&lt;/h2&gt;&#10;&lt;p&gt;For example: “The Save button is obscured in this screenshot. Identify possible layout problems and tell me what else you need to know.” When comparing images, label the expected design and the current page so the agent can focus on the difference.&lt;/p&gt;</description></item><item><title>Install and configure Server</title><link>https://agw-docs.pages.dev/docs/start/install/</link><pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate><guid>https://agw-docs.pages.dev/docs/start/install/</guid><description>&lt;p&gt;AGW needs a running Server and a client to operate it. For a first local installation, choose Desktop Full. If Server already exists, use Desktop Client or a browser. After installation, configure a model service or external agent to start a conversation.&lt;/p&gt;&#10;&lt;h2 id="installation-paths"&gt;Installation paths&#10;&lt;/h2&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--static"&gt;&#10;&lt;table&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col"&gt;Method&lt;/th&gt;&#10; &lt;th scope="col"&gt;Best for&lt;/th&gt;&#10; &lt;th scope="col"&gt;Key differences&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Desktop Full&lt;/td&gt;&#10; &lt;td&gt;A local graphical workspace&lt;/td&gt;&#10; &lt;td&gt;Installs both the desktop client and Server; Server runs as a current-user background service&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Desktop Client&lt;/td&gt;&#10; &lt;td&gt;Connecting to an existing Server&lt;/td&gt;&#10; &lt;td&gt;Installs only the desktop client, without Server; connects to a local or remote Server&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Docker&lt;/td&gt;&#10; &lt;td&gt;Containerized self-hosting&lt;/td&gt;&#10; &lt;td&gt;Runs Server in a container with Web included; mounts provide persistent data and workspace access&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Portable Server&lt;/td&gt;&#10; &lt;td&gt;Hosting directly on a machine&lt;/td&gt;&#10; &lt;td&gt;Runs the Server executable directly with Web included; no Docker or desktop client required&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Source&lt;/td&gt;&#10; &lt;td&gt;Development and debugging&lt;/td&gt;&#10; &lt;td&gt;Build and run the backend and required clients yourself to modify code and debug modules&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;h2 id="desktop"&gt;Desktop&#10;&lt;/h2&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Open &lt;a href="https://github.com/zxyao145/agw/releases"&gt;GitHub Releases&lt;/a&gt;.&lt;/li&gt;&#10;&lt;li&gt;Select Full or Client for your platform. Windows and Ubuntu currently support x64; macOS supports x64 and arm64.&lt;/li&gt;&#10;&lt;li&gt;Complete initialization on the first Full launch, or connect Client to an existing Server.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;Full and Client share an application identity and are mutually exclusive variants. Full installs a current-user Server daemon; closing Desktop does not stop it. Packages are currently unsigned and not notarized.&lt;/p&gt;</description></item><item><title>Split Control/Data Plane deployment</title><link>https://agw-docs.pages.dev/docs/operations/split/</link><pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate><guid>https://agw-docs.pages.dev/docs/operations/split/</guid><description>&lt;p&gt;Split deployment runs management and scheduling in Control Plane and task execution in Data Plane. Use it when execution environments need separate maintenance or additional nodes. For a trial on one host, &lt;a href="https://agw-docs.pages.dev/docs/operations/standalone/"&gt;Standalone&lt;/a&gt; is simpler to configure.&lt;/p&gt;&#10;&lt;p&gt;This page assumes familiarity with containers, databases, and reverse proxies. Prepare shared PostgreSQL, Data Protection keys for decrypting credentials, and workspaces accessible to every execution node. The entry proxy must support WebSocket for conversation events.&lt;/p&gt;</description></item><item><title>APIs and execution protocols</title><link>https://agw-docs.pages.dev/docs/development/api/</link><pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate><guid>https://agw-docs.pages.dev/docs/development/api/</guid><description>&lt;p&gt;Prerequisites: access to a development Server and a valid authenticated identity, such as an API Key or a browser session. Use current OpenAPI and owning-module Contracts for exact fields; this site does not duplicate the complete schema.&lt;/p&gt;&#10;&lt;h2 id="protocol-boundaries"&gt;Protocol boundaries&#10;&lt;/h2&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--static"&gt;&#10;&lt;table&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col"&gt;Interface&lt;/th&gt;&#10; &lt;th scope="col"&gt;Purpose and contract&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Management JSON APIs&lt;/td&gt;&#10; &lt;td&gt;Bens.Results &lt;code&gt;ApiResult&lt;/code&gt; envelopes, unwrapped by typed client helpers&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;/api/hubs/exec&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;SignalR execution commands, state, and events; mapped by Data Plane and Standalone only and accepts only the WebSocket transport. The official client connects with &lt;code&gt;skipNegotiation: true&lt;/code&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;/api/agents/permission-capabilities&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;Query supported permissions for a target&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;/api/auth/oidc/providers&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;Enabled sign-in providers, used to render the sign-in buttons&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;/api/auth/oidc/login&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;Redirects to the provider; &lt;code&gt;client&lt;/code&gt; is &lt;code&gt;web&lt;/code&gt; or &lt;code&gt;desktop&lt;/code&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;/api/auth/desktop/exchange&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;Desktop exchanges a one-time code plus its verifier for an API Key&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;A2A&lt;/td&gt;&#10; &lt;td&gt;Protocol-specific responses, mapped by Data Plane and Standalone only&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;/openapi/*&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;Contract entry point; served, together with the Scalar API reference, only in the Development environment by Control Plane or Standalone&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;Sign-in routes are served by Control Plane and Standalone. An API Key obtained by Desktop behaves like a manually created one and accesses resources as its creator.&lt;/p&gt;</description></item><item><title>Configuration and authentication</title><link>https://agw-docs.pages.dev/docs/operations/configuration/</link><pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate><guid>https://agw-docs.pages.dev/docs/operations/configuration/</guid><description>&lt;p&gt;This page covers deployment settings consumed by AGW Server and logging settings in the Host template. Configure models, Agents, Projects, and integration accounts through the management UI as described in their guides. Choose your deployment mode first, then apply changes and restart the relevant Hosts.&lt;/p&gt;&#10;&lt;h2 id="start-with-the-settings-relevant-to-your-task"&gt;Start with the settings relevant to your task&#10;&lt;/h2&gt;&#10;&lt;p&gt;For an initial local setup, keep defaults and complete initialization. Before relying on the service, locate its database and data directory and follow the &lt;a href="https://agw-docs.pages.dev/docs/operations/backup/"&gt;backup guide&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Connect external agents</title><link>https://agw-docs.pages.dev/docs/guides/external-agents/</link><pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate><guid>https://agw-docs.pages.dev/docs/guides/external-agents/</guid><description>&lt;p&gt;When you connect an external agent, tools such as Claude Code, Codex, or Pi perform the actual work. AGW provides a shared interface for configuration, conversations, and workflows, so you can keep using familiar tools while managing how you use them in AGW.&lt;/p&gt;&#10;&lt;p&gt;Prerequisites: the matching CLI is installed on the execution node and works under the Server&amp;rsquo;s account and environment. Installing it on a browser machine is insufficient; container execution needs the CLI inside the container.&lt;/p&gt;</description></item><item><title>Memory: preferences and project knowledge</title><link>https://agw-docs.pages.dev/docs/features/memory/</link><pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate><guid>https://agw-docs.pages.dev/docs/features/memory/</guid><description>&lt;h2 id="keep-information-worth-reusing"&gt;Keep information worth reusing&#10;&lt;/h2&gt;&#10;&lt;p&gt;A conversation may end while working preferences and project knowledge remain useful. AGW provides two kinds of Memory for later work.&lt;/p&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--static"&gt;&#10;&lt;table&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col"&gt;Memory&lt;/th&gt;&#10; &lt;th scope="col"&gt;Good for&lt;/th&gt;&#10; &lt;th scope="col"&gt;Scope&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;User Memory&lt;/td&gt;&#10; &lt;td&gt;Personal preferences, writing conventions, lasting background&lt;/td&gt;&#10; &lt;td&gt;The current user, across Projects&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Project Memory&lt;/td&gt;&#10; &lt;td&gt;Project conventions, decisions, working notes&lt;/td&gt;&#10; &lt;td&gt;The project’s working context&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;Configure the appropriate Memory capability on an Agent or Project, then ask the agent to save information and check or update it in later conversations. Memory needs deliberate maintenance; it does not automatically retain and inject every chat message forever. User Memory is isolated by user. Project Memory scope also depends on the project and storage choice; filesystem memory is shared when workspaces are shared. External agents (Claude Code, Codex, Pi) only receive existing User Memory entries (up to 50) as read-only context. They get no memory tools, so they cannot save or update memory, and Project Memory configured on the Agent or Project does not apply to them.&lt;/p&gt;</description></item><item><title>Chat and execution history</title><link>https://agw-docs.pages.dev/docs/guides/chat/</link><pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate><guid>https://agw-docs.pages.dev/docs/guides/chat/</guid><description>&lt;p&gt;Chat is where you send tasks to an agent or agentflow and inspect the results. Keep related questions in one conversation to retain the discussion and tool activity; start another conversation for a different topic.&lt;/p&gt;&#10;&lt;p&gt;Connect to the intended Server and prepare a working agent or agentflow. For an initial setup, follow &lt;a href="https://agw-docs.pages.dev/docs/start/first-chat/"&gt;Your first conversation&lt;/a&gt;.&lt;/p&gt;&#10;&lt;h2 id="an-interaction"&gt;An interaction&#10;&lt;/h2&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Open Chat and select the Project: in Desktop, use the project tabs at the top of the window; in Web, use the dropdown at the top of the left sidebar. Then choose the execution target in the selector at the top-left of the message box.&lt;/li&gt;&#10;&lt;li&gt;Enter the task, optionally attach images, and press Ctrl/Shift+Enter or click the send button. Enter alone inserts a new line.&lt;/li&gt;&#10;&lt;li&gt;Read streamed output and tool activity. Handle approval or user input requests in the conversation.&lt;/li&gt;&#10;&lt;li&gt;Review the conversation history and final execution state.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;Web, Desktop, and Mobile accept text plus JPEG, PNG, GIF, or WebP images. Paste images in Web and Desktop; choose them from the photo library on Mobile. A message may contain up to five images, each at most 5 MB and at most 10 MB combined. Image understanding also depends on the model.&lt;/p&gt;</description></item><item><title>Data, backups, and upgrades</title><link>https://agw-docs.pages.dev/docs/operations/backup/</link><pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate><guid>https://agw-docs.pages.dev/docs/operations/backup/</guid><description>&lt;p&gt;A complete backup includes AGW configuration and records, encryption keys, and project files. Copying only the installation directory or code repository can leave out data needed to restore the service.&lt;/p&gt;&#10;&lt;p&gt;Locate the actual database, data directory, and Project workspaces first. Use the defaults below as a guide and confirm them against the running configuration.&lt;/p&gt;&#10;&lt;h2 id="what-to-preserve"&gt;What to preserve&#10;&lt;/h2&gt;&#10;&lt;p&gt;&lt;code&gt;AgwDataDir&lt;/code&gt; defaults to &lt;code&gt;~/agw&lt;/code&gt;; Docker uses &lt;code&gt;/data&lt;/code&gt;. Paths expand &lt;code&gt;~&lt;/code&gt;; other relative paths resolve from the process working directory. The default SQLite database file is &lt;code&gt;&amp;lt;AgwDataDir&amp;gt;/database/agw.db&lt;/code&gt;, or &lt;code&gt;/data/database/agw.db&lt;/code&gt; in Docker.&lt;/p&gt;</description></item><item><title>Extend tools and integrations</title><link>https://agw-docs.pages.dev/docs/development/extensions/</link><pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate><guid>https://agw-docs.pages.dev/docs/development/extensions/</guid><description>&lt;p&gt;Prerequisites: understand module boundaries and decide whether the capability is general-purpose or business-owned. Begin with one small, verifiable capability.&lt;/p&gt;&#10;&lt;h2 id="tool-extension-path"&gt;Tool extension path&#10;&lt;/h2&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Put hand-written &lt;code&gt;IAgwTool&lt;/code&gt;, &lt;code&gt;IContextualTool&lt;/code&gt;, and &lt;code&gt;IToolBlock&lt;/code&gt; implementations in &lt;code&gt;Agw.Tools&lt;/code&gt;; the global catalog scans only that assembly for hand-written tools. Business tools belong in their module&amp;rsquo;s &lt;code&gt;Application/Tools&lt;/code&gt;, declared as attributed containers or supplied through a Skill, with DTOs in &lt;code&gt;Contracts/Tools&lt;/code&gt;.&lt;/li&gt;&#10;&lt;li&gt;Reference &lt;code&gt;Agw.Tools.Abstractions&lt;/code&gt;; add &lt;code&gt;Agw.Tools.Generators&lt;/code&gt; as an Analyzer for attributed declarations.&lt;/li&gt;&#10;&lt;li&gt;Explicitly declare permissions, argument descriptions, and return types. Standalone tools and attributed containers stay stateless; session state belongs in a Provider, session, or owned storage.&lt;/li&gt;&#10;&lt;li&gt;Register services and generated declarations in the owning module. Choose Skill exposure or explicit global catalog inclusion.&lt;/li&gt;&#10;&lt;li&gt;Verify discovery, arguments, permissions, project binding, and error mapping.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;The generator emits metadata, JSON Schema, and direct invocation delegates. Do not add runtime reflection scanning as a fallback. Skill tools come from two members: &lt;code&gt;IAgentSkillRegistration.Tools&lt;/code&gt; supplies hand-written &lt;code&gt;IProjectScopedAgwTool&lt;/code&gt; instances, and &lt;code&gt;ToolTypes&lt;/code&gt; supplies attributed container types generated through &lt;code&gt;IAgwToolSet&amp;lt;T&amp;gt;&lt;/code&gt;. They bind to a Project during execution. Registering a generated module does not automatically expose every tool globally.&lt;/p&gt;</description></item><item><title>Plan and Execute modes</title><link>https://agw-docs.pages.dev/docs/features/plan-execute/</link><pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate><guid>https://agw-docs.pages.dev/docs/features/plan-execute/</guid><description>&lt;h2 id="plan-before-taking-action"&gt;Plan before taking action&#10;&lt;/h2&gt;&#10;&lt;p&gt;Before changing code or starting a complex task, ask an agent to assess the situation and propose an approach. Configure the Mode ToolBlock on a custom agent or a Project to give custom agents Plan and Execute modes; on a Project, every custom agent running in that Project receives it.&lt;/p&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--static"&gt;&#10;&lt;table&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col"&gt;Mode&lt;/th&gt;&#10; &lt;th scope="col"&gt;Useful for&lt;/th&gt;&#10; &lt;th scope="col"&gt;Tool behavior&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Plan&lt;/td&gt;&#10; &lt;td&gt;Inspecting the situation, analyzing problems, proposing an approach&lt;/td&gt;&#10; &lt;td&gt;Only tools explicitly allowed in Plan are available&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Execute&lt;/td&gt;&#10; &lt;td&gt;Carrying out an agreed approach&lt;/td&gt;&#10; &lt;td&gt;Configured tools remain subject to permissions and approval rules&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;h2 id="example-revising-documentation"&gt;Example: revising documentation&#10;&lt;/h2&gt;&#10;&lt;p&gt;In Plan, ask: “Read the documentation and identify unclear terms and missing examples. Propose changes first.” Review the scope, then switch to Execute and ask the agent to apply the agreed changes. Inspect the diff to confirm that facts and limits were preserved.&lt;/p&gt;</description></item><item><title>Start your first conversation</title><link>https://agw-docs.pages.dev/docs/start/first-chat/</link><pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate><guid>https://agw-docs.pages.dev/docs/start/first-chat/</guid><description>&lt;p&gt;Prerequisites: initialization is complete, the management UI is accessible, and you have model provider credentials. This path creates a custom agent and does not require an external CLI.&lt;/p&gt;&#10;&lt;h2 id="1-set-up-a-model-connection"&gt;1. Set up a model connection&#10;&lt;/h2&gt;&#10;&lt;p&gt;Open model management and configure the three items below. The form layout may vary by client, but the information is the same.&lt;/p&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--static"&gt;&#10;&lt;table&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col"&gt;Setting&lt;/th&gt;&#10; &lt;th scope="col"&gt;What to prepare&lt;/th&gt;&#10; &lt;th scope="col"&gt;Purpose&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Provider&lt;/td&gt;&#10; &lt;td&gt;The service’s protocol, API endpoint, and API key&lt;/td&gt;&#10; &lt;td&gt;Where AGW sends requests and how it authenticates&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Model&lt;/td&gt;&#10; &lt;td&gt;The exact model ID, context window, and maximum output length&lt;/td&gt;&#10; &lt;td&gt;Which model to use and its content limits&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Model Provider&lt;/td&gt;&#10; &lt;td&gt;A link between the model and provider&lt;/td&gt;&#10; &lt;td&gt;The working connection an agent selects&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;Use the model ID supplied by the service. Model discovery may suggest &lt;code&gt;256,000 / 64,000&lt;/code&gt; for context and output limits; replace these defaults with the model’s actual specifications. See &lt;a href="https://agw-docs.pages.dev/docs/guides/providers/"&gt;Model providers&lt;/a&gt; for field details.&lt;/p&gt;</description></item><item><title>Structured responses with JSON Schema</title><link>https://agw-docs.pages.dev/docs/features/structured-output/</link><pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate><guid>https://agw-docs.pages.dev/docs/features/structured-output/</guid><description>&lt;h2 id="make-replies-readable-by-programs"&gt;Make replies readable by programs&#10;&lt;/h2&gt;&#10;&lt;p&gt;Agents return Markdown text by default, which reads well but is awkward to parse. Configure a Response Schema on an agent and its final reply becomes a JSON object matching the JSON Schema you supply, so Jobs, Agentflows, and API callers can read named fields directly.&lt;/p&gt;&#10;&lt;p&gt;For example, a documentation reviewer can return an &lt;code&gt;issues&lt;/code&gt; array whose entries contain &lt;code&gt;original&lt;/code&gt;, &lt;code&gt;problem&lt;/code&gt;, and &lt;code&gt;suggestion&lt;/code&gt;. A scheduled run can then file each entry as a ticket instead of searching through prose.&lt;/p&gt;</description></item><item><title>Logs and troubleshooting</title><link>https://agw-docs.pages.dev/docs/operations/troubleshooting/</link><pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate><guid>https://agw-docs.pages.dev/docs/operations/troubleshooting/</guid><description>&lt;p&gt;First locate the failing step: opening the page, signing in, calling a model, or using files and tools. Reproduce the problem with a small task so that each check narrows the cause.&lt;/p&gt;&#10;&lt;p&gt;Record the Server, Project, conversation, and time, then inspect the matching logs. In a split deployment, check Control Plane for management problems and Data Plane for execution problems.&lt;/p&gt;&#10;&lt;h2 id="diagnostic-order"&gt;Diagnostic order&#10;&lt;/h2&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--static"&gt;&#10;&lt;table&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col"&gt;Symptom&lt;/th&gt;&#10; &lt;th scope="col"&gt;Check first&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;UI unavailable&lt;/td&gt;&#10; &lt;td&gt;Listener, port, container mapping, proxy target&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Setup fails&lt;/td&gt;&#10; &lt;td&gt;Database connection, writable directories, remote Setup Code&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Login or API Key fails&lt;/td&gt;&#10; &lt;td&gt;Actual Server, revoked API Key, database auth state&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Third-party sign-in fails&lt;/td&gt;&#10; &lt;td&gt;&lt;code&gt;Auth:Oidc:PublicBaseUrl&lt;/code&gt;, the callback URL registered at the provider, client credentials, Server-to-provider network&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;No agent response&lt;/td&gt;&#10; &lt;td&gt;Model Provider, model ID, credentials, pending approval/input&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;CLI cannot start&lt;/td&gt;&#10; &lt;td&gt;Execution-node executable, account, environment&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Files missing&lt;/td&gt;&#10; &lt;td&gt;Selected root, Server path, mounts, permissions&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Job does not run&lt;/td&gt;&#10; &lt;td&gt;Enablement, future timestamp, UTC Cron, valid target, logs&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Wrong state after disconnect&lt;/td&gt;&#10; &lt;td&gt;Conversation selection, WebSocket proxy, background execution; in InProcess mode, running conversations show Interrupted after a Server restart and do not continue&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;h2 id="example-the-page-opens-but-the-agent-does-not-reply"&gt;Example: the page opens but the agent does not reply&#10;&lt;/h2&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Check whether Chat is waiting for approval or information, and respond if needed.&lt;/li&gt;&#10;&lt;li&gt;Send a plain text question through the same model connection. If it fails, check the API endpoint, model ID, and credentials.&lt;/li&gt;&#10;&lt;li&gt;If text works but a tool task fails, check tool bindings, directories, and host permissions.&lt;/li&gt;&#10;&lt;li&gt;In split deployments, a working management page with a failed chat connection suggests checking that &lt;code&gt;/api/hubs/exec&lt;/code&gt; routes to Data Plane and supports WebSocket.&lt;/li&gt;&#10;&lt;li&gt;Find the specific error in Server logs at the recorded time. Repeat the same small task after the fix.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;This sequence separates model, tool, and connection failures without changing several settings at once.&lt;/p&gt;</description></item><item><title>Projects, files, and workspaces</title><link>https://agw-docs.pages.dev/docs/guides/projects/</link><pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate><guid>https://agw-docs.pages.dev/docs/guides/projects/</guid><description>&lt;p&gt;A Project keeps a task’s directories, background information, and conversations together. For a code repository, you might create separate conversations for code exploration and troubleshooting while using the same workspace.&lt;/p&gt;&#10;&lt;p&gt;The account running AGW Server must be able to access these directories. Saving a Project creates a missing primary directory automatically; additional directories must already exist, use an absolute or &lt;code&gt;~&lt;/code&gt; path, and not duplicate another directory. With a remote Server, enter a path on that host. With Docker, enter the path inside the container.&lt;/p&gt;</description></item><item><title>Testing and contribution</title><link>https://agw-docs.pages.dev/docs/development/testing/</link><pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate><guid>https://agw-docs.pages.dev/docs/development/testing/</guid><description>&lt;p&gt;Prerequisite: dependencies are installed. Read root &lt;code&gt;AGENTS.md&lt;/code&gt; and the relevant rules under &lt;code&gt;docs/human/&lt;/code&gt; before changes, and preserve unrelated local work.&lt;/p&gt;&#10;&lt;h2 id="backend-checks"&gt;Backend checks&#10;&lt;/h2&gt;&#10;&lt;p&gt;From the repository root:&lt;/p&gt;&#10;&lt;div class="td-code td-code--untitled" id="td-code-ab12e404-fence-0" data-td-code data-td-code-auto-id&#10; data-td-language="bash" data-td-line-count="3"&gt;&#10; &lt;div class="td-code__viewport" id="td-code-ab12e404-fence-0-viewport" data-td-code-viewport&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dotnet build Agw.slnx&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dotnet &lt;span class="nb"&gt;test&lt;/span&gt; Agw.slnx&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dotnet csharpier check .&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;Test projects use xUnit v3 and run on Microsoft.Testing.Platform, selected by the root &lt;code&gt;global.json&lt;/code&gt;. Start with relevant tests when investigating a failure, such as &lt;code&gt;dotnet test tests/Agw.Files.Tests&lt;/code&gt;. Unit and composition tests use real implementations and pure option helpers, never mocks or fake implementations. Constructing &lt;code&gt;CodexAIAgent&lt;/code&gt; or &lt;code&gt;ClaudeCodeAIAgent&lt;/code&gt; probes the CLI, so those tests run as real CLI tests: they are opt-in, require the executable, and stay out of the default suite.&lt;/p&gt;</description></item><item><title>Tool approval</title><link>https://agw-docs.pages.dev/docs/features/tool-approval/</link><pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate><guid>https://agw-docs.pages.dev/docs/features/tool-approval/</guid><description>&lt;h2 id="confirm-before-an-operation"&gt;Confirm before an operation&#10;&lt;/h2&gt;&#10;&lt;p&gt;When an agent calls a tool, AGW can ask for confirmation according to your permission settings. Inspect the tool name and arguments before deciding whether it should proceed, particularly for file changes or command execution.&lt;/p&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--static"&gt;&#10;&lt;table&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col"&gt;Permission mode&lt;/th&gt;&#10; &lt;th scope="col"&gt;Ordinary write and execution tools&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Always ask&lt;/td&gt;&#10; &lt;td&gt;Ask for confirmation on every call&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Allow same arguments&lt;/td&gt;&#10; &lt;td&gt;After approval, reuse a matching argument grant within the current session&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Full access&lt;/td&gt;&#10; &lt;td&gt;Automatically approve ordinary tool calls&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;Ordinary read-only tools generally need no execution approval. Approval requirements come from the tool’s declared permission, not whether its name or command looks harmless.&lt;/p&gt;</description></item><item><title>File browsing and Git change review</title><link>https://agw-docs.pages.dev/docs/features/files-git/</link><pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate><guid>https://agw-docs.pages.dev/docs/features/files-git/</guid><description>&lt;h2 id="review-agent-changes-next-to-the-conversation"&gt;Review agent changes next to the conversation&#10;&lt;/h2&gt;&#10;&lt;p&gt;After an agent edits code, you need to see which files changed and whether each edit is what you expected. Switch to &lt;strong&gt;Files&lt;/strong&gt; in the Chat workspace to browse the Project workspace, inspect Git changes, and turn the spots that need work into line comments for the agent, all without opening a separate editor or terminal.&lt;/p&gt;&#10;&lt;figure class="td-figure"&gt;&#10; &lt;img src="https://agw-docs.pages.dev/images/screenshots/file-git.png" alt="AGW Files view: browse Project files and Git changes on the left, view file content or a diff on the right, and comment on code lines." loading="lazy" decoding="async"&gt;&lt;figcaption&gt; &lt;span class="td-fig-caption"&gt;AGW Files view: browse Project files and Git changes on the left, view file content or a diff on the right, and comment on code lines.&lt;/span&gt;&lt;/figcaption&gt;&#10;&lt;/figure&gt;&lt;h2 id="inspect-changes"&gt;Inspect changes&#10;&lt;/h2&gt;&#10;&lt;p&gt;Turn on the &lt;strong&gt;Diff&lt;/strong&gt; switch at the top of the file tree to show only files with Git changes, grouped into &lt;strong&gt;Staged&lt;/strong&gt; and &lt;strong&gt;Unstaged&lt;/strong&gt;. A file with both staged and unstaged edits appears once in each group. The letter next to a file name shows the change type: &lt;code&gt;A&lt;/code&gt; added, &lt;code&gt;M&lt;/code&gt; modified, &lt;code&gt;D&lt;/code&gt; deleted, &lt;code&gt;U&lt;/code&gt; untracked.&lt;/p&gt;</description></item><item><title>Agentflow</title><link>https://agw-docs.pages.dev/docs/guides/agentflows/</link><pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate><guid>https://agw-docs.pages.dev/docs/guides/agentflows/</guid><description>&lt;p&gt;Agentflow means &lt;strong&gt;Agent Workflow&lt;/strong&gt;: a workflow that connects several processing steps. One agent might prepare material, another review it, and a person approve the result. The canvas shows the steps, their inputs and outputs, and their order.&lt;/p&gt;&#10;&lt;p&gt;Verify each agent independently before connecting it. Start with one path from input to output, then add branches and approvals once it works.&lt;/p&gt;&#10;&lt;h2 id="build-the-first-flow"&gt;Build the first flow&#10;&lt;/h2&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Open the Agentflows editor and start with its single Input node.&lt;/li&gt;&#10;&lt;li&gt;Add an Agent node, select a verified agent, and connect Input to Agent.&lt;/li&gt;&#10;&lt;li&gt;Add and connect Output, save, then select the Agentflow in Chat and run it.&lt;/li&gt;&#10;&lt;li&gt;After the basic path works, introduce HumanGate, branches, or parallel nodes.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;The editor canvas has &lt;strong&gt;Undo&lt;/strong&gt; and &lt;strong&gt;Redo&lt;/strong&gt; buttons at its top right, also available as Cmd/Ctrl+Z, Cmd/Ctrl+Shift+Z, or Ctrl+Y. Drag the dividers to resize the node palette and Inspector. With unsaved edits, the dialog shows &lt;strong&gt;Unsaved changes&lt;/strong&gt; and asks &lt;strong&gt;Discard unsaved changes?&lt;/strong&gt; before closing; unsaved drafts are not kept after the dialog closes.&lt;/p&gt;</description></item><item><title>Multiple clients</title><link>https://agw-docs.pages.dev/docs/features/clients/</link><pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate><guid>https://agw-docs.pages.dev/docs/features/clients/</guid><description>&lt;h2 id="continue-on-the-device-that-fits"&gt;Continue on the device that fits&#10;&lt;/h2&gt;&#10;&lt;p&gt;AGW provides Web, Desktop, and Mobile clients. Connect to the same Server with the appropriate identity to access your authorized projects and saved conversation history, choosing the device that suits the task.&lt;/p&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--static"&gt;&#10;&lt;table&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col"&gt;Client&lt;/th&gt;&#10; &lt;th scope="col"&gt;Useful for&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Web&lt;/td&gt;&#10; &lt;td&gt;Management and chat in a browser without a desktop installation&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Desktop&lt;/td&gt;&#10; &lt;td&gt;A daily workspace, multiple Server profiles, local or remote use&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Mobile&lt;/td&gt;&#10; &lt;td&gt;Checking conversations, accessing projects, and continuing discussions on the go&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;figure class="td-figure"&gt;&#10; &lt;img src="https://agw-docs.pages.dev/images/screenshots/desktop-chat.png" alt="The AGW Desktop chat workspace; Web and Mobile use interfaces adapted to their platforms." loading="lazy" decoding="async"&gt;&lt;figcaption&gt; &lt;span class="td-fig-caption"&gt;The AGW Desktop chat workspace; Web and Mobile use interfaces adapted to their platforms.&lt;/span&gt;&lt;/figcaption&gt;&#10;&lt;/figure&gt;&lt;h2 id="the-same-server-versus-a-different-server"&gt;The same Server versus a different Server&#10;&lt;/h2&gt;&#10;&lt;p&gt;To continue on another device, connect to the same Server and select the same Project and conversation. Saved history is available there; recent output may need time to persist or a state check after reconnecting.&lt;/p&gt;</description></item><item><title>Scheduled jobs</title><link>https://agw-docs.pages.dev/docs/guides/jobs/</link><pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate><guid>https://agw-docs.pages.dev/docs/guides/jobs/</guid><description>&lt;p&gt;A Job runs an agent or agentflow at a scheduled time, such as for a routine check or recurring summary. Save its instructions, Project, and schedule; Server starts the task when due and records each outcome.&lt;/p&gt;&#10;&lt;p&gt;First verify the same task manually in Chat, including its model, tools, and directories. Server must stay running. In split deployments, Control Plane schedules the work and Data Plane executes it.&lt;/p&gt;&#10;&lt;h2 id="configure-a-job"&gt;Configure a job&#10;&lt;/h2&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Create a Job, choose its Project in &lt;strong&gt;Project ID&lt;/strong&gt;, and choose the Agent or Agentflow to run in &lt;strong&gt;Agent ID&lt;/strong&gt;. A job without a target still saves, but fails at run time and enters retries.&lt;/li&gt;&#10;&lt;li&gt;Write its prompt, choose a &lt;strong&gt;Trigger Type&lt;/strong&gt;, and enter the run time or trigger value.&lt;/li&gt;&#10;&lt;li&gt;To change the name, failure retries, or enabled state, click &lt;strong&gt;Advanced&lt;/strong&gt; at the bottom of the dialog and use &lt;strong&gt;Job Name&lt;/strong&gt;, &lt;strong&gt;Max Retry Count&lt;/strong&gt;, and &lt;strong&gt;Enabled&lt;/strong&gt;. &lt;strong&gt;Max Retry Count&lt;/strong&gt; defaults to 3 and new jobs are enabled; a blank &lt;strong&gt;Job Name&lt;/strong&gt; is generated automatically.&lt;/li&gt;&#10;&lt;li&gt;Test a future one-time job first. After Job logs and project execution records look right, create a separate recurring job. A successful one-time job pauses and disables itself; switching it to a recurring trigger or enabling it again does not make it run.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--static"&gt;&#10;&lt;table&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col"&gt;Trigger&lt;/th&gt;&#10; &lt;th scope="col"&gt;Example&lt;/th&gt;&#10; &lt;th scope="col"&gt;Time semantics&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Once&lt;/td&gt;&#10; &lt;td&gt;A future RFC 3339 timestamp, such as a UTC value ending in &lt;code&gt;Z&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;Must be in the future&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Interval&lt;/td&gt;&#10; &lt;td&gt;&lt;code&gt;00:15:00&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;A positive duration in hours:minutes:seconds. The first run is 15 minutes after creation; each later run is 15 minutes after the previous successful run ends&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Cron&lt;/td&gt;&#10; &lt;td&gt;&lt;code&gt;0 1 * * *&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;Standard five fields, evaluated in UTC; daily at 01:00 UTC&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;Clients display local time, but Cron uses UTC. A past Once timestamp does not mean “run immediately.” If an Interval is not a positive hours:minutes:seconds duration, or a Cron value does not have five fields, an error appears below the field and the save button stays disabled. A five-field Cron with invalid field values is rejected by the Server on save with “Invalid cron trigger value”. After saving, check the next execution time in &lt;strong&gt;Next Run&lt;/strong&gt; in the job list.&lt;/p&gt;</description></item><item><title>Third-party account sign-in</title><link>https://agw-docs.pages.dev/docs/features/oidc-login/</link><pubDate>Wed, 23 Sep 2026 00:00:00 +0000</pubDate><guid>https://agw-docs.pages.dev/docs/features/oidc-login/</guid><description>&lt;h2 id="use-an-existing-account-to-reach-your-own-workspace"&gt;Use an existing account to reach your own workspace&#10;&lt;/h2&gt;&#10;&lt;p&gt;Once an operator enables identity providers on Server, the sign-in page shows “Continue with …” buttons. Authenticate with an organization account such as Keycloak, Microsoft Entra ID, or Google, or with an OAuth2 service such as GitHub, and you reach AGW without a shared administrator password.&lt;/p&gt;&#10;&lt;p&gt;The first sign-in with an account creates an isolated local user and prepares its default Project. From then on, its agents, projects, conversations, integration connections, and API Keys belong to that user and stay invisible to others. The administrator account is unchanged.&lt;/p&gt;</description></item><item><title>Tools and Skills</title><link>https://agw-docs.pages.dev/docs/guides/tools-skills/</link><pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate><guid>https://agw-docs.pages.dev/docs/guides/tools-skills/</guid><description>&lt;p&gt;A Tool performs an operation, such as reading a file. A Skill supplies instructions, resources, and optional tools for a type of task. Decide what the agent needs to read or change, then select the relevant tools and guidance.&lt;/p&gt;&#10;&lt;p&gt;The steps below assume an existing custom agent and Project. External agents configure capabilities through their own supported mechanisms.&lt;/p&gt;&#10;&lt;h2 id="add-capabilities"&gt;Add capabilities&#10;&lt;/h2&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Review the selectable tools in the &lt;strong&gt;Tools&lt;/strong&gt; tab of an Agent or Project. ToolBlock cards show a description and member tools, plus an &lt;strong&gt;Approval&lt;/strong&gt; badge when a call may need approval; individual tools appear in a dropdown with name, description, and category.&lt;/li&gt;&#10;&lt;li&gt;Manage available Skills and read their instructions and prerequisites.&lt;/li&gt;&#10;&lt;li&gt;Bind the tools and Skills needed for this task to the agent.&lt;/li&gt;&#10;&lt;li&gt;Start a new turn in the correct Project. Verify read operations before testing necessary writes.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;Every tool explicitly declares &lt;code&gt;AgwToolPermission&lt;/code&gt;. The execution pipeline checks permissions; saying “allowed” in a prompt does not bypass permission or ownership checks.&lt;/p&gt;</description></item><item><title>MCP servers</title><link>https://agw-docs.pages.dev/docs/guides/mcp/</link><pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate><guid>https://agw-docs.pages.dev/docs/guides/mcp/</guid><description>&lt;p&gt;MCP (Model Context Protocol) lets agents use tools from another service. An MCP server describes the operations it offers; AGW connects to it and makes those tools available to a custom agent. The available operations depend on the service.&lt;/p&gt;&#10;&lt;p&gt;Prepare the service’s launch command or URL, transport, and required credentials. The model itself is configured separately through a Model Provider.&lt;/p&gt;&#10;&lt;h2 id="connect"&gt;Connect&#10;&lt;/h2&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;On the &lt;strong&gt;MCP Tool Servers&lt;/strong&gt; page, click &lt;strong&gt;Add Server&lt;/strong&gt;, choose &lt;code&gt;stdio&lt;/code&gt; or &lt;code&gt;http&lt;/code&gt; in &lt;strong&gt;Transport Type&lt;/strong&gt;, and enter the command or endpoint and credentials the service requires.&lt;/li&gt;&#10;&lt;li&gt;Local-process servers must be launchable on the execution node; remote services must be reachable from that node.&lt;/li&gt;&#10;&lt;li&gt;Click &lt;strong&gt;Connect and list tools&lt;/strong&gt; in the list to check connectivity; success shows “N tools available”. Make sure &lt;strong&gt;Enabled&lt;/strong&gt; is on, because disabled servers are not used.&lt;/li&gt;&#10;&lt;li&gt;Bind the service in the &lt;strong&gt;MCP Tool Server&lt;/strong&gt; tab of a custom agent or Project, then start a new turn. A run uses every server bound to the Agent and the Project.&lt;/li&gt;&#10;&lt;li&gt;Inspect discovered tools and validate a read-only operation.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;Directories, commands, and network access belong to the actual Server/execution node. Connecting a remote Desktop does not automatically expose locally installed MCP services to the Server.&lt;/p&gt;</description></item><item><title>Configure integrations</title><link>https://agw-docs.pages.dev/docs/guides/integrations/</link><pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate><guid>https://agw-docs.pages.dev/docs/guides/integrations/</guid><description>&lt;p&gt;Integrations let custom agents use authorized external accounts, for example to read information from GitHub. Configure several accounts for one service and choose which one an agent uses. The built-in catalog currently provides GitHub.&lt;/p&gt;&#10;&lt;p&gt;Prepare the required authentication details and check that the account can access the resources needed for your task.&lt;/p&gt;&#10;&lt;h2 id="from-definition-to-connection"&gt;From definition to connection&#10;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Available integrations&lt;/strong&gt;: global catalog definitions available for configuration.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Configured integrations&lt;/strong&gt;: accounts or service endpoints configured by the current user.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Connection&lt;/strong&gt;: the concrete instance selected and bound; one integration can have several accounts.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;On the GitHub card in Available integrations, click &lt;strong&gt;Configure&lt;/strong&gt; and complete the setup required by the chosen authentication method. GitHub OAuth needs the Client ID and Client Secret of an OAuth App; register the &lt;strong&gt;OAuth callback URL&lt;/strong&gt; shown in the dialog with that OAuth App.&lt;/li&gt;&#10;&lt;li&gt;On the catalog card, click &lt;strong&gt;New integration&lt;/strong&gt; in the row for the authentication method you want, and enter a &lt;strong&gt;Display name&lt;/strong&gt; and a clear &lt;strong&gt;Alias&lt;/strong&gt;. After a new OAuth Connection is saved, AGW opens the authorization page automatically.&lt;/li&gt;&#10;&lt;li&gt;Confirm it is Ready, then bind the specific connection to an Agent or Project. Use &lt;strong&gt;Authorize&lt;/strong&gt; on the connection card to authorize again and &lt;strong&gt;Validate&lt;/strong&gt; to recheck the connection.&lt;/li&gt;&#10;&lt;li&gt;Run a read operation in a new custom-agent turn and verify the intended account is used.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;Aliases are immutable after creation and unique per user. They allow only lowercase letters, digits, and single hyphens, up to 128 characters; uppercase input is converted to lowercase. Tool names follow &lt;code&gt;{alias}__{operation}&lt;/code&gt; to distinguish accounts. A GitHub connection provides &lt;code&gt;{alias}__current_user&lt;/code&gt;, &lt;code&gt;{alias}__list_repositories&lt;/code&gt;, and &lt;code&gt;{alias}__clone_repository&lt;/code&gt;, which read the current account, list visible repositories, and clone a repository into the current Project workspace.&lt;/p&gt;</description></item><item><title>Web, Desktop, and Mobile</title><link>https://agw-docs.pages.dev/docs/guides/clients/</link><pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate><guid>https://agw-docs.pages.dev/docs/guides/clients/</guid><description>&lt;p&gt;Prerequisite: an initialized Server. Clients do not replace the Server-side model, file, or execution environment.&lt;/p&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--static"&gt;&#10;&lt;table&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col"&gt;Client&lt;/th&gt;&#10; &lt;th scope="col"&gt;Connection&lt;/th&gt;&#10; &lt;th scope="col"&gt;Use case&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Web&lt;/td&gt;&#10; &lt;td&gt;Session Cookie from the administrator password or a third-party account; same-origin APIs&lt;/td&gt;&#10; &lt;td&gt;Browser management and chat&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Desktop&lt;/td&gt;&#10; &lt;td&gt;API Key, entered manually or issued by third-party sign-in; multiple Server profiles&lt;/td&gt;&#10; &lt;td&gt;Local or remote daily workspace&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Mobile&lt;/td&gt;&#10; &lt;td&gt;API Key, entered manually or imported from a configuration generated in Web; multiple Server profiles&lt;/td&gt;&#10; &lt;td&gt;Conversations and project access on mobile&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;h2 id="connect"&gt;Connect&#10;&lt;/h2&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;For Web, open the Server URL, or port &lt;code&gt;3001&lt;/code&gt; during source development.&lt;/li&gt;&#10;&lt;li&gt;Desktop Full can use its bundled Server. In Client, open &lt;strong&gt;Settings → Connections &amp;amp; app&lt;/strong&gt;, click &lt;strong&gt;+&lt;/strong&gt; (Add remote Server), and enter &lt;strong&gt;Name&lt;/strong&gt;, &lt;strong&gt;Server URL&lt;/strong&gt;, and &lt;strong&gt;API token&lt;/strong&gt;. A remote &lt;code&gt;http://&lt;/code&gt; URL requires ticking a consent box acknowledging that the API token and traffic cross the network unencrypted.&lt;/li&gt;&#10;&lt;li&gt;Configure Mobile with a Server URL reachable from the device and an API Key. Device localhost usually is not your development computer. Alternatively, create an API Key in Web under &lt;strong&gt;Settings → Server access&lt;/strong&gt;, click &lt;strong&gt;Copy config&lt;/strong&gt;, and paste it into &lt;strong&gt;Import Web configuration&lt;/strong&gt; on Mobile. Deleting a Mobile profile does not revoke its API Key on the Server; revoke it in Web.&lt;/li&gt;&#10;&lt;li&gt;Start a short conversation and verify the target Server, Project, and history.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;Desktop centers on Chat; Projects and other administration routes live in Settings. Each Server profile uses an isolated cache. Changing its URL or API Key discards the old connection’s cache so data from different Servers does not get mixed.&lt;/p&gt;</description></item></channel></rss>