Home: Iago Bonifácio

IT consultancy, tech lead, present

AI agent SDKs for IT support

As tech lead at an IT consultancy, I build TypeScript SDKs that handle L1 to L3 support over Teams and WhatsApp, integrated with the ticketing system, in a lab and as proofs of concept.

Teams and WhatsApp messages reach a router that hands them to each client SDK; the SDK classifies with an LLM and operates the ticketing system, Zabbix and the HR ERP RPA.Teams, WhatsAppmessagingRouterone portSDK per clientworkers, TypeScriptITSMticketsLLMclassificationZabbixL3 agentRPA, ERPHR
Teams and WhatsApp messages reach a router that hands them to each client SDK; the SDK classifies with an LLM and operates the ticketing system, Zabbix and the HR ERP RPA.

Context

The consultancy provides outsourced IT support to several companies. Its service assistant ran on a third-party low-code platform that had already forced two migrations in under a year. All the work in this case runs in the consultancy’s lab, as proofs of concept.

Problem

  • Keyword categorization covered a fraction of the category catalog and sent the rest to manual triage.
  • In natural language, a ticket number is easy to confuse with other numbers in the conversation.
  • Business logic inside the vendor’s tool is lost at every migration.
  • The messaging channel does not keep conversation state between turns.

What I did

  • Moved all logic into our own TypeScript SDKs, one per client, each with its own database and credentials at the connection level.
  • LLM category classification over the full catalog with a deterministic fallback, and ticket number recognition by format, tested against a battery of trap cases.
  • Conversation continuity inside the SDK, on a group of workers behind a single router, with each bot’s credential selected by the message’s destination.
  • On the same base: an HR automation portal integrated with the HR ERP, an L3 agent that queries Zabbix, and RPA integration.
  • Tests through the real channel (Teams) before every delivery, and a suite that runs without real credentials.

Result

The logic no longer depends on the low-code vendor: the transport changed and the logic stayed intact. The agents handle L1 to L3 in the lab, with one isolated SDK per client.