Context-1
Chroma Context-1: Training a Self-Editing Search Agent·|·Chroma
Chroma Context-1 在做的不是一般 RAG 再加 reranker
而是一個專門負責 多步搜尋(agentic search) 的 20B 模型
⇒ retrieval subagent:不直接回答問題,只負責把最相關的文件找出來,再交給下游生成模型回答
- 先查一次
- 看結果
- 改寫下一步 query
- 決定哪些文件值得保留
- 哪些 chunk 該丟掉
- 一路收斂到最有用的 supporting documents
關鍵重點
- 訓練策略:先廣搜再精煉
- 推論策略:搜尋途中動態清理 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 → reason → act loop
看結果 → 想下一步 → 執行搜尋 → 再看新結果
- observe:看目前問題和前面搜尋結果
- reason:判斷下一步該查什麼
- act:呼叫工具搜尋、讀文件或刪 context
observe → infer → act 的 state machine;
搜尋時會同時做 sparse + dense retrieval,再用 RRF 融合,之後 reranker 選出符合 token budget 的結果
把 context management 直接納入 search policy
它不只是會找,還會 主動管理 context
工具
四個工具:
search_corpus(query)
做 hybrid retrieval:BM25 + dense search,再用 RRF 融合、rerank 排序grep_corpus(pattern)
做 regex / pattern search,補精確匹配read_document(doc_id)
深讀某份重要文件prune_chunks(chunk_ids)
把不重要的 chunks 從 context 移除
訓練方法
它的訓練重點有三個:
a. staged curriculum
先學 recall,再學 precision
也就是:
- 前期先學會不要漏找
- 後期再學會只留下真正重要的內容
b. synthetic task generation
自己生成多步搜尋題目,訓練兩個核心能力:
- planning:把問題拆成搜尋步驟
- evaluation:從雜訊中判斷哪些資訊重要
c. extraction-based verification
不是只靠 LLM 主觀判 relevance,
而是抽出文件證據與 clue 對應片段來驗證資料品質,減少 label noise。