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

# Attach knowledge to agents

> Give each Agent access to exactly the knowledge it needs — no more, no less.

Knowledge doesn't reach an Agent until you **attach** it. Attachment is per-Agent, so different Agents in the same Flow can have completely different knowledge access.

## Attaching a data source

1. Open the Agent block in your Flow.
2. Inspector → **Data sources → Add**.
3. Pick:
   * A whole **document collection**.
   * A specific **folder** within a collection.
   * A **tag-filtered slice** (e.g., "billing collection where audience:customer").
4. Save.

The Agent immediately has retrieval access to that slice on its next run.

## Attaching a memory space

Same shape, different type. See [Memory spaces](/build/memory/spaces).

## Multiple attachments

An Agent can have many attachments. Retrieval runs against all of them and merges the ranked results. Boost/demote per source via **weight** on each attachment.

Example:

* `official-docs` (weight 1.0) — canonical answers.
* `community-answers` (weight 0.6) — backup when official is silent.
* `internal-runbooks` (weight 1.2) — always prefer internal when relevant.

## Attach vs. include

Two subtly different modes:

* **Attach** — retrieval-only. Chunks are pulled at inference and mixed into the Agent's context. Default.
* **Include in prompt** — the source is *always* included in the prompt at every turn, without retrieval. Only for very small, always-relevant sources (a one-page policy, a glossary). Uses tokens on every call.

Most sources should be attached, not included.

## Access control

An Agent can only attach knowledge the workspace member has access to. If you attach a restricted collection to an Agent that a teammate later edits, they'll see the attachment but a warning that they can't inspect its contents. Retrieval still works for them (the Agent can read it) — they just can't see the source in the editor.

## Per-attachment filters

Every attachment can carry an additional filter that runs on top of the source's own filters. Useful when you attach a collection but only want a subset for this Agent:

```json theme={null}
{ "tag": "customer-facing", "language": "{vars.USER_LANG}" }
```

Filters can reference Flow variables — so an Agent can dynamically scope by tenant, user, or session context.

## Removing an attachment

Inspector → Data source → **Detach**. Doesn't touch the collection itself, only the Agent's link to it. Reattach anytime.

## Testing what an Agent can see

The Agent Inspector has an **Ask a test question** panel. Type a question, and Nora runs a dry retrieval showing exactly what chunks would be handed to the model, from which sources. Great for verifying access before publishing.
