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

# Assistant capabilities reference

> Reference for the data the Chronosphere Assistant reads, the skills it uses, and the changes it can make.

export const AddToDashboardIcon = props => {
  return <svg viewBox="0 0 20 20" className="inline-block h-5 w-5 fill-current" {...props}>
      <path fillRule="evenodd" clipRule="evenodd" d="M3 3H9V9H3V3ZM11 3H17V9H11V3ZM3 11H9V17H3V11ZM13.25 11H14.75V13.25H17V14.75H14.75V17H13.25V14.75H11V13.25H13.25V11ZM12.5 4.5V7.5H15.5V4.5H12.5ZM4.5 4.5V7.5H7.5V4.5H4.5ZM4.5 12.5V15.5H7.5V12.5H4.5Z" />
    </svg>;
};

export const CollectionIcon = props => {
  const drawPath = "M21 6.5c-1.66 0-3 1.34-3 3 0 .07 0 .14.01.21l-2.03.68c-.64-1.21-1.82-2.09-3.22-2.32V5.91C14.04 5.57 15 4.4 15 3c0-1.66-1.34-3-3-3S9 1.34 9 3c0 1.4.96 2.57 2.25 2.91v2.16c-1.4.23-2.58 1.11-3.22 2.32l-2.04-.68C6 9.64 6 9.57 6 9.5c0-1.66-1.34-3-3-3s-3 1.34-3 3 1.34 3 3 3c1.06 0 1.98-.55 2.52-1.37l2.03.68c-.2 1.29.17 2.66 1.09 3.69l-1.41 1.77C6.85 17.09 6.44 17 6 17c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3c0-.68-.22-1.3-.6-1.8l1.41-1.77c1.36.76 3.02.75 4.37 0l1.41 1.77c-.37.5-.59 1.12-.59 1.8 0 1.66 1.34 3 3 3s3-1.34 3-3-1.34-3-3-3c-.44 0-.85.09-1.23.26l-1.41-1.77c.93-1.04 1.29-2.4 1.09-3.69l2.03-.68c.53.82 1.46 1.37 2.52 1.37 1.66 0 3-1.34 3-3S22.66 6.5 21 6.5zm-18 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zM6 21c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm5-18c0-.55.45-1 1-1s1 .45 1 1-.45 1-1 1-1-.45-1-1zm1 12c-1.38 0-2.5-1.12-2.5-2.5S10.62 10 12 10s2.5 1.12 2.5 2.5S13.38 15 12 15zm6 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm3-8.5c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z";
  return <svg viewBox="0 0 24 25" data-testid="CollectionIcon" aria-label="CollectionIcon" {...props} className="inline-block h-5 w-5 fill-current">
      <path d={drawPath} />
    </svg>;
};

export const CollectionNavIcon = props => {
  const drawPath = "M8.4 18.2C8.8 18.7 9 19.3 9 20C9 21.7 7.7 23 6 23S3 21.7 3 20 4.3 17 6 17C6.4 17 6.8 17.1 7.2 17.3L8.6 15.5C7.7 14.5 7.3 13.1 7.5 11.8L5.5 11.1C5 11.9 4.1 12.5 3 12.5C1.3 12.5 0 11.2 0 9.5S1.3 6.5 3 6.5 6 7.8 6 9.5V9.7L8 10.4C8.6 9.2 9.8 8.3 11.2 8.1V5.9C10 5.6 9 4.4 9 3C9 1.3 10.3 0 12 0S15 1.3 15 3C15 4.4 14 5.6 12.8 5.9V8.1C14.2 8.3 15.4 9.2 16 10.4L18 9.7V9.5C18 7.8 19.3 6.5 21 6.5S24 7.8 24 9.5 22.7 12.5 21 12.5C19.9 12.5 19 11.9 18.5 11.1L16.5 11.8C16.7 13.1 16.3 14.5 15.4 15.5L16.8 17.3C17.2 17.1 17.6 17 18 17C19.7 17 21 18.3 21 20S19.7 23 18 23 15 21.7 15 20C15 19.3 15.2 18.7 15.6 18.2L14.2 16.4C12.8 17.2 11.2 17.2 9.8 16.4L8.4 18.2Z";
  return <svg viewBox="0 0 24 24" data-testid="Collections" aria-label="Collections" {...props} className="inline-block h-5 w-5 fill-current">
      <path d={drawPath} />
    </svg>;
};

