描述
Command 類提供在 AgentBay 雲環境會話中執行命令的方法。
方法 | 說明 | 環境 | ||||
ComputerUseLinux | ComputerUseWindows | BrowserUse | MobileUse | CodeSpace | ||
| 在雲環境中執行命令 | 支援 | 支援 | 支援 | 支援 | 支援 |
| 執行Shell命令(帶逾時控制) | 不支援 | 不支援 | 不支援 | 不支援 | 支援 |
方法
ExecuteCommand - 執行命令
Golang
func (cmd *Command) ExecuteCommand(command string, timeoutMs ...int) (*CommandResult, error)參數:
command(string):要執行的命令。
timeoutMs(int,可選):命令執行的逾時時間(毫秒)。預設為
1000ms。
傳回值:
*CommandResult:包含命令輸出和請求ID的結果對象。error:若命令執行失敗,返回錯誤資訊。
CommandResult 結構體:
type CommandResult struct {
RequestID string // 調試用的唯一請求標識符
Output string // 命令的輸出
}Python
def execute_command(command: str, timeout_ms: int = 1000) -> OperationResult參數:
command(str):要執行的命令。
timeout_ms(int,可選):命令執行的逾時時間(毫秒)。預設為1000ms。
傳回值:
OperationResult:包含命令輸出(data)、操作狀態、請求ID和錯誤資訊的結果對象。
TypeScript
executeCommand(command: string, timeoutMs: number = 1000): Promise<string>參數:
command(string):要執行的命令。
timeoutMs(number,可選):命令執行的逾時時間(毫秒)。預設為
1000ms。
傳回值:
Promise<string>:返回命令輸出結果的Promise。
異常:
Error:若命令執行失敗,拋出錯誤。
RunCode - 運行代碼
Golang
func (cmd *Command) RunCode(code string, language string, timeoutS ...int) (*CommandResult, error)參數:
code(string):要執行的代碼。
language(string):代碼的程式設計語言。必須為
python或javascript。timeoutS(int,可選):代碼執行的逾時時間(秒)。預設為
300s。
傳回值:
*CommandResult:包含代碼執行輸出和請求ID的結果對象。error:若代碼執行失敗或指定了不支援的語言,返回錯誤資訊。
Python
def run_code(code: str, language: str, timeout_s: int = 300) -> OperationResult參數:
code(str):要執行的代碼。
language(str):代碼的程式設計語言。必須為
python或javascript。timeout_s(int,可選):代碼執行的逾時時間(秒)。預設為
300s。
傳回值:
OperationResult:包含代碼執行輸出(data)、操作狀態、請求ID和錯誤資訊的結果對象。
TypeScript
runCode(code: string, language: string, timeoutS: number = 300): Promise<string>參數:
code(string):要執行的代碼。
language(string):代碼的程式設計語言。必須為
python或javascript。timeoutS(number,可選):代碼執行的逾時時間(秒)。預設為
300s。
傳回值:
Promise<string>:傳回碼執行輸出結果的Promise。
異常:
APIError:若代碼執行失敗或指定了不支援的語言,拋出錯誤。
使用樣本
Golang
執行命令
package main
import (
"fmt"
"log"
)
func main() {
// 建立會話
agentBay := agentbay.NewAgentBay("your-api-key")
sessionResult, err := agentBay.Create(nil)
if err != nil {
log.Fatal(err)
}
session := sessionResult.Session
// 執行命令(預設逾時 1000ms)
result, err := session.Command.ExecuteCommand("ls -la")
if err != nil {
log.Printf("Error executing command: %v", err)
} else {
fmt.Printf("Command output: %s\n", result.Output)
}
// 執行命令(自訂逾時 2000ms)
resultWithTimeout, err := session.Command.ExecuteCommand("ls -la", 2000)
if err != nil {
log.Printf("Error executing command with timeout: %v", err)
} else {
fmt.Printf("Command output with timeout: %s\n", resultWithTimeout.Output)
}
}運行代碼
package main
import (
"fmt"
"log"
)
func main() {
// 建立會話
agentBay := agentbay.NewAgentBay("your-api-key")
sessionResult, err := agentBay.Create(nil)
if err != nil {
log.Fatal(err)
}
session := sessionResult.Session
// 執行 Python 代碼
pythonCode := `
print("Hello, world!")
x = 1 + 1
print(x)
`
result, err := session.Command.RunCode(pythonCode, "python")
if err != nil {
log.Printf("Error running Python code: %v", err)
} else {
fmt.Printf("Python code output: %s\n", result.Output)
}
// 執行 JavaScript 代碼(自訂逾時 600s)
jsCode := `
log("Hello, world!");
const x = 1 + 1;
log(x);
`
resultJS, err := session.Command.RunCode(jsCode, "javascript", 600)
if err != nil {
log.Printf("Error running JavaScript code: %v", err)
} else {
fmt.Printf("JavaScript code output: %s\n", resultJS.Output)
}
}Python
from agentbay import AgentBay
# 初始化 SDK
agent_bay = AgentBay(api_key="your_api_key")
# 建立會話
session_result = agent_bay.create()
if session_result.success:
session = session_result.session
# 執行命令(預設逾時 1000ms)
result = session.command.execute_command("ls -la")
if result.success:
print(f"命令輸出: {result.data}")
else:
print(f"命令執行失敗: {result.error_message}")
# 執行命令(自訂逾時 2000ms)
result_with_timeout = session.command.execute_command("ls -la", timeout_ms=2000)
if result_with_timeout.success:
print(f"自訂逾時命令輸出: {result_with_timeout.data}")
else:
print(f"命令執行失敗: {result_with_timeout.error_message}")
# 執行 Python 代碼
python_code = """
print("Hello, world!")
x = 1 + 1
print(x)
"""
result_code = session.command.run_code(python_code, "python")
if result_code.success:
print(f"Python 代碼執行結果: {result_code.data}")
else:
print(f"代碼執行失敗: {result_code.error_message}")
# 執行 JavaScript 代碼(自訂逾時 600s)
js_code = """
log("Hello, world!");
const x = 1 + 1;
log(x);
"""
result_js = session.command.run_code(js_code, "javascript", timeout_s=600)
if result_js.success:
print(f"JavaScript 代碼執行結果: {result_js.data}")
else:
print(f"代碼執行失敗: {result_js.error_message}")TypeScript
import { AgentBay } from 'wuying-agentbay-sdk';
// 初始化 SDK
const agentBay = new AgentBay({ apiKey: 'your_api_key' });
// 建立會話
async function createSession() {
try {
const sessionResult = await agentBay.create();
const session = sessionResult.session;
// 執行命令(預設逾時 1000ms)
const commandOutput = await session.command.executeCommand('ls -la');
console.log(`命令輸出: ${commandOutput}`);
// 執行命令(自訂逾時 2000ms)
const commandOutputWithTimeout = await session.command.executeCommand('ls -la', 2000);
console.log(`自訂逾時命令輸出: ${commandOutputWithTimeout}`);
// 執行 Python 代碼
const pythonCode = `
print("Hello, world!")
x = 1 + 1
print(x)
`;
const pythonResult = await session.command.runCode(pythonCode, 'python');
console.log(`Python 代碼執行結果: ${pythonResult}`);
// 執行 JavaScript 代碼(自訂逾時 600s)
const jsCode = `
log("Hello, world!");
const x = 1 + 1;
log(x);
`;
const jsResult = await session.command.runCode(jsCode, 'javascript', 600);
console.log(`JavaScript 代碼執行結果: ${jsResult}`);
} catch (error) {
console.error('操作失敗:', error);
}
}
createSession();