Lab notes
Fifteen projects, from governed AI agents to quantum research. Each note covers the problem, what we built, how it is controlled, and the evidence behind it.
"Reference" and "demonstration" mean the work ran on synthetic or public data. Client engagements are summarised at a level that protects confidentiality.
Governed autonomous agents
Agents that investigate, decide and act through controlled tools. Autonomy is set per workflow, from advisory to act-with-approval. Every step is logged, and consequential actions require human approval.


-
Finance
Autonomous financial investigation platform
Explains why profitability moved, with an evidence trail an auditor can follow.
Read the full note
- The challenge
- Finance questions draw on ERPs, external filings and internal documents. An answer without provenance cannot be audited or signed off.
- The solution
- An investigation platform in which code, not the prompt, controls the process: planner → investigation loop → adversarial critic → remediation loop → deterministic verifier.
- Controls and evidence
-
- Every fact is stored with its source. Every claim is classified (fact, calculation, assumption, scenario or inference) and lists the evidence for and against it.
- Database access is read-only and guarded. State, memory, recovery and permissions are explicit policy.
- A configuration-driven evaluation suite scores the agent before any demonstration.
- Data sources
- Guarded database queries, public regulatory filings, public macroeconomic series, internal documents, anomaly detection and a scenario engine.
- Status
- Full platform with continuous integration, documentation and a demonstration script. It runs on a labelled synthetic ERP, so it can be evaluated without client data.
- Autonomy level
- Advise. The platform reads, analyses and reports, and a person acts on the findings.
- Relevant to
- Corporate finance, internal audit and risk functions.
- Technology
- Python 3.11, FastAPI, SQLAlchemy (Postgres/SQLite), Pydantic, OpenAI Responses API, Next.js, Tailwind, Docker Compose, GitHub Actions (ruff, mypy, pytest)
-
Supply chain, maintenance, field service
Operations automation agents
Six agents that investigate a business event, decide, act through controlled tools and escalate to a person when required.
- 6agents on one shared pipeline
- 7steps from event to verified action
Read the full note
- The challenge
- An agent that can commit spend or change records needs hard limits and a full audit trail before it can be connected to core systems.
- The solution
- Agents for supplier disruption, maintenance triage, field-service rescheduling, procurement exceptions (three-way match), inventory stockouts, and a cross-domain operations control tower.
- Controls and evidence
-
- One shared pipeline: gather → assess → validate → decide → approval gate → execute → verify.
- Spend limits, approved vendors and tolerances are enforced in code. Writes are idempotent and verified by read-back. Every tool call is audited.
- Run state is persisted, so a human approval can resume the work later.
- The stockout agent survives a forced shutdown and replays safely.
- Each agent ships with deterministic evaluations and unit tests. Without a model API key it falls back to a deterministic heuristic.
- Status
- All data is synthetic. The tool layer is designed to map onto a production ERP or enterprise asset-management system.
- Autonomy level
- Act with approval. Consequential actions wait for a person.
- Relevant to
- Global manufacturing, utilities, procurement and field-service operations.
- Technology
- Python 3.12, LangGraph, MCP, FastAPI, Pydantic, SQLite (simulated ERP/EAM), TypeScript, Vite
-
Retail and e-commerce
Conversational commerce agent
A single conversation takes a customer from intent to a working payment link, in three languages.
Read the full note
- The challenge
- Gift purchasing involves search, comparison, delivery checks, payment and tracking. Each extra step between intent and payment is an opportunity to lose the customer.
- The solution
- A chat-first agent integrated with a retailer's catalogue and ordering systems through the Model Context Protocol. Built for an industry agent-building competition in 2026.
- Capabilities
-
- Search, delivery check, cart, guest checkout with a live payment link, and order tracking, all within the conversation.
- Photo-based search, a bundle builder that works to a stated budget, side-by-side comparison, and personalised message previews in a non-Latin script.
- Three languages, including a non-Latin script and a mixed local-English style.
- Persistent memory of recipients, occasions, location, language and budget, with a local holiday calendar.
- Streaming responses with parallel tool calls, rendered as rich product cards and delivery quotes.
- Resilience
- A dependency-free integration client with synonym retry, browse fallback when search returns nothing, stale-on-error caching, jittered retries and session reconnect. Installable progressive web app that meets accessibility requirements (live regions, focus management, reduced-motion support).
- Autonomy level
- Act with approval. The customer reviews the cart and completes payment.
- Relevant to
- Retail, gifting and marketplace operators.
- Technology
- Next.js 14 (App Router), TypeScript, Tailwind, OpenAI function calling, Model Context Protocol, custom SSE protocol, Vercel
Auditable knowledge systems
Retrieval, knowledge-graph and ontology solutions in which each answer traces to a source or a rule.


