Plank help · updated 2026-11-02

Поиск по истории пространства

В пространствах, где включён поиск по истории, ассистент может найти прошлые ходы, чаты, рабочий журнал, файлы, источники и дашборды, а не начинать с нуля; там, где включена сводка пространства, в AGENTS.md есть и краткое состояние пространства.

Agents: fetch the raw markdown of this page at /ru/help/history-search.md

Поиск по истории пространства

Новый чат не помнит прошлые чаты. С поиском по истории у ассистента есть ещё один инструмент, plank_history_search, который находит то, что пространство уже знает. С 2026-10-19 он включён во всех пространствах по умолчанию, и по просьбе его можно выключить для отдельного пространства. Контейнер, запущенный до включения, получает инструмент при следующем перезапуске: если инструмента нет, исследуйте пространство обычным способом.

Что он ищет

  • digest — краткое резюме каждого прошлого хода (что просили, что сделано, что осталось, что решено), включая запуски по расписанию и автоматические
  • chat — сообщения прошлых чатов
  • log — записи log.md, по одной на дату
  • file — текстовые файлы пространства (заметки, скрипты, CSV/JSON, HTML как текст)
  • source — записи реестра источников
  • page — дашборды и отчёты
  • app — строки таблиц данных пространства (30 последних изменённых таблиц, по 200 новых строк в каждой)

Он никогда не индексирует бинарные файлы, uploads/, .git/, node_modules/, .env*, credentials*.json и token.json, таблицы с историей сообщений канала или названные как журнал (messages, audit, events, history…) и столбцы, названные как секрет (password, token, api_key…). Удалённая строка таблицы пропадает из поиска примерно за 30 минут. Он не меняет knowledge/memory.md: правила по-прежнему живут там.

Удалённый чат выходит из поиска вместе с удалением: его текст и краткие записи о его ходах стираются, и агент его больше не находит. Сводка пространства, собранная раньше, обновляется в течение суток.

Когда использовать

Ищите до того, как разбирать папки, говорить «не знаю» и спрашивать человека о том, что пространство уже могло записать. Особенно важно, когда человек указывает на прошлое: «как в прошлый раз», «мы же решали», «где скрипт выгрузки». Один-два точных запроса (имена, номера задач вроде ATL-707, названия файлов, темы) лучше, чем открывать log.md, который слишком велик для чтения.

Ищите и перед тем, как писать черновик ответа или сообщения, для которого в пространстве уже может быть утверждённый текст, шаблон или правило (приветствие, ответ на известный тип вопроса, формат статуса): формулировка пространства лучше удачной догадки.

Как вызвать

plank_history_search принимает:

  • query (обязательно) — слова или вопрос
  • kinds — любые из digest, chat, log, file, source, page, app
  • since / until — даты ISO (until не включается)
  • limit — до 10 (по умолчанию 8); с spaces — до 15 (по умолчанию 10)
  • spaces — "all" или список слагов пространств: искать и в других ваших пространствах (см. ниже)

Возвращает карточки: тип, дата, заголовок, ссылка (ref) и фрагмент. В трёх верхних карточках — весь найденный отрывок (до 1 500 символов), в остальных — его первые 300.

Карточки идут по релевантности, но один тип не вытесняет остальные: если строка таблицы, чат, файл или день журнала достаточно близки к вопросу, в ответе остаётся до двух карточек каждого типа — вместо самых слабых карточек типа, которого и так больше. Текст карточки строки таблицы заканчивается именем таблицы и её колонок, и вопрос, называющий поле («балл», «срок», «статус»), находит строку легче. С kinds поиск идёт только по этим типам.

Поиск в других ваших пространствах

В вашем личном контейнере spaces ищет сразу в нескольких ваших пространствах: "all" — во всех, где вы участник, или список слагов (имена папок в /spaces/). В общем контейнере рабочего пространства этого параметра нет: там поиск всегда идёт только по своему пространству.

  • Ищем только в пространствах, где вы участник сейчас; слаг, где вы не участник, пропускается и не ищется.
  • Пространство, где поиск по истории выключен, тоже пропускается.
  • Личные чаты остаются личными в каждом пространстве: находятся ваши, но не чужие.
  • Не больше 60 пространств за один поиск. Каждая карточка называет своё пространство, (space: <slug>), а результат начинается строкой о том, где искали и какие пространства пропущены и почему.
  • Файл из другого пространства открывайте по пути /spaces/<slug>/<ref>. Карточку чата или строки таблицы из другого пространства отсюда пока может не получиться открыть: процитируйте её фрагмент и назовите пространство.