export const ServiceIcon = props => {
  return <svg viewBox="0 0 22 20" {...props} className="inline-block h-5 w-5 fill-current" aria-label="ServiceIcon">
      <path fillRule="evenodd" clipRule="evenodd" d="M10.7339 0.0766817C10.8966 -0.0255606 11.1034 -0.0255606 11.2661 0.0766817L16.2661 3.21954C16.4117 3.31104 16.5 3.47092 16.5 3.64286V8.35714C16.5 8.52908 16.4117 8.68896 16.2661 8.78046L11.2661 11.9233C11.1034 12.0256 10.8966 12.0256 10.7339 11.9233L5.73391 8.78046C5.58834 8.68896 5.5 8.52908 5.5 8.35714V3.64286C5.5 3.47092 5.58834 3.31104 5.73391 3.21954L10.7339 0.0766817ZM6.5 4.54772V8.08086L10.5 10.5951V7.062L6.5 4.54772ZM11.5 7.062V10.5951L15.5 8.08086V4.54772L11.5 7.062ZM15.0605 3.64286L11 6.19514L6.93955 3.64286L11 1.09057L15.0605 3.64286Z" />
      <path fillRule="evenodd" clipRule="evenodd" d="M5.73391 8.07668C5.89657 7.97444 6.10343 7.97444 6.26609 8.07668L11.2661 11.2195C11.4117 11.311 11.5 11.4709 11.5 11.6429V16.3571C11.5 16.5291 11.4117 16.689 11.2661 16.7805L6.26609 19.9233C6.10343 20.0256 5.89657 20.0256 5.73391 19.9233L0.733914 16.7805C0.588344 16.689 0.5 16.5291 0.5 16.3571V11.6429C0.5 11.4709 0.588344 11.311 0.733914 11.2195L5.73391 8.07668ZM1.5 12.5477V16.0809L5.5 18.5951V15.062L1.5 12.5477ZM6.5 15.062V18.5951L10.5 16.0809V12.5477L6.5 15.062ZM10.0605 11.6429L6 14.1951L1.93955 11.6429L6 9.09057L10.0605 11.6429Z" />
      <path fillRule="evenodd" clipRule="evenodd" d="M15.7339 8.07668C15.8966 7.97444 16.1034 7.97444 16.2661 8.07668L21.2661 11.2195C21.4117 11.311 21.5 11.4709 21.5 11.6429V16.3571C21.5 16.5291 21.4117 16.689 21.2661 16.7805L16.2661 19.9233C16.1034 20.0256 15.8966 20.0256 15.7339 19.9233L10.7339 16.7805C10.5883 16.689 10.5 16.5291 10.5 16.3571V11.6429C10.5 11.4709 10.5883 11.311 10.7339 11.2195L15.7339 8.07668ZM11.5 12.5477V16.0809L15.5 18.5951V15.062L11.5 12.5477ZM16.5 15.062V18.5951L20.5 16.0809V12.5477L16.5 15.062ZM20.0605 11.6429L16 14.1951L11.9395 11.6429L16 9.09057L20.0605 11.6429Z" />
    </svg>;
};

