iiuniversitet.ruЦентр обучения нейросетямОткрыть каталог

Стратегия поиска по нескольким источникам

Разбивает вопрос на запросы к каждому источнику, ранжирует результаты и подсказывает запасные ходы.

СкиллAnthropicClaudeApache-2.0Загрузить архив в ClaudeПроверка не требуетсяСлужебный: его вызывают другие скиллы
Что делает
Разбивает вопрос на запросы к каждому источнику, ранжирует результаты и подсказывает запасные ходы.
Когда брать
Служебный скилл: подключается к поиску, когда нужно искать сразу в чате, почте, документах и задачах.
Пример запроса
Что мы решили по срокам миграции API? Поищи везде и сверь результаты.
Нужно подключить
почта, чат, облачные документы, трекер задач

Входит в плагин enterprise-search. В Cowork и Claude Code можно поставить плагин целиком.

Как включить

  1. Нажмите «Скачать на русском» и сохраните архив.
  2. В Claude откройте Настройки → Capabilities → Skills → Upload skill и выберите архив.
  3. Включите скилл переключателем.
Для терминала

Распакуйте архив и положите папку 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:sarahfrom:sarah или from:<@USERID>
in:engineeringin:engineering
after:2025-01-01after:2025-01-01
before:2025-02-01before:2025-02-01
type:threadis:thread
type:filehas: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:sarahassignee_any или created_by_any
after:2025-01-01modified_on_after: "2025-01-01"
type:milestoneresource_subtype: "milestone"

Ранжирование результатов

Оценка релевантности

Оцени каждый результат по этим факторам (вес зависит от типа запроса):

ФакторВес (решение)Вес (статус)Вес (документ)Вес (факт)
Совпадение по ключевым словам0.30.20.40.3
Свежесть0.30.40.20.1
Авторитетность0.20.10.30.4
Полнота0.20.30.10.2

Иерархия авторитетности

Зависит от типа запроса:

Для вопросов о фактах и правилах:

Вики / официальные документы > Общие документы > Объявления по почте > Сообщения в чате

Для вопросов «что произошло» и о решениях:

Заметки со встреч > Выводы по ветке > Подтверждения по почте > Сообщения в чате

Для вопросов о статусе:

Трекер задач > Свежий чат > Документы о статусе > Обновления по почте

Работа с неоднозначностью

Если запрос неоднозначен, лучше задай один точный уточняющий вопрос, чем гадать:

Неоднозначно: «найди миграцию»
→ «Я нашёл упоминания нескольких миграций. Вы ищете:
   1. Миграцию базы данных (проект Phoenix)
   2. Переезд в облако (AWS → GCP)
   3. Миграцию почты (Exchange → O365)»

Уточняй только тогда, когда:

  • Есть действительно разные трактовки, которые дадут сильно разные результаты
  • Неоднозначность заметно влияет на то, в каких источниках искать

НЕ уточняй, когда:

  • Запрос достаточно ясен, чтобы дать полезные результаты
  • Небольшую неоднозначность можно снять, вернув результаты по нескольким трактовкам

Запасные стратегии

Когда источник недоступен или не вернул результатов:

  1. Источник недоступен: пропусти его, ищи в остальных, отметь пробел
  2. Источник не вернул результатов: попробуй более широкие термины, убери фильтры по дате, попробуй другие ключевые слова
  3. Ни один источник ничего не вернул: предложи пользователю изменить запрос
  4. Превышен лимит запросов: отметь ограничение, верни результаты из других источников, предложи повторить позже

Расширение запроса

Если первые запросы дают слишком мало результатов:

Исходный:  "PostgreSQL migration Q2 timeline decision"
Шире:      "PostgreSQL migration"
Ещё шире:  "database migration"
Самый широкий: "migration"

Убирай ограничения в таком порядке:

  1. Фильтры по дате (ищи за всё время)
  2. Фильтры по источнику или месту
  3. Менее важные ключевые слова
  4. Оставь только основные термины сущности или темы

Параллельное выполнение

Всегда выполняй поиск по источникам параллельно, а не по очереди. Общее время поиска должно быть примерно равно времени самого медленного источника, а не сумме по всем.

[Запрос пользователя]
     ↓ разбить
[запрос ~~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.