Как открыть карточку

Ref подсказывает, как прочитать целиком:

  • chat:<ses_id> — прочитайте через plank_chat_read. Без других аргументов он вернёт последние сообщения чата; в длинном чате ответ часто сильно раньше, поэтому передайте find с точным id, именем или числом из сниппета (с учётом регистра, только по тексту сообщений): вернутся самые новые сообщения с этим текстом, каждое с соседями. Каждый ответ называет позицию before, чтобы листать дальше назад, и говорит, где сообщение обрезано и на сколько
  • путь к файлу — откройте через read
  • log.md#YYYY-MM-DD — один день рабочего журнала; log.md слишком длинный, чтобы читать целиком: найдите день через grep -n "^## YYYY-MM-DD" log.md и читайте read с этой строки
  • карточка резюме заканчивается строкой Chat: chat:<ses_id> — это чат, в котором был ход
  • digest:<turn_id> — резюме и есть карточка; за подробностями идите по строке Chat:
  • source:<uuid> / page:<uuid> — найдите в реестре источников или списке дашбордов
  • app:<table>#<id> — одна строка этой таблицы: прочитайте её через plank_app_query (фильтр по id) и берите цифры из таблицы, а не из карточки

Относитесь к карточке как к подсказке, а не к приговору: проверьте файл или чат, прежде чем опираться на деталь, и скажите, если история противоречит словам человека.

Как отвечать по найденному

Если карточка и есть ответ, ответ — это открытый источник, а не ваш пересказ. Ответьте на каждую часть вопроса и добавьте из того же источника, что по этому решили и что дальше (следующая проверка, срок, оставшиеся задачи). Переносите конкретику так, как она записана в источнике: номера задач, PR и версий, даты, время, цифры, названия, пути в меню и шаги. Чтобы сократить ответ, сокращайте свои слова, а не их. Не добавляйте того, чего в источнике нет. Если человек попросил коротко или в определённом виде («одной фразой», «без номеров»), так и отвечайте.

Поиск, который нашёл карточки, заканчивается однострочным напоминанием об этом.

Когда ничего не подходит

Карточки ранжируются по похожести, поэтому поиск почти всегда что-то возвращает. Карточка о соседнем (другой рекламный канал, другой месяц, похожая задача) — не ответ. Если ни одна карточка не о том, что спросили, сначала прямо скажите, что в пространстве об этом записей нет. Только после этого, если полезно, — одна короткая строка о самом близком, что нашлось. Не просите человека выбирать между похожими вариантами.

Поиск ещё и предупреждает, когда это вероятно, — строкой над карточками: «Слабое совпадение», если ни одна карточка не выделяется среди остальных (так выглядит поиск, когда записи об этом в пространстве нет), и «Ни одна карточка не упоминает …», если номер из запроса (задачи или документа, например ATL-1655) не встречается ни в одной карточке. Карточки при этом показываются все: открывайте карточку, только если она именно о том, что спросили, а иначе скажите, что записи нет.

Сводка пространства

В пространствах, где она включена, в AGENTS.md есть короткое состояние пространства, которое платформа пишет сама по недавней истории: что в работе, последние решения, что ждёт ответа и что появилось (дашборды, источники, файлы). Это снимок на момент начала чата, он обновляется раз в день и может устареть: прежде чем опираться на цифру, номер или решение, проверьте их в источнике или через plank_history_search. Это не память: правила по-прежнему живут в knowledge/memory.md. В пространстве с несколькими участниками сводка собирается только из общих чатов, запусков по расписанию и автоматических запусков, но никогда из чьих-то личных чатов.

Приватность

Личный чат виден в поиске только его владельцу — это касается и запуска по расписанию или автоматического запуска, если его чат личный: его сообщения и сводки его ходов находит только тот, для кого он работает. Общий чат и файлы пространства видны всем участникам. В общем контейнере рабочего пространства (за которым нет отдельного человека) личные чаты не возвращаются никогда.

Резюме ходов и сводку пространства пишет модель OpenAI по собственной подписке Plank (если она недоступна, — модель DeepSeek); поисковый индекс строится открытой моделью эмбеддингов Qwen3-Embedding-8B, которую запускает Fireworks AI (американский провайдер; по его словам, присланный текст он не хранит; где Fireworks не настроен, используются эмбеддинги OpenAI). Все они вызываются API Plank, а не идущим ходом, и в файлы пространства ничего не пишется. Каждое резюме расходует лимит ИИ, как небольшой ход чата; когда лимит исчерпан, новые ходы просто не резюмируются до его обновления.