export const ServiceNavIcon = props => {
  return <svg viewBox="0 0 20 20" {...props} className="inline-block h-5 w-5 fill-current" aria-label="Services">
      <path d="M0 13.5463C0 13.3708 0.157997 13.2607 0.284979 13.3478L4.18974 16.0263C4.24909 16.067 4.28571 16.1427 4.28571 16.2248V19.7709C4.28571 19.9465 4.12772 20.0566 4.00074 19.9695L0.0959735 17.291C0.0366259 17.2503 0 17.1745 0 17.0925V13.5463Z" />
      <path d="M5.2381 16.2248C5.2381 16.1427 5.27472 16.067 5.33407 16.0263L9.23883 13.3478C9.36581 13.2607 9.52381 13.3708 9.52381 13.5463V17.0925C9.52381 17.1745 9.48718 17.2503 9.42784 17.291L5.52307 19.9695C5.39609 20.0566 5.2381 19.9465 5.2381 19.7709V16.2248Z" />
      <path d="M4.85641 15.0372L8.75079 12.3658C8.87876 12.2781 8.87876 12.0566 8.75079 11.9688L4.85641 9.29746C4.79785 9.25729 4.72596 9.25729 4.6674 9.29746L0.773017 11.9688C0.645052 12.0566 0.645052 12.2781 0.773016 12.3658L4.6674 15.0372C4.72596 15.0774 4.79785 15.0774 4.85641 15.0372Z" />
      <path d="M5.23804 4.279C5.23804 4.10344 5.39603 3.99337 5.52302 4.08048L9.42778 6.75893C9.48713 6.79964 9.52375 6.8754 9.52375 6.95746V10.5036C9.52375 10.6792 9.36575 10.7892 9.23877 10.7021L5.33401 8.02368C5.27466 7.98297 5.23804 7.90721 5.23804 7.82515V4.279Z" />
      <path d="M10.4761 6.95746C10.4761 6.8754 10.5128 6.79964 10.5721 6.75893L14.4769 4.08048C14.6039 3.99337 14.7618 4.10344 14.7618 4.279V7.82515C14.7618 7.9072 14.7252 7.98297 14.6659 8.02368L10.7611 10.7021C10.6341 10.7892 10.4761 10.6792 10.4761 10.5036V6.95746Z" />
      <path d="M10.0944 5.76985L13.9888 3.09851C14.1168 3.01073 14.1168 2.78924 13.9888 2.70147L10.0944 0.0301261C10.0359 -0.010042 9.964 -0.010042 9.90544 0.0301261L6.01105 2.70147C5.88309 2.78924 5.88309 3.01073 6.01105 3.09851L9.90544 5.76985C9.964 5.81002 10.0359 5.81002 10.0944 5.76985Z" />
      <path d="M10.4761 13.5463C10.4761 13.3708 10.6341 13.2607 10.7611 13.3478L14.6658 16.0263C14.7252 16.067 14.7618 16.1427 14.7618 16.2248V19.7709C14.7618 19.9465 14.6038 20.0566 14.4768 19.9695L10.572 17.291C10.5127 17.2503 10.4761 17.1745 10.4761 17.0925V13.5463Z" />
      <path d="M15.7142 16.2248C15.7142 16.1427 15.7508 16.067 15.8101 16.0263L19.7149 13.3478C19.8419 13.2607 19.9999 13.3708 19.9999 13.5463V17.0925C19.9999 17.1745 19.9633 17.2503 19.9039 17.291L15.9991 19.9695C15.8722 20.0566 15.7142 19.9465 15.7142 19.7709V16.2248Z" />
      <path d="M15.3325 15.0372L19.2269 12.3658C19.3548 12.2781 19.3548 12.0566 19.2269 11.9688L15.3325 9.29746C15.2739 9.25729 15.202 9.25729 15.1435 9.29746L11.2491 11.9688C11.1211 12.0566 11.1211 12.2781 11.2491 12.3658L15.1435 15.0372C15.202 15.0774 15.2739 15.0774 15.3325 15.0372Z" />
    </svg>;
};

export const CSharpIcon = props => <svg style={{
  display: "inline-block",
  width: "1.5rem",
  height: "1.5rem"
}} viewBox="0 0 24 24" {...props}>
    <path d="m11.5 15.97.41 2.44c-.26.14-.68.27-1.24.39-.57.13-1.24.2-2.01.2-2.21-.04-3.87-.7-4.98-1.96C2.56 15.77 2 14.16 2 12.21c.05-2.31.72-4.08 2-5.32C5.32 5.64 6.96 5 8.94 5c.75 0 1.4.07 1.94.19s.94.25 1.2.4l-.58 2.49-1.06-.34c-.4-.1-.86-.15-1.39-.15-1.16-.01-2.12.36-2.87 1.1-.76.73-1.15 1.85-1.18 3.34 0 1.36.37 2.42 1.08 3.2.71.77 1.71 1.17 2.99 1.18l1.33-.12c.43-.08.79-.19 1.1-.32M13.89 19l.61-4H13l.34-2h1.5l.32-2h-1.5L14 9h1.5l.61-4h2l-.61 4h1l.61-4h2l-.61 4H22l-.34 2h-1.5l-.32 2h1.5L21 15h-1.5l-.61 4h-2l.61-4h-1l-.61 4h-2m2.95-6h1l.32-2h-1l-.32 2Z" style={{
  fill: "#28a561"
}} />
  </svg>;

export const PipeIcon = props => <svg style={{
  display: "inline-block",
  width: "1.5rem",
  height: "1.5rem"
}} viewBox="0 0 24 24" {...props}>
    <path d="M22 14h-2v2h-6v-3h2v-2h-2V6a2 2 0 0 0-2-2H4V2H2v8h2V8h6v3H8v2h2v5a2 2 0 0 0 2 2h8v2h2" style={{
  fill: "#28a561"
}} />
  </svg>;

