|
| 1 | +# Paid Pilot: Governed Refund Approvals |
| 2 | + |
| 3 | +This document defines a commercial hypothesis to test, not a claim that the current project is |
| 4 | +production-ready or that demand has already been proven. |
| 5 | + |
| 6 | +## Buyer and problem |
| 7 | + |
| 8 | +The initial buyer is the engineering or risk owner of a customer-support agent that can propose |
| 9 | +refunds or credits. Their problem is not generating another answer. It is proving that a risky |
| 10 | +action waited for the right human decision, preserving who decided it and why, and recovering |
| 11 | +when an agent version behaves badly. |
| 12 | + |
| 13 | +The qualifying scenario has all of these properties: |
| 14 | + |
| 15 | +- an agent already runs in a test or production workflow; |
| 16 | +- at least one action can create financial, compliance, or customer harm; |
| 17 | +- humans review some of those actions today, even if the process is manual; |
| 18 | +- the team cannot reconstruct decisions quickly from its current logs; |
| 19 | +- a named owner has budget or authority to sponsor an operational pilot. |
| 20 | + |
| 21 | +## Offer |
| 22 | + |
| 23 | +The starting commercial hypothesis is a three-week, CNY 30,000 paid pilot in an isolated or |
| 24 | +staging environment. Taxes, travel, custom infrastructure, and production support are outside |
| 25 | +that price. Any quote to a real buyer must state the exact deployment boundary and data policy. |
| 26 | + |
| 27 | +The pilot covers: |
| 28 | + |
| 29 | +- one existing customer-support agent; |
| 30 | +- one high-risk refund or credit action; |
| 31 | +- registration, pause/activate, approval, decision, and audit integration; |
| 32 | +- one policy workshop and one operator handoff session; |
| 33 | +- a final evidence report against the agreed metrics. |
| 34 | + |
| 35 | +The customer continues to own agent reasoning and execution. The control plane records and |
| 36 | +governs the action request; it does not move money. No custom dashboard, compliance |
| 37 | +certification, 24/7 SLA, model hosting, Mem0, DSPy, or autonomous prompt changes are included. |
| 38 | + |
| 39 | +## Acceptance metrics |
| 40 | + |
| 41 | +Before integration, both parties choose a representative set of at least 20 synthetic or |
| 42 | +sanitized refund cases. The pilot succeeds technically when: |
| 43 | + |
| 44 | +- every above-threshold test action is held until an explicit decision; |
| 45 | +- every sampled decision can be reconstructed from actor, reason, status, and audit events; |
| 46 | +- stale lifecycle writes and repeated decisions fail closed; |
| 47 | +- the customer can pause the integrated agent and observe the state change; |
| 48 | +- the integration requires no more than five customer engineering days. |
| 49 | + |
| 50 | +Commercial validation is separate from technical success. Continue investing after the pilot |
| 51 | +only if a named buyer agrees the problem is material, uses the workflow with real operators, and |
| 52 | +offers a paid production next step. Do not treat repository stars, compliments, or an unpaid |
| 53 | +demo as purchase evidence. |
| 54 | + |
| 55 | +## Readiness boundary |
| 56 | + |
| 57 | +The current `main` branch is suitable for local and isolated evaluation. A pilot using |
| 58 | +customer-accessible infrastructure must wait for authentication in issue #15 and pull request |
| 59 | +#16 to receive the required independent security reviews. Production use additionally requires |
| 60 | +idempotency, backup and restore rehearsal, tenant/resource authorization, token rotation or |
| 61 | +OIDC, rate limiting, and an agreed operational owner. |
| 62 | + |
| 63 | +## Demo |
| 64 | + |
| 65 | +Start the development API and run the reproducible scenario from another shell: |
| 66 | + |
| 67 | +```bash |
| 68 | +make run |
| 69 | +python examples/refund_approval.py |
| 70 | +``` |
| 71 | + |
| 72 | +The script registers a uniquely named support agent, activates it, requests approval for a CNY |
| 73 | +1,280 refund, verifies that the request is pending, records a human decision, and checks the four |
| 74 | +audit events. It does not call a payment or refund system. |
| 75 | + |
| 76 | +For an authenticated environment, configure a bearer token for each principal: |
| 77 | + |
| 78 | +```bash |
| 79 | +export ACP_DEMO_OPERATOR_TOKEN='<operator-token>' |
| 80 | +export ACP_DEMO_AGENT_TOKEN='<agent-token>' |
| 81 | +export ACP_DEMO_REVIEWER_TOKEN='<reviewer-token>' |
| 82 | +python examples/refund_approval.py |
| 83 | +``` |
| 84 | + |
| 85 | +The subjects configured for those tokens must match `ACP_DEMO_OPERATOR_ACTOR`, |
| 86 | +`ACP_DEMO_AGENT_ACTOR`, and `ACP_DEMO_REVIEWER_ACTOR`. `ACP_DEMO_TOKEN` is a convenience fallback |
| 87 | +only when all three actor variables are also set to that token's subject. Separate |
| 88 | +least-privilege identities are required for a real pilot. |
0 commit comments