Chroma Context-1: Training a Self-Editing Search Agent·|·Chroma
Chroma Context-1 在做的不是一般 RAG 再加 reranker
而是一個專門負責 多步搜尋(agentic search) 的 20B 模型
⇒ retrieval subagent:不直接回答問題,只負責把最相關的文件找出來,再交給下游生成模型回答
關鍵重點
- 訓練策略:先廣搜再精煉
- 推論策略:搜尋途中動態清理 context
- 資料策略:用合成任務管線擴大高品質訓練資料
1. 分階段訓練:
先 Recall,再 Precision
- 先訓練模型 盡量不要漏掉可能有用的資訊,也就是先偏向廣搜;
- 後面再訓練它 從這些候選中逐步縮小範圍,只留下真正重要的內容
模型會把大問題拆成多個 subquery,逐輪搜尋
先 recall、後 precision 的 staged curriculum
也就是先學會廣搜不要漏(可能會抓到噪音,但是漏掉關鍵文件更糟糕)再慢慢學會縮小、保留真正重要的文件
2. Context management:
搜尋過程中自己清理上下文
這個方法的重點不只是「找到更多文件」,而是 動態管理 context
Agent 會在搜尋途中持續淘汰不重要的段落,而不是無限制累積資訊,藉此避免:
- context window 被無關內容塞滿
- 多輪搜尋後資訊越來越雜亂
- 舊資訊干擾後續判斷
這類現象就是文中提到的 context rot
希望展現的是模型對於管理證據與控制 context 品質的能力
3. 可擴展的 synthetic task generation pipeline
訓練上不是只靠人工資料,而是建立了一套 合成任務資料產生流程,用 LLM 來產生任務、評估品質,減少大量人工標註的需求,同時維持資料品質。
意思是:
- 不用完全靠人工做訓練資料
- 可以大量擴充訓練任務
- 研究者也比較容易重現結果
訓練中最麻煩的問題之一:高品質多步搜尋資料很難人工大量標註
涵蓋 web、finance、legal、email 等場景
Agent Harness
不要讓同一個模型同時負責檢索與生成,改成用 subagent 拆工,效果可能更好
1. Context-1 不是最終回答模型,
而是 search subagent
Context-1 的工作不是直接回答使用者問題,而是替下游的 frontier reasoning model 找到支撐文件。
它負責的是:
- 搜尋
- 找證據
- 整理可用文件
真正最後做綜合推理、生成答案的,還是另一個更強的 downstream model
所以它本質上是 retrieval specialist,不是 general-purpose answer model
2. 透過 tool calls 跟底層搜尋系統互動
Context-1 並不是直接「知道所有資料」
而是透過一層 search infrastructure 來查資料
它和底層系統互動的方式是:
- model 發出一個結構化的 tool call
- harness 代替它去執行這個 call
- 再把結果回傳給 model
模型不是直接操作資料庫,而是透過一個受控的工具介面進行搜尋
3. 整個流程是
observe → reason → act loop
核心執行模式是一個循環:
(1) Observe
先看到目前狀態,包含先前搜尋結果或新回傳的 observation。
(2) Reason
模型根據目前拿到的資訊判斷:
- 下一步要查什麼
- 要不要換 query
- 還是已經可以停止
(3) Act
模型輸出一個 tool call,或者直接給 final answer接著 harness 會真的去執行工具呼叫,再把新結果加回 trajectory,進入下一輪。
所以整體就是:
看結果 → 想下一步 → 執行搜尋 → 再看新結果
observe → infer → act 的 state machine;
搜尋時會同時做 sparse + dense retrieval,再用 RRF 融合,之後 reranker 選出符合 token budget 的結果
隨便紀錄,參考各個電子報,我只寫我在意的部分,文筆請 ChatGPT 潤飾

















