[shell_tool] Small updates to ensure shell consistency (#2571)
## Summary Small update to hopefully improve some shell edge cases, and make the function clearer to the model what is going on. Keeping `timeout` as an alias means that calls with the previous name will still work. ## Test Plan - [x] Tested locally, model still works
This commit is contained in:
@@ -197,10 +197,8 @@ pub struct ShellToolCallParams {
|
|||||||
pub command: Vec<String>,
|
pub command: Vec<String>,
|
||||||
pub workdir: Option<String>,
|
pub workdir: Option<String>,
|
||||||
|
|
||||||
/// This is the maximum time in seconds that the command is allowed to run.
|
/// This is the maximum time in milliseconds that the command is allowed to run.
|
||||||
#[serde(rename = "timeout")]
|
#[serde(alias = "timeout")]
|
||||||
// The wire format uses `timeout`, which has ambiguous units, so we use
|
|
||||||
// `timeout_ms` as the field name so it is clear in code.
|
|
||||||
pub timeout_ms: Option<u64>,
|
pub timeout_ms: Option<u64>,
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
pub with_escalated_permissions: Option<bool>,
|
pub with_escalated_permissions: Option<bool>,
|
||||||
|
|||||||
@@ -115,16 +115,20 @@ fn create_shell_tool() -> OpenAiTool {
|
|||||||
"command".to_string(),
|
"command".to_string(),
|
||||||
JsonSchema::Array {
|
JsonSchema::Array {
|
||||||
items: Box::new(JsonSchema::String { description: None }),
|
items: Box::new(JsonSchema::String { description: None }),
|
||||||
description: None,
|
description: Some("The command to execute".to_string()),
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
properties.insert(
|
properties.insert(
|
||||||
"workdir".to_string(),
|
"workdir".to_string(),
|
||||||
JsonSchema::String { description: None },
|
JsonSchema::String {
|
||||||
|
description: Some("The working directory to execute the command in".to_string()),
|
||||||
|
},
|
||||||
);
|
);
|
||||||
properties.insert(
|
properties.insert(
|
||||||
"timeout".to_string(),
|
"timeout_ms".to_string(),
|
||||||
JsonSchema::Number { description: None },
|
JsonSchema::Number {
|
||||||
|
description: Some("The timeout for the command in milliseconds".to_string()),
|
||||||
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
OpenAiTool::Function(ResponsesApiTool {
|
OpenAiTool::Function(ResponsesApiTool {
|
||||||
@@ -155,7 +159,7 @@ fn create_shell_tool_for_sandbox(sandbox_policy: &SandboxPolicy) -> OpenAiTool {
|
|||||||
},
|
},
|
||||||
);
|
);
|
||||||
properties.insert(
|
properties.insert(
|
||||||
"timeout".to_string(),
|
"timeout_ms".to_string(),
|
||||||
JsonSchema::Number {
|
JsonSchema::Number {
|
||||||
description: Some("The timeout for the command in milliseconds".to_string()),
|
description: Some("The timeout for the command in milliseconds".to_string()),
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user