{"id":"b36ad44a-2126-4295-b89d-03bafa1285e7","entityType":"agent","slug":"crewai-shadmansakibrahman-amar-passport-agent","name":"amar-passport-agent","canonicalUrl":"https://www.xpersona.co/agent/crewai-shadmansakibrahman-amar-passport-agent","canonicalPath":"/agent/crewai-shadmansakibrahman-amar-passport-agent","generatedAt":"2026-10-10T04:25:57.675Z","source":"GITHUB_REPOS","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-09T19:13:38.404Z","emptyReason":null},"description":"Multi-agent (CrewAI) virtual consular officer for Bangladesh e-passport applicants - bilingual report, fee scraper with local fallback, anti-hallucination checks Amar Passport - a multi-agent assistant for Bangladesh e-passports Watch the demo video $1 The video walks through the four agents running through one of the test scenarios in the terminal and producing the final bilingual passport readiness report. --- A small CrewAI project. Four agents work together like a tiny virtual consular office: you give them an applicant's profile (age, profession, page count, delivery spe","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. Last updated 10/9/2026.","installCommand":null,"sourceUrl":"https://github.com/ShadmanSakibRahman/amar-passport-agent","homepage":null,"primaryLinks":[{"label":"View Source","url":"https://github.com/ShadmanSakibRahman/amar-passport-agent","kind":"source"}],"safetyScore":66,"overallRank":18.4,"popularityScore":0,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Multi-agent (CrewAI) virtual consular officer for Bangladesh e-passport applicants - bilingual report, fee scraper with local fallback, anti-hallucination check"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T19:13:38.404Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[{"label":"crewai","status":"self-declared"},{"label":"multi-agent","status":"self-declared"}],"verifiedCount":0,"selfDeclaredCount":3,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"},{"key":"crewai","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"},{"key":"multi-agent","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile capability:crewai|supported|profile capability:multi-agent|supported|profile"}},"adoption":{"evidence":{"source":"no-adoption-signals","verified":false,"confidence":"low","updatedAt":"2026-10-09T19:13:38.404Z","emptyReason":"No source adoption metrics were available."},"stars":0,"forks":0,"downloads":null,"packageName":null,"latestVersion":null,"tractionLabel":null},"release":{"evidence":{"source":"agent-index","verified":false,"confidence":"medium","updatedAt":"2026-10-09T19:13:38.398Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T19:13:38.404Z","lastCrawledAt":"2026-10-09T19:13:38.398Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-16T19:13:38.398Z","lastVerifiedAt":null,"highlights":[]},"execution":{"evidence":{"source":"GITHUB REPOS","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":null,"setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/crewai-shadmansakibrahman-amar-passport-agent/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/crewai-shadmansakibrahman-amar-passport-agent/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/crewai-shadmansakibrahman-amar-passport-agent/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/crewai-shadmansakibrahman-amar-passport-agent/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/crewai-shadmansakibrahman-amar-passport-agent/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/crewai-shadmansakibrahman-amar-passport-agent/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"GITHUB_REPOS","generatedAt":"2026-10-10T04:25:57.675Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/crewai-shadmansakibrahman-amar-passport-agent/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/crewai-shadmansakibrahman-amar-passport-agent/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/crewai-shadmansakibrahman-amar-passport-agent/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/crewai-shadmansakibrahman-amar-passport-agent/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"GITHUB REPOS","verified":false,"confidence":"high","updatedAt":"2026-10-09T19:13:38.404Z","emptyReason":null},"readme":"# Amar Passport - a multi-agent assistant for Bangladesh e-passports\n\n## Watch the demo video\n\n[Click here to watch the agents in action (Google Drive)](https://drive.google.com/file/d/1fQxH2a6nzUuNm_e7qjG-XshaUPYpfqZH/view?usp=sharing)\n\nThe video walks through the four agents running through one of the test scenarios in the terminal and producing the final bilingual passport readiness report.\n\n---\n\nA small CrewAI project. Four agents work together like a tiny virtual consular office: you give them an applicant's profile (age, profession, page count, delivery speed, etc.) and they produce a Passport Readiness Report in both English and Bangla.\n\n## What it does\n\nYou describe an applicant in plain Python (or in plain English in the notebook). The crew figures out the rest.\n\n- The Policy Guardian decides whether the applicant is even allowed the validity they asked for. A 15-year-old asking for a 10-year passport gets overridden to 5 years and a warning shows up in the final report.\n- The Document Architect builds a checklist that actually matches the applicant. Government employees get an NOC, married women with name changes get the marriage certificate row, minors get the parents' NID row.\n- The Fee Calculator looks up the 2026 fee for the chosen page count and delivery speed, adds 15% VAT, and prints both the base and total in BDT.\n- The Consular Scribe takes the three outputs and writes the final report: a one-line summary, a Markdown table in English, then a mirrored table in formal Bangla.\n\nThe whole thing runs on Groq (free tier) using `llama-3.3-70b-versatile` via LiteLLM.\n\n## The agents\n\nI went with four because the assignment asks for a minimum of three and the Bangla translation works much cleaner as its own agent than as a post-processing step.\n\n1. The Policy Guardian (eligibility expert)\n2. The Document Architect (checklist specialist)\n3. The Chancellor of the Exchequer (fee calculator with VAT)\n4. The Consular Scribe (bilingual report writer)\n\nThe task delegation chain is sequential. The Fee Calculator gets the Policy Guardian's output as `context` so it can never pick a validity the rules forbid even if the applicant originally asked for one. The Scribe gets all three earlier outputs as context.\n\n## Scraping with a fallback\n\nThe Fee Calculator's `passport_fee_lookup` tool tries the live `epassport.gov.bd/landing/fees` page first. If the page is unreachable, returns an error, or the layout doesn't match what we expect, it falls back to the local 2026 fee structure I hard-coded from the assignment. The tool's JSON output includes a `source` field that says `live_scrape` or `local_fallback` so you can see in the report which path was taken. In practice the official portal blocks automated requests, so the demo almost always uses the fallback. The terminal video makes this visible.\n\n## The 2026 fee table\n\n```\n                Regular     Express     Super-Express\n48 pages\n  5 years        4,025       6,325        8,625\n  10 years       5,750       8,050       10,350\n64 pages\n  5 years        6,325       8,625       12,075\n  10 years       8,050      10,350       13,800\n```\n\nVAT of 15% is added on top of those base fees.\n\n## How to run\n\nYou need Python 3.12. CrewAI 1.x does not support 3.14 yet.\n\n1. Clone and enter the folder.\n\n2. Make a virtual environment and install deps.\n\n   ```\n   py -3.12 -m venv venv\n   venv\\Scripts\\activate            # Windows\n   source venv/bin/activate          # macOS / Linux\n   pip install -r requirements.txt\n   ```\n\n3. Copy `.env.example` to `.env` and paste your Groq key.\n\n   ```\n   GROQ_API_KEY=your_groq_key_here\n   GROQ_MODEL=groq/llama-3.3-70b-versatile\n   ```\n\n4. Run the demo.\n\n   ```\n   python main.py            # runs all 4 scenarios in order\n   python main.py --quick    # only the first (assignment example)\n   python main.py --scenario 2   # just the 15-year-old inconsistency case\n   ```\n\n   Add `--quiet` if you want to skip the verbose agent reasoning and only see the final reports.\n\n## Example output\n\nFor the assignment's example applicant (24-year-old private sector employee, 64 pages, express delivery), the crew produces:\n\n| Validity | Delivery | Pages | Base Fee | VAT 15% | Total | Documents | ID | Warnings |\n|----------|----------|-------|----------|---------|-------|-----------|-----|----------|\n| 10 yr | Express | 64 | 10,350 | 1,552 | **11,902 BDT** | NID, Application Summary, Payment Slip, Profession Proof | NID | None |\n\nfollowed by the same row in Bangla.\n\nFor the 15-year-old asking a 10-year passport, the Validity column reads 5, the ID column reads Birth Registration, the Documents column includes the parents' NID, and the Warnings column carries both policy violations spelled out.\n\n## What was annoying to get right\n\nA few things took longer than I expected:\n\n- CrewAI 1.x marks every system message with a Anthropic-style `cache_breakpoint` flag and then forgets to strip it for non-Anthropic providers. Groq's API rejected every call with a `property 'cache_breakpoint' is unsupported` error until I wrapped `litellm.completion` to scrub the flag.\n- Python 3.14 was the only version I had installed on this machine and CrewAI's wheels require <=3.13, so I had to install Python 3.12 side-by-side first.\n- The Bangla `%` symbol kept showing up as `%%` because I had escaped it Python-style in the task description. Removed the double percent and it came out clean.\n- Restricting the live scraper to a short timeout was important. The official portal often returns a 403 after a few seconds and you don't want the demo to hang during the video.\n\n## Files\n\n```\n.\n├── main.py              runs the crew with verbose=True (good for recording)\n├── agents.py            the 4 Agent() definitions + the LiteLLM patch\n├── tasks.py             the Task() chain with context= delegation\n├── tools.py             fee scraper + eligibility + document checklist tools\n├── local_db.py          2026 fee structure and policy rules\n├── demo.ipynb           Colab-friendly notebook with all scenarios\n├── requirements.txt\n├── .env.example\n└── .gitignore\n```\n\n## Author\n\nMd. Shadman Sakib Rahman\n","readmeExcerpt":"Amar Passport - a multi-agent assistant for Bangladesh e-passports Watch the demo video $1 The video walks through the four agents running through one of the test scenarios in the terminal and producing the final bilingual passport readiness report. --- A small CrewAI project. Four agents work together like a tiny virtual consular office: you give them an applicant's profile (age, profession, page count, delivery spe","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"Regular     Express     Super-Express\n48 pages\n  5 years        4,025       6,325        8,625\n  10 years       5,750       8,050       10,350\n64 pages\n  5 years        6,325       8,625       12,075\n  10 years       8,050      10,350       13,800"},{"language":"text","snippet":"py -3.12 -m venv venv\n   venv\\Scripts\\activate            # Windows\n   source venv/bin/activate          # macOS / Linux\n   pip install -r requirements.txt"},{"language":"text","snippet":"GROQ_API_KEY=your_groq_key_here\n   GROQ_MODEL=groq/llama-3.3-70b-versatile"},{"language":"text","snippet":"python main.py            # runs all 4 scenarios in order\n   python main.py --quick    # only the first (assignment example)\n   python main.py --scenario 2   # just the 15-year-old inconsistency case"},{"language":"text","snippet":".\n├── main.py              runs the crew with verbose=True (good for recording)\n├── agents.py            the 4 Agent() definitions + the LiteLLM patch\n├── tasks.py             the Task() chain with context= delegation\n├── tools.py             fee scraper + eligibility + document checklist tools\n├── local_db.py          2026 fee structure and policy rules\n├── demo.ipynb           Colab-friendly notebook with all scenarios\n├── requirements.txt\n├── .env.example\n└── .gitignore"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[],"languages":["python"],"docsSourceLabel":"GITHUB REPOS","editorialOverview":"Multi-agent (CrewAI) virtual consular officer for Bangladesh e-passport applicants - bilingual report, fee scraper with local fallback, anti-hallucination checks Amar Passport - a multi-agent assistant for Bangladesh e-passports Watch the demo video $1 The video walks through the four agents running through one of the test scenarios in the terminal and producing the final bilingual passport readiness report. --- A small CrewAI project. Four agents work together like a tiny virtual consular office: you give them an applicant's profile (age, profession, page count, delivery spe","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":395,"uniquenessScore":66,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T19:13:38.404Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-09T19:13:38.404Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T04:25:57.675Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/github_repos","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}