Стратегия поиска по нескольким источникам
Разбивает вопрос на запросы к каждому источнику, ранжирует результаты и подсказывает запасные ходы.
- Что делает
- Разбивает вопрос на запросы к каждому источнику, ранжирует результаты и подсказывает запасные ходы.
- Когда брать
- Служебный скилл: подключается к поиску, когда нужно искать сразу в чате, почте, документах и задачах.
- Пример запроса
- Что мы решили по срокам миграции API? Поищи везде и сверь результаты.
- Нужно подключить
- почта, чат, облачные документы, трекер задач
Входит в плагин enterprise-search. В Cowork и Claude Code можно поставить плагин целиком.
Как включить
- Нажмите «Скачать на русском» и сохраните архив.
- В Claude откройте Настройки → Capabilities → Skills → Upload skill и выберите архив.
- Включите скилл переключателем.
Для терминала
Распакуйте архив и положите папку search-strategy в ~/.claude/skills/. Файл SKILL.md должен лежать внутри этой папки.
Текст
---
name: search-strategy
description: Разбор запросов и оркестрация поиска по нескольким источникам. Разбивает вопросы на естественном языке на целевые поиски по каждому источнику, переводит запросы в синтаксис конкретного источника, ранжирует результаты по релевантности и справляется с неоднозначностью и запасными стратегиями.
user-invocable: false
---
Стратегия поиска
Если встретишь незнакомые подстановки или нужно узнать, какие инструменты подключены, смотри [CONNECTORS.md](../../CONNECTORS.md).
Главный «интеллект» корпоративного поиска. Превращает один вопрос на естественном языке в параллельные поиски по источникам и выдаёт ранжированные результаты без дублей.
Цель
Превратить вот это:
"Что мы решили по срокам миграции API?"
В целевые поиски по каждому подключённому источнику:
~~chat: "API migration timeline decision" (semantic) + "API migration" in:#engineering after:2025-01-01
~~knowledge base: semantic search "API migration timeline decision"
~~project tracker: text search "API migration" in relevant workspace
Затем свести результаты в один связный ответ.
Разбор запроса
Шаг 1: определение типа запроса
Классифицируй вопрос пользователя, чтобы выбрать стратегию поиска:
| Тип запроса | Пример | Стратегия |
|---|---|---|
| Решение | «Что мы решили по X?» | Приоритет — разговоры (~~chat, почта), ищи признаки вывода |
| Статус | «Каков статус проекта Y?» | Приоритет — свежая активность, трекеры задач, обновления статусов |
| Документ | «Где спецификация на Z?» | Приоритет — Drive, вики, общие документы |
| Человек | «Кто работает над X?» | Ищи назначения задач, авторов сообщений, соавторов документов |
| Факт | «Какая у нас политика по X?» | Приоритет — вики, официальные документы, затем подтверждающие разговоры |
| Время | «Когда произошло X?» | Ищи с широким диапазоном дат, смотри метки времени |
| Исследовательский | «Что нам известно об X?» | Широкий поиск по всем источникам, затем синтез |
Шаг 2: выделение составляющих поиска
Из запроса извлеки:
- Ключевые слова: основные термины, которые должны встречаться в результатах
- Сущности: люди, проекты, команды, инструменты (используй систему памяти, если она есть)
- Сигналы намерения: слова про решения, слова про статус, временные маркеры
- Ограничения: диапазоны дат, подсказки об источнике, фильтры по автору
- Исключения: что нужно исключить
Шаг 3: подзапросы для каждого источника
Для каждого доступного источника составь один или несколько целевых запросов:
Предпочитай семантический поиск для:
- Вопросов по смыслу («Что мы думаем о...»)
- Вопросов, где точные ключевые слова неизвестны
- Исследовательских запросов
Предпочитай поиск по ключевым словам для:
- Известных терминов, названий проектов, аббревиатур
- Точных фраз, которые привёл пользователь
- Запросов с большим числом фильтров (from:, in:, after:)
Составляй несколько вариантов запроса, если тему могут называть по-разному:
Пользователь: "Kubernetes setup"
Запросы: "Kubernetes", "k8s", "cluster", "container orchestration"
Перевод запросов на синтаксис источника
~~chat
Семантический поиск (вопросы на естественном языке):
query: "What is the status of project aurora?"
Поиск по ключевым словам:
query: "project aurora status update"
query: "aurora in:#engineering after:2025-01-15"
query: "from:<@UserID> aurora"
Соответствие фильтров:
| Общий фильтр | Синтаксис ~~chat |
|---|---|
from:sarah | from:sarah или from:<@USERID> |
in:engineering | in:engineering |
after:2025-01-01 | after:2025-01-01 |
before:2025-02-01 | before:2025-02-01 |
type:thread | is:thread |
type:file | has:file |
~~knowledge base (вики)
Семантический поиск — для запросов по смыслу:
descriptive_query: "API migration timeline and decision rationale"
Поиск по ключевым словам — для точных терминов:
query: "API migration"
query: "\"API migration timeline\"" (exact phrase)
~~project tracker
Поиск задач:
text: "API migration"
workspace: [workspace_id]
completed: false (for status queries)
assignee_any: "me" (for "my tasks" queries)
Соответствие фильтров:
| Общий фильтр | Параметр ~~project tracker |
|---|---|
from:sarah | assignee_any или created_by_any |
after:2025-01-01 | modified_on_after: "2025-01-01" |
type:milestone | resource_subtype: "milestone" |
Ранжирование результатов
Оценка релевантности
Оцени каждый результат по этим факторам (вес зависит от типа запроса):
| Фактор | Вес (решение) | Вес (статус) | Вес (документ) | Вес (факт) |
|---|---|---|---|---|
| Совпадение по ключевым словам | 0.3 | 0.2 | 0.4 | 0.3 |
| Свежесть | 0.3 | 0.4 | 0.2 | 0.1 |
| Авторитетность | 0.2 | 0.1 | 0.3 | 0.4 |
| Полнота | 0.2 | 0.3 | 0.1 | 0.2 |
Иерархия авторитетности
Зависит от типа запроса:
Для вопросов о фактах и правилах:
Вики / официальные документы > Общие документы > Объявления по почте > Сообщения в чате
Для вопросов «что произошло» и о решениях:
Заметки со встреч > Выводы по ветке > Подтверждения по почте > Сообщения в чате
Для вопросов о статусе:
Трекер задач > Свежий чат > Документы о статусе > Обновления по почте
Работа с неоднозначностью
Если запрос неоднозначен, лучше задай один точный уточняющий вопрос, чем гадать:
Неоднозначно: «найди миграцию»
→ «Я нашёл упоминания нескольких миграций. Вы ищете:
1. Миграцию базы данных (проект Phoenix)
2. Переезд в облако (AWS → GCP)
3. Миграцию почты (Exchange → O365)»
Уточняй только тогда, когда:
- Есть действительно разные трактовки, которые дадут сильно разные результаты
- Неоднозначность заметно влияет на то, в каких источниках искать
НЕ уточняй, когда:
- Запрос достаточно ясен, чтобы дать полезные результаты
- Небольшую неоднозначность можно снять, вернув результаты по нескольким трактовкам
Запасные стратегии
Когда источник недоступен или не вернул результатов:
- Источник недоступен: пропусти его, ищи в остальных, отметь пробел
- Источник не вернул результатов: попробуй более широкие термины, убери фильтры по дате, попробуй другие ключевые слова
- Ни один источник ничего не вернул: предложи пользователю изменить запрос
- Превышен лимит запросов: отметь ограничение, верни результаты из других источников, предложи повторить позже
Расширение запроса
Если первые запросы дают слишком мало результатов:
Исходный: "PostgreSQL migration Q2 timeline decision"
Шире: "PostgreSQL migration"
Ещё шире: "database migration"
Самый широкий: "migration"
Убирай ограничения в таком порядке:
- Фильтры по дате (ищи за всё время)
- Фильтры по источнику или месту
- Менее важные ключевые слова
- Оставь только основные термины сущности или темы
Параллельное выполнение
Всегда выполняй поиск по источникам параллельно, а не по очереди. Общее время поиска должно быть примерно равно времени самого медленного источника, а не сумме по всем.
[Запрос пользователя]
↓ разбить
[запрос ~~chat] [запрос ~~email] [запрос ~~cloud storage] [запрос к вики] [запрос ~~project tracker]
↓ ↓ ↓ ↓ ↓
(параллельное выполнение)
↓
[Объединить + Ранжировать + Убрать дубли]
↓
[Итоговый ответ]
Перевод: iiuniversitet. Оригинал: https://github.com/anthropics/knowledge-work-plugins/tree/main/enterprise-search/skills/search-strategy, лицензия Apache-2.0. Изменения: перевод на русский язык.
Оригинал на английском
---
name: search-strategy
description: Query decomposition and multi-source search orchestration. Breaks natural language questions into targeted searches per source, translates queries into source-specific syntax, ranks results by relevance, and handles ambiguity and fallback strategies.
user-invocable: false
---
# Search Strategy
> If you see unfamiliar placeholders or need to check which tools are connected, see [CONNECTORS.md](../../CONNECTORS.md).
The core intelligence behind enterprise search. Transforms a single natural language question into parallel, source-specific searches and produces ranked, deduplicated results.
## The Goal
Turn this:
```
"What did we decide about the API migration timeline?"
```
Into targeted searches across every connected source:
```
~~chat: "API migration timeline decision" (semantic) + "API migration" in:#engineering after:2025-01-01
~~knowledge base: semantic search "API migration timeline decision"
~~project tracker: text search "API migration" in relevant workspace
```
Then synthesize the results into a single coherent answer.
## Query Decomposition
### Step 1: Identify Query Type
Classify the user's question to determine search strategy:
| Query Type | Example | Strategy |
|-----------|---------|----------|
| **Decision** | "What did we decide about X?" | Prioritize conversations (~~chat, email), look for conclusion signals |
| **Status** | "What's the status of Project Y?" | Prioritize recent activity, task trackers, status updates |
| **Document** | "Where's the spec for Z?" | Prioritize Drive, wiki, shared docs |
| **Person** | "Who's working on X?" | Search task assignments, message authors, doc collaborators |
| **Factual** | "What's our policy on X?" | Prioritize wiki, official docs, then confirmatory conversations |
| **Temporal** | "When did X happen?" | Search with broad date range, look for timestamps |
| **Exploratory** | "What do we know about X?" | Broad search across all sources, synthesize |
### Step 2: Extract Search Components
From the query, extract:
- **Keywords**: Core terms that must appear in results
- **Entities**: People, projects, teams, tools (use memory system if available)
- **Intent signals**: Decision words, status words, temporal markers
- **Constraints**: Time ranges, source hints, author filters
- **Negations**: Things to exclude
### Step 3: Generate Sub-Queries Per Source
For each available source, create one or more targeted queries:
**Prefer semantic search** for:
- Conceptual questions ("What do we think about...")
- Questions where exact keywords are unknown
- Exploratory queries
**Prefer keyword search** for:
- Known terms, project names, acronyms
- Exact phrases the user quoted
- Filter-heavy queries (from:, in:, after:)
**Generate multiple query variants** when the topic might be referred to differently:
```
User: "Kubernetes setup"
Queries: "Kubernetes", "k8s", "cluster", "container orchestration"
```
## Source-Specific Query Translation
### ~~chat
**Semantic search** (natural language questions):
```
query: "What is the status of project aurora?"
```
**Keyword search:**
```
query: "project aurora status update"
query: "aurora in:#engineering after:2025-01-15"
query: "from:<@UserID> aurora"
```
**Filter mapping:**
| Enterprise filter | ~~chat syntax |
|------------------|--------------|
| `from:sarah` | `from:sarah` or `from:<@USERID>` |
| `in:engineering` | `in:engineering` |
| `after:2025-01-01` | `after:2025-01-01` |
| `before:2025-02-01` | `before:2025-02-01` |
| `type:thread` | `is:thread` |
| `type:file` | `has:file` |
### ~~knowledge base (Wiki)
**Semantic search** — Use for conceptual queries:
```
descriptive_query: "API migration timeline and decision rationale"
```
**Keyword search** — Use for exact terms:
```
query: "API migration"
query: "\"API migration timeline\"" (exact phrase)
```
### ~~project tracker
**Task search:**
```
text: "API migration"
workspace: [workspace_id]
completed: false (for status queries)
assignee_any: "me" (for "my tasks" queries)
```
**Filter mapping:**
| Enterprise filter | ~~project tracker parameter |
|------------------|----------------|
| `from:sarah` | `assignee_any` or `created_by_any` |
| `after:2025-01-01` | `modified_on_after: "2025-01-01"` |
| `type:milestone` | `resource_subtype: "milestone"` |
## Result Ranking
### Relevance Scoring
Score each result on these factors (weighted by query type):
| Factor | Weight (Decision) | Weight (Status) | Weight (Document) | Weight (Factual) |
|--------|-------------------|------------------|--------------------|-------------------|
| Keyword match | 0.3 | 0.2 | 0.4 | 0.3 |
| Freshness | 0.3 | 0.4 | 0.2 | 0.1 |
| Authority | 0.2 | 0.1 | 0.3 | 0.4 |
| Completeness | 0.2 | 0.3 | 0.1 | 0.2 |
### Authority Hierarchy
Depends on query type:
**For factual/policy questions:**
```
Wiki/Official docs > Shared documents > Email announcements > Chat messages
```
**For "what happened" / decision questions:**
```
Meeting notes > Thread conclusions > Email confirmations > Chat messages
```
**For status questions:**
```
Task tracker > Recent chat > Status docs > Email updates
```
## Handling Ambiguity
When a query is ambiguous, prefer asking one focused clarifying question over guessing:
```
Ambiguous: "search for the migration"
→ "I found references to a few migrations. Are you looking for:
1. The database migration (Project Phoenix)
2. The cloud migration (AWS → GCP)
3. The email migration (Exchange → O365)"
```
Only ask for clarification when:
- There are genuinely distinct interpretations that would produce very different results
- The ambiguity would significantly affect which sources to search
Do NOT ask for clarification when:
- The query is clear enough to produce useful results
- Minor ambiguity can be resolved by returning results from multiple interpretations
## Fallback Strategies
When a source is unavailable or returns no results:
1. **Source unavailable**: Skip it, search remaining sources, note the gap
2. **No results from a source**: Try broader query terms, remove date filters, try alternate keywords
3. **All sources return nothing**: Suggest query modifications to the user
4. **Rate limited**: Note the limitation, return results from other sources, suggest retrying later
### Query Broadening
If initial queries return too few results:
```
Original: "PostgreSQL migration Q2 timeline decision"
Broader: "PostgreSQL migration"
Broader: "database migration"
Broadest: "migration"
```
Remove constraints in this order:
1. Date filters (search all time)
2. Source/location filters
3. Less important keywords
4. Keep only core entity/topic terms
## Parallel Execution
Always execute searches across sources in parallel, never sequentially. The total search time should be roughly equal to the slowest single source, not the sum of all sources.
```
[User query]
↓ decompose
[~~chat query] [~~email query] [~~cloud storage query] [Wiki query] [~~project tracker query]
↓ ↓ ↓ ↓ ↓
(parallel execution)
↓
[Merge + Rank + Deduplicate]
↓
[Synthesized answer]
```
Источник: anthropics/knowledge-work-plugins / enterprise-search / search-strategy ↗. Ссылка проверена 2026-10-10.