跳到內容

模型

bot 用 Pi 連得到的模型來執行 agent。 你在 roundtable.config.ts 裡選擇它們:

export default {
// ...
model: env("MODEL"),
thinking: "medium",
judge: { model: "anthropic/claude-haiku-4-5", threshold: 0.6 },
delegation: { model: "anthropic/claude-haiku-4-5", thinking: "medium" },
agentDir: "./data/pi",
} satisfies RoundtableConfig;

只有 model 是必填。

每個模型設定都寫成 <provider>/<id>,例如 anthropic/claude-sonnet-5-5。 第一個斜線前面是 provider,後面是模型 id。 寫成別的格式,啟動會停下來,並指出是哪個鍵:

config model: expected <provider>/<id>, got "<value>". Write it like anthropic/claude-sonnet-5-5.

judge.model 和 delegation.model 用同樣的檢查,訊息裡是它們自己的名稱。

model 是 agent 的模型。 agent 沒有自己的模型時,就沿用它。

thinking 是 off、minimal、low、medium、high、xhigh 其中之一,預設是 medium。 它是後備值,不是固定的等級。 預設情況下,agent 的 thinking 設定是 auto:每一輪開始前,judge 讀你的訊息,從 low、medium、high、xhigh 挑一個;它不確定時,就沿用上一輪的等級。 thinking 則是 judge 無法判斷的第一輪所用的等級。

judge 是一個小模型,替 bot 回答簡短的問題:

  • 一輪需要多少 thinking,
  • 你對被擱置動作的回覆,是不是同意放行,以及
  • 群組裡哪些成員該回答這則訊息。
鍵 預設值 作用
judge.model model 的值 回答這些問題的模型。
judge.threshold 0.6 0 到 1 的數字。判斷 thinking level 或是否放行時,judge 要多有把握,答案才會被採用。

這裡用比較便宜的模型就夠了。 judge 的模型無法使用時,judge 會失敗,訊息是 the judge's model <provider>/<id> is not available; log in to its provider or change judge.model。

agent 能用 delegate_task 把研究交給背景 worker。 worker 是一個全新的 session,只能搜尋和閱讀網頁,它的報告會回到 agent 的頻道。

鍵 預設值 作用
delegation.model model 的值 worker 執行時使用的模型。
delegation.thinking medium worker 的 thinking level。

worker 會載入 pi-web-access,它是 pi-roundtable 的 peer dependency。

每個 agent 各自的模型與 thinking level

Section titled “每個 agent 各自的模型與 thinking level”

只有你設定了,agent 才會有自己的模型和 thinking level。 請協調者去改,它會用 agent_update:

讓 Researcher 改用 openai-codex/gpt-6-sol,thinking 設成 high。

agent_update 的模型寫成 <provider>/<model>,或用 default 讓它再次跟著助理。 bot 跑不起來的模型會被拒絕,回應裡附上可用的清單。 thinking 接受六個等級之一,或 default;default 就是 auto,由 judge 決定。 固定了等級的 agent,不會再經過 judge。 修改從 agent 的下一輪開始生效,它的對話不受影響。

見建立 agent。

bot 需要 model 那個 provider 的登入。 roundtable doctor 會檢查有沒有,下面兩種都接受:

  • provider 的 API key 放在 .env,例如 anthropic 用 ANTHROPIC_API_KEY,openai 用 OPENAI_API_KEY。
  • 用 Pi 做過的登入,存在 agent 目錄裡的 auth.json。

兩種都沒有,檢查就會失敗:

✗ model login: no login for anthropic, the provider of anthropic/claude-sonnet-5-5.
Set the provider's API key in .env (ANTHROPIC_API_KEY for anthropic, OPENAI_API_KEY for openai), or sign in with Pi so ./data/pi/auth.json holds it.

通過時,它會說明登入的來源,例如 anthropic login from <source>。 doctor 只讀取登入,不會建立 agent 目錄或 auth.json。

agentDir 是 Pi 的 agent 目錄,模型登入就放在這裡。 預設是 <dataDir>/pi。 bot 啟動時,會替它載入的 Pi 套件,把 PI_CODING_AGENT_DIR 設成這個目錄。 你用 Pi 登入的話,要確認登入落在這個目錄;或是把 agentDir 指向已經存著登入的目錄。