-
Advisory services
Knowledge-graph advisory assistant
An assistant that answers from a knowledge graph first, and states clearly when the graph holds no answer.
Read the full note
- The challenge
- Interviews and case notes hold an organisation's expertise, but the material cannot be searched. Plain vector search misses how people, companies and events relate.
- The solution
-
Two connected components for an advisory product.
- The assistant: Answers questions from a Neo4j graph through a Cypher query tool, falls back to web search when the graph has no answer, and summarises long conversations to manage memory. Runs with Qdrant indexing and a Redis/Postgres-backed LangGraph server.
- The extractor: Converts raw interview transcripts into a graph of people, companies, regions and case stories, with typed output ready to load.
- Related build
- An incident-knowledge assistant in which a router selects vector search or generated graph queries for each question.
- Status
- Client engagement, delivered with colleagues. Client confidential.
- Autonomy level
- Advise. The assistant answers questions and does not change records.
- Relevant to
- Advisory, consulting and any firm with years of unstructured case material.
- Technology
- LangGraph, Neo4j, Qdrant, GPT-4o, Groq, Pydantic, Docker Compose
-
Life sciences
Ontology-grounded drug-interaction analysis
Drug-interaction answers that trace to a formal medical ontology rather than to a model's recollection.
Read the full note
- The challenge
- In a clinical setting, a fluent but incorrect answer is worse than no answer.
- The solution
- Four specialist agents (interaction, conflict, similarity and alternative medication), orchestrated with LangGraph. Each queries an OWL/RDF ontology. A language model then converts the structured results into a readable answer.
- Controls and evidence
- Facts come from the ontology, and the language model only phrases them. Every query is logged.
- Status
- Public demonstration with inference tracking, a web interface and a command-line tool.
- Autonomy level
- Advise. The system answers questions and does not act on them.
- Relevant to
- Pharma, clinical decision support and any domain governed by a formal rulebook.
- Technology
- Python, LangGraph, LangChain, RDFlib/OWL, Groq (open-source models), Streamlit, Hugging Face Spaces
-
Research-intensive teams
Technical document intelligence
Dense technical papers made easier to read, with the source text left intact.
Read the full note
- The challenge
- Specialists spend hours on terminology, equations and figures before reaching the substance.
- The solution
-
Three iterations, from a research prototype to a full-stack application to a containerised retrieval stack.
- Parallel analysis agents cover terminology, figures (through vision models), mathematics and document structure, and report progress in real time.
- The latest version routes each request (question, glossary or figure) across a vector store, cache and relational database.
- Evidence
- Run end to end on a landmark machine-learning paper: sections parsed, figures described, glossary built and a quality report produced.
- Relevant to
- R&D, due-diligence and compliance teams with heavy technical reading.
- Technology
- FastAPI, LangGraph, Azure OpenAI (GPT-4o and embeddings), Next.js 14, KaTeX, Qdrant, Redis, Postgres, Docker Compose
-
Retail data
Retail price intelligence
A natural-language shopping list matched to the lowest-priced in-stock items across several supermarket chains.
Read the full note
- The challenge
- Retail data is inconsistent, changes daily and arrives in a different format from every source.
- The solution
-
Our scope was the data collection and the retrieval and agent layers.
- Collectors for three regional supermarket chains write dated snapshots with error manifests and normalise unit prices and promotions into a single product model.
- A LangGraph agent parses the free-text list, runs vector search, reranks and summarises.
- Hybrid filtering on store, branch, maximum price and stock, using Firestore vector search with Gemini embeddings. An earlier Qdrant implementation is retained.
- Controls and evidence
- The model provider can be swapped (Groq, OpenAI, DeepSeek or Gemini), and the architecture is documented with UML and Mermaid diagrams.
- Status
- Team engagement.
- Relevant to
- Retail intelligence, pricing and marketplace teams.
- Technology
- Python, Playwright, Crawlee, LangGraph, Firestore, Qdrant, Streamlit, Expo/React Native
Simulation and decision support
Deterministic engines with live operational interfaces, used to compare strategies before capital is committed.


