Ductor¶
Status: Active Type: Personal AI assistant — Telegram bot with persistent workspace
What it is¶
Multi-agent AI system running in Docker (ductor-sandbox). Main agent coordinates sub-agents, cron jobs, webhooks, and tools. Communicates via Telegram.
Architecture¶
Host: ~/.ductor/ (mounted as /ductor inside container)
├── workspace/ — agent working area
│ ├── tools/ — cron, webhook, media, agent, task, user tools
│ ├── skills/ — custom skill modules
│ ├── cron_tasks/ — scheduled task definitions
│ ├── memory_system/ — MAINMEMORY.md + mem0 semantic memory
│ └── wiki/ — LLM wiki (this site)
├── agents.json — sub-agent configs + bot tokens
├── config/config.json — runtime config
├── sessions.json — per-chat session state
└── logs/ — runtime logs
Memory System¶
| Layer | Tool | Description |
|---|---|---|
| Short-term | MAINMEMORY.md | Flat markdown, always in context |
| Semantic | mem0 (qdrant + MiniLM-L6) | Vector search over memories |
| Compiled | Wiki (this site) | Structured, cross-referenced knowledge |
Local ML Models (6)¶
Cached at /ductor/.cache/huggingface/hub, accessible via tools/ml_tools.py:
analyze_sentiment— positive/negative/neutralextract_entities— ORG/PER/LOC/MISCtranslate_id_en— Indonesian to Englishsummarize— condense long textclassify_zero_shot— custom labels without retraininganswer_question— extractive Q&A
Cron Jobs (personality)¶
| Job | Schedule | Description |
|---|---|---|
| ductor-pulse | 09:00/14:00/20:00 WIB | Proactive check-ins, jokes, voice notes |
| ductor-reader | 03:00 WIB | Autonomous reading — philosophy, finance, tech |
Infrastructure¶
- Git: GIT_CONFIG_GLOBAL=/ductor/.gitconfig (Muhammad Tsaqif Mukhayyar)
- GitHub: gh CLI authenticated as mukhayyar
- Cloudflare: API token in /ductor/.env
- S3: IDCloudHost primary, Cloudflare R2 fallback
- Google: gws CLI authenticated as [email protected]