# 策展 · X (Twitter) 🔥

> 作者：Viv (@Vtrivedy10) · 平台：X (Twitter) · 日期：2026-04-30

> 原始來源：https://x.com/Vtrivedy10/status/2049535740233523600

## 中文摘要

# 針對不同模型調整 Deep Agents 以達到最佳效能

**TL;DR：** Deep Agents 過去的設計方式較為通用，旨在跨模型系列運作。今天，我們新增了「模型專屬設定檔 (model-specific profiles)」，用於調整 Prompt、工具與 middleware。這讓我們能更精確地符合各模型系列的 Prompt 指引。我們開箱即用地提供了 OpenAI、Anthropic 與 Google 模型的設定檔，經測試發現，在 tau2-bench 的部分子集上，這比預設的 harness 效能提升了 10–20 個百分點。

在今天之前，Deep Agents 隨附一套單一的 Prompt、工具與 middleware，目標是讓所有大型語言模型都能順暢運作。開發者可以替換不同的模型，或是透過擴充功能將額外的工具加入系統 Prompt 中。然而，基礎的 Prompt、工具與 middleware 是固定的，並未針對個別模型進行最佳化。

從今天起，我們很高興推出「harness 設定檔」，作為一種針對個別模型控制這些參數的方法。這點至關重要，原因如下：

- **Prompt 指引因模型而異。** OpenAI 的 Codex Prompt 指引規定了特定的工具實作與命名（如 `apply_patch`、`shell_command`），這些對 Codex 模型有顯著影響。Anthropic 的 Claude Prompt 指引則強調另一套慣例。即使在同一個系列中，Opus 4.6 → 4.7 的遷移指南也標註了值得進行的 Prompt 層級變更。

- **評測排行榜顯示，同一個模型在不同的 harness 下，效能可能會有巨大差異。** Terminal-Bench 2.0 是目前最公開透明的例子。Claude Code 的 harness 在 Opus 4.6 的提交中排名墊底。我們在先前的研究中也觀察到類似的 harness 工程效應：透過 harness 工程改進 Deep Agents。我們僅透過應用 Prompt 與 middleware 掛鉤 (hooks) 等 harness 層級的變更，就將 `gpt-5.2-codex` 在 Terminal-Bench 2.0 的表現從 52.8% 提升至 66.5%（在發布當時從前 30 名提升至前 5 名）。

單一的 harness 無法對每個模型都達到最佳化。因此，我們簡化了支援針對不同模型調整 harness 的流程。

這到底有多重要？

## 測量設定檔影響的結果

為了評估其重要性，我們測量了 tau2-bench（多輪工具使用 + 指令遵循）子集的效能。我們使用了一組經過篩選、更困難的任務子集，這些任務尚未被前沿模型完全攻克，因此我們可以更精確地測量 harness 層級的變更對 Agent 的影響。

![](https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1777514639694-iaHHFnrLbaMAAhizJjpg.jpg)

## 針對個別模型的變更內容

我們將 Codex 與 Claude 的 Prompt 指引作為我們針對每個設定檔所應用變更的依據。

針對 Codex，主要變更包括：

- **工具變更：** 將 Deep Agents 中預設的 `file_edit` 實作替換為建議的 `apply_patch` 工具，並將 Deep Agents 中的 `execute` 工具名稱別名為 `shell_command`。

- **Prompt 變更：** 主要圍繞在工具呼叫與規劃，並使用了 Prompt 指引中的細節。

> 在進行任何工具呼叫之前，請決定你需要的所有檔案與資源。將讀取、搜尋與其他獨立操作批次處理為平行工具呼叫，而不是一次執行一個。

針對 Opus，主要的變更皆集中在工具使用與規劃的 Prompt 上。例如，以下是加入 Prompt 中的兩個片段：

> <tool_result_reflection>
在收到工具結果後，請仔細反思其品質，並在繼續下一步之前確定最佳的後續步驟。利用你的思考能力，根據這些新資訊進行規劃與迭代，然後採取最佳的下一步行動。
</tool_result_reflection>

> <tool_usage>
當任務依賴於檔案、測試或系統輸出的狀態時，請使用工具直接觀察該狀態，而不是憑記憶推論其內容。在描述檔案之前先讀取它們。在宣稱測試通過之前先執行測試。在斷言某個符號是否存在之前，先搜尋程式庫。主動使用工具進行調查是預設的工作模式，而不是備用方案。
</tool_usage>

我們的結論是，提供一個用於自訂個別模型 harness 的介面，對於開發者來說是一個非常有用的基礎功能，能讓他們管理每個 Agent 的設定檔、進行版本控制，並輕鬆測試不同配置間的差異。

## 立即嘗試

若要立即使用，只需開始使用 Deep Agents：`uv add deepagents`

```python
agent = create_deep_agent(
    model="google_genai:gemini-3.1-pro-preview",
    tools=[internet_search],
    system_prompt=research_instructions,
)
```

設定檔將會自動套用於支援的模型。如果你想深入了解目前每個預設設定檔的細節，可以在儲存庫中檢查程式碼。若要了解如何註冊自己的設定檔，請繼續閱讀。

## 設定檔的運作原理

harness 設定檔是一個宣告式的覆蓋層 (override layer)，用於處理 harness 中會隨模型變動的部分：系統 Prompt 前綴/後綴、工具包含與命名、middleware 選擇、子 Agent 配置以及技能。你可以為模型或供應商註冊一個設定檔（或是從 YAML 載入現有的設定檔），當你切換模型時，`create_deep_agent` 就會自動適應。重要的是，你的呼叫端程式碼完全不需要更動。

我們隨附了 OpenAI、Anthropic 與 Google 模型的預設設定檔。你可以覆蓋它們、在之上疊加自己的設定，或是將設定檔作為 plugin 發布。

```python
from deepagents import (
    HarnessProfile,
    register_harness_profile,
)

register_harness_profile(
    "openai:gpt-5.4",
    HarnessProfile(
        system_prompt_suffix="Respond in under 100 words.",
        excluded_tools={"execute"},
        excluded_middleware={"SummarizationMiddleware"},
    ),
)
```

```yaml
# openai.yaml
base_system_prompt: You are helpful.
system_prompt_suffix: Respond briefly.
excluded_tools:
  - execute
  - grep
excluded_middleware:
  - SummarizationMiddleware
  - my_pkg.middleware:TelemetryMiddleware
general_purpose_subagent:
  enabled: false
```

如需更多自訂細節，請閱讀「設定檔 (Profiles)」文件，了解完整的欄位表面、合併語意與 plugin 打包方式。你可以在啟動時為你使用的模型註冊設定檔，或是直接依賴我們內建的設定檔。

如果你正在使用 Deep Agents 進行開發並希望分享設定檔，歡迎提交 PR 或透過 entry points 將其作為 plugin 發布。我們將持續擴展跨模型的設定檔功能。我們的目標是：無論你選擇哪種模型，Deep Agents 都能為你提供工具與預設值，讓你為任務打造出最佳的 harness。我們將會分享更多資訊與教學，展示開發者如何為他們的任務自訂 Agent harness。

感謝 @masondrxy、@hwchase17 與 @chester_curme 的審閱、共同撰寫，以及推動本次發布的協助！點擊此處前往 LangChain 部落格的版本。

## 標籤

Agent, 功能更新, Benchmark, Deep Agents
