Working RAG and AI agent systems you can inspect.
Each build shows the problem, what we shipped, and the engineering underneath. Enterprise RAG, voice agents, document intake, and engagement agents—hosted here, portable to your cloud, on-prem, or hybrid.
Production RAG & enterprise knowledge platform
Problem: Company knowledge is trapped in PDFs, procedures, and tools. Generic models do not know your corpus—and staff still hunt across systems for one answer.
What we built: A production RAG stack—ingestion into Qdrant, hybrid search, reranking, access control, evaluation harness, and agent research paths with human escalation when confidence is low.
Outcome: Answers grounded in your materials, with measured retrieval quality.
- Ingest & indexDocuments in durable storage; chunking and embeddings prepare them for search.
- Hybrid retrieve + rerankDense and lexical fusion, then cross-encoder precision on the shortlist.
- Grade & evaluateRetrieval evaluation, ops instrumentation, and optional SWAG / CRAG modes where supported.
- Agent workflowsLangGraph-style research paths with escalation when confidence is low.
Why it is wired this way
Hybrid search, not vectors alone
Semantic search misses part numbers and citations. We fuse BM25 with Titan embeddings (RRF), then Amazon Rerank on the shortlist. Messy phrasing still surfaces the right chunk.
Evaluation before assumptions
Stage traces on latency and scores. A harness hits known-good questions for precision@k, recall, and modality calibration. Drift shows up in metrics before users report wrong answers.
Ingestion is most of the work
Parse, clean, dedupe, metadata, chunk, embed into Qdrant. Incremental re-index without a full rebuild. Access scope rides on every chunk so filters work at query time.
Agents on top of retrieval
LangGraph-style paths break a hard question into retrieval steps, grade evidence, cite sources, and escalate when confidence is low. Shared state and logs keep multi-agent work debuggable.
Voice agent connected to workflow
Problem: After-hours and overflow calls become voicemails. Intent never reaches a system of record.
What we built: An Amazon Connect reference path that answers, captures intent, stores structured records, applies business rules, notifies staff, and supports human handoff.
Outcome: A call path that writes a record and pages someone—while the caller is still talking.
- Call answeredBranded greeting after hours or on overflow.
- Intent capturedStructured fields instead of a vague voicemail.
- Record persistedOptional summarization; durable data for CRM or ops tools.
- Notify or escalateStaff alerted while the caller is still engaged.
What we refused to skip
Talking is the easy part
Connect answers the call. Rules and storage own the outcome. The model pulls intent and maybe a summary. If language is not required for a step, we do not burn tokens on it.
Narrow tools
Greet, collect, classify, escalate. No inventing appointments or advice outside scope. Low confidence → human. Logs so you can replay the turn later—same governance habit as our multi-agent work, on a phone channel.
Write the ticket
Contact, urgency, reason land in something CRM/FSM/email can read. Alerts fire on create. A recording that never becomes a ticket is the failure mode we designed against.
Call-path traces
Latency, confidence, rule hits, handoff reason. When something goes wrong you should know if it was speech recognition, classification, or the integration.
Secure document request pipeline
Problem: Source documents bounce around email. Status is unclear; staff find out late.
What we built: A secure one-time request link. The recipient verifies by email code, uploads files, and staff receive alerts on progress.
Outcome: Document intelligence wired into an auditable workflow with private storage.
- Request createdRecipient email + checklist of required files.
- Verified accessSingle-use link; email code before upload.
- Private storageShort-lived upload URLs; no public bucket.
- Staff notifiedAlerts on create, each upload, and completion.
How files get in without the inbox mess
Collect first, model later
One-time link, email code, checklist, private uploads with short-lived URLs. Extraction or RAG indexing only makes sense once you have a complete, attributable pile of files.
No public bucket
Prove identity, then write. URLs expire. Staff get notified; they do not browse S3 for “did it land?” Same access discipline as production RAG.
Models stay optional
Summarize or completeness-check if it helps. Completeness itself is a checklist and rules. Embeddings come after the intake spine works.
Keep it operable
Alerts on create / upload / done. Retention is explicit. Same pattern for tax packets, matter files, vendor docs—wherever missing files stall the next step.
Capture context before it hits the inbox
Problem: Web and phone requests arrive incomplete—no urgency, context, or next step—so they stall before a system of record.
What we built: A structured intake agent: contact and urgency, situational context, reason checklist, and routing—then an immediate staff alert with a durable record.
Outcome: One pattern deploys for service desks, professional intake, and operational queues—with CRM or FSM handoff when you are ready.
- Contact + urgencyWho, where, and how fast a response is needed.
- Situational contextStructured fields instead of free-text chaos.
- Reason checklistCommon request types captured consistently.
- Route + alertStructured notification to the right queue or owner.
Design notes on structured intake
Fields beat free text
Contact, urgency, context, reason checklist. Same shape every time. A model can classify leftover prose; it does not get to invent the schema.
Same spine, different queues
Service desk, professional intake, ops overflow—they all fail by dropping incomplete requests. Capture → validate → persist → route → alert. Field names change; the spine does not.
Urgency drives the queue
High-urgency paths notify immediately. Lower-urgency paths can batch. Wrong-fit requests get a recorded decline instead of sitting in a shared inbox.
CRM later is fine
Email or a store is a valid first ship. Wire CRM/FSM when the capture contract is stable. Watch validation failures and notification delivery the same way we watch RAG stages.
Qualify, score, and route inbound interest
Problem: Form fills land in a shared inbox. Qualification is inconsistent; high-intent requests cool off.
What we built: Validate submissions, apply clear qualification rules, persist a durable record, and notify the owner with grade and summary.
Outcome: Owner gets a graded alert with a durable record. Reference pattern. Not a claimed client case study.
- Submission validatedRequired fields and basic integrity checks up front.
- Qualification rulesDeterministic scoring; model assist only when it earns its place.
- Durable recordReady for CRM or workflow handoff.
- Owner notifiedImmediate alert with grade and summary.
Engagement agent notes
Rules grade; models summarize
Prompt-only scoring is inconsistent and hard to audit. Validate fields, run deterministic rules, optionally summarize. The owner should see why a lead ranked where it did.
Notify the owner, not a shared inbox
Persist first, notify with grade and summary, CRM later if the path holds. Same pattern for sales or internal desks—labeled as a reference build on our infra.
What a reference run produces.
Redacted staff notification from a live intake submission on our infrastructure—the same capture → route → alert path used in production deploys.
From Intake agent · Automatico reference
To ops@••••••••.com
Subject New request · urgency: same-day
Contact J—— R—— · (•••) •••-••42
Context Structured fields captured at submission
Reason Service request · checklist completed
Urgency Same-day response requested
Next step Owner notified · record saved for morning review
Structured capture before hang-up. No voicemail re-entry.
Match capability to the constraint.
- Knowledge trapped in files — start with the RAG platform when answers must use your corpus.
- Requests that never become records — start with voice agents or structured intake when calls and forms die before systems of record.
- Inbound interest without ownership — start with the engagement agent when qualification and follow-up are inconsistent.
Request a technical walkthrough.
We can walk a reference build on a call and outline a first production path for your environment.
