Services · AI & ML systems
Secure LLM applications & agents
LLM applications, agents, and the MCP servers behind them, built like production software — with the access boundaries, evaluation, and audit trail a security review will ask about.
What it covers
- LLM applications and agents on Claude or an open-weight model, chosen by the task and the data, with retrieval over your documents where it helps
- MCP servers (FastMCP) that expose internal data and services to Claude and other agents with scoped, auditable access
- Team enablement for agentic development: Claude skills, conventions, and review practices so AI-assisted engineering stays consistent and reviewable
- Least-privilege design: scoped credentials, document-level access control in retrieval, and human approval for irreversible actions
- Input and output guardrails: isolating untrusted content, validating structured outputs, and limiting what a model is allowed to trigger
- Evaluation sets that run in CI, so quality and safety regressions are caught before users find them
- Logging of prompts, retrievals, and tool calls, so behavior can be reconstructed and cost attributed
- Deployment, monitoring, and cost controls, as for any production service
- Self-hosted open-weight models — Llama, Qwen, Mistral, Gemma, gpt-oss — served with vLLM or llama.cpp when data residency, volume, or cost argue for running your own (details below)
How an engagement runs
We start with the workflow and the data it touches. A short design note names what the system may see and do, which model fits, and what good looks like. We then build in small, reviewable increments with evaluation from the first week, and hand over a system your team can operate.
What you get
A working system with documented boundaries, an evaluation suite, logging and dashboards, and an architecture note that answers the questions a customer's security review will ask.
Self-hosted and open-weight models
When data must stay inside your boundary, the volume is steady, or the hosted-API bill grows faster than the value, we run the model for you — on your cloud, on-premises, or a low-cost GPU provider — behind the same gateway and controls as everything else:
- Model selection and benchmarking against your actual tasks and data, not public leaderboards
- Serving with vLLM or llama.cpp on Kubernetes or a single GPU host, sized to your traffic, with quantization and batching chosen by measurement
- An OpenAI-compatible internal gateway with routing, caching, rate limits, and per-team cost attribution
- Fallback to Claude or another hosted API for the requests that genuinely need one
- Terraform-managed infrastructure and dashboards for cost, latency, and quality from the first day
When self-hosting is the wrong answer
Spiky or very small workloads, tasks that need frontier-level reasoning, and teams without anyone to own a GPU host are usually better served by Claude or another hosted API behind a gateway you control. We model the economics before recommending anything, and we will tell you when the hosted option wins.
Dryware builds secure-by-default systems using standard engineering controls. We are not a penetration-testing or security-audit firm; when a formal assessment is needed we say so and work alongside the firm you choose.
Book an intro call