# Replace an Existing Agent Backend

Source: https://docs.generalaugment.com/guides/migrate-app-automation/
Description: Move an app-owned assistant or Agent to the same governed v3 Project contract.

Keep the app's UI, auth, data, billing, business logic, and authorization. Replace only the Agent
backend.

## Inventory

Identify the current server boundary, stable user identity, prompts/personality, workflows, tools,
memory, credentials, schedules, streaming, idempotency, observability, and one explicit rollback
switch. Map product intent, not framework-internal state.

## Plan and launch

```bash
genaug launch \
  --app-root . \
  --issuer-url https://app.example.com \
  --jwks-url https://app.example.com/.well-known/jwks.json \
  --audience commerce-app \
  --user-id-claim sub \
  --callback-base-url https://app.example.com \
  --env-file .env.local \
  --plan --json
```

Review the diff, then run the same command with `--wait` and no `--plan`.

## Define resources once

- persona becomes a SOUL asset;
- bounded workflows become SKILL assets;
- APIs become individual OpenAPI, MCP, or signed direct-app capabilities;
- memory becomes explicit Project namespaces and per-Agent grants;
- credentials remain operational vault bindings; and
- app-backend/messaging surfaces become Project connections.

```bash
genaug agent create support \
  --purpose "Help signed-in customers manage their orders" \
  --soul ./agents/support/SOUL.md \
  --skill ./skills/order-support/SKILL.md \
  --capability orders.read \
  --memory user-memory:read-write \
  --connection app-backend \
  --wait
```

## Switch one server path

The client still calls the app backend. The selected server implementation calls `POST
/v1/responses` with the server-only Project key, stable Agent, stable app user, and idempotency key.
Signed direct-app callbacks invoke existing domain services and authorization.

Keep the old and General Augment implementations behind one explicit selection switch during
Candidate proof. Never send a real action to both.

## Prove and review

```bash
genaug agent test support --user customer_123 --json
genaug run show <run-id>
genaug release diff <release-id>
genaug dashboard open
```

Require hosted release-pinned evidence for user isolation, least-privilege tools, app authorization,
memory, streaming, retries, secret absence, traces, usage, and rollback. A fresh owner/admin promotes
the exact Candidate. Remove the old Agent runtime only after Live acceptance.
