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

# Build a custom Assistant

> The full Assistant editor: prompt instructions, conversation starters, resources, knowledge, and sharing.

<video autoPlay muted loop playsInline src="https://mintcdn.com/libra-4206ec93/azhR9hqtFjs66ITC/assets/videos/features/assistants-custom.webm?fit=max&auto=format&n=azhR9hqtFjs66ITC&q=85&s=be8fd3dbe56bd29f9f0db6872105e63d" className="rounded-xl border w-full" data-path="assets/videos/features/assistants-custom.webm" />

An Assistant is built in a single editor. On the left, a collapsible **Assistant Configuration** panel carries everything that helps you find the Assistant again later — description, practice area, tags, languages. The main area is split into three tabs: **Setup & Instructions**, **Resources** and **Knowledge**.

Only two things are required: a **name** and **prompt instructions**. Everything else is optional, and sensible defaults apply.

<Note>
  If your firm has document uploads switched off, the **Knowledge** tab isn't shown at all and the editor has two tabs instead of three.
</Note>

<div className="libra-buddy-callout">
  <img src="https://mintcdn.com/libra-4206ec93/wgVZXcGnHS4aJk9T/assets/images/libra-buddy/determined.png?fit=max&auto=format&n=wgVZXcGnHS4aJk9T&q=85&s=e38c0d18de68e6b63cbe749112a79eb5" alt="Libra mascot determined" width="790" height="604" data-path="assets/images/libra-buddy/determined.png" />

  <div className="libra-buddy-callout-content">
    **Improve with AI** sharpens instructions you have already written — it stays greyed out while the field is empty. Write a rough version first, then let Libra tighten it.
  </div>
</div>

## Open the editor

<Steps>
  <Step title="Open Templates">
    **Templates** is in the global section of the sidebar. The library opens on the **Assistants** tab.

    <img src="https://mintcdn.com/libra-4206ec93/DvY4COCBKazHNw7v/assets/images/app/assistants-hero.png?fit=max&auto=format&n=DvY4COCBKazHNw7v&q=85&s=11d6915604d10a0f456695d6fb6bb30d" alt="Templates library with the Assistants tab selected" width="3800" height="2160" data-path="assets/images/app/assistants-hero.png" />
  </Step>

  <Step title="Click Create new → Assistants">
    The editor opens full-screen on a new, untitled Assistant.
  </Step>

  <Step title="Name your Assistant">
    The title field sits at the top of the editor, reading *Untitled assistant* until you fill it in. Keep it short and descriptive — *"Employment Contract Reviewer (German law)"*, *"Client Memo Drafter, Partner-facing"*.
  </Step>
</Steps>

## The Assistant Configuration panel

None of these change how the Assistant answers. They determine how you and your colleagues find it in a library that has grown to thirty Assistants.

| Field             | What it's for                                                                                                            |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------ |
| **Description**   | Optional. Shows on the Assistant's card in the library, so write it for the colleague who has never used this Assistant. |
| **Practice area** | Optional. One or more from the fixed list. The library's **Practice area** filter reads it.                              |
| **Tags**          | Optional. Pick from tags your firm already uses, or type a new one to create it.                                         |

See [Practice areas & tags](/en/features/templates/practice-areas-and-tags) for how the two filters differ.

### Language versions

An Assistant can carry more than one language version. The configuration panel has a **Language** field showing the one you're editing; open it and you get the list of versions the Assistant already has, plus **Manage languages** at the bottom. That switches the menu to a searchable list of every language Libra supports — tick the ones you want and click **Apply selections**.

Name, description, prompt instructions and conversation starters are all held **per language**. Switch the active language and the Setup & Instructions tab shows that version's content. Every language you add needs its own name and prompt instructions before the Assistant will save; press **Save** with one incomplete and a **Fill required fields** badge marks the offending language in the **Language** field and its menu.

<Tip>
  Each language version is written by hand. Add a language, switch to it, and its fields start empty — carrying the text across from a version you've already written is on you.
</Tip>

## Setup & Instructions

### Prompt instructions

The system prompt, and the one field that genuinely matters. A four-part structure works well:

<AccordionGroup>
  <Accordion title="Identity: who the Assistant is">
    *"You are an experienced employment lawyer at a German commercial law firm. You specialise in cross-border employment disputes."*
  </Accordion>

  <Accordion title="Task: what the Assistant does">
    *"Your job is to review employment contracts and identify clauses that may be unenforceable under German labour law. Output a structured findings list."*
  </Accordion>

  <Accordion title="Format: how the output is shaped">
    *"For each finding, include: clause reference, the issue, risk level (Low / Medium / High), and a one-sentence recommendation."*
  </Accordion>

  <Accordion title="Constraints: what the Assistant never does">
    *"Never recommend signing a contract with High-risk findings unresolved. Focus only on German law; if the contract spans jurisdictions, note this but do not analyse the other jurisdictions."*
  </Accordion>
