Inspiration
Customer support is one of the hardest places to “just add an LLM.” Agents re-ask questions customers already answered, re-investigate issues that were already diagnosed, and lose everything if a long tool-using run crashes mid-flight. That is not only a model problem — it is a memory problem.
In short:
$$\text{good support} \approx \text{recall} + \text{safe action} + \text{recoverability} + \text{proof}$$
We built SupportMemory for Track 1: MemoryAgent on Qwen Cloud: a support agent that remembers what matters, forgets what is stale, resumes after failure, and proves what it did. The goal is (\text{memory that recovers}) — not another chat wrapper.
What it does
SupportMemory investigates tickets with durable execution memory:
- Persistent user memory — name, contact channel, plan tier, extras, plus conversation history across sessions
- KB memory — real text/PDF ingest, chunking, embeddings (Qwen
text-embedding-v3when keyed), hybrid search - Context Health — filter stale/noisy context before planning
- Runtime Governor — hybrid PII: redact on reads; require approval on external
send_*/refund_*actions - Checkpoints + recovery — PostgreSQL-backed checkpoints; simulate failure → restore trusted state without replaying completed tools
- Cross-session improvement — reflect → curate → retrieve lessons on the next related run
- Multimodal / voice on Qwen — vision (
qwen-vl-max), TTS, ASR with language preference - Signed execution receipts — SHA-256 + Ed25519 proof; optional Alibaba OSS archive
Judges can run the one-click path:
cp .env.example .env
docker compose up --build
# open http://localhost:3000 → Run recovery demo
# or POST /api/demo/failure-recovery
Keyless/mock mode works without external keys; set QWEN_API_KEY for live Qwen Cloud reasoning.
How we built it
We shipped a Docker Compose stack:
- SupportMemory console UI wired to the live API (investigations, inspector, KB panel)
- FastAPI runtime for tasks, tools, KB, preferences, conversations, voice, multimodal
- PostgreSQL as the durable store for checkpoints, traces, KB chunks, user prefs, and conversation history
- Recovery worker to resume incomplete runs
- Qwen / DashScope as the model gateway (chat, embeddings, VL, TTS, ASR)
- Helpdesk mocks (Zendesk/Freshdesk-shaped) so demos run without CRM credentials
The demo story is intentionally concrete:
Task contract → Context Health → Tool traces → Checkpoint
→ Failure → Restore → Reflect/Curate → Retrieve → Receipt
Challenges we ran into
- Search quality — naive hash/Jaccard ranking underperformed; we improved coverage/phrase ranking and Qwen embeddings.
- UI vs product story — we replaced the old infra-style demo with a SupportMemory dashboard and wired KB/tasks/recovery live.
- Per-user memory gap — language prefs existed, but general profile + conversation history did not; we added both and inject them into
POST /api/tasks/runviauser_id. - Hackathon packaging — public repo, full Apache-2.0
LICENSE, runnable Compose instructions, and Alibaba/Qwen deployment notes for judges.
Accomplishments that we're proud of
- A one-click failure → recovery demo that proves checkpoints, non-replayed tools, and signed receipts
- A real KB path (text + PDF ingest → embed → search), not just mocked “memory” text
- A hybrid Runtime Governor that treats support side-effects (send/refund) differently from internal reads
- Per-user preferences + conversation history wired into task context for true cross-session recall
- A judge-friendly open-source package: public GitHub repo, Apache-2.0 license, Docker Compose, keyless mode
What we learned
- “Memory” for agents is not one vector DB call — it is profile + conversation + KB + lessons + checkpoints.
- Forgetting is as important as remembering: Context Health and bounded conversation windows keep context usable.
- Support actions need a governor, not just a chat model — especially around PII and refunds/emails.
- Judges need a keyless path and a one-click recovery demo; live Qwen can be an optional upgrade.
- Proof matters: a signed receipt turns “trust me” into auditable evidence.
What's next for SupportMemory
- Live Zendesk/Freshdesk connectors behind the same mock contracts
- Richer UI for preferences + conversation threads in the dashboard
- Production auth, tenancy, and receipt verification for enterprise support teams
- Deeper Qwen Cloud multimodal workflows (screenshot → root cause → spoken summary) in the default demo path
Built With
- alibaba-cloud
- asr
- computer-vision
- dashscope
- docker
- docker-compose
- ed25519
- fastapi
- hackathon
- javascript
- llm-agents
- mcp
- open-source
- oss
- postgresql
- python
- qwen
- rag
- react
- rest-api
- tts
- typescript
Log in or sign up for Devpost to join the conversation.