{"id":"1167756f-c3f0-4dc3-937a-5af6d278328c","entityType":"agent","slug":"crewai-theertharajeevan-ai-email-auto-responder","name":"AI-email-auto-responder","canonicalUrl":"https://www.xpersona.co/agent/crewai-theertharajeevan-ai-email-auto-responder","canonicalPath":"/agent/crewai-theertharajeevan-ai-email-auto-responder","generatedAt":"2026-10-10T02:23:25.197Z","source":"GITHUB_REPOS","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-09T03:20:46.096Z","emptyReason":null},"description":"AI-powered Gmail auto-responder using CrewAI and Groq with multi-agent email classification, intelligent response drafting, and human-in-the-loop approval before sending 📧 AI-Gmail auto responder **AI-powered Gmail auto-responder with a human-in-the-loop approval workflow.** AI-Gmail auto responder connects to your Gmail inbox, classifies unread emails using a multi-agent $1 pipeline running on $1, drafts a professional reply when one is needed, and lets you review, edit, and approve every response before it's sent. Nothing goes out without your sign-off. --- ✨ Features - **Automati","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/theertharajeevan/AI-email-auto-responder","homepage":null,"primaryLinks":[{"label":"View Source","url":"https://github.com/theertharajeevan/AI-email-auto-responder","kind":"source"}],"safetyScore":66,"overallRank":21.6,"popularityScore":0,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"AI-powered Gmail auto-responder using CrewAI and Groq with multi-agent email classification, intelligent response drafting, and human-in-the-loop approval befor"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T03:20:46.096Z","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-09T03:20:46.096Z","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-09T03:20:46.090Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T03:20:46.096Z","lastCrawledAt":"2026-10-09T03:20:46.090Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-16T03:20:46.090Z","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-theertharajeevan-ai-email-auto-responder/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/crewai-theertharajeevan-ai-email-auto-responder/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/crewai-theertharajeevan-ai-email-auto-responder/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/crewai-theertharajeevan-ai-email-auto-responder/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/crewai-theertharajeevan-ai-email-auto-responder/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/crewai-theertharajeevan-ai-email-auto-responder/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-10T02:23:25.196Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/crewai-theertharajeevan-ai-email-auto-responder/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/crewai-theertharajeevan-ai-email-auto-responder/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/crewai-theertharajeevan-ai-email-auto-responder/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/crewai-theertharajeevan-ai-email-auto-responder/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-09T03:20:46.096Z","emptyReason":null},"readme":"# 📧 AI-Gmail auto responder\n\n**AI-powered Gmail auto-responder with a human-in-the-loop approval workflow.**\n\nAI-Gmail auto responder connects to your Gmail inbox, classifies unread emails using a multi-agent [CrewAI](https://www.crewai.com/) pipeline running on [Groq](https://groq.com/), drafts a professional reply when one is needed, and lets you review, edit, and approve every response before it's sent. Nothing goes out without your sign-off.\n\n---\n\n## ✨ Features\n\n- **Automatic classification** — every unread email is sorted into a category (inquiry, complaint, support, sales, spam, newsletter, other), with a priority level and a short reason.\n- **Smart filtering** — spam and newsletters are skipped by default; only emails that genuinely need a reply get one drafted.\n- **AI-drafted responses** — a dedicated response-writing agent generates a polite, concise, context-aware reply based only on the original email (no invented facts or commitments).\n- **Human-in-the-loop** — nothing is sent automatically. You review the AI's classification and draft, edit the subject/body if needed, and explicitly approve before it goes out.\n- **Two ways to run it** — a Streamlit web UI for interactive review, or a CLI (`main.py`) for scripted/terminal use.\n- **Safe by default** — emails are only marked as read after a response is successfully sent (or you explicitly dismiss one that needs no reply).\n\n---\n\n## 🏗️ How it works\n\n```\nGmail (IMAP)\n     │\n     ▼\nFetch unread emails\n     │\n     ▼\n┌─────────────────────┐\n│  Classification      │  ← CrewAI agent (Groq LLM)\n│  Agent                │\n└─────────┬────────────┘\n          │\n   needs_response?\n     │         │\n    No        Yes\n     │         │\n     ▼         ▼\n  Mark   ┌─────────────────────┐\n  as     │  Response Writer     │  ← CrewAI agent (Groq LLM)\n  read   │  Agent                │\n         └─────────┬────────────┘\n                    │\n                    ▼\n          Human review & edit\n                    │\n              Approve & Send?\n                    │\n                   Yes\n                    │\n                    ▼\n          Gmail (SMTP) + mark as read\n```\n\nThe workflow is orchestrated with a [CrewAI `Flow`](https://docs.crewai.com/concepts/flows), which chains a classification `Crew` into a response-generation `Crew`, sharing state between them.\n\n---\n\n## 🧰 Tech stack\n\n- [CrewAI](https://www.crewai.com/) — multi-agent orchestration\n- [Groq](https://groq.com/) — LLM inference (via `litellm`)\n- [Streamlit](https://streamlit.io/) — web UI\n- Python's built-in `imaplib` / `smtplib` — Gmail IMAP/SMTP access\n- [Pydantic](https://docs.pydantic.dev/) — structured data validation\n\n---\n\n## 📋 Prerequisites\n\n- Python 3.10+\n- A Gmail account with [2-Step Verification](https://myaccount.google.com/security) enabled\n- A Gmail [App Password](https://myaccount.google.com/apppasswords) (regular account passwords won't work for IMAP/SMTP)\n- A [Groq API key](https://console.groq.com/keys)\n\n---\n\n## 🚀 Setup\n\n**1. Clone the repository**\n\n```bash\ngit clone https://github.com/<your-username>/AI-Gmail auto responder.git\ncd AI-Gmail auto responder\n```\n\n**2. Create and activate a virtual environment**\n\n```bash\npython -m venv venv\n\n# Windows\nvenv\\Scripts\\activate\n\n# macOS / Linux\nsource venv/bin/activate\n```\n\n**3. Install dependencies**\n\n```bash\npip install -r requirements.txt\n```\n\n**4. Configure environment variables**\n\nCopy the example file and fill in your own values:\n\n```bash\ncp .env.example .env\n```\n\n```env\nEMAIL_ADDRESS=your_gmail_address@gmail.com\nAPP_PASSWORD=your_gmail_app_password\nGROQ_API_KEY=your_groq_api_key\n```\n\n> ⚠️ **Never commit your `.env` file.** It's already listed in `.gitignore` — double-check before pushing.\n\n---\n\n## ▶️ Usage\n\n### Option A: Streamlit web UI (recommended)\n\n```bash\nstreamlit run frontend/app.py\n```\n\nOpens an interactive dashboard where you can browse unread emails, run classification, review the AI-drafted response, edit it inline, and approve or reject sending.\n\n### Option B: Command-line\n\n```bash\npython main.py\n```\n\nProcesses unread emails one at a time in the terminal, printing the classification and draft response, and prompting `y/N` before sending each one.\n\n---\n\n## 📁 Project structure\n\n```\nAI-Gmail auto responder/\n├── frontend/\n│   └── app.py           # Streamlit UI\n├── crew.py               # Agents, tasks, and crews (classification + response)\n├── flow.py                # CrewAI Flow orchestrating the two crews\n├── email_utils.py         # Gmail IMAP: fetch unread emails, mark as read\n├── send_email.py           # Gmail SMTP: send responses\n├── models.py                # Pydantic schemas (EmailClassification, EmailResponse)\n├── main.py                   # CLI entry point\n├── requirements.txt\n├── .env.example\n└── README.md\n```\n\n---\n\n## 🩹 Known issues & troubleshooting\n\n- **`ImportError: ... LiteLLM fallback package is not installed`**\n  Run `pip install litellm`.\n\n- **Groq requests routed to OpenAI / `Incorrect API key provided`**\n  Some `litellm` versions mis-parse nested model strings like `groq/openai/...`. Explicitly pass `base_url=\"https://api.groq.com/openai/v1\"` when constructing the `LLM`.\n\n- **`Tool choice is required, but model did not call a tool` / unreliable structured output**\n  Certain Groq models have inconsistent forced tool-calling support. This project avoids that entirely by having agents return plain JSON (parsed manually in `flow.py`) instead of relying on `output_pydantic` tool-calling.\n\n- **`property 'cache_breakpoint' is unsupported` (GroqException)**\n  A known CrewAI bug ([crewAIInc/crewAI#5886](https://github.com/crewAIInc/crewAI/issues/5886)) injects an Anthropic-only caching field into every request, which non-Anthropic providers like Groq reject. `crew.py` includes a workaround that disables this tagging. Safe to remove once upstream fixes the issue.\n\n- **Model not found errors**\n  Groq periodically deprecates models. Check [console.groq.com/docs/models](https://console.groq.com/docs/models) for the current lineup if `crew.py`'s configured model stops working.\n\n---\n\n## 🔒 Privacy & safety notes\n\n- Emails are only read to generate a classification and draft — nothing is stored or logged beyond your local terminal/Streamlit session.\n- No response is ever sent without explicit human approval.\n- Keep your `.env` file (Gmail app password, Groq API key) private and out of version control.\n\n---\n\n## 📄 License\n\n[MIT](LICENSE) — feel free to use, modify, and adapt.\n\n---\n\n## 🙏 Acknowledgments\n\nBuilt with [CrewAI](https://www.crewai.com/) and [Groq](https://groq.com/).\n","readmeExcerpt":"📧 AI-Gmail auto responder **AI-powered Gmail auto-responder with a human-in-the-loop approval workflow.** AI-Gmail auto responder connects to your Gmail inbox, classifies unread emails using a multi-agent $1 pipeline running on $1, drafts a professional reply when one is needed, and lets you review, edit, and approve every response before it's sent. Nothing goes out without your sign-off. --- ✨ Features - **Automati","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"Gmail (IMAP)\n     │\n     ▼\nFetch unread emails\n     │\n     ▼\n┌─────────────────────┐\n│  Classification      │  ← CrewAI agent (Groq LLM)\n│  Agent                │\n└─────────┬────────────┘\n          │\n   needs_response?\n     │         │\n    No        Yes\n     │         │\n     ▼         ▼\n  Mark   ┌─────────────────────┐\n  as     │  Response Writer     │  ← CrewAI agent (Groq LLM)\n  read   │  Agent                │\n         └─────────┬────────────┘\n                    │\n                    ▼\n          Human review & edit\n                    │\n              Approve & Send?\n                    │\n                   Yes\n                    │\n                    ▼\n          Gmail (SMTP) + mark as read"},{"language":"bash","snippet":"git clone https://github.com/<your-username>/AI-Gmail auto responder.git\ncd AI-Gmail auto responder"},{"language":"bash","snippet":"python -m venv venv\n\n# Windows\nvenv\\Scripts\\activate\n\n# macOS / Linux\nsource venv/bin/activate"},{"language":"bash","snippet":"pip install -r requirements.txt"},{"language":"bash","snippet":"cp .env.example .env"},{"language":"env","snippet":"EMAIL_ADDRESS=your_gmail_address@gmail.com\nAPP_PASSWORD=your_gmail_app_password\nGROQ_API_KEY=your_groq_api_key"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[],"languages":["python"],"docsSourceLabel":"GITHUB REPOS","editorialOverview":"AI-powered Gmail auto-responder using CrewAI and Groq with multi-agent email classification, intelligent response drafting, and human-in-the-loop approval before sending 📧 AI-Gmail auto responder **AI-powered Gmail auto-responder with a human-in-the-loop approval workflow.** AI-Gmail auto responder connects to your Gmail inbox, classifies unread emails using a multi-agent $1 pipeline running on $1, drafts a professional reply when one is needed, and lets you review, edit, and approve every response before it's sent. Nothing goes out without your sign-off. --- ✨ Features - **Automati","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":412,"uniquenessScore":62,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T03:20:46.096Z","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-09T03:20:46.096Z","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-10T02:23:25.197Z","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"}]}}}