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

# What leaves

> The complete list of what crosses from your network to ours, and the longer list of what never does.

## One thing leaves, and it is one sentence long

When somebody mentions an Agentick agent in Slack, or labels a Linear issue for
it, **the text of that message and the name of the channel it arrived on** are
sent to TypeSafe, who answer four narrow questions about it so that we can
decide whether the message is work at all.

That is the whole payload. Two fields:

```json theme={null}
{
  "channel": "slack",
  "message": "@hopper checkout is throwing a 500 on the payments service"
}
```

The channel is the word `slack` or the word `linear` — **not** a channel id, not
a thread id, not your workspace name. The message is capped at 4,000
characters.

## Why we send anything at all

Without this, every message addressed to your agent becomes a case: a greeting
spends a turn of your own model subscription, takes seconds instead of
milliseconds, and bills you for a unit of work that was somebody saying hello.

The classifier answers four questions — is the author asking for something, is
it aimed at the agent, what kind of message is it, is there enough here to start
on — and **our own code** combines those answers into the decision. We never ask
the model "should this open a case?"; the policy stays ours, in a function you
could read in a sitting.

## What never leaves

The list of *nothing else* is the part worth reading:

<Columns cols={2}>
  <Card title="Never sent" icon="shield-check">
    * Repository contents and file diffs
    * Prompts sent to a model, and the completions that come back
    * Your agent's persona or configuration
    * Any prior case, ticket or conversation
    * The reporter's identity, user id or email
    * Channel ids, thread ids, workspace names
    * Environment variables
    * Credentials of any kind
  </Card>

  <Card title="Sent" icon="arrow-up-from-line">
    * The message text (≤ 4,000 characters)
    * The word `slack` or the word `linear`
  </Card>
</Columns>

## Whose key, and whose bill

**Ours.** This is the one inference call our cloud makes, and we pay for it. It
does not touch your model budget and does not appear on your spend.

Model spend for the actual work is unchanged and unaffected: your key, your
machine, direct egress to your provider.

## When it fails

The classifier is a third party, and third parties have bad days. Every failure
— outage, timeout, rate limit, expired key, malformed answer, or an answer the
model itself is not confident about — resolves the same way: **the case opens
anyway**, and is recorded as unclassified.

Nothing is inferred from a failure. A message we could not classify is treated
exactly as it would have been before the classifier existed, because getting
this wrong in the other direction would silently drop somebody's real request.

## Bots and the agent's own messages

Never classified, and never sent. Messages from bots — including the agent's own
posts — are discarded before the classifier is reached. That is structural
rather than a rule someone remembered to write, and it is what stops an agent
from classifying its own replies in a loop.
