Skip to content

Instantly share code, notes, and snippets.

@kenming
Last active June 14, 2026 09:00
Show Gist options
  • Select an option

  • Save kenming/8a473b2c35b9fca4bd7e7ad35fe0312d to your computer and use it in GitHub Desktop.

Select an option

Save kenming/8a473b2c35b9fca4bd7e7ad35fe0312d to your computer and use it in GitHub Desktop.
KataGo v1.16.5 GTP Config 範本(2026/06 最新版,繁體中文註解)
# KataGo C++ GTP 引擎配置檔
# 對應版本:KataGo v1.16.x / v1.16.5
# 用途:Lizzie / Lizzieyzy Next / 一般 GTP 分析與對弈
# 說明:本檔以官方 gtp_example.cfg 為基礎,加入繁體中文註解與常用預設值。
# 執行範例:katago.exe gtp -model <模型檔> -config katago_gtp_v1.16.5_zh-TW.cfg
# ===========================================================================
# 使用前注意
# ===========================================================================
# 1. 若使用 TensorRT / CUDA / OpenCL / Metal 版本,請確認執行檔與驅動環境相容。
# 2. numSearchThreads 建議使用 katago benchmark 測得後再調整。
# 3. 若只是搭配 Lizzie / Lizzieyzy Next 分析,通常只需修改 maxVisits、ponderingEnabled、numSearchThreads。
# 4. 以下以註解形式列出的參數,多數為 KataGo 內建預設值;需要時再取消註解。
# ===========================================================================
# 日誌與檔案
# ===========================================================================
# 每次執行 KataGo 時,將日誌寫入此目錄。
logDir = gtp_logs
# 若希望依日期建立日誌子目錄,可改用下列設定。
# logDirDated = gtp_logs
# 若希望所有日誌寫入單一檔案,可改用下列設定。
# logFile = gtp.log
# 記錄完整 GTP 通訊內容,方便除錯 GUI 與 KataGo 溝通問題。
logAllGTPCommunication = true
# 記錄搜尋資訊。
logSearchInfo = true
# 僅記錄實際選點的搜尋資訊。
logSearchInfoForChosenMove = false
# 是否將日誌輸出至 stderr。
logToStderr = false
# KataGo 啟動時會向 stderr 輸出部分訊息;若需安靜啟動可改為 false。
# startupPrintMessageToStderr = true
# 將資訊寫入 stderr,常用於 OGS 等伺服器聊天或監控用途。
# ogsChatToStderr = false
# 指定 OpenCL 調校檔與其他快取資料位置。
# Windows 預設在目前目錄子目錄;Linux 預設在 ~/.katago。
# homeDataDir = PATH_TO_DIRECTORY
# ===========================================================================
# 分析設定
# ===========================================================================
# 分析指令中,每條變化圖顯示的後續手數上限。
# analysisPVLen = 15
# 勝率回報視角:BLACK、WHITE 或 SIDETOMOVE。
# 多數 GUI 與分析工具建議使用 SIDETOMOVE。
# reportAnalysisWinratesAs = SIDETOMOVE
# 分析時增加根節點探索噪聲,使 KataGo 顯示更多候選手。
# 數值越大,越會分配搜尋量給非主流選點;只影響分析,不影響對弈。
# analysisWideRootNoise = 0.04
# 分析時忽略根節點前的歷史手順,降低錯誤棋譜歷史對目前局面的影響。
# analysisIgnorePreRootHistory = true
# ===========================================================================
# 規則
# ===========================================================================
# 規則可在 GTP 運行中透過自訂指令修改。
# 規則說明:https://lightvector.github.io/KataGo/rules.html
# GTP 擴充指令:https://github.com/lightvector/KataGo/blob/master/docs/GTP_Extensions.md
# 常見合法值:
# chinese, japanese, korean, aga, chinese-ogs, new-zealand, stone-scoring,
# ancient-territory, bga, aga-button
# 注意:日韓規則在少數複雜死活/終局爭議局面,未必能完全等同人工裁判。
rules = tromp-taylor
# 若不使用 rules,也可分別指定以下規則組合。
# koRule = SIMPLE # 簡單劫爭規則,三劫循環可為無勝負。
# koRule = POSITIONAL # 位置超級劫。
# koRule = SITUATIONAL # 情境超級劫。
# scoringRule = AREA # 數子法。
# scoringRule = TERRITORY # 數目法。
# taxRule = NONE # 所有被圍空點計分。
# taxRule = SEKI # 雙活中的眼不計分。
# taxRule = ALL # 所有棋塊扣除成活兩眼所需點數。
# 是否允許多子自殺;單子自殺永遠非法。
# multiStoneSuicideLegal = false
# multiStoneSuicideLegal = true
# 按鈕制:數子法中第一手 PASS 獎勵 0.5 目且不直接結束對局。
# hasButton = false
# hasButton = true
# 人類規則下是否允許未清理死子前 PASS。
# friendlyPassOk = false
# friendlyPassOk = true
# 讓子局貼目補償方式。
# whiteHandicapBonus = 0 # 白方無補償,常見於 Tromp-Taylor、新西蘭、日本規則。
# whiteHandicapBonus = N-1 # 白方獲 N-1 目補償,常見於 AGA。
# whiteHandicapBonus = N # 白方獲 N 目補償,常見於中國規則。
# 若 GTP 未指定棋盤大小,可指定預設棋盤大小。
# defaultBoardSize = 19
# 強制固定貼目;若啟用,會忽略 GTP 控制器傳入的 komi。
# ignoreGTPAndForceKomi = 7
# ===========================================================================
# 機器人行為
# ===========================================================================
# ------------------------------
# 投子
# ------------------------------
# 是否允許投子。
allowResignation = true
# 投子門檻。-0.90 約表示勝率極低時才投子。
resignThreshold = -0.90
# 連續幾回合低於投子門檻後才投子。
resignConsecTurns = 3
# 若目差仍小於指定值,即使勝率很低也不投子。
# resignMinScoreDifference = 10
# 依棋盤面積限制過早投子。例如 0.25 表示 19 路約 90 手後才允許投子。
# resignMinMovesPerBoardArea = 0.00
# ------------------------------
# 讓子
# ------------------------------
# 若黑方開局連下多手,視為讓子局。
# assumeMultipleStartingBlackMovesAreHandicap = true
# 讓子或貼目不利時,動態提高策略搜索強度。
# 不影響 Lizzie 類分析用途。
# dynamicPlayoutDoublingAdvantageCapPerOppLead = 0.045
# 固定策略強弱,範圍約 -3.0 至 3.0。
# 此設定會影響分析工具,通常不建議啟用。
# playoutDoublingAdvantage = 0.0
# playoutDoublingAdvantagePla = BLACK
# playoutDoublingAdvantagePla = WHITE
# ------------------------------
# PASS 與終局
# ------------------------------
# 較保守地處理 PASS,不假設 PASS 一定直接結束對局。
# conservativePass = true
# 數目法下禁止進入特殊清理階段,主要用於嚴格規則測試。
# preventCleanupPhase = true
# ------------------------------
# 其他行為
# ------------------------------
# 對稱局面下僅搜尋等效選點之一。
# rootSymmetryPruning = true
# 避免特定錯誤定式;主要用於對抗特定 AI。
# avoidMYTDaggerHack = false
# 避免棋盤各角重複相同定式。
# avoidRepeatedPatternUtility = 0.0
# 對抗鏡像棋;GTP 對弈預設可能啟用,分析時通常停用。
# antiMirror = true
# 修復 PASS 導致搜尋異常的罕見情況。
# enablePassingHacks = true
# 避免歷史手順中的潛在錯誤影響目前選點。
# ignorePreRootHistory = false
# ===========================================================================
# 實驗性評估快取
# ===========================================================================
# v1.16.4 起新增。預設不啟用。
# 啟用後,KataGo 可能重用先前深入分析過的局面評估。
# 對互動式覆盤可能有幫助,但仍屬實驗性功能。
# useEvalCache = false
# evalCacheMinVisits = 100
# ===========================================================================
# 搜尋限制
# ===========================================================================
# Playouts:本回合新增的搜尋量。
# Visits:包含先前回合仍可沿用的搜尋量。
# Time:時間,單位為秒。
# 每手最大 visits。搭配 Lizzie 分析時,500 是較輕量的預設值。
maxVisits = 500
# 每手最大 playouts。
# maxPlayouts = 300
# 每手最大搜尋時間。
# maxTime = 10.0
# 是否在對手回合長考。一般 GUI 分析可關閉,避免背景持續耗用 GPU。
ponderingEnabled = false
# 長考時最大 visits。
# maxVisitsPondering = 5000
# 長考時最大 playouts。
# maxPlayoutsPondering = 3000
# 長考時最大時間。
maxTimePondering = 60.0
# GTP 時間控制緩衝秒數,避免網路或 GUI 延遲導致超時。
lagBuffer = 1.0
# 搜尋執行緒數。此值非常依硬體而定,建議用 katago benchmark 測試。
# RTX 3080 可從 6、8、10、12 等值測試,不必固定套用。
numSearchThreads = 6
# 對手 PASS 後降低搜尋量,使收官或終局處理較快。
searchFactorAfterOnePass = 0.50
searchFactorAfterTwoPass = 0.25
# 大幅領先時降低搜尋量,使對局更快結束。
searchFactorWhenWinning = 0.40
searchFactorWhenWinningThreshold = 0.95
# ===========================================================================
# GPU / 神經網路設定
# ===========================================================================
# 單次送入 GPU 的最大批次大小。
# 若多 GPU 或記憶體不足,可視情況調整。
# nnMaxBatchSize = <整數>
# 神經網路快取大小。實際條目數為 2^nnCacheSizePowerOfTwo。
# 每條約 1.5KB;若啟用完整盤面視覺化,可能約 3KB。
# nnCacheSizePowerOfTwo = 20
# 神經網路快取互斥鎖池大小。實際數量為 2^nnMutexPoolSizePowerOfTwo。
# nnMutexPoolSizePowerOfTwo = 16
# 是否隨機旋轉/翻轉盤面輸入,提高多樣性。
# nnRandomize = true
# 固定神經網路隨機種子。
# nnRandSeed = abcdefg
# 強制使用最大棋盤尺寸的 NN buffer,適合多棋局並行或頻繁變更棋盤大小。
# gtpForceMaxNNSize = false
# ------------------------------
# 多 GPU / 多 NN Server 設定
# ------------------------------
# 使用多個 NN Server 執行緒。多 GPU 或 Metal GPU+ANE 混合時才需要調整。
# numNNServerThreadsPerModel = 1
# ------------------------------
# TensorRT GPU 設定
# ------------------------------
# 僅適用於 TensorRT 版本。
# 請確認 KataGo TensorRT 執行檔、CUDA、TensorRT 版本相容。
# 單 GPU:若不是使用預設第 0 張卡,可取消註解指定。
# trtDeviceToUse = 0
# 多 GPU 範例,需要搭配 numNNServerThreadsPerModel。
# trtDeviceToUseThread0 = 0
# trtDeviceToUseThread1 = 1
# ------------------------------
# CUDA GPU 設定
# ------------------------------
# 僅適用於 CUDA 版本。
# 單 GPU:若不是使用預設第 0 張卡,可取消註解指定。
# cudaDeviceToUse = 0
# 多 GPU 範例,需要搭配 numNNServerThreadsPerModel。
# cudaDeviceToUseThread0 = 0
# cudaDeviceToUseThread1 = 1
# FP16 與 NHWC 預設自動偵測。除非測試確認需要,通常維持 auto。
# cudaUseFP16 = auto
# cudaUseNHWC = auto
# ------------------------------
# Metal GPU 設定
# ------------------------------
# 僅適用於 macOS Metal 版本。
# Windows / NVIDIA 使用者通常不需要修改此區塊。
# v1.16.x 起,Metal backend 支援以 thread 指定 GPU / ANE。
# 0 = GPU only
# 100 = ANE only
# 單 Metal 裝置。
# metalDeviceToUse = 0
# GPU-only 範例。
# numNNServerThreadsPerModel = 1
# metalDeviceToUseThread0 = 0
# GPU + ANE 混合範例。
# numNNServerThreadsPerModel = 4
# metalDeviceToUseThread0 = 0
# metalDeviceToUseThread1 = 0
# metalDeviceToUseThread2 = 100
# metalDeviceToUseThread3 = 100
# Metal FP16。
# metalUseFP16 = true
# ------------------------------
# OpenCL GPU 設定
# ------------------------------
# 僅適用於 OpenCL 版本。
# 針對不同棋盤尺寸重新調校 OpenCL。
# openclReTunePerBoardSize = false
# 單 GPU:若 KataGo 選錯 OpenCL 裝置,可取消註解指定。
# 注意:目前常用參數名稱為 openclDeviceToUse。
# openclDeviceToUse = 0
# 多 GPU 範例,需要先查看啟動日誌確認裝置 ID。
# openclDeviceToUseThread0 = X
# openclDeviceToUseThread1 = Y
# FP16 預設自動偵測。
# openclUseFP16 = auto
# ------------------------------
# Eigen CPU 設定
# ------------------------------
# 僅適用於純 CPU / Eigen 版本。
# 神經網路評估使用的 CPU 執行緒數;預設通常同 numSearchThreads。
# numEigenThreadsPerModel = X
# ===========================================================================
# 根節點選點與偏差
# ===========================================================================
# 固定搜尋隨機種子。
# searchRandSeed = hijklmn
# 佈局階段選點隨機性溫度。
# chosenMoveTemperatureEarly = 0.5
# 佈局階段溫度衰減週期;手數會依棋盤大小縮放。
# chosenMoveTemperatureHalflife = 19
# 一般選點溫度。
# chosenMoveTemperature = 0.10
# 選點前扣除的 visits 數,降低低概率選點權重。
# chosenMoveSubtract = 0
# 修剪低於此閾值的選點。
# chosenMovePrune = 1
# 根節點要採樣的對稱數。
# rootNumSymmetriesToSample = 1
# 是否使用 LCB,也就是最低置信邊界選點。
# useLcbForSelection = true
# LCB 所需標準差倍數。
# lcbStdevs = 5.0
# 候選手 visits 達到最佳手此比例後才啟用 LCB。
# minVisitPropForLCB = 0.15
# ===========================================================================
# 內部參數
# ===========================================================================
# 一般使用者不建議修改。以下保留作為進階調校參考。
# 勝負效用縮放因子。
# winLossUtilityFactor = 1.0
# 目差效用縮放因子。
# staticScoreUtilityFactor = 0.10
# dynamicScoreUtilityFactor = 0.30
# 動態目差中心向零調整。
# dynamicScoreCenterZeroWeight = 0.20
# dynamicScoreCenterScale = 0.75
# 無勝負對白方的效用。
# noResultUtilityForWhite = 0.0
# 和局對白方的等效勝局數。
# drawEquivalentWinsForWhite = 0.5
# MCTS 探索常數。
# cpuctExploration = 1.0
# cpuctExplorationLog = 0.45
# 波動局面與穩定局面的探索參數。
# cpuctUtilityStdevPrior = 0.40
# cpuctUtilityStdevPriorWeight = 2.0
# cpuctUtilityStdevScale = 0.85
# MCTS FPU 削減常數。
# fpuReductionMax = 0.2
# rootFpuReductionMax = 0.1
# fpuParentWeightByVisitedPolicy = true
# 基於網路不確定性的評估加權。
# useUncertainty = true
# uncertaintyExponent = 1.0
# uncertaintyCoeff = 0.25
# 樂觀策略探索。
# rootPolicyOptimism = 0.2
# policyOptimism = 1.0
# 劣勢選點削減指數。
# valueWeightExponent = 0.25
# 終局人性化獎勵,例如避免填子浪費時間。
# rootEndingBonusPoints = 0.5
# 修剪無意義拖延手。
# rootPruneUselessMoves = true
# v1.16.x 官方範例新增/保留的進階內部參數。
# 基於局部棋形 pattern key 的子樹價值偏差修正。
# subtreeValueBiasFactor = 0.45
# subtreeValueBiasWeightExponent = 0.85
# 使用圖搜索,共享轉置局面搜尋結果。
# useGraphSearch = true
# 搜尋節點表同步分片數。
# nodeTableShardsPowerOfTwo = 16
# 每個搜尋執行緒下降節點時加入的 virtual loss 數量。
# numVirtualLossesPerThread = 1
# 高多執行緒搜尋下改善評估品質的噪聲剪枝。
# useNoisePruning = true
# ===========================================================================
# Automatic avoid patterns
# ===========================================================================
# 進階功能:讓 KataGo 自動記錄自己過去下過的手,
# 並在後續對局中降低重複下法傾向。
# 一般 Lizzie / Lizzieyzy Next 分析不需要啟用。
# autoAvoidRepeatDir = PATH_TO_NEW_DIRECTORY
# autoAvoidRepeatUtility = 0.004
# autoAvoidRepeatLambda = 0.9995
# autoAvoidRepeatMaxPoses = 10000
# autoAvoidRepeatMinTurnNumber = 0
# autoAvoidRepeatMaxTurnNumber = 50
# autoAvoidRepeatSaveChunkSize = 200
# ===========================================================================
# Avoid SGF patterns
# ===========================================================================
# 進階功能:載入 SGF 檔案,使 KataGo 避免或偏好特定棋譜模式。
# 一般覆盤與 GUI 分析不需要啟用。
# avoidSgfPatternDirs = path/to/directory/with/sgfs/
# avoidSgfPatternUtility = 0.001
# avoidSgfPatternMaxFiles = 20
# avoidSgfPatternLambda = 0.90
# avoidSgfPatternAllowedNames = my-ogs-bot-name1,my-ogs-bot-name2
# avoidSgfPatternMinTurnNumber = 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment