Skip to content
Annatech_

AI & Agentic Systems

Agents that do real work, under real permissions

The gap between an impressive AI demo and a system an enterprise can run is architecture: tool layers, permission tiers, validation, observability. That is the part we build.

Position

RPA taught us what agents must not do

Years of unattended automation at enterprise scale are a long education in failure modes: selectors that drift, sessions that expire, systems that lie about their state. Agentic AI inherits every one of those problems and adds a new one - a component that can be confidently wrong.

We build agent systems the way we build robots: capabilities behind explicit contracts, authority behind explicit permissions, and every consequential decision either validated deterministically or routed to a human. The LLM is a reasoning engine inside an engineered system - never the system itself.

Currently engaged building background agents and LLM chat capabilities for an enterprise AI-agent marketplace at a global healthcare-technology enterprise.

Architecture

The shape of a production agent system

THE LLM IS A COMPONENT, NOT THE SYSTEM Surfaces chat · copilot extensions · background agents Agent runtime heartbeats · retries · timeouts · escalation MCP tool contracts typed · logged · independently testable Permission tiers admin / guest scopes · rate limits · deny-lists Systems of record SAP · SharePoint · ServiceNow · data platforms GUARDRAILS knowledge injection static validation hallucination kill-lists human gates on irreversible steps
Every layer exists so the one above it can be trusted. Agents reach systems of record only through contracts and permissions.

What we deliver

Three engagement patterns

Background agents

Unattended agents that watch queues, process documents, run research and execute multi-step tasks - with heartbeats, retries and escalation paths designed like the RPA fleets they replace.

LLM chat in your workflow

Chat surfaces wired to your systems through governed tool layers - so answers come from your data and actions land in your systems, with an audit trail. Copilot-style extensions where your teams already work.

LLM-assisted delivery

Using models to build faster without shipping their mistakes: knowledge-injection specs, scaffolding, static validators that catch hallucinated code before a human ever reviews it.

uipath_validate — generated process, pass 1 and 2
$ python uipath_validate.py --project ./GeneratedProcess
Process.xaml:214: ERROR UNDECLARED-VAR reference 'dtResults' is never declared
Process.xaml:389: ERROR INVOKE-CONTRACT 'GetEquipment.xaml' expects In 'Input' (Dictionary) — not passed
Main_Entry.xaml:41: WARN UNUSED-VAR 'strTemp' declared but never referenced
2 errors, 1 warning -> findings returned to the model for a targeted retry

$ python uipath_validate.py --project ./GeneratedProcess  # pass 2
0 errors, 0 warnings — Studio-ready

Illustrative excerpt. Output format, rule classes and the retry loop are exactly as delivered.

Evidence

Case studies from this practice

Considering agents for actual operations?

Tell us which workflow you want an agent inside and what it must never be allowed to do. Both halves of that sentence get equal engineering.