跳到內容
Crystal CodeDocs
繁繁體中文

首次執行

從代理應當編輯的工作區開始。除非設定了 --workspace,否則目前目錄就是工作區。

終端機視窗
dotnet run --project CrystalCode -- --provider deepseek --model deepseek-flash

CLI 選項:

選項 含義
-p, --provider <name> 提供商名稱(deepseek、openai、gemini、ollama,或你加入 providers.json 的名稱)
-m, --model <id> 該提供商下列出的模型 id
-w, --workspace <path> 工作區根目錄(預設:目前目錄)
--home <path> 資料目錄(預設:CRYSTAL_HOME,然後是 ~/.crystal)
-r, --resume [id] 選擇一個已儲存的工作階段。省略值則列出此工作區。id 會載入該檔案並留在此處。目錄會列出該工作區並進入它。all 列出每個工作區,並進入所選工作階段的目錄
--approval <mode> 此行程使用 default、edit、review、audit 或 full
--approval-model <on|off> 使用已儲存的核准模型,或為此行程關閉它
--approval-provider <provider> 此行程的核准模型提供商。會開啟該開關
--approval-model-id <model> 此行程的核准模型 id。會開啟該開關
--approval-thinking <effort> 此行程的審查者思考檔位。不修改磁碟上的 approvalModel.thinkingEffort
--compaction-model <on|off> 使用已儲存的壓縮模型,或為此行程關閉它
--compaction-provider <provider> 此行程的壓縮模型提供商。會開啟該開關
--compaction-model-id <model> 此行程的壓縮模型 id。會開啟該開關
--compaction-thinking <effort> 此行程的摘要者思考檔位。不修改磁碟上的 compactionModel.thinkingEffort
--plan / --work 以 Plan 或 Work 啟動。兩者都省略則保持 Work,或恢復工作階段上儲存的模式
--thinking <effort> 取值與 /thinking 相同
--context <budget> 所選模型宣告了多個預算時,為此行程選擇本機上下文預算。文字與 /context 相同(272k、1m,或精確 token 數)。只有一個預算的模型,或未宣告的預算,會被拒絕。不寫入 contextSelections
--tier <token> 所選模型列出的服務層級 token。不寫入 tierSelections
--speed <token>、--fast <token> 所選模型列出的速度 token。不寫入 speedSelections
--prompt-set <name> 為此行程強制使用一個主目錄提示集,即使其 prompt.json 中 enabled 為 false。default 強制使用內建文字。拒絕 /promptset 切換,且不寫入該檔案。列出和匯出仍然可用
--prompt-attachments <on|off> on 遵循每個附件的 enabled 旗標和 order。off 不附加任何內容,並拒絕 enable、disable、up 和 down。列出仍然可用
--prompt-attachment <name> 可重複。在此行程中,把該附件追加到已啟用集合之後,即使其檔案中 enabled 為 false。不寫入該檔案。不能與 --prompt-attachments off 一起使用
--skills、--external-tools、--plugins 此行程為 on 或 off
--rules <value> 兩側規則檔案都為 on 或 off,或 global=on|off 與 project=on|off。不影響 instructions.md 或 .crystal.md
--model-calls <count> 每個回合的模型輪次。unlimited 取消該上限
--tool-calls <count> 每個回合的工具呼叫次數。0 表示不允許。unlimited 取消該上限
--duration <seconds> 每個回合的牆上時鐘上限。unlimited 取消該上限
--bash-timeout <seconds> 前景每條 bash 命令的上限。unlimited 關閉該計時器
--disable-tool <name> 可重複。為此行程省略該內建工具。未知名稱會拒絕啟動。不寫入檔案,也不釋放該名稱

這些旗標只影響此行程。啟動時不會寫入 config.json 或 prompt.json。之後儲存偏好的斜線命令會寫入該偏好。傳入了 --provider 和 --model 時也會寫入它們。上面的其他旗標不會被寫入。--plan 和 --work 同時出現會被拒絕。crystal space 接受相同的旗標,但不接受 --workspace。

--help 印出相同的選項。

首次執行會建立 ~/.crystal(或 --home / CRYSTAL_HOME),並在缺少 config.json 時寫入一份起步設定。預設提供商為 deepseek,模型為 deepseek-flash,核准為 default,壓縮閾值為所選模型 contextWindow 的 80%。

workspaceTrust 開啟時(預設如此),目錄中的第一次互動啟動會詢問你是否信任它。在 git 儲存庫內,問題會點名儲存庫根目錄,信任它會涵蓋之後在該儲存庫中的啟動。儲存庫外只信任該目錄。選擇 Yes 會寫入 ~/.crystal/trusted.json。選擇 No 會結束且不寫入該檔案,因此下次啟動會再次詢問。重新導向的終端機無法詢問,並以錯誤結束。/trust off 會跳過之後的提示。/cd 進入未信任的根目錄會再次詢問;選擇 No 則留在目前工作區。

如果提供商有多個模型,且 config.json 和 --model 都沒有選定一個,行程會結束並要求提供 --model。

crystal space 在 ~/.crystal/space 缺失時建立它,並在那裡開啟終端機。--home 選擇資料目錄,因此空間是 {home}/space。該命令接受與 crystal 相同的工作階段旗標,包括 --provider、--model、--resume、--prompt-set,以及其他僅限行程的覆寫。它不接受 --workspace。

該目錄無需提示、也無需 trusted.json 項目即被信任。/space 在缺失時建立它並切換過去。它使用與 /cd 相同的信任和重新載入路徑,且不會詢問。信任不會上升到父級 git 儲存庫,/trust forget 也不會移除它。子目錄遵循普通的信任規則。如果 space 本身是 git 儲存庫,其子目錄共用該信任根。那裡的工作階段按絕對路徑儲存,與任何其他工作區相同。

crystal run --space 在該目錄缺失時建立它,並在那裡執行一項任務。它不寫入信任項目。--space 不能與 --workspace 組合。