export const AiMessageIcon = props => <svg style={{
  display: "inline-block",
  width: "1.5rem",
  height: "1.5rem"
}} viewBox="0 0 24 24" {...props}>
    <path d="M2.5 3C2.08782 3.00012 1.73499 3.14696 1.44141 3.44043C1.14766 3.73418 1 4.0875 1 4.5V19L4 16H15.5C15.9124 16 16.2659 15.8532 16.5596 15.5596C16.8533 15.2658 17.001 14.9125 17.001 14.5V10H15.5V14.5H3.375L2.5 15.375V4.5H10V3H2.5Z" style={{
  fill: "#28a561"
}} />
    <path fill-rule="evenodd" clip-rule="evenodd" d="M14.1154 3.11538L11 4.5L14.1154 5.88461L15.5 9L16.8846 5.88461L20 4.5L16.8846 3.11538L15.5 0L14.1154 3.11538Z" style={{
  fill: "#28a561"
}} />
  </svg>;

<Note>
  This feature is in Early Access (EA), and might not be visible in your app. To learn
  more about this program and the features it contains, see the
  [Early access](/early-access) page.
</Note>

The [Assistant](/navigate/assistant) in Chronosphere Observability Platform reads
your telemetry and configuration to answer questions, and acts on the resource
you're viewing when you ask it to. Use this reference to determine what it can
read, the skills it applies to specialized tasks, and the changes it can make.

<Warning>
  Generative AI features can produce incorrect results, hallucinate data, and deliver
  inaccurate analysis. Use generative AI features with care, and independently verify
  all information produced by generative AI tools before applying it.

  Certain prompts, data, or other inputs might produce irrelevant content. Don't rely on
  generative AI features or responses for any uses that exceed their designed scope.
</Warning>

## Data the Assistant reads

The Assistant queries your telemetry with the permissions of your account's
[role](/administer/accounts-teams/teams). It can't read data that your account
can't already access.

The following table lists the data the Assistant reads and examples of how you can
prompt each source:

| Source                                         | What the Assistant reads                                                                                                                                                                            | Example prompt                                       |
| ---------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- |
| [Metrics](/overview/types/metrics)             | Metric names, labels, label values, and the results of PromQL instant and range queries                                                                                                             | Chart the error rate of a service over the last hour |
| [Logs](/overview/types/logs)                   | Log field names, field values, and the results of logging queries                                                                                                                                   | Find the most common error messages for a service    |
| [Traces](/overview/types/traces)               | Traces by service and operation, or by trace ID, including full span trees                                                                                                                          | Retrieve the slowest traces for an endpoint          |
| [Change events](/overview/types/change-events) | Change events and their categories, types, sources, and labels                                                                                                                                      | Correlate a latency increase with a deploy           |
| [Alerts](/investigate/alerts/alert-details)    | Triggered and resolved alerts, filtered by status, severity, monitor, SLO, team, or muting state                                                                                                    | Summarize which alerts triggered overnight           |
| Configuration resources                        | Definitions of dashboards, monitors, SLOs, shaping rules, notification policies, muting rules, notifiers, collections, teams, services, derived telemetry, datasets, trace behaviors, and notebooks | Explain what conditions trigger a monitor            |
| Entity search                                  | Names, slugs, types, and ownership of dashboards, monitors, SLOs, collections, services, and teams                                                                                                  | Find the dashboard that covers a service             |
| Documentation                                  | The contents of this documentation                                                                                                                                                                  | Explain how rollup rules work                        |
| Your account                                   | Your account and the other accounts in your tenant                                                                                                                                                  | Identify who owns a resource                         |

