首次執行
從代理應當編輯的工作區開始。除非設定了 --workspace,否則目前目錄就是工作區。
dotnet run --project CrystalCode -- --provider deepseek --model deepseek-flashCLI 選項:
| 選項 | 含義 |
|---|---|
-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 組合。