feat(search): P3.1 filters and multi-query merge
Native include/exclude domains, time_range, topic, exact_match, min_score, and up to 4 queries fused with RRF. Honesty notes stay off the Warn/fail path. Tavily keeps include_answer false and sets auto_parameters false. Cache key is canonical JSON. CLI flags and skill recipe included.
This commit is contained in:
+31
-3
@@ -21,7 +21,9 @@ markdown, JSON → JSON), optionally **digested** for your question by a local m
|
||||
**what the fleet already knows** attached from Honcho — so you read 1k tokens, not 20k.
|
||||
|
||||
`sift search` is the first step for web search. Use `web_search` only if sift is
|
||||
unreachable. Then `sift fetch` the URLs you need. Restricted callers use the same path.
|
||||
unreachable. Hermes `web_search` hits `/v2/search` and does **not** get native
|
||||
filters. Then `sift fetch` / `sift batch` the URLs you need — do not fetch every
|
||||
hit. Restricted callers use the same path.
|
||||
|
||||
## Rule: sift is the explicit first step
|
||||
|
||||
@@ -38,8 +40,9 @@ Whenever you need the content of a URL:
|
||||
## Commands
|
||||
|
||||
```bash
|
||||
# Web search (native). Then sift fetch the URLs you need.
|
||||
sift search "HBM wafer share 2026" --k 8
|
||||
# Web search (native). Then score/filter, then batch-fetch — not every hit.
|
||||
sift search "HBM wafer share 2026" --k 8 --json
|
||||
sift search "OpenAI" --include-domain openai.com --topic news --time-range month --json
|
||||
|
||||
# Page or document → cleaned content. Add --question to get a focused digest.
|
||||
sift fetch "https://example.com/article" --question "what does it say about HBM wafer share?"
|
||||
@@ -55,6 +58,31 @@ Useful flags: `--mode digest|clean|raw` (default `digest` when `--question` is g
|
||||
else `clean`), `--no-context` (skip Honcho lookup), `--recover` (server-side archive ladder
|
||||
for blocked pages), `--json` (full envelope: content, source, context, sizes, warnings).
|
||||
|
||||
## Search
|
||||
|
||||
```bash
|
||||
sift search "<query>" [--k n] [--json]
|
||||
[--include-domain host]... [--exclude-domain host]...
|
||||
[--domains-mode restrict|prefer]
|
||||
[--time-range day|week|month|year]
|
||||
[--start-date YYYY-MM-DD] [--end-date YYYY-MM-DD]
|
||||
[--topic general|news|finance]
|
||||
[--exact-match]
|
||||
[--min-score 0.5]
|
||||
[--queries-file path]
|
||||
```
|
||||
|
||||
Product News Tracker shape (official domain + news + last month):
|
||||
|
||||
```bash
|
||||
sift search "product launch" --include-domain openai.com --topic news --time-range month --json
|
||||
```
|
||||
|
||||
**Recipe:** after `sift search --json`, do not `sift fetch` every URL. Drop hits below a
|
||||
Tavily score you care about (`--min-score`, Tavily's 0–1 scale) or take top N, then
|
||||
`sift batch submit`. `web_search` is only the fallback when sift is unreachable, and it
|
||||
still hits `/v2/search` with no filters.
|
||||
|
||||
## Batch
|
||||
|
||||
When you will read the content of several URLs later (a shortlist to compare), submit them once
|
||||
|
||||
Reference in New Issue
Block a user