RAG · Agents · Workflows

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.

Reference build · RAG & document AI

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.

The live stack at rag.automatico.llc is password-protected (Cognito). Request a walkthrough to see it run, run queries, and review evaluation evidence on a call.

  1. Ingest & indexDocuments in durable storage; chunking and embeddings prepare them for search.
  2. Hybrid retrieve + rerankDense and lexical fusion, then cross-encoder precision on the shortlist.
  3. Grade & evaluateRetrieval evaluation, ops instrumentation, and optional SWAG / CRAG modes where supported.
  4. Agent workflowsLangGraph-style research paths with escalation when confidence is low.

Labeled as a reference build. Performance claims only where supported by evaluation evidence.

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.

Reference build · Conversational AI

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.

  1. Call answeredBranded greeting after hours or on overflow.
  2. Intent capturedStructured fields instead of a vague voicemail.
  3. Record persistedOptional summarization; durable data for CRM or ops tools.
  4. 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.

Reference build · Document intelligence

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.

  1. Request createdRecipient email + checklist of required files.
  2. Verified accessSingle-use link; email code before upload.
  3. Private storageShort-lived upload URLs; no public bucket.
  4. 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.

Reference build · Structured intake

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.

  1. Contact + urgencyWho, where, and how fast a response is needed.
  2. Situational contextStructured fields instead of free-text chaos.
  3. Reason checklistCommon request types captured consistently.
  4. 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.

Reference build · Engagement agent

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.

  1. Submission validatedRequired fields and basic integrity checks up front.
  2. Qualification rulesDeterministic scoring; model assist only when it earns its place.
  3. Durable recordReady for CRM or workflow handoff.
  4. 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.

Operational output

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.

Where to start

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.
Contact

Request a technical walkthrough.

We can walk a reference build on a call and outline a first production path for your environment.

Request consultation