# Connect Assistant

The Connect Assistant is the assistant inside the app: you ask it about your workspace in plain words and it answers, or proposes an action and runs it once you agree. It has 66 tools. The reading ones cost nothing but a query; the writing ones go through the same service a screen would call, and its rights are narrower than your own.

- **Status:** Available
- **Audience:** both
- **In the app:** #/home, #/inbox
- **Last verified:** 2026-09-10
- **Canonical:** https://connectbyjbrh.com/docs/assistant/

## One assistant, two kinds of request

Almost everything asked of the Assistant is a question — who is this person, what did we agree, which follow-ups are late, what is in this file. Those run against the same data the screens read and change nothing at all. The rest are instructions: remember this, create that follow-up, approve this draft. Those produce a proposed action you confirm before anything happens.

The split is not a matter of tone. It is which of the 66 tools the model may reach for, and the writing ones are a minority of them. Knowing which kind of request you have just made is the single most useful thing to hold in your head while using it, because it tells you whether the next thing you see is an answer or a decision waiting on you.

| You ask | What runs | What you get back |
|---|---|---|
| A question about your own data | Read-only tools such as `find_anything`, `customer_360`, `list_followups` | An answer with what it was drawn from |
| A question about a file on screen | `read_file`, `ask_file`, `data_query` | An answer about that file, not a copy of it |
| An instruction that changes a record | A writing tool such as `create_followup` or `remember` | A proposed action card you confirm or discard |
| Something outside its authority | Nothing | A refusal that names the limit |

## Every write goes through the service that owns the record

A writing tool does not touch a table. `create_followup` calls the follow-up service; `approve_draft` goes through the same approval path a person's click uses; `remember` writes a memory row at the tier the memory service decides. That is why an Assistant action inherits, without anyone wiring it up twice, the autonomy rule for the channel, the suppression list, the workspace's allowance, and the entry in the decision log.

