更新retrieval-policy.md
This commit is contained in:
parent
84844933b9
commit
12e6b4b3c4
@ -32,25 +32,33 @@ For knowledge retrieval tasks, **this policy overrides generic codebase explorat
|
||||
|
||||
## 4. Retrieval Breadth (`top_k`)
|
||||
|
||||
- Apply `top_k` only to `rag_retrieve`. Use the smallest sufficient value, then expand only if coverage is insufficient.
|
||||
- Use `30` for simple fact lookup.
|
||||
- Use `50` for moderate synthesis, comparison, summarization, or disambiguation.
|
||||
- Apply `top_k` only to `rag_retrieve`. Choose the appropriate value upfront to maximize first-call success.
|
||||
- Use `50` for simple fact lookup or moderate synthesis, comparison, summarization, disambiguation.
|
||||
- Use `100` for broad recall, such as comprehensive analysis, scattered knowledge, multiple entities or periods, or list / catalog / timeline / roster / overview requests.
|
||||
- Raise `top_k` when keyword branches are many or results are too few, repetitive, incomplete, sparse, or too narrow.
|
||||
- Use this expansion order: `30 → 50 → 100`. If unsure, use `100`.
|
||||
- If unsure, use `50`. Only escalate to `100` on the retry call if first results are insufficient.
|
||||
|
||||
## 5. Result Evaluation
|
||||
|
||||
Treat as insufficient if: empty, `Error:`, off-topic, missing core entity/scope, no usable evidence, partial coverage, or truncated results.
|
||||
**Maximum 3 retrieval calls per question.** After each call, evaluate immediately:
|
||||
|
||||
### Sufficient — answer now
|
||||
- The core entity/topic in the user's question has been hit.
|
||||
- There is direct evidence supporting the main intent of the question.
|
||||
- Partial but usable coverage is sufficient — you do NOT need exhaustive or perfect coverage to answer.
|
||||
- **When results are sufficient, compose the answer immediately. Do NOT call `rag_retrieve` again to "double-check" or "get more context".**
|
||||
|
||||
### Insufficient — retry once
|
||||
- Empty, `Error:`, off-topic, missing core entity/scope, no usable evidence at all.
|
||||
|
||||
## 6. Fallback and Sequential Retry
|
||||
|
||||
On insufficient results, follow this sequence:
|
||||
On insufficient results, you may retry **up to 2 more times** (3 calls total):
|
||||
|
||||
1. Rewrite query, retry `rag_retrieve` (once)
|
||||
2. Expand `top_k`: `30 → 50 → 100`
|
||||
3. Say "no relevant information was found" **only after** exhausting all retries.
|
||||
1. 1st retry: rewrite the query (different keywords, synonyms, broader scope), retry `rag_retrieve` with `top_k: 100`.
|
||||
2. 2nd retry: further rewrite or broaden the query.
|
||||
3. If still insufficient, say "no relevant information was found".
|
||||
- Do NOT switch to local filesystem inspection at any point.
|
||||
- Do NOT call `rag_retrieve` more than 3 times.
|
||||
|
||||
## 7. Image Handling
|
||||
|
||||
@ -78,7 +86,8 @@ This section applies only when self-knowledge is enabled.
|
||||
|
||||
Before replying to a knowledge retrieval task, verify:
|
||||
- Used only `rag_retrieve` — no local filesystem inspection?
|
||||
- Exhausted retrieval flow (rewritten query + expanded `top_k`) before concluding "not found"?
|
||||
- Called `rag_retrieve` at most 3 times (not more)?
|
||||
- Answered immediately when results were sufficient (did NOT call again unnecessarily)?
|
||||
- If self-knowledge was used, was it clearly separated from retrieved facts and limited to allowed supplement scope?
|
||||
|
||||
If any answer is "no", correct the process first.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user