Inspiration

A passport can look valid today and still be wrong for a future trip. Renewal involves more than an expiry reminder: rules, processing time, appointment availability and the order of related documents all matter. RedTape is for people managing cross-border paperwork who need that work carried forward without surrendering the decisions that affect their money or travel.

What it does

RedTape is a background agent built with the Strands Agents SDK. It checks confirmed documents, reads versioned rules, works backward from a life event, searches appointments, prepares a reviewable draft and calendar holds, and brings a concrete tradeoff to a Decision Inbox. After an exact option is approved, it carries out that approved work and leaves a verifiable local record.

The demonstration follows Xiao, a synthetic traveler with a November 20 family trip. Her passport expires on April 15, 2027. Under the sandbox's six-month rule, it needs to remain valid through May 20, so renewal is necessary. The plan calls for the passport in hand by November 13, regular filing by September 18 and booking by September 11. The earliest available appointment is October 3.

That complication changes the job. The agent attempts the late slot, and a deterministic guard blocks it. The decision then becomes specific: S-1003, expedited processing at $83, projected return October 31, twenty days before the flight. After synthetic operator approval of that exact option, the same persisted agent session books the sandbox appointment and returns the matching confirmation, CNF-B1000. No government application is filed.

How we built it

The Strands agent owns model-driven tool selection. Its tools expose confirmed documents, rule checking, backward planning, appointment search, draft preparation, local calendar holds and decisions. The recorded hosted model requested and returned the ID kimi-for-coding.

Python owns hard dates and permissions. Before-tool hooks bind a booking to its slot, office, service, document and jurisdiction; a late slot requires approval covering that slot. Application filing has a separate boundary: an exact displayed approval, canonical draft path, mandatory SHA256 and matching provenance. SQLite atomically consumes a filing approval for at most one dispatch attempt. The demo exercises appointment booking, not application filing.

An LLM steering handler adds plain-language oversight, while session snapshots preserve conversation state. FastAPI serves the product UI and a separate synthetic government sandbox; SQLite stores documents, decisions and a hash-chained activity ledger. Drafts can be inspected as JSON and PDF.

Challenges we ran into

The model's real alternatives exposed a UI mistake: position-based labels could describe a different option from the one the agent actually generated. We replaced those labels with the actual structured alternatives and bound receipt values to the matching approval and booking. A regression test uses different dates and fees to catch the same class of error.

The observed hosted run also needed persistence, not just a successful first response. Its initial wake produced a decision but outlasted the local caller timer; two steering requests failed. A focused continuation resumed the same session and Store after approval and completed normally. The film condenses this recorded workflow; it does not claim instant or uninterrupted execution.

Accomplishments and what we learned

A genuine hosted Strands run selected the tools, encountered the preapproval guard, surfaced the concrete decision and completed the matching approved sandbox booking. All nine checks for this recorded case passed, including hash-chain verification and no application filing. The release also passes twenty deterministic Python tests and a UI display regression.

The central lesson is that an agent can do substantial work while humans retain the consequential choice. A persuasive explanation is not an authorization, and a receipt should prove which option was approved and executed.

What's next

The current release uses synthetic documents, rules and government services. A real agency connector, real-user evaluation and public hosted deployment remain future work. The repository includes setup instructions, source, architecture and a sanitized account of the recorded model run so judges can inspect that boundary and reproduce the local scenario.

Built With

Share this project:

Updates

Submission history