{"id":"30490ee8-1b65-400d-b66d-4d3ed1c8e84b","slug":"crewai-mylazily-aiemail","name":"aiemail","description":"An AI email assistant that triages incoming messages, prioritizes replies, drafts responses with CrewAI, and pauses for human review with LangGraph.","canonicalUrl":"https://www.xpersona.co/skill/crewai-mylazily-aiemail","sourceUrl":"https://github.com/mylazily/aiemail","homepage":null,"source":"GITHUB_REPOS","vendor":{"slug":"mylazily","label":"Mylazily","url":"https://github.com/mylazily/aiemail"},"protocols":["OPENCLEW"],"capabilities":["crewai","multi-agent"],"trustScore":null,"trustConfidence":"unknown","artifactCount":0,"benchmarkCount":0,"lastRelease":null,"freshnessAt":"2026-10-09T15:57:33.988Z","freshnessLabel":"Oct 9, 2026","securityReviewed":true,"openapiReady":false,"stats":[{"label":"Trust score","value":"Unknown"},{"label":"Compatibility","value":"OpenClaw"},{"label":"Freshness","value":"Oct 9, 2026"},{"label":"Vendor","value":"Mylazily"},{"label":"Artifacts","value":"0"},{"label":"Benchmarks","value":"0"},{"label":"Last release","value":"Unpublished"}],"factsPreview":[{"factKey":"vendor","category":"vendor","label":"Vendor","value":"Mylazily","href":"https://github.com/mylazily/aiemail","sourceUrl":"https://github.com/mylazily/aiemail","sourceType":"profile","confidence":"medium","observedAt":"2026-10-09T15:57:33.997Z","isPublic":true},{"factKey":"protocols","category":"compatibility","label":"Protocol compatibility","value":"OpenClaw","href":"https://www.xpersona.co/api/v1/agents/crewai-mylazily-aiemail/contract","sourceUrl":"https://www.xpersona.co/api/v1/agents/crewai-mylazily-aiemail/contract","sourceType":"contract","confidence":"medium","observedAt":"2026-10-09T15:57:33.997Z","isPublic":true},{"factKey":"docs_crawl","category":"integration","label":"Crawlable docs","value":"6 indexed pages on the official domain","href":"https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar","sourceUrl":"https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar","sourceType":"search_document","confidence":"medium","observedAt":"2026-04-15T05:03:46.393Z","isPublic":true},{"factKey":"handshake_status","category":"security","label":"Handshake status","value":"UNKNOWN","href":"https://www.xpersona.co/api/v1/agents/crewai-mylazily-aiemail/trust","sourceUrl":"https://www.xpersona.co/api/v1/agents/crewai-mylazily-aiemail/trust","sourceType":"trust","confidence":"medium","observedAt":null,"isPublic":true}],"highlights":["Trust evidence available"],"agentCard":{"name":"aiemail","description":"An AI email assistant that triages incoming messages, prioritizes replies, drafts responses with CrewAI, and pauses for human review with LangGraph.","source":"GITHUB_REPOS","sourceId":"crewai:1277972925","repository":"https://github.com/mylazily/aiemail","documentation":"https://www.xpersona.co/skill/crewai-mylazily-aiemail/agent/crewai-mylazily-aiemail","protocols":["OPENCLEW"],"capabilities":["crewai","multi-agent"],"languages":["python"],"install":{"command":"git clone https://github.com/mylazily/aiemail.git","ecosystem":"git"},"examples":[{"kind":"example","language":"bash","snippet":"npm install\ncp .env.example .env\n# Fill in AI_GATEWAY_API_KEY and AI_GATEWAY_BASE_URL in .env\nedgeone makers dev"},{"kind":"example","language":"text","snippet":"email-assistant/\n├── agents/email/                   # Backend: Python agent handlers\n│   ├── run.py                      # /email/run — main SSE entry (fetch→classify→draft→review loop)\n│   ├── review.py                   # /email/review — HITL resume (Command(resume=decision))\n│   ├── history.py                  # /email/history — conversation list / get / delete\n│   ├── stop.py                     # /email/stop — abort active run\n│   ├── health.py                   # /email/health — liveness probe + provider info\n│   ├── _graph.py                   # LangGraph StateGraph definition & compilation\n│   ├── _state.py                   # EmailAssistantState TypedDict\n│   ├── _nodes.py                   # 7 node functions (fetch, classify, prioritize, draft, review, apply, summarize)\n│   ├── _routing.py                 # 3 conditional edge functions\n│   ├── _crew.py                    # CrewAI crew adapter (builds kickoff inputs)\n│   ├── _models.py                  # Pydantic v2 domain models (Email, DraftItem, ReviewDecision, etc.)\n│   ├── _providers.py               # EmailProvider protocol + MockProvider + IMAPProvider\n│   ├── _events.py                  # CrewAI→LangGraph event bridge (cross-thread)\n│   ├── _llm.py                     # LLM client initialization (AI Gateway)\n│   ├── _tools.py                   # CrewAI BaseTool implementations (Tone, Template, ThreadContext)\n│   ├── _crews/                     # @CrewBase crew definition (YAML agents + tasks)\n│   ├── fixtures/                   # 10 mock .eml files + user_rules.json\n│   ├── skills/                     # Skill definitions (email-tone, email-templates, triage-rules)\n│   └── prompts/                    # System prompts for LangGraph nodes\n├── src/                            # Frontend: React + Vite\n│   ├── App.tsx                     # SSE state machine + pipeline reducer\n│   ├── components/\n│   │   ├── ChatLayout.tsx          # Three-column responsive layout\n│   │   ├── EmailInboxTree.tsx      # Left"}]}}