-
Emergency response, logistics
Autonomous response-planning simulators
Teams of autonomous drones learn to coordinate, and a live map interface lets stakeholders compare strategies before committing resources.
- 30scenes across 3 regimes
- 0learned policies beat the simple rule
Read the full note
- The challenge
- Emergency and logistics plans are costly to test in the field. A simulator lets decision-makers test them first.
- The solution
-
Two connected platforms.
- Wildfire response: Drones search bushland for fires and suppress them. Policies trained with DQN, MAPPO and MADDPG are compared against a hand-written greedy expert across 30 scenes in three regimes, including a stress regime with eight fires, lossy radio and a binding battery constraint. Documented in a research paper in conference format.
- Flood relief: Drones deliver medicine and water to cut-off communities, scout roads and monitor slopes at risk of failure. Built on real terrain, road, population and river data from a recent major flood event. Runs on a standard CPU laptop.
- Controls and evidence
-
- The flood model is calibrated against satellite-derived flood extents. Every calibration score and every failed acceptance gate is recorded.
- Fixed seed pools separate training, checkpoint selection and held-out reporting.
- Reported finding: A simple nearest-fire rule proved very difficult to beat, and no learned policy outperformed it. The paper lists its own limitations.
- Applicable to
- Logistics, emergency response, infrastructure monitoring and any problem of the form "compare strategies before committing capital". A deterministic simulation core, a streaming API and a map front end.
- Technology
- Python, NumPy, PyTorch, PettingZoo, FastAPI, WebSockets, React, MapLibre, Cesium, pytest
-
Agriculture
Field-operations and compliance platform
A collaborative farm-management application, taken from market research to a working product.
Read the full note
- The challenge
- Farm records feed audits, safety rules and cost control, and fields often have no connectivity.
- The solution
-
Market study → product requirements → technical architecture report → working application.
- Offline-first progressive web app with an idempotent sync queue, so a retry never creates a duplicate record.
- A plan → recommendation → work order → actual pipeline that validates application rates and warns automatically about pre-harvest and re-entry intervals.
- Audit evidence-pack PDF export, a cost-of-production ledger, five user roles and map views on PostGIS.
- Relevant to
- Agriculture and any field-operations business with compliance obligations.
- Technology
- Next.js 14, TypeScript, Prisma, PostgreSQL/PostGIS, Leaflet, turf, pdf-lib, jose
-
Subscription businesses
Churn prediction for data-sparse businesses
Identifies customers likely to leave, explains why, and keeps a record of every decision.
Read the full note
- The challenge
- Businesses with limited history and strict privacy obligations need predictions they can defend.
- The solution
- A clean-architecture churn system. Business rules run first and machine learning second. SHAP explains each prediction. A GDPR-style audit log records every decision. Served through an API and a command-line tool.
- Status
- Demonstration trained on synthetic data.
- Relevant to
- Subscription and membership businesses.
- Technology
- scikit-learn, SMOTE, SHAP, FastAPI, pytest
Applied machine learning with evidence
Vision, fraud and prediction models, reported on held-out data with stated limitations.


