# AI Agents & Multi-Agent Systems

URL: https://momentaj.com/services/ai-agents/
Updated: 2026-10-09
Category: AI services
Provider: Momentaj Inc., Toronto AI engineering firm; remote across Canada, the United States and the Middle East, in person across the Greater Toronto Area

Role-based agents that act on real systems: tool calling, memory, structured replies and human approval where it matters. Built on Microsoft Agent Framework, LangChain and OpenAI-compatible models.

At a glance:
- Single agents and role-based multi-agent teams
- Tool calling against your real systems, with approval gates
- Grounded replies: the server shows only what a tool returned
- Built in .NET or Python, on Azure or your own infrastructure

An [AI agent](https://momentaj.com/glossary/#ai-agent) is a language model that is allowed to do things on real systems through tools: search, read a record, build an order, open a ticket, review a change. Unlike a chatbot, which only answers, an agent calls tools to act; that is what people mean by agentic AI. Momentaj, a Toronto AI engineering firm, builds single agents and [multi-agent systems](https://momentaj.com/glossary/#multi-agent-system) that act, and the controls that keep them honest. Permission to act is what makes agents useful and what makes most agent demos unsafe.

## Who it's for

- Operations and support teams with workflows that span several systems and too many tabs
- Product teams adding an assistant that should do the task, not describe how to do it
- Engineering leaders who want AI review, triage or automation inside their own tooling

## What we build

- **Single [tool-calling](https://momentaj.com/glossary/#tool-calling) agents.** One agent, a small set of well-designed tools, a fixed [reply schema](https://momentaj.com/glossary/#reply-schema) and a memory of the user's preferences. Most tasks need this and nothing more.
- **Multi-agent systems.** Role-based agents, for example an Architect, a QA reviewer and a Security reviewer, that each own a mandate, with a coordinator and a shared memory of what the system has already learned.
- **[Approval gates](https://momentaj.com/glossary/#approval-gate) (human in the loop) and audit trails.** The agent proposes; a person approves anything irreversible. Every action, tool call and reasoning step is logged.
- **Agent interfaces.** Chat with cards and quick replies, generative UI, or agents that sit inside existing apps through AG-UI, CopilotKit and A2A.

## How it's done

- **Grounding by construction.** The model returns IDs; the server looks each one up in what the tools returned during that request and builds the output itself, a pattern we call [server-side grounding](https://momentaj.com/glossary/#server-side-grounding). An item no tool returned cannot appear.
- **Act first, then speak.** Instructions, tool design and reply schemas that stop an agent from announcing work it has not done.
- **Ask when unsure.** Ambiguity handling is designed, not hoped for: when two items match, the agent asks.
- **Small tool results.** Every field sent to the model costs time and money; we strip what the reply does not need.
- **Stack.** Microsoft Agent Framework (.NET and Python), LangChain and Langflow, Azure OpenAI and Azure AI Foundry, OpenAI, Anthropic Claude and open-weight models through OpenAI-compatible APIs, with OpenTelemetry tracing from the first prototype.

## Proof

[MayAI](https://momentaj.com/case-studies/mayai/): one agent, six tools and a reply schema that keeps invented dishes off the screen, from a chat message to a working prototype. [DevGuardian AI](https://momentaj.com/case-studies/devguardian-ai/): three role-based review agents over a retrieval layer built for code. What we learned building them is written up in [Keeping AI agents honest: the server-side grounding pattern](https://momentaj.com/insights/keeping-ai-agents-honest-server-side-grounding/) and [Multi-agent systems in .NET: what we learned building two of them](https://momentaj.com/insights/multi-agent-systems-in-dotnet-what-we-learned/); the rest are in our [notes on AI agents](https://momentaj.com/insights/tag/ai-agents/).

## Engagement shape

A one-to-two-week discovery, a two-to-six-week prototype on your real data, then production hardening. See [how we work](https://momentaj.com/how-we-work/).

## Frequently asked questions

**Do we need several AI agents, or one?** Usually one. A single agent with well-designed tools and a fixed reply schema handles most workflows. We add roles only when the work has genuinely different mandates, such as reviewing a change from an architecture, a quality and a security perspective.

**How do you stop an AI agent inventing things?** By construction rather than by prompt. The model returns identifiers, the server builds what the user sees from what the tools actually returned, and anything else is dropped. Prompts help; the schema and the server-side checks are what hold.

**Can an AI agent run inside our Azure tenant?** Yes. Most of our agent work runs on Azure OpenAI and Azure AI Foundry inside the client's own subscription, with Entra for identity and Application Insights for observability. AWS and self-hosted models are also fine, and if another model suits a task better the agent can switch models behind the same abstraction without a rewrite.

**How long does it take to build an AI agent?** A working prototype on your real data takes two to six weeks, after a discovery of one to two weeks. Production hardening (security, evaluations, observability and rollout) follows, scoped once the prototype has shown what it takes.

**How much does an AI agent prototype cost?** A fixed price agreed after discovery, typically for a two-to-six-week build on your real data. Ask us for a quote.

**Do you work with companies outside Toronto?** Yes. We work remotely with clients across Canada, the United States, the Middle East and beyond, and in person across the Greater Toronto Area.
