# Как всё связано (/ru/docs/how-things-are-linked)

Вы можете попросить агента показать всё о каком-то человеке или сообщения, на которых держится решение, потому что инструменты хранят связи между записями. Эта страница объясняет, какие связи бывают, кто создаёт каждую (инструмент, вы или ваш агент) и как по ним переходить. После неё вы сможете понять, почему связи нет и какая команда её добавит. Поиск и связи работают с тем, что уже лежит в локальном хранилище, поэтому сначала загрузите историю: [Поиск](/llms.mdx/docs/ru/search/content.md#%D1%81%D0%BD%D0%B0%D1%87%D0%B0%D0%BB%D0%B0-%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%B8%D1%82%D0%B5-%D0%B8%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8E-%D0%BD%D1%83%D0%B6%D0%BD%D1%8B%D1%85-%D1%87%D0%B0%D1%82%D0%BE%D0%B2).

## Идея [#идея]

`tg`, `max`, `memo` и `drive` хранят записи в одном локальном хранилище на вашем компьютере. Запись одного инструмента может быть связана с записью другого. Связь бывает двух видов:

* **Часть самой записи.** У сообщения есть чат и отправитель.
* **Отдельная сохранённая связь между двумя записями.** Заметка относится к человеку. Факт подтверждён сообщениями.

Адреса одного человека никогда не объединяются по догадке из имён. Каждая сохранённая связь помнит, кто её создал.

## Ссылка на источник указывает на любую запись [#ссылка-на-источник-указывает-на-любую-запись]

В каждом результате есть ссылка на источник: короткое типизированное имя записи. Скопируйте её в следующую команду.

| Ссылка | На что указывает |
| --- | --- |
| `msg:telegram/1/77/42` | Одно сообщение: мессенджер, аккаунт, чат, сообщение |
| `chat:telegram/1/77` | Чат в одном аккаунте |
| `contact:telegram/501` | Контакт в одном мессенджере |
| `person:7` | Человек со всеми аккаунтами, которые вы к нему привязали |
| `organization:3`, `project:4`, `task:5` | Ваши организации, проекты и задачи |
| `note:12`, `document:3` | Заметка либо файл из папки заметок или из Drive |
| `memory:8`, `fact:9` | Запись памяти или факт |

Ссылка на сообщение включает аккаунт, поэтому то же число в другом аккаунте — другое сообщение. Поле со ссылкой в большинстве ответов называется `ref`. В некоторых ответах оно называется `locator`, а в одном списке Drive — `reference`. Копируйте значение, а не имя поля.

```sh
tg personal messages context "msg:telegram/1/77/42" --thread
```

## Сообщения, чаты и люди [#сообщения-чаты-и-люди]

Сообщение принадлежит одному чату и имеет отправителя. Отправитель — это адрес: один аккаунт в одном мессенджере. Человек — это один или несколько таких адресов.

Объединять адреса в одного человека можете только вы. Одинакового имени или одного почтового домена для этого мало.

```sh
tg personal contacts link "Kai Sample" max:Kai
```

После этого `contacts timeline` идёт за человеком через мессенджеры. Команда показывает, что он писал, где его упоминали, его чаты, почту, встречи и задачи, от новых к старым, только из хранилища.

```sh
tg personal contacts timeline "Kai Sample" --since-time 2026-10-01 --limit 20
```

Инструмент также записывает, кто в чём участвовал (отправитель, получатель, участник, исполнитель, автор, упомянутый, связанный). Поэтому «всё о Kai» — это один запрос, а не перебор всех сообщений.

## Ответы и разговоры [#ответы-и-разговоры]

У каждого сообщения может быть указатель на более раннее сообщение, на которое оно отвечает. Каждый указатель знает, откуда он взялся:

* **Мессенджер.** Явный ответ. Он важнее всего остального.
* **Правило инструмента.** Сообщение, которое кого-то упоминает или продолжает того же отправителя.
* **Ваш агент.** Ответ, который он сохранил, прочитав чат. Для сохранения нужно разрешение профиля `conversations.links`.

`conversations build` собирает эти указатели в разговоры одного чата. `messages context` с `--thread` идёт по цепочке от сообщения, а не показывает соседей по времени. Связь, устаревшая после правки или удаления, показывается, но по ней не идут. После пересборки у разговоров новые id, поэтому сохраняйте ссылку `msg:` на сообщение, а не id разговора. Как строится граф: [Как устроен поиск](/llms.mdx/docs/ru/search-architecture/content.md#3-%D1%80%D0%B0%D0%B7%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D1%8B-%D0%BA%D0%B0%D0%BA-%D0%B3%D1%80%D0%B0%D1%84-%D1%81%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D0%B9).

## Файлы, голосовые и картинки [#файлы-голосовые-и-картинки]

* Файл принадлежит сообщению, письму или встрече. Его извлечённый текст остаётся при нём, поэтому `content:` находит сообщение, которое принесло файл.
* Расшифровка голосового принадлежит сообщению, поэтому `transcript:` находит это сообщение.
* Картинку находят через чат вокруг неё или по тому, что на ней. Оба способа описаны в разделе [Что попадает в поиск](/llms.mdx/docs/ru/what-is-indexed/content.md#%D0%BA%D0%B0%D1%80%D1%82%D0%B8%D0%BD%D0%BA%D0%B8).

## Упоминания [#упоминания]

Упоминание — это телефон, адрес почты, ссылка, ссылка на документ Google или имя знакомого вам человека, найденные по правилам в тексте сообщений, файлов и расшифровок. Каждое упоминание начинается как `found`. Затем вы подтверждаете его (`linked`) или отклоняете (`dismissed`).

* `mentions list` показывает найденное. `mentions show <id>` показывает текст вокруг одного упоминания.
* `mentions confirm <id> person:7` говорит, кому принадлежит телефон или адрес, либо какого человека означает имя. Для телефона или адреса подходит и `person:`, и `organization:`. Сохранённому документу Google аргумент не нужен.
* `mentions reject <id>` отклоняет это значение везде и при следующих синхронизациях. Обычную ссылку нельзя подтвердить, только отклонить.
* `mentions rebuild` читает сообщения, сохранённые до появления упоминаний. `mentions rebuild person-name` заново ищет имена, когда вы добавили или переименовали людей.

Обе команды записывают, кто решил. Если их запускает агент, решение сохраняется на имя агента; `--as-owner` сохраняет его как ваше.

Поиск находит упоминания, как бы они ни были написаны: `phone:`, `email:`, `url:` и `domain:` смотрят на значение, а `mentions:"person:7"` находит сообщения, где упомянут подтверждённый человек, организация или документ. Эти команды есть в последних релизах `tg` и `max`; проверьте свои через `mentions --help`. Подробнее: [Что попадает в поиск](/llms.mdx/docs/ru/what-is-indexed/content.md#%D1%82%D0%B5%D0%BB%D0%B5%D1%84%D0%BE%D0%BD%D1%8B-%D0%BF%D0%BE%D1%87%D1%82%D0%B0-%D0%B8-%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B8).

## Заметки, задачи, факты и память [#заметки-задачи-факты-и-память]

`memo` хранит записи, которые вы или ваш агент пишете обо всём перечисленном.

* **Заметка** относится к человеку, чату, задаче или документу. Ссылка `[[Kai Sample]]` в заметке становится связью с этим человеком, как только в хранилище есть кто-то с таким именем или username. Имя в обычном тексте связью не является.
* **Задача** может возникнуть из сообщения. Задача-вопрос связана с сообщением, которое на неё ответило.
* **Факт** (утверждение, вопрос, решение или обещание) хранит связи с доказательствами: сообщениями, заметками или документами, на которых он держится. Новое решение может заменить прежнее. Факт, который добавил агент, ждёт как предложенный, пока вы его не примете.
* **Запись памяти** — вывод с доказательствами и статусом проверки. Изменение источника может сделать её устаревшей.

## Теги [#теги]

Тег ставится на любую запись: сообщение, чат, человека, документ, заметку, задачу. `tag:work` находит сообщение с этим тегом, сообщение в чате с этим тегом и сообщение от человека с этим тегом. Тег на папке Drive действует на каждый документ внутри.

```sh
tg personal tags add work --chat "Book club"
```

## Документы Drive [#документы-drive]

`drive` импортирует документы в то же хранилище. У документа могут быть теги, заметки, факты и записи памяти, а также связь с человеком (`drive relationships`, `drive tags`). `drive documents list --person person:7` показывает документы, связанные с этим человеком.

## Кто создаёт связь [#кто-создаёт-связь]

| Связь | Кто создаёт |
| --- | --- |
| Сообщение в своём чате, с отправителем | Инструмент, когда сохраняет сообщение |
| Ответ | Мессенджер |
| Предполагаемый ответ (упоминание, тот же отправитель) | Правило инструмента |
| Выбранный ответ | Ваш агент, с `conversations.links` |
| Телефон, почта, ссылка, документ или имя в тексте | Правило инструмента, со статусом `found` |
| Упоминание подтверждено или отклонено | Вы или ваш агент, с записью имени |
| Два адреса — один человек | Вы, через `contacts link` |
| Тег | Вы, через `tags add` |
| Заметка, задача или факт о записи | Вы или ваш агент через `memo` |
| Факт от агента | Ваш агент, как предложенный; вы его принимаете |

Каждая сохранённая связь помнит источник: `file` (написана в файле заметки), `owner` (добавили вы), `suggested` (предложена, ещё не подтверждена) или `message` (написана в сохранённом сообщении).

## Как использовать связи в вопросе [#как-использовать-связи-в-вопросе]

Четыре запроса, на которые агент может ответить благодаря связям. Подставьте свои имена.

> ```text prompt
> Используй tg CLI. Найди сообщение, где мы договорились о дате доставки, и покажи сообщения вокруг него как один разговор.
> ```

> ```text prompt
> Используй tg CLI. Кому принадлежит телефон +1 555 010 0100? Покажи, где он встречается, и предложи человека.
> ```

> ```text prompt
> Используй tg CLI. Покажи всё о Kai Sample за последний месяц во всех мессенджерах, которые я к нему привязал.
> ```

> ```text prompt
> Используй memo. Какая задача возникла из сообщения про счёт и какое сообщение на неё ответило?
> ```

## Если связи не хватает [#если-связи-не-хватает]

| Симптом | Вероятная причина | Что сделать |
| --- | --- | --- |
| В хронологии человека виден один мессенджер | Адреса не объединены | `contacts link`, затем повторите запрос |
| `--thread` показывает только соседей по времени | Для чата не собраны разговоры | `conversations build --chat "Book club"` |
| Телефон или почта в старом сообщении не находятся | Сообщение сохранено до появления упоминаний | `mentions rebuild` |
| Имя нового контакта не находится | Упоминания собрали до того, как появился человек | `mentions rebuild person-name` |
| Слова внутри файла не находятся | Текст файла не извлечён | `attachments extract` |
| В чате нет сообщений вообще | История не скачана | `messages sync` |

Дальше: [Ищите эффективно](/llms.mdx/docs/ru/search-efficiently/content.md) показывает, как выбрать команду и сузить поиск. Столбцы хранилища, на которых держатся эти связи, описаны в [модели данных](/llms.mdx/docs/ru/data-model/content.md#%D0%BA%D0%B0%D0%BA-%D0%BE%D0%BD%D0%B8-%D1%81%D0%B2%D1%8F%D0%B7%D0%B0%D0%BD%D1%8B).
