01 · AI Systems & Agents
AI systems that take actions, not just answers.
An agent is only useful when it can do something: look up a real order, draft a real quotation, resolve a real ticket. We build the retrieval, the tool layer and the guardrails that make that safe — and we run the models on your infrastructure by default.
The problem
Chat widgets that guess.
A generic chatbot bolted onto a product catalog answers confidently and wrongly. It has no access to stock levels, no idea what a customer ordered last month, and no way to draft a quotation — so every real question ends up in the same human inbox it was supposed to relieve.
The second failure mode is subtler. Once an assistant can act, it needs to be constrained: which tools it may call, what it may promise, what happens when retrieval comes back empty. Without that, an agent invents shipping prices.
And for a lot of businesses, sending customer records and call recordings to a third-party API is either a compliance problem or a cost problem that only appears at scale.
What we build
Retrieval, tools, guardrails.
- RAG knowledge bases over documentation, product catalogs and past tickets
- Tool calling wired to real systems: order lookup, quotation drafting, stock checks
- Self-hosted model runtimes on Ollama — DeepSeek, LLaMA and Qwen
- Voice layers with Whisper and WhisperX for transcription and speech input
- Embedding pipelines that keep the vector store in sync as content changes
- n8n as the automation backbone between the agent and your other systems
Architecture
How a request flows.
- 01ingestDocumentation, catalog and ticket history are normalised into chunks
- 02embedChunks are embedded and written to the vector store, then re-embedded on change
- 03retrieveA question is embedded and matched against the store with filters applied
- 04reasonThe local model receives retrieved context plus a constrained tool schema
- 05actTool calls hit Laravel endpoints for orders, quotes and stock — never raw SQL
- 06logEvery call, retrieval and answer is logged for review and evaluation
Stack
- Laravel
- Python
- Ollama
- DeepSeek
- LLaMA
- Qwen
- Whisper
- WhisperX
- RAG
- Embeddings
- n8n
Questions
Asked most often.
Self-hosted or a hosted API?
Self-hosted by default, because most of the systems we build handle customer records, order data or call recordings. Where a hosted model is genuinely better for a task, we say so and use it — the decision is made per project and written down.
Which models do you use?
On Ollama: DeepSeek, LLaMA and Qwen, chosen per task rather than by benchmark score. Whisper and WhisperX handle speech. Model choice is a variable we tune, not a commitment made up front.
How do you stop it inventing answers?
Three layers: retrieval only returns content that exists, tool calls go through validated endpoints rather than free-form generation, and anything with no supporting context is escalated rather than answered. Every interaction is logged so failures are reviewable.
Can it work with our existing Laravel or Shopify system?
Yes — that is the normal case. The agent calls into the systems you already run instead of replacing them.
Next step