The Assistant reads these sources in a sandboxed environment that allows it to
filter and combine results before responding. When you expand a tool call in the
conversation, you see the commands it ran and their output. For more information,
see [Tool calls](/navigate/assistant/interface#tool-calls).

## Skills

A *skill* is a set of instructions the Assistant loads for a specialized task,
such as writing a query in a specific language or investigating a signal. The
Assistant selects skills on its own based on your prompt. To direct it to a
specific skill, type `/` in the message field and select the skill.

**Table 2: Assistant skills**

The following table lists the skills available from the slash command menu:

| Command         | Purpose                                                                                                                                                                                                              |
| --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `/investigate`  | Explains what changed in a signal and identifies likely causes. Use it for a triggered alert, a monitor, a dashboard panel, an anomalous metric, or any question about why something is happening.                   |
| `/promql`       | Writes and modifies [PromQL](/investigate/querying/promql) queries. It discovers real metric and label names in your tenant rather than guessing them, and applies the correct function for each metric type.        |
| `/logs`         | Explores your log data and writes [logging queries](/investigate/querying/query-logs/query-syntax). It discovers log fields and values, and samples raw logs to confirm spelling and casing before building a query. |
| `/events`       | Writes queries for [change events](/overview/concepts/change-events). It discovers the categories, types, sources, and labels present in your tenant before filtering.                                               |
| `/dashboarding` | Writes, reviews, and repairs [dashboard](/observe/dashboards) JSON against the Chronosphere dashboard schema, including panels, variables, layouts, and queries.                                                     |
| `/joke`         | Tells a random observability joke.                                                                                                                                                                                   |

## Changes the Assistant can make

The Assistant can change the dashboard or notebook you have open, and can navigate
you to another page. It validates each change before applying it and tells you what
it changed. For dashboards, it stages the changes so you can review and modify them
before saving the updated dashboard.

### Edit the open dashboard

When you're viewing a [dashboard](/observe/dashboards), the Assistant can read its
current state, including unsaved edits, and apply changes such as adding a panel
or adjusting a query.

The Assistant validates its change against the dashboard schema before applying
it. When validation fails, it reports the problem and leaves the dashboard
unchanged.

After a successful change:

* The dashboard switches to edit mode.
* The change is recorded in the dashboard's edit history as
  **Edited dashboard with assistant**, so you can undo it like any manual edit.
* The change isn't saved until you review it and click **Save**.

To start, open a dashboard in edit mode and ask the Assistant what you want to
change. For example:

<Prompt description="Add a panel to this dashboard showing request rate by status code.">
  Add a panel to this dashboard showing request rate by status code.
</Prompt>

### Edit the open notebook

When you have a [notebook](/navigate/notebooks) open, the Assistant can read its
contents as Markdown and edit its text, visualization panels, and tables.

Notebook edits are saved automatically, so review them after the Assistant reports
a change. Notebooks retain their
[version history](/navigate/notebooks#view-version-history), and you can restore
an edited notebook to a previous state.

The Assistant edits a notebook by matching exact text. When the text it's looking
for appears more than once or doesn't appear at all, rather than editing the wrong
section, it rejects the change and reports why.

### Navigate to a page

The Assistant can open another page in Observability Platform for you, such as a
dashboard or an explorer. It navigates only to valid Observability Platform routes
and documentation pages, and reports an error rather than following a link
elsewhere.

## Start an investigation

<Note>
  This feature isn't available to all Chronosphere Observability Platform users and
  might not be visible in your app. For information about enabling this feature in your
  environment, contact [Chronosphere Support](/support).
</Note>

The Assistant can start a deep investigation and monitor its progress while you
work elsewhere. Investigations are available on tenants that have them enabled.

To start an investigation from the Assistant, ask it to investigate an alert,
dashboard panel, or symptom. Before starting one, the Assistant confirms with you
unless your prompt clearly requested it. After starting, it links to the
investigation and offers to monitor it.

To start an investigation from a dashboard panel:

1. Hold the pointer over the panel, and then click the
   <Icon icon="ellipsis-vertical" /> three vertical dots icon.
2. Click **Add to investigation**. When an investigation already exists for that
   panel and time range, click **Show investigation** instead.

Observability Platform opens the Assistant and starts the investigation. Progress
appears as an [investigation card](/navigate/assistant/interface#investigation-cards)
in the conversation.

To continue a completed investigation, open its report and click
**Continue investigation**, describe the direction you want to pursue in the
**Look deeper into** field, and then click **Submit**. Observability Platform
forks a follow-up investigation and hands it to the Assistant to monitor.

## Escalate from query generation

[Natural language query generation](/investigate/querying/natural-language)
produces a single query in the field you're editing. When it can't fulfill a
request, its error message includes an **Ask Assistant** link.

Click the link to send the same prompt to the Assistant, which opens in the side
panel and retries the request with its full set of capabilities, including metric
discovery and the `/promql` skill.

## Tenant-specific guidance

Chronosphere can configure instructions that the Assistant applies to every
conversation in your tenant, such as your naming conventions, the services your
teams own, or the dashboards to prefer for a given question. The Assistant follows
these instructions alongside its built-in behavior.

These instructions don't change your account's permissions or grant access to data
your tenant can't otherwise read. To request them, contact
[Chronosphere Support](/support).