</AccordionGroup>

Two icon buttons sit above the field. **Improve with AI** rewrites the instructions currently in the field — it cannot draft from scratch, and is disabled until there is text to work on. **Record voice** dictates instead of typing.

There is a maximum prompt length; Libra tells you when you have exceeded it and blocks the save until you cut the prompt back.

<Tip>
  You can drop a `.txt` or `.md` file straight onto the prompt field, or paste a link to one, and its text replaces the prompt. If the Assistant is still unnamed and the file opens with a Markdown heading, that heading becomes the Assistant's name.
</Tip>

### Conversation starters

Optional example prompts that appear as clickable buttons when someone opens a chat with the Assistant. Click **Add** for each one; every row has its own **Improve with AI** and remove buttons. Starters are the fastest way to show a colleague what the Assistant is actually for.

## Resources

### Model

The base model that answers the prompt, default **Libra AI**. Leave it alone unless you have a specific reason to pin the Assistant to a particular model.

<Note>
  This is *not* the same thing as the **Standard** / **Deep Thinking** / **Fast** tiers. Those are chosen per chat in the composer and cannot be pre-set on an Assistant — see [Chat modes](/en/features/chat/modes).
</Note>

### Research sources

Pre-selecting research sources is what turns a generic Assistant into a *jurisdiction-specific* one. When someone picks the Assistant in chat, Libra switches Research on automatically with exactly those sources — nobody has to remember which databases the question needs.

<div className="libra-buddy-callout">
  <img src="https://mintcdn.com/libra-4206ec93/wgVZXcGnHS4aJk9T/assets/images/libra-buddy/clipboard.png?fit=max&auto=format&n=wgVZXcGnHS4aJk9T&q=85&s=cde036cf23ea2d67cd50f1c295db549a" alt="Libra mascot with a clipboard" width="725" height="605" data-path="assets/images/libra-buddy/clipboard.png" />

  <div className="libra-buddy-callout-content">
    A *"Swiss Employment Law Researcher"* with Fedlex and Entscheidsuche pre-set; a *"German Tax Memo Drafter"* with Wolters Kluwer Online and Verlag Dr. Otto Schmidt pre-set. The user types the question, the Assistant brings the right database.
  </div>
</div>

<Steps>
  <Step title="Open the Resources tab">
    **Research sources** is the first block on the tab.
  </Step>

  <Step title="Choose the jurisdictions">
    The **Jurisdictions** dropdown at the top of the block filters what is on offer. Tick one or more countries and the grid below fills with the sources available there. Until a jurisdiction with available sources is picked, the block reads *"No research source connected"* — that's a status, not a button.
  </Step>

  <Step title="Toggle the sources you want">
    Each source is a card with a switch on the right. **Verlag Dr. Otto Schmidt** carries an extra **Select modules** chip, because module access is licensed per team.
  </Step>

  <Step title="Save the Assistant">
    The selection travels with the Assistant. Anyone who runs it gets Research on with those sources active.
  </Step>
</Steps>

Which sources appear depends on your firm's jurisdictions and subscriptions, so two colleagues can see different lists. See [Research mode](/en/features/chat/research-mode) for the full picture.

Pre-selection is a *default*, not a lock: whoever runs the Assistant can still switch Research off or pick a different source set for a single message.

## Knowledge

Knowledge documents are the reference material the Assistant draws on. Think of them as the onboarding pack you'd hand a junior associate.

| What to include             | Examples                                                                     |
| --------------------------- | ---------------------------------------------------------------------------- |
| **Templates and samples**   | Your firm's standard NDA template, a sample memo in the right format.        |
| **Internal guidelines**     | The house style guide, the firm's redline policy.                            |
| **Reference materials**     | Relevant statutes, the most-cited commentaries on the topic.                 |
| **Client-specific context** | When the Assistant is for a specific client, that client's prior agreements. |

The tab is a document browser, not a picker you have to open. It lists the **Project files** of the project you're working in, with a counter above showing how many documents the Assistant already carries.

<Steps>
  <Step title="Find the documents">
    Use **Search documents**, or expand folders in the tree. To bring in something that isn't in the project yet, click **Upload** and choose **Upload document** or **Upload folder** — the file lands in the project's Project files and in the list at the same time.
  </Step>

  <Step title="Select and add">
    Tick the rows you want and click **Add to assistant**. **Clear selection** starts over. Only fully processed documents can be added, and a document already in the list is refused as a duplicate.
  </Step>
</Steps>

The Assistant's knowledge is attached to every chat that uses it, and counts against the same per-chat document budget as files you attach yourself. When an answer draws on one of these documents, it shows up in the **Sources** panel like any other document — see [Citations & sources](/en/features/chat/citations).

## Save, run, share

In a new Assistant the primary button reads **Save**. Once it exists, the primary button becomes **Run** — which drops you into a chat with the Assistant attached — and **Save** moves alongside it. Saving is blocked until every configured language has both a name and prompt instructions.

