> ## Documentation Index
> Fetch the complete documentation index at: https://docs.neoagent.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Building a chat agent

> Create and configure your own chat agent — instructions, tools, integration permissions, and testing before you expose it to users

A chat agent is configured like any other [agent](/core/agents) — instructions, tools, integration permissions. The differences: no trigger, no entity filter, and approvals land in the chat.

## What technicians use internal chat agents for

An **Internal** chat agent carries your full MSP toolbox, so builds span the whole service desk. Five patterns cover most of them:

| Pattern                       | A technician asks it…                                                                                                                    | What it draws on                                                                                                                    |
| ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| **Research & lookup copilot** | "Summarize ticket 44821", "find the SOP for re-enabling MFA", "what did we do last time this client had this?"                           | Read-only search across your documentation, configurations, and past tickets — the most common build                                |
| **Queue & dispatch**          | "Give me my next ticket", "what's unassigned right now?", "triage my open queue"                                                         | Reads the live PSA queue and assigns or routes work — see the [self-serve dispatch recipe](/recipes/technician-self-serve-dispatch) |
| **On-demand ticket actions**  | "Reply to the customer", "log 15 minutes and set it to In Progress", "schedule a service call", "close it"                               | Ticket updates, notes, time entries, and service calls — gated behind [approval](/core/technician-in-the-loop)                      |
| **Guided provisioning**       | "Onboard these three new starters", "offboard [jdoe@acme.com](mailto:jdoe@acme.com)", "run the workstation-setup checklist"              | Microsoft 365 / AD user, group, and license changes against a runbook — gated behind approval                                       |
| **On-demand reporting**       | "Which Acme firewalls have warranties expiring in 90 days?", "top 10 noisy devices this month", "is Huntress installed on this machine?" | Pulls from PSA, RMM, and documentation, then builds a table or exportable file                                                      |

A sixth thing technicians want — a self-service helper for your own Neo setup — you already have in the [Neo Support Agent](/chat-agents/neo-support-agent).

## Create the agent

<Steps>
  <Step title="Create">
    Go to [**Chat**](https://dashboard.neoagent.io/chat) → **New Chat Agent** (or [create an agent](https://dashboard.neoagent.io/agents/create?mode=chat) in chat mode). There is no Triggers & Filters step — chat agents start when someone messages them.

    <Frame>
      <img src="https://mintcdn.com/neoagent/XRY4dZGiTDqwbbLo/images/chat-agents/agent-editor.webp?fit=max&auto=format&n=XRY4dZGiTDqwbbLo&q=85&s=650f434dad34871a78474cacafdf41cb" alt="Chat agent editor — name, test mode, sandbox, and subagent fan-out; no Triggers & Filters tab" width="2880" height="1800" data-path="images/chat-agents/agent-editor.webp" />
    </Frame>

    <Tip>
      Don't want a blank start? Open the [Neo Support Agent](/chat-agents/neo-support-agent#copy-it-for-a-head-start), click **Copy Agent**, and you get an editable Internal agent pre-loaded with its instructions and read-only toolbox to build on.
    </Tip>
  </Step>

  <Step title="Set the audience">
    Pick the agent's **Audience** — it's fixed once set and shapes everything below:

    * **Internal** — for your **own technicians**. Carries your full MSP toolbox (PSA, RMM, Microsoft 365, cross-company lookups). Runs in the dashboard, as a [custom internal Teams bot](/integrations/teams/internal-bot), and is also what the Neo Support Agent is.
    * **End-user** — for your **clients' employees**. A deliberately narrow, company-scoped tool set, served through a [branded end-user bot](/teams-bot). See [how end-user bots work](/chat-agents/how-end-user-bots-work).

    The audience filters the tool picker to the matching set, and a [channel](/chat-agents/channels) can only bind an agent whose audience matches it.
  </Step>

  <Step title="Write instructions">
    Custom instructions define the agent's job, tone, and limits. Be explicit about what it should refuse and when to ask a technician. If end users will talk to it, write for them — not for your technicians. See [Writing effective agent instructions](/core/writing-agent-instructions) for the full guide.
  </Step>

  <Step title="Enable tools and permissions">
    Pick [tools](/agents/tools/overview) and set per-integration permissions exactly as for other agents. Enable the minimum the job needs — every enabled write permission is reachable from a chat message.
  </Step>

  <Step title="Test in the dashboard">
    Chat with it on the **Chat** page before exposing it anywhere. With **test mode** on, the agent describes side-effecting actions in its reply instead of performing them.
  </Step>
</Steps>

## Settings that work differently in chat

| Setting                | Behavior for chat agents                                                                                                                                       |
| ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Trigger & filters      | None — user-initiated                                                                                                                                          |
| Technician-in-the-Loop | Always delivered as an inline approval card in the chat                                                                                                        |
| Test mode report       | Always reported in the chat reply                                                                                                                              |
| Model & reasoning      | Platform-managed; no per-agent override                                                                                                                        |
| Mention mode           | In Teams group chats and channels: **mention-only** (default) responds only when @mentioned; **read-all** responds to every message. 1:1 chats always respond. |

## Who can chat with the agent

By default every chat agent is open to your whole team. An admin can change who may message a specific agent from [**Roles & Access** → **Chat Agent Access**](https://dashboard.neoagent.io/rbac?tab=chat-agent-access):

| Option                    | Who can message the agent                     |
| ------------------------- | --------------------------------------------- |
| **Everyone on your team** | Anyone on your team — the default             |
| **Admins only**           | Your admins only                              |
| **Specific people**       | Admins, plus the individual people you choose |

Only admins can change this, and it controls *messaging* only — not who can see or edit the agent's configuration. It applies to every internal chat agent, including the **Neo Support Agent**. Because the Neo Support Agent can act on your Neo setup, many teams set it to **Admins only** while leaving everyday helpers open to everyone. (End-user agents served through a [channel](/chat-agents/channels) are governed by that channel instead.)

## Per-client instructions for end-user agents

If the agent serves end users through a [channel](/chat-agents/channels), you can add **Chat Instructions** per client company ([**Companies**](https://dashboard.neoagent.io/end-companies) → edit company). They're injected when a user from that company is talking — use them for company-specific policies, escalation contacts, or tone.

## Before going live

* Require [Technician-in-the-Loop](/core/technician-in-the-loop) on write permissions.
* For end-user-facing agents, prefer read-only permissions plus "create a ticket" over direct writes.
* [Test the agent as an end-client](/chat-agents/channels#testing-as-an-end-client) at a chosen company before you roll the bot out — you'll see its per-company instructions and end-user tools exactly as that company's users will, without installing anything.
* [Share a read-only preview](/product/sharing-agents) with the client before rollout — a public, no-login link that shows what the assistant does, with sensitive values masked.