The alternative — tools that write rows directly — is the reason agent features usually drift away from the product around them. A rule added to a screen would not apply to the Assistant, and a workspace would end up with two sets of behaviour depending on which door a change came through. [Why an agent's tools should call domain services](/research/agent-tools-call-services/) sets out the argument in full.

> **Note** The Data grid at `#/data` is built on the same principle: an edit in the grid calls the service that owns that record rather than updating the sheet. The grid is not a second database and the Assistant is not a second product.

## Narrower rights than yours, on purpose

The Assistant cannot set a price, and it cannot clear a do-not-contact entry. Both are things you can do and it may not, and both refusals hold even when you ask directly. A price is a commercial commitment somebody has to own; a do-not-contact entry is a promise made to a person who is not in the room and is not the Assistant's to withdraw.

Refusals are recorded like any other decision. The decision log holds what was asked, which rule stopped it and what happened next, because a refusal is a decision about your business and is worth being able to find months later. [What the Assistant may not do](/docs/assistant/assistant-authority/) has the list and the reasoning.

## What the panel itself gives you

- **Tabs**, browser-style, in one 38px header. Each keeps its own conversation, follow-up chain, record, draft, files and scroll position.
- **One scroller** that Chat, Needs You, Standing instructions, Memory and Files all draw into — a sidebar on a screen at least 600px wide, and the More menu below that width.
- **One live status line** — Understanding… through to Done · N steps, with a compact Stop and the details folded away — rather than a row of stage pills competing for your attention.
- **Screen awareness**: what page you are on and which record is open, checked against the database before the model is allowed to rely on it.

## The pages in this section

| Page | Answers |
|---|---|
| [Opening the Assistant](/docs/assistant/opening/) | Where it lives and what it knows the moment it opens |
| [Assistant tabs](/docs/assistant/tabs/) | What a tab owns and why separation matters |
| [Screen awareness](/docs/assistant/screen-context/) | What it is told about your page, and the check on it |
| [Answers that change nothing](/docs/assistant/read-only-answers/) | The default mode and how to recognise it |
| [Proposed actions](/docs/assistant/action-cards/) | The card, the arguments and the confirmation |
| [The Assistant's tools](/docs/assistant/assistant-tools/) | All 66, split by what they do |
| [When the Assistant is not sure](/docs/assistant/uncertainty/) | Why an admission beats a confident guess |

## Everything in this section

22 pages, each with its own status and the date it was last checked against the running system.

| Page | What it covers |
|---|---|
| [Answers that change nothing](/docs/assistant/read-only-answers/) | Most of what the Assistant does is read and answer. The tools that can only read, how to recognise one at a glance, and why the default matters. |
| [Asking about selected text](/docs/assistant/selected-text/) | Highlighting a passage and asking about it: exactly what leaves the page, what stays behind, and the questions it answers better than any other route. |
| [Assistant tabs](/docs/assistant/tabs/) | Each Assistant tab keeps its own conversation, follow-up chain, record, draft, files and scroll position — and why that separation is the point. |
| [Conversation history](/docs/assistant/history/) | What an Assistant conversation keeps, where it lives, why it is not the same thing as memory, and how to start a genuinely clean thread. |
| [Correcting a fact without leaving the Assistant](/docs/assistant/assistant-memory/) | Turning something you said in conversation into what Connect actually knows: which tier it lands in, how a block is stored, and what forgetting does. |
| [Needs You inside the Assistant](/docs/assistant/needs-you-in-assistant/) | The queue of decisions waiting on a person, worked from inside the Assistant panel: what is shown, what deciding there does, and what it will not let you do. |
| [Opening the Assistant](/docs/assistant/opening/) | Where the Connect Assistant lives, how the panel opens over any screen, and what it already knows about your workspace the moment it does. |
| [Proposed actions](/docs/assistant/action-cards/) | Anything the Assistant would change arrives first as a card: the action, the reason, the arguments you can edit, and a confirmation that nothing has happened yet. |
| [Rating an answer](/docs/assistant/feedback/) | What rating an Assistant answer records, who can read it, and why a correction you want to stick belongs in Memory rather than in a rating. |
| [Running an action](/docs/assistant/executing-actions/) | What happens the moment you confirm: which service runs, which gates still apply, what the result shows you, and what is written to the decision log. |
| [Screen awareness](/docs/assistant/screen-context/) | What the Assistant is told about the page you are on, and the database check that runs before any of it is allowed to shape an answer. |
| [Suggested commands](/docs/assistant/suggested-commands/) | The prompts the Assistant offers before you type: what they are drawn from, what they are not, and why clicking one still asks before it acts. |
| [The Assistant on a phone and on a wide screen](/docs/assistant/assistant-responsive/) | Three layouts for one Assistant: full screen on a phone, a sidebar from 600px, a column on a wide screen — and how the on-screen keyboard is handled. |
| [The Assistant's tools](/docs/assistant/assistant-tools/) | The Assistant has 66 tools. What the reading ones reach, what the writing ones change, and the rule that every write calls the service owning the record. |
| [The live status line](/docs/assistant/live-stream/) | The single line the Assistant shows while it works: what Understanding means, what the step count counts, and what Stop actually stops. |
| [Undoing an action](/docs/assistant/undo/) | Some Assistant actions reverse cleanly, some cannot be reversed at all, and the line between them follows whether the change ever left your workspace. |
| [What the Assistant may not do](/docs/assistant/assistant-authority/) | The Assistant is given deliberately narrower rights than the person using it: no pricing, no clearing a do-not-contact entry, and no way around a workspace's own rules. |
| [When the Assistant finds two answers](/docs/assistant/source-conflict/) | What happens when a memory, a knowledge source and a customer's own message do not agree: what is shown, what is never decided silently, and who settles it. |
| [When the Assistant is not sure](/docs/assistant/uncertainty/) | Why an admission beats a plausible guess in a system that acts on its answers, and what the Assistant offers you in place of one. |
| [Where an answer came from](/docs/assistant/evidence-and-citation/) | How the Assistant shows what an answer was built from, how to read the folded step detail, and what to do when it cannot name a source. |
| [Working on one record](/docs/assistant/record-context/) | Pinning a person, company, deal or thread to an Assistant tab: what changes in the answers, what it overrides, and when to unpin. |
| [Working with files in the Assistant](/docs/assistant/files-in-assistant/) | Attaching a document to the Assistant, the formats it reads, what it refuses, and where a document it creates or changes actually goes. |

## Questions

### Does the Assistant work the same for a customer workspace as for the operator?

Yes. There is one implementation and both audiences reach it, over different API paths. A customer's use is bounded by their plan's allowances, which is a commercial difference rather than a capability one.

### Can it act without me?

Not from the panel. Anything that changes a record is proposed first and runs when you confirm. Connect does act on its own elsewhere — the agent loop drafts and sends under the autonomy rules you set — but that is the engine, not the Assistant, and it has its own controls at [What Connect may do](/docs/autonomy/).

### Is my conversation with it used to train a model?

No. Connect does not train a model on workspace data. Conversations exist so that a tab keeps its thread and so that a correction you make can be turned into memory deliberately, by you.

## Related

- [Opening the Assistant](https://connectbyjbrh.com/docs/assistant/opening/)
- [The Assistant's tools](https://connectbyjbrh.com/docs/assistant/assistant-tools/)
- [What the Assistant may not do](https://connectbyjbrh.com/docs/assistant/assistant-authority/)
- [Proposed actions](https://connectbyjbrh.com/docs/assistant/action-cards/)
- [Why an agent's tools should call domain services](https://connectbyjbrh.com/research/agent-tools-call-services/)
- [Files and data in Connect](https://connectbyjbrh.com/docs/files-data/)
- [What Connect may do](https://connectbyjbrh.com/docs/autonomy/)

## What this page is based on

- `docs-source/sources/GENERAL.md` §8 — the Assistant (`manager.py`, `manager_tools.py`)
- `docs-source/sources/GENERAL.md` §9 — files and the Data grid
- Connect capability registry (`docs-source/facts.py`) — `assistant`, `assistant_tools`, `assistant_tabs`
