CYBIL Agent Seed.
An internal AI agent builder that lets a Singapore logistics association turn veteran know-how, SOPs, and operational guidance into citation-backed agents depot staff can actually trust.
- Role
- Full-stack developer
- Client
- Container Depot & Logistics Association of Singapore
- Team
- Small FYP team · branch-per-feature
- Status
- Used internally · 2026
Don't make a chatbot. Build memory.
Logistics teams lose institutional knowledge every time a veteran staff member leaves. Documentation is scattered across PDFs, WhatsApp groups, and people's heads. Onboarding takes weeks, inconsistencies pile up, and depot staff end up asking the same question to five different people.
CDAS didn't want a generic chatbot. They wanted an internal tool that lets non-technical operations leads encode their know-how into custom AI agents, scoped to one domain at a time — “Depot Safety Assistant”, “Container Inspection Agent”, and so on — that staff can build, deploy, and rely on.
Grounded answers, or no answers.
Every agent has its own knowledge base. Uploaded files — PDFs, DOCX, plain text, or pasted URLs — get auto-chunked, embedded into pgvector, and retrieved at query time. The model only answers from what it can cite.
When confidence is low, or the question is out of scope, the agent doesn't guess — it triggers a supervisor escalation fallback with a clear handoff. A scope-aware intent classifier runs before retrieval, so a friendly “hi” doesn't waste an LLM call or accidentally page a supervisor.
- Two-mode agent builder Simple wizard for ops leads, advanced builder for power users — same backend, different ceiling.
- Knowledge integration Drop in files or URLs. Auto-chunking, embedding, tagging, and categorisation handled in the background.
- Citations, not vibes Every grounded response is tied back to the specific knowledge chunks it came from.
- Role-based UX Workers get a discovery + chat surface. Builders get the workspace, analytics, and the agent lifecycle.
Built for builders, made for workers.
What I built, specifically.
Worked across the stack on a small team using a branch-per-feature workflow. The pieces I owned end-to-end:
- Landing & marketing UX Editorial split layout, animated aurora background, the red-offset framed photo block — the whole front-door treatment.
- Auth flow + Google OAuth Local username/password and Google sign-in with proper COOP popup handling and role-based access.
- Scope-aware fallback logic Stopped the agent from giving “check with supervisor” answers to casual greetings or in-scope clarifying questions.
- Multi-provider LLM stack Wired up LiteLLM so the team can swap between OpenAI, Anthropic, Google, Groq, and OpenRouter without rewriting the call sites.
-
Schema & migrations
Kept the DB schema stable across team environments — especially around the
agents↔agent_configsplit.
Under the hood.
Picked for boring reliability. The interesting parts of the project shouldn't be the framework choices.
Frontend
Backend
Data & AI
Auth & misc.
In the wild, doing the work.
CYBIL Agent Seed is in use internally at CDAS for daily operational support. It's replacing informal handover-based knowledge transfer with consistent, citation-backed AI guidance staff can actually rely on.
For me, it's the project where I learned the most about shipping — about the gap between “works on my machine” and “works in someone's actual workflow”, and about how much of good software is just keeping schema, contracts, and intentions tidy.