From ac5f6157efb0e4eb2df468c48a43dfecb4ba0075 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=99=B4=E5=A4=A9?= Date: Thu, 5 Mar 2026 23:19:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=EF=BC=9AAgent=20=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E9=A1=B5=E9=9D=A2=20openclaw=20=E6=89=BE=E4=B8=8D?= =?UTF-8?q?=E5=88=B0=E6=97=B6=E6=98=BE=E7=A4=BA=E5=8F=8B=E5=A5=BD=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将 'No such file or directory (os error 2)' 替换为中文提示: 'OpenClaw CLI 未找到,请确认已安装并重启 ClawPanel' 涉及 list_agents、add_agent、delete_agent 三个命令 --- src-tauri/src/commands/agent.rs | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/src-tauri/src/commands/agent.rs b/src-tauri/src/commands/agent.rs index 3bb66d2..f993dcd 100644 --- a/src-tauri/src/commands/agent.rs +++ b/src-tauri/src/commands/agent.rs @@ -11,7 +11,13 @@ pub async fn list_agents() -> Result { .args(["agents", "list", "--json"]) .output() .await - .map_err(|e| format!("执行失败: {e}"))?; + .map_err(|e| { + if e.kind() == std::io::ErrorKind::NotFound { + "OpenClaw CLI 未找到,请确认已安装并重启 ClawPanel。\n如果使用 nvm 安装,请从终端启动 ClawPanel。".to_string() + } else { + format!("执行失败: {e}") + } + })?; if !output.status.success() { let stderr = String::from_utf8_lossy(&output.stderr); @@ -56,7 +62,13 @@ pub async fn add_agent( .args(&args) .output() .await - .map_err(|e| format!("执行失败: {e}"))?; + .map_err(|e| { + if e.kind() == std::io::ErrorKind::NotFound { + "OpenClaw CLI 未找到,请确认已安装并重启 ClawPanel。".to_string() + } else { + format!("执行失败: {e}") + } + })?; if !output.status.success() { let stderr = String::from_utf8_lossy(&output.stderr); @@ -80,7 +92,13 @@ pub async fn delete_agent(id: String) -> Result { .args(["agents", "delete", &id]) .output() .await - .map_err(|e| format!("执行失败: {e}"))?; + .map_err(|e| { + if e.kind() == std::io::ErrorKind::NotFound { + "OpenClaw CLI 未找到,请确认已安装并重启 ClawPanel。".to_string() + } else { + format!("执行失败: {e}") + } + })?; if !output.status.success() { let stderr = String::from_utf8_lossy(&output.stderr);