Purpose
The clean-shutdown procedure for an agent that's been retired. Triggered by KPI failure, replacement, ROI below break-even, owner departure, or scope no longer relevant.
This is the gate that prevents zombie agents — the framework's most-cited failure pattern at maturity. Without a retirement procedure, credentials linger, audit logs grow forever, new agents accidentally inherit old scope, and users hit dead-end workflows with no replacement path.
- When you use it: When any retirement trigger fires (defined in Agent Card §13).
- Who fills it: CoE Lead drives. Platform team executes technical revocation. Department Champion informs the affected users.
- Time: 1–2 weeks calendar time (announce, transition, revoke, archive, close).
- Output: Signed checklist + registry status → Retired.
Worked example (AP Accountant invoice reconciliation, hypothetical 2027 retirement)
Retirement Checklist — finance-invoice-recon v1.0
Trigger: Replacement by NetSuite-native AI matching feature (superior accuracy + integrated)
Decision date: 2027-07-15
Target retirement date: 2027-08-15
Owner of retirement: Morteza Moradi (CoE Lead) + Mike Chen (Finance Champion)
1. Trigger and rationale
| Field | Value |
|---|
| Trigger | NetSuite native AI matching released v2025.2 with 98% accuracy in our environment (vs our agent's 96%) |
| Decision authority | CoE Lead + Head of Finance |
| Decision date | 2027-07-15 |
| Effective retirement date | 2027-08-15 (30-day transition) |
| Rationale | Native integration eliminates the LLM call cost ($40/month) and provides better accuracy. AP team trained on native feature week of 2027-07-21. |
2. Pre-retirement steps
| # | Action | Owner | Done? |
|---|
| 1 | Announce retirement to AP team in #finance Slack | Mike Chen | ✅ 2027-07-15 |
| 2 | Brief Executive sponsor at next monthly 1:1 | CoE Lead | ✅ 2027-07-22 |
| 3 | Train AP team on NetSuite native feature (45-min Zoom + Loom recording) | Mike Chen | ✅ 2027-07-21 |
| 4 | Update workflow documentation: AP reconciliation now uses NetSuite native feature | Mike Chen | ✅ 2027-07-25 |
| 5 | Confirm no upstream / downstream dependencies on the agent (Finance reports, dashboards, BI tools) | Builder | ✅ 2027-07-28 — none found |
| 6 | Run parallel for 1 week (both agent + native feature) to confirm native feature handles edge cases | Mike Chen | ✅ 2027-08-01 to 2027-08-07 |
3. Retirement-day procedure (2027-08-15)
| # | Action | Owner | Done? |
|---|
| 1 | Disable the agent in n8n: set workflow finance-invoice-recon-prod to Inactive (do NOT delete) | Platform team | ✅ 09:00 |
| 2 | Revoke agent-finance-invoice-recon identity in Microsoft Entra ID: set to Disabled (do NOT delete) | Platform team | ✅ 09:05 |
| 3 | Revoke credentials: NetSuite OAuth + Anthropic API key + Gmail OAuth in AWS Secrets Manager — mark as Disabled (do NOT delete; needed for log decryption later) | Platform team | ✅ 09:10 |
| 4 | Verify no new traces in LangSmith for next 1 hour | Builder | ✅ 10:30 — confirmed zero traces |
| 5 | Update LaunchDarkly flag finance-invoice-recon-enabled → permanently Off (preserves the flag for audit) | Builder | ✅ 09:15 |
| 6 | Update PagerDuty schedules finance-ai-primary + -backup to inactive | Mike Chen | ✅ 10:00 |
4. Archive procedure
| # | Action | Owner | Done? |
|---|
| 1 | Export LangSmith logs for full retention period to S3 Glacier under s3://acme-ai-audit-archive/finance-invoice-recon/ | Platform team | ✅ 2027-08-15 (~6GB exported) |
| 2 | Set Glacier lifecycle to retain 7 years (SOX-adjacency for AP records) | Platform team | ✅ |
| 3 | Move source repo github.com/acme/agents/finance-invoice-recon to github.com/acme/agents-retired/finance-invoice-recon | Builder | ✅ |
| 4 | Add RETIRED.md at the top of the archived repo with retirement date, reason, last working state | Builder | ✅ |
| 5 | Archive Agent Card v1.0, runbook, all post-mortems, all eval reports — preserved in archived repo | Builder | ✅ |
| 6 | Update framework.md "agents retired" log with date + reason + key lessons | CoE Lead | ✅ |
5. Registry update
| Field | Pre-retirement | Post-retirement |
|---|
| Status | Production | Retired |
| Retirement date | (blank) | 2027-08-15 |
| Retirement reason | (blank) | Replaced by NetSuite native AI matching v2025.2 |
| Final ROI total | (rolling) | $5,310 (15 months × ~$354/month average) |
| Final incident count | (rolling) | 0 Sev-1, 2 Sev-2 (both resolved), 11 Sev-3 |
| Audit log archive location | (blank) | s3://acme-ai-audit-archive/finance-invoice-recon/ |
| Source archive location | (blank) | github.com/acme/agents-retired/finance-invoice-recon |
| Replacement | (blank) | NetSuite native AI matching v2025.2 (departmental tool, not a registered agent) |
6. Procurement check
| # | Action | Owner | Done? |
|---|
| 1 | Notify Procurement of retirement | CoE Lead | ✅ 2027-08-15 |
| 2 | Anthropic spend: agent was ~5% of total ($40/month) — no tier change needed | Procurement | ✅ Logged for annual renewal review |
| 3 | LangSmith seats: agent was 1 of 6 monitored agents — no seat change | Procurement | ✅ Logged |
| 4 | n8n: workflow retired, but n8n still in use for other agents — no license change | Procurement | ✅ |
7. User re-pathing
| User | Re-pathed to | Training | Done? |
|---|
| Sarah Patel (AP accountant) | NetSuite native AI matching | Loom recording + 1-hour shadow session with Mike | ✅ 2027-07-21 |
| Tom Riley (backup AP accountant) | NetSuite native AI matching | Same Loom recording + manual review | ✅ 2027-08-04 |
8. Lessons fed back to framework
- Retire when there's a better tool. Don't keep agents alive for political reasons. The native tool is more accurate AND cheaper. The Finance Champion proposed retirement himself.
- 15-month run, net positive ROI. Agent generated ~$5,310 in net value across its lifetime. Pilot-to-retire was a successful cycle.
- Vendor-embedded AI displacement is a normal retirement trigger. SaaS vendors increasingly ship native AI features. Plan for it — don't be surprised.
- Logged in framework.md changelog 2027-08-16: "Retirement triggers should explicitly include 'replacement by vendor-embedded AI'."
Sign-off
| Role | Name | Date |
|---|
| CoE Lead | Morteza Moradi | 2027-08-15 |
| Department Champion | Mike Chen | 2027-08-15 |
| Platform team (technical revocation confirmed) | Jess (IT) | 2027-08-15 |
| Procurement (informed) | (rotating) | 2027-08-15 |
| Executive sponsor (informed) | Jane Doe | 2027-08-25 (next monthly 1:1) |
Status: Retired. All actions complete.
Blank template (copy below for your agent)
# Retirement Checklist — [Agent ID] v[X.X]
**Trigger:** [What triggered retirement]
**Decision date:** [YYYY-MM-DD]
**Target retirement date:** [YYYY-MM-DD]
**Owner of retirement:** [CoE Lead + Department Champion]
## 1. Trigger and rationale
| Field | Value |
|---|---|
| Trigger | [KPI failure / Replacement / ROI / Owner departure / Scope obsolete / Incident] |
| Decision authority | [Who decided] |
| Decision date | |
| Effective retirement date | |
| Rationale | |
## 2. Pre-retirement steps
| # | Action | Owner | Done? |
|---|---|---|---|
| 1 | Announce retirement to affected department | | |
| 2 | Brief Executive sponsor | | |
| 3 | Train users on replacement path (if any) | | |
| 4 | Update workflow documentation | | |
| 5 | Confirm no upstream / downstream dependencies | | |
| 6 | Parallel run (if applicable) | | |
## 3. Retirement-day procedure
| # | Action | Owner | Done? |
|---|---|---|---|
| 1 | Disable agent in orchestrator (do NOT delete) | Platform team | |
| 2 | Revoke agent identity in IdP (Disabled, not deleted) | Platform team | |
| 3 | Revoke credentials in secret manager (Disabled) | Platform team | |
| 4 | Verify no new executions for 1 hour | Builder | |
| 5 | Update kill switch / feature flag to permanently off | Builder | |
| 6 | Update on-call schedules to inactive | | |
## 4. Archive procedure
| # | Action | Owner | Done? |
|---|---|---|---|
| 1 | Export logs to cold storage per retention policy | Platform team | |
| 2 | Set retention lifecycle (≥ 6 months EU AI Act baseline; longer per sector regulation) | Platform team | |
| 3 | Move source repo to archive location | Builder | |
| 4 | Add RETIRED.md at top of archived repo | Builder | |
| 5 | Archive Agent Card + runbook + post-mortems + eval reports | Builder | |
| 6 | Update framework "agents retired" log | CoE Lead | |
## 5. Registry update
| Field | Post-retirement value |
|---|---|
| Status | **Retired** |
| Retirement date | |
| Retirement reason | |
| Final ROI total | |
| Final incident count | |
| Audit log archive location | |
| Source archive location | |
| Replacement (if any) | |
## 6. Procurement check
| # | Action | Owner | Done? |
|---|---|---|---|
| 1 | Notify Procurement | CoE Lead | |
| 2 | LLM spend impact | Procurement | |
| 3 | Observability seat impact | Procurement | |
| 4 | Other vendor commitments | Procurement | |
## 7. User re-pathing
| User | Re-pathed to | Training | Done? |
|---|---|---|---|
| | | | |
## 8. Lessons fed back to framework
- [Insight 1]
- [Insight 2]
- [Logged in framework.md changelog YYYY-MM-DD]
## Sign-off
| Role | Name | Date |
|---|---|---|
| CoE Lead | | |
| Department Champion | | |
| Platform team (revocation confirmed) | | |
| Procurement (informed) | | |
| Executive sponsor (informed) | | |
**Status:** Retired. All actions complete.
Usage notes
- Disable, don't delete. Identities, credentials, repos — all move to Disabled / Archived state, not Deleted. You may need them for an audit. Disable is reversible; Delete usually isn't.
- Logs are the long-tail obligation. Even after the agent stops running, logs may need to be retained for 6+ months (EU AI Act) or 7+ years (SOX). Plan archive cost.
- Re-path users before disabling. Section 7 is what prevents resentment. "I came in Monday and the tool was gone" is the wrong experience.
- Procurement check often surfaces hidden cost. Some LLM contracts have minimum commitments — retiring one agent may not save real money until renewal.
- Lessons matter. Section 8 is what makes the framework get better over time. A retirement without lessons is a missed opportunity.
Common pitfalls
| Pitfall | What it looks like | Fix |
|---|
| Delete instead of disable | Identity, repo, logs all gone | Re-set policy to disable + archive |
| Forget to revoke credentials | Identity disabled but API key still in secret manager | Revoke all credentials at retirement-day step |
| No log retention plan | Logs vanish at standard retention (30–90 days) | Set Glacier lifecycle BEFORE disabling agent |
| Users surprised | Agent disappears, replacement not communicated | Section 2 + 7 are required |
| No registry update | Registry still shows Production | Update Status + retirement date + archive locations |
| Lessons not captured | Framework doesn't evolve | Section 8 is mandatory |
| Zombie schedule entries | PagerDuty + monitoring alerts still active | Disable on retirement day |
Framework cross-references
framework.md §11.2 (per-agent lifecycle — Retirement)
framework.md §30 (failure patterns — no retirement = zombie agents)
framework.md §17 (privileged identities — revocation)
framework.md §22.1 EU AI Act Article 19 (log retention post-decommission)
framework.md §22.2 NIST AI RMF MANAGE — decommissioning
framework.md §22.3 ISO/IEC 42001 Clause 8 (lifecycle)
workflows.md Step 16 (Retirement)
workflows.html → In Action view → node M18 (Retire when triggered)