Claude
|
b82ff27efd
|
Implement Python email agent with multi-model AI support
Adds a complete email-based registration agent for Spielgruppe Pumuckl
based on the OpenSpec define-project-scope specifications.
Architecture
- Channel-agnostic EmailAgent core — no email-specific code in business logic
- Pluggable AI provider layer: Anthropic (Claude) and OpenAI (GPT) supported
via a shared LLMProvider interface; switch with AI_PROVIDER env var
- IMAP polling for inbound emails with thread-tracking via email headers
(Message-ID / In-Reply-To / References)
- SMTP for outbound replies and admin notifications
- File-based JSON storage for conversation state and completed registrations
- Admin-editable knowledge-base loaded from markdown files at startup
Key files
src/config.py — env-var configuration
src/providers/base.py — abstract LLMProvider
src/providers/anthropic_provider.py — Claude backend
src/providers/openai_provider.py — OpenAI backend
src/agent/core.py — EmailAgent orchestrator
src/agent/prompts.py — system prompt builder (KB + registration state)
src/models/registration.py — RegistrationData matching the JSON schema
src/models/conversation.py — ConversationState persisted per thread
src/channels/email_channel.py — IMAP/SMTP I/O + quoted-text stripping
src/storage/json_store.py — conversation & registration persistence
src/notifications/notifier.py — admin notification routing by playgroup type
main.py — polling entry point
requirements.txt — anthropic, openai, python-dotenv, jsonschema
.env.example — configuration template
https://claude.ai/code/session_01HaUFs7SaLD5SoiuGCY27Tw
|
2026-02-20 20:17:00 +00:00 |
|