-
Agriculture, quality control
Explainable visual inspection
Finds, measures and explains defects on produce, and shows the reasoning behind each diagnosis.
- 85.0%F1 on a public fruit-disease benchmark
- 4segmentation methods per defect
Read the full note
- Recognition
- Originated as an academic research project and became the basis of a Best Paper Award at an international AI conference in 2025.
- The solution
- Automatic background removal, then defect segmentation by four methods (colour ranges, K-means, adaptive thresholding and edge detection). For each defect: size, colour, centre, bounding box and share of total coverage.
- Controls and evidence
- A plant-disease ontology with a reasoner encodes symptoms, colour profiles and morphology, so every diagnosis arrives with its logic.
- Result
- 85.0% F1 on a public fruit-disease benchmark, competitive with established deep-learning image models while remaining fully interpretable.
- Also delivered
- A web application with live parameter tuning and a real-time camera mode.
- Relevant to
- Agri-tech, food quality control and any inspection task where the reason matters as much as the result.
- Technology
- Python, OpenCV, rembg, scikit-learn, OWL, Pellet, Streamlit
-
Security and fraud
Multi-model phishing detection
Three independent models vote on whether a link is malicious, and the service continues if one drops out.
- 97.1%LSTM accuracy on 62.5k held-out URLs
- 99.6%LSTM ROC AUC on the same set
- 92.0%ensemble accuracy, 1.71 s per URL
Read the full note
- The challenge
- Any single model has a blind spot. Three different model types cover for one another.
- The solution
- XGBoost on 20+ URL features plus TF-IDF, a bidirectional LSTM on character sequences, and Llama 3.1 (via Groq) for semantic analysis with reasoning. An orchestrator fuses their confidence-weighted scores. If the language model is unavailable, the remaining models are re-weighted automatically.
- Results
-
- The LSTM, trained on 250k URLs, reached 97.1% accuracy, 98.3% precision, 95.8% recall and 99.6% ROC AUC on a 62.5k held-out set.
- The full ensemble reached 92.0% accuracy at 1.71 seconds per URL on a 600-sample benchmark.
- Benchmark scripts for each model and for the ensemble are included, so the figures can be reproduced.
- Also delivered
- A web interface with confidence indicators and per-model breakdowns, a command-line tool and a Python API.
- Relevant to
- Security, fraud and trust-and-safety teams.
- Technology
- Python, XGBoost, PyTorch, Groq/Llama 3.1, scikit-learn, Streamlit
Advanced research
Computational biology, quantum computing and multi-agent reinforcement learning, taken from paper to working software.


-
Drug discovery, gene therapy
Molecular docking and binding-affinity research
Multi-engine docking pipelines and foundation-model research for drug discovery and gene therapy.
Read the full note
- Note
- Proprietary engagement. Described at summary level only.
- The challenge
- Different docking engines produce different poses. Teams need a way to compare, rescore and validate them.
- Scope
-
- Docking pipelines that combine several engines (AutoDock Vina, DiffDock and Boltz-2), with pose rescoring and validation.
- Foundation-model research on protein-ligand binding affinity and pose-confidence estimation.
- Molecular dynamics simulation and engineering of viral capsids for gene-therapy delivery, and quantum methods for molecular simulation.
- Agentic architectures with memory, planning and tool orchestration, plus research on agentic explainability.
- Relevant to
- Biotech, pharma and gene-therapy R&D.
- Tools
- AutoDock Vina, DiffDock, Boltz-2, GNINA, molecular dynamics, Qiskit, PennyLane
-
Cheminformatics
Drug-likeness modelling with validity review
A labelled dataset and classifier built from 17,967 compounds in a public medicinal-plant database, with an independent review of what the score means.
- 0.999headline AUC, partly circular
- 0.945AUC from a single-feature rule
Read the full note
- The solution
- A pipeline that cross-references 142 approved-drug seeds across 5 public databases. Clustering and PCA outlier removal yield about 14.4k drug-like and 3.2k non-drug-like compounds. Fingerprint-based structural splits, SMOTE/ADASYN for class imbalance, and an XGBoost classifier.
- The validity review
- The headline AUC of about 0.999 is partly circular, because the labels derive from the same features. A single-feature rule already reaches 0.945 AUC, so the next phase requires verified negative examples.
- Why it is included
- It shows the validity check we apply to any model before calling it complete.
- Relevant to
- Cheminformatics and ML teams that want an independent review of a result.
- Technology
- Python, RDKit, pandas, scikit-learn, imbalanced-learn, XGBoost, ChEMBL API
-
Quantum computing
Hybrid quantum-classical compression
A hybrid compressor tested on real quantum hardware and under realistic noise.
- 50image patches scored
- 6noise levels tested
Read the full note
- The challenge
- Claims about quantum advantage are easy to make and hard to verify. This work runs the circuits on real hardware and measures them against a classical baseline.
- The solution
- A Quantum Fourier Transform splits image patches from a standard benchmark into frequency bands. A variational quantum circuit, trained with PennyLane, learns which bands to keep.
- Method
- Evaluated on real quantum hardware (Qiskit Runtime) and under gate noise in a simulator, against a classical thresholding baseline. Scored with PSNR and SSIM over 50 patches at 6 noise levels.
- Delivered as
- Self-contained packages, single-file notebook versions, verification scripts and publication-ready figure generation.
- Relevant to
- Organisations assessing where quantum methods are, and are not, ready.
- Technology
- Qiskit, Qiskit-Aer, IBM Quantum Runtime, PennyLane, NumPy
What are you building?
Tell us what you're working on and we'll get back to you within two working days.