無介面執行
crystal run 執行一項任務後結束。它不開啟備用畫面。把任務放在引號裡,或省略任務並從 stdin 管道傳入。任務參數優先於 stdin。斜線命令會被拒絕。
crystal run --workspace . --approval review --duration 600 "Fix the failing test."echo "Summarize the repository." | crystal run --model-calls 8 --tool-calls 32--format default 印出可讀的追蹤:先是助手回覆,然後每個工具緊挨自己的結果。read、list、glob 和 grep 保留短的開頭摘錄,並說明省略了多少行。edit 和 write 保留其結果。bash 保留命令、結束狀態和短的結尾,命令失敗時結尾更長。其他成功的工具使用同樣的短摘錄。bash 以外的失敗保留結果文字。標籤使用方括號,結束狀態使用圓括號,省略行標記使用尖括號,因此主機文字與工具輸出保持區分。--format json 每行印出一個 JSON 物件,並保留完整的工具輸出。除非設定了 --show-thinking,否則省略思考文字。設定該旗標後,思考印在 [Thinking] 下,回覆印在 [Assistant] 下。已儲存的工作階段 id 印在末尾。用互動式的 crystal --resume <id> 恢復該工作階段。
旗標只覆寫此行程的已儲存設定。它們不會寫入 config.json。不要把秘密放在命令列上。省略的旗標保留已儲存的值;已儲存的值也未設定時,使用產品預設值。--workspace-trust 不是這樣:省略它會檢查目錄。unlimited 取消那一項上限。
| 選項 | 含義 |
|---|---|
-p, --provider / -m, --model |
此行程的提供商和模型 |
-w, --workspace / --home |
工作區根目錄和資料目錄 |
--space |
把操作空間 {home}/space 用作工作區。缺失時建立。不能與 --workspace 組合 |
--approval <mode> |
default、edit、review、audit 或 full |
--approval-model <on|off> |
使用已儲存的核准模型,或為此行程關閉它 |
--approval-provider <provider> |
此行程的核准模型提供商。會開啟該開關 |
--approval-model-id <model> |
此行程的核准模型 id。會開啟該開關 |
--approval-thinking <effort> |
此行程的審查者思考檔位。取值與 /approval thinking 相同;不支援的檔位回退到提供商預設值並列印一條說明,不是 effort token 的值以狀態 1 結束。不寫入檔案 |
--compaction-model <on|off> |
使用已儲存的壓縮模型,或為此行程關閉它。on 需要已儲存的選擇,或同一條命令上的 --compaction-provider 和 --compaction-model-id。不寫入檔案 |
--compaction-provider <provider> |
此行程的壓縮模型提供商。會開啟該開關 |
--compaction-model-id <model> |
此行程的壓縮模型 id。會開啟該開關 |
--compaction-thinking <effort> |
此行程的摘要者思考檔位。取值與 /compact thinking 相同。不支援的檔位回退到提供商預設值並列印一條說明。不寫入檔案 |
--plan / --work |
以 Plan 或 Work 啟動。預設是 Work |
--thinking <effort> |
取值與 /thinking 相同。不支援的檔位被忽略,列印一條說明,請求使用提供商預設值。不是 effort token 的值以狀態 1 結束 |
--context <budget> |
所選模型宣告了多個預算時的本機上下文預算。文字與 /context 相同。只有一個預算的模型,或未宣告的預算,以狀態 1 結束。不寫入 contextSelections |
--tier <token> |
所選模型列出的服務層級 token。模型未列出它時以狀態 1 結束。不寫入 tierSelections |
--speed <token>、--fast <token> |
所選模型列出的速度 token。模型未列出它時以狀態 1 結束。不寫入 speedSelections |
--prompt-set <name> |
為此行程強制使用一個主目錄提示集,即使其 prompt.json 中 enabled 為 false。default 強制使用內建文字。不寫入檔案 |
--prompt-attachments <on|off> |
on 遵循每個附件的 enabled 旗標和 order。off 不附加任何內容。省略表示 on。不寫入檔案 |
--prompt-attachment <name> |
可重複。把該附件追加到已啟用集合之後,即使 enabled 為 false。缺失的名稱以狀態 1 結束。不能與 --prompt-attachments off 組合。不寫入檔案 |
--skills、--external-tools、--plugins |
此行程為 on 或 off |
--rules <value> |
兩側規則檔案都為 on 或 off,或逗號分隔的 global=on|off 與 project=on|off。賦值會把另一側保留為已儲存的值。不寫入檔案,也不影響 instructions.md 或 .crystal.md |
--workspace-trust <on|off> |
僅此行程的目錄信任。省略和 on 會拒絕未信任的目錄。off 跳過檢查且不記錄信任。這不跟隨 workspaceTrust |
--model-calls <count> |
此回合的模型輪次。預設 1024 |
--tool-calls <count> |
此回合的工具呼叫次數。預設 8192。0 表示不允許 |
--duration <seconds> |
此回合的牆上時鐘上限。預設 7 天。在 CI 中傳入較短的值 |
--bash-timeout <seconds> |
前景每條 bash 命令的上限。預設 600。unlimited 關閉該計時器 |
--disable-tool <name> |
可重複。為此行程省略該內建工具。未知名稱會拒絕啟動。不寫入檔案,也不釋放該名稱 |
--show-thinking |
為此次執行列印推理文字,並把每條回覆標為 [Assistant]。獨立於 verboseThinking |
--format |
default 為純文字,json 為每行一個 JSON 物件 |
--approval-model off 不能與 --approval-provider 或 --approval-model-id 組合。--approval-model on 需要已儲存的核准模型或 --approval-model-id。--approval-thinking 只為此行程設定檔位:/approval model 保留已儲存的檔位,/approval thinking 才是寫入檔位的命令。開關關閉時,行程檔位被忽略。
--workspace-trust 不屬於繼承已儲存設定的旗標。即使 config.json 中 workspaceTrust 為 false,省略它也會檢查目錄。未信任的目錄在工作階段開始前以狀態 4 結束。從互動終端機信任它,或為此行程傳入 --workspace-trust off。crystal run --space 使用操作空間,該空間已經被信任。
沒有操作者。在 Review 和 Audit 中,審查模型仍然判斷需要審查的呼叫:允許則執行工具,拒絕則把審查者的理由返回給模型。除非此行程開啟了核准模型開關,否則該模型就是工作階段模型。任何會詢問操作者的內容,包括 Default、Edit 和 Full 提示,都以通常的拒絕文字被拒絕。question 工具被駁回。Plan 不提供 write、edit 或 bash。憑證路徑仍然禁止。
審查者拒絕是工具錯誤。如果模型隨後完成,行程以 0 結束。被拒絕的操作者提示或被駁回的問題則不會。呼叫 Plan 不提供的工具會使回合失敗。
| 結束碼 | 含義 |
|---|---|
| 0 | 回合完成,且沒有操作者提示被拒絕或駁回 |
| 1 | 命令、設定、憑證、工作區或提示集無效 |
| 2 | 模型請求失敗,或模型因內容過濾而停止 |
| 3 | 達到模型呼叫、工具呼叫或時長預算,上下文溢出,或模型輸出被截斷 |
| 4 | 回合在操作者提示被拒絕或問題被駁回之後結束 |
| 5 | 執行被中斷 |
失敗或預算停止會作為失敗報告,而不是拒絕。中斷也會作為中斷報告,而不是拒絕。純文字 stdout 隨後包含 [Stopped] 和工作階段 id。
每行 JSON 都有 type、UTC timestamp 和 sessionID。類型為 step_start、text、reasoning、tool_use、error、note、retry、step_finish、stopped 和 session。tool_use 攜帶 name、callId、arguments、status(success 或 failure)和 output。step_finish 攜帶 reason、modelCalls 和 toolCalls。reasoning 只在設定了 --show-thinking 時出現。stopped 只在行程將以非零狀態結束時出現。session.text 與純文字格式印出的恢復提示相同。無效命令和缺失憑證仍然是 stderr 上的純文字。