**Duplicate**, **Share**, **Delete** and the favourite toggle only appear in the toolbar once the Assistant has been saved, and only for Assistants you have the rights to. If you're the only member of your team, **Share** either disappears or turns into an upgrade prompt, depending on your plan.

<Steps>
  <Step title="Click Share">
    In the editor toolbar.
  </Step>

  <Step title="Set General access">
    **Only people invited** keeps it to the people you name. **Everyone in the team** opens it to the whole firm.
  </Step>

  <Step title="Add people or groups">
    Type a name, email or group in the **Share with** field, pick their permission from the dropdown beside it, then click **Add**. They appear under **Who has access**.
  </Step>

  <Step title="Set the permission level">
    **View only** for colleagues who only run the Assistant, **Edit** for those who maintain it, **Full Access** for co-owners who also manage sharing. In the dropdown these read *Can view*, *Can edit* and *Full access*.
  </Step>
</Steps>

<Warning>
  If the Assistant is used by Workflows that are shared with your team, narrowing its sharing revokes those Workflows' access to it. Libra names the affected Workflows and asks you to confirm before saving.
</Warning>

See [Starring & sharing](/en/features/templates/starring-and-sharing) for the full sharing model.

## Test before you trust

Don't validate an Assistant on one trial.

<Steps>
  <Step title="Run it on three real prompts">
    Pick three actual cases or scenarios you'd use the Assistant for, not tidy hypotheticals.
  </Step>

  <Step title="Read each output critically">
    | Question                     | What to check                                                                       |
    | ---------------------------- | ----------------------------------------------------------------------------------- |
    | Does it understand the task? | Is the Assistant actually doing what you asked, or interpreting the prompt loosely? |
    | Is the format right?         | Does the output match the format you specified?                                     |
    | Did it use the knowledge?    | If you added reference documents, are they cited?                                   |
    | Did it stay in scope?        | Did it stick to the constraints, or wander into adjacent topics?                    |
  </Step>

  <Step title="Iterate on the instructions">
    Sharpen wording, add the missing constraint, tighten the format. Expect several rounds before an Assistant is solid.
  </Step>
</Steps>

## Managing existing Assistants

| Action        | How                                                                                                                                                                                          |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Edit**      | Open the Assistant from the Templates library. Ones you have edit rights on open straight in the editor; ones shared with you as **View only** open in a read-only detail view.              |
| **Duplicate** | From the editor toolbar, or the **…** menu on the card. The copy takes the original's name with *(Copy)* appended, and belongs to you — the way to fork a colleague's Assistant.             |
| **Delete**    | From the editor toolbar, or the **…** menu on the card, then confirm. Deletion can't be undone. Libra warns you first if the Assistant is shared, and lists any Workflows that will lose it. |

## Tips for instructions that work

<AccordionGroup>
  <Accordion title="Be specific about the task">
    *"Review the contract"* is too vague. *"Review the uploaded contract for termination, liability cap, and IP assignment clauses, flagging any that deviate from our standard"* is something the Assistant can act on.
  </Accordion>

  <Accordion title="Define the output format explicitly">
    *"Output as a numbered list with three sections: Risks / Recommendations / Open questions."* Format isn't a separate setting, so if it isn't in the instructions you get whatever the model defaults to.
  </Accordion>

  <Accordion title="Provide examples for judgment calls">
    For tasks involving categorisation, include examples in the instructions. *"Treat 'shall' and 'must' as mandatory; treat 'should' and 'may' as discretionary."*
  </Accordion>

  <Accordion title="Set guardrails the Assistant should never cross">
    *"Never advise on tax matters. Never quote client-specific information from past matters."* Explicit constraints prevent drift.
  </Accordion>

  <Accordion title="Say what to do when the knowledge runs out">
    Tell the Assistant how to behave when its reference documents don't cover the question — flag the gap, or fall back to its research sources. Otherwise it will improvise.
  </Accordion>
</AccordionGroup>

## Next steps

<Columns cols={2}>
  <Card title="Assistants overview" icon="https://mintcdn.com/libra-4206ec93/vIwxn8dmEk0jsP5x/assets/images/icons/assistants.svg?fit=max&auto=format&n=vIwxn8dmEk0jsP5x&q=85&s=24ac9ed818a343094b45647b10476e70" href="/en/features/assistants/introduction" width="24" height="24" data-path="assets/images/icons/assistants.svg">
    The conceptual overview.
  </Card>

  <Card title="Workflows" icon="https://mintcdn.com/libra-4206ec93/vIwxn8dmEk0jsP5x/assets/images/icons/workflows.svg?fit=max&auto=format&n=vIwxn8dmEk0jsP5x&q=85&s=83c0706784356a6ec7750c55e602c78a" href="/en/features/workflows/basics" width="24" height="24" data-path="assets/images/icons/workflows.svg">
    Chain Assistants together for multi-step procedures.
  </Card>
</Columns>
