refactor: Refactored use_tools field to enabled_tools field to make the use of the field more clear
This commit is contained in:
@@ -1,3 +1,3 @@
|
|||||||
---
|
---
|
||||||
use_tools: all
|
enabled_tools: all
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
name: repo-analyzer
|
name: repo-analyzer
|
||||||
use_tools: fs_cat,fs_ls,fs_write,fs_patch,execute_command
|
enabled_tools: fs_cat,fs_ls,fs_write,fs_patch,execute_command
|
||||||
---
|
---
|
||||||
**Context:** The task requires the AI to analyze the {{__cwd__}} repository and provide comprehensive insights into
|
**Context:** The task requires the AI to analyze the {{__cwd__}} repository and provide comprehensive insights into
|
||||||
various aspects such as directory structure, design patterns, coding conventions, libraries, architecture, module
|
various aspects such as directory structure, design patterns, coding conventions, libraries, architecture, module
|
||||||
|
|||||||
+2
-2
@@ -16,8 +16,8 @@ vault_password_file: null # Path to a file containing the password for th
|
|||||||
function_calling: true # Enables or disables function calling (Globally).
|
function_calling: true # Enables or disables function calling (Globally).
|
||||||
mapping_tools: # Alias for a tool or toolset
|
mapping_tools: # Alias for a tool or toolset
|
||||||
fs: 'fs_cat,fs_ls,fs_mkdir,fs_rm,fs_write'
|
fs: 'fs_cat,fs_ls,fs_mkdir,fs_rm,fs_write'
|
||||||
use_tools: null # Which tools to use by default. (e.g. 'fs,web_search_loki')
|
enabled_tools: null # Which tools to enable by default. (e.g. 'fs,web_search_loki')
|
||||||
visible_tools: # Which tools are visible to be compiled (and are thus able to be defined in 'use_tools')
|
visible_tools: # Which tools are visible to be compiled (and are thus able to be defined in 'enabled_tools')
|
||||||
# - demo_py.py
|
# - demo_py.py
|
||||||
# - demo_sh.sh
|
# - demo_sh.sh
|
||||||
- execute_command.sh
|
- execute_command.sh
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ name: <role-name> # The name of the role
|
|||||||
model: openai:gpt-4o # The model to use for this role
|
model: openai:gpt-4o # The model to use for this role
|
||||||
temperature: 0.2 # The temperature to use for this role when querying the model
|
temperature: 0.2 # The temperature to use for this role when querying the model
|
||||||
top_p: null # The top_p to use for this role when querying the model
|
top_p: null # The top_p to use for this role when querying the model
|
||||||
use_tools: fs_ls,fs_cat # A comma-separated list of tools to enable for this role
|
enabled_tools: fs_ls,fs_cat # A comma-separated list of tools to enable for this role
|
||||||
use_mcp_servers: github,gitmcp # A comma-separated list of MCP servers to enable for this role
|
use_mcp_servers: github,gitmcp # A comma-separated list of MCP servers to enable for this role
|
||||||
---
|
---
|
||||||
You are an expert at doing things. This is where I would write the instructions for the role.
|
You are an expert at doing things. This is where I would write the instructions for the role.
|
||||||
|
|||||||
+2
-2
@@ -418,7 +418,7 @@ impl RoleLike for Agent {
|
|||||||
self.config.top_p
|
self.config.top_p
|
||||||
}
|
}
|
||||||
|
|
||||||
fn use_tools(&self) -> Option<String> {
|
fn enabled_tools(&self) -> Option<String> {
|
||||||
self.config.global_tools.clone().join(",").into()
|
self.config.global_tools.clone().join(",").into()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -439,7 +439,7 @@ impl RoleLike for Agent {
|
|||||||
self.config.top_p = value;
|
self.config.top_p = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
fn set_use_tools(&mut self, value: Option<String>) {
|
fn set_enabled_tools(&mut self, value: Option<String>) {
|
||||||
match value {
|
match value {
|
||||||
Some(tools) => {
|
Some(tools) => {
|
||||||
let tools = tools
|
let tools = tools
|
||||||
|
|||||||
+17
-17
@@ -130,7 +130,7 @@ pub struct Config {
|
|||||||
|
|
||||||
pub function_calling: bool,
|
pub function_calling: bool,
|
||||||
pub mapping_tools: IndexMap<String, String>,
|
pub mapping_tools: IndexMap<String, String>,
|
||||||
pub use_tools: Option<String>,
|
pub enabled_tools: Option<String>,
|
||||||
pub visible_tools: Option<Vec<String>>,
|
pub visible_tools: Option<Vec<String>>,
|
||||||
|
|
||||||
pub mcp_servers: bool,
|
pub mcp_servers: bool,
|
||||||
@@ -216,7 +216,7 @@ impl Default for Config {
|
|||||||
|
|
||||||
function_calling: true,
|
function_calling: true,
|
||||||
mapping_tools: Default::default(),
|
mapping_tools: Default::default(),
|
||||||
use_tools: None,
|
enabled_tools: None,
|
||||||
visible_tools: None,
|
visible_tools: None,
|
||||||
|
|
||||||
mcp_servers: true,
|
mcp_servers: true,
|
||||||
@@ -647,7 +647,7 @@ impl Config {
|
|||||||
&self.model,
|
&self.model,
|
||||||
self.temperature,
|
self.temperature,
|
||||||
self.top_p,
|
self.top_p,
|
||||||
self.use_tools.clone(),
|
self.enabled_tools.clone(),
|
||||||
self.use_mcp_servers.clone(),
|
self.use_mcp_servers.clone(),
|
||||||
);
|
);
|
||||||
role
|
role
|
||||||
@@ -694,7 +694,7 @@ impl Config {
|
|||||||
("model", role.model().id()),
|
("model", role.model().id()),
|
||||||
("temperature", format_option_value(&role.temperature())),
|
("temperature", format_option_value(&role.temperature())),
|
||||||
("top_p", format_option_value(&role.top_p())),
|
("top_p", format_option_value(&role.top_p())),
|
||||||
("use_tools", format_option_value(&role.use_tools())),
|
("enabled_tools", format_option_value(&role.enabled_tools())),
|
||||||
(
|
(
|
||||||
"use_mcp_servers",
|
"use_mcp_servers",
|
||||||
format_option_value(&role.use_mcp_servers()),
|
format_option_value(&role.use_mcp_servers()),
|
||||||
@@ -767,9 +767,9 @@ impl Config {
|
|||||||
let value = parse_value(value)?;
|
let value = parse_value(value)?;
|
||||||
config.write().set_top_p(value);
|
config.write().set_top_p(value);
|
||||||
}
|
}
|
||||||
"use_tools" => {
|
"enabled_tools" => {
|
||||||
let value = parse_value(value)?;
|
let value = parse_value(value)?;
|
||||||
config.write().set_use_tools(value);
|
config.write().set_enabled_tools(value);
|
||||||
}
|
}
|
||||||
"use_mcp_servers" => {
|
"use_mcp_servers" => {
|
||||||
let value: Option<String> = parse_value(value)?;
|
let value: Option<String> = parse_value(value)?;
|
||||||
@@ -970,10 +970,10 @@ impl Config {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn set_use_tools(&mut self, value: Option<String>) {
|
pub fn set_enabled_tools(&mut self, value: Option<String>) {
|
||||||
match self.role_like_mut() {
|
match self.role_like_mut() {
|
||||||
Some(role_like) => role_like.set_use_tools(value),
|
Some(role_like) => role_like.set_enabled_tools(value),
|
||||||
None => self.use_tools = value,
|
None => self.enabled_tools = value,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1955,7 +1955,7 @@ impl Config {
|
|||||||
fn select_enabled_functions(&self, role: &Role) -> Vec<FunctionDeclaration> {
|
fn select_enabled_functions(&self, role: &Role) -> Vec<FunctionDeclaration> {
|
||||||
let mut functions = vec![];
|
let mut functions = vec![];
|
||||||
if self.function_calling {
|
if self.function_calling {
|
||||||
if let Some(use_tools) = role.use_tools() {
|
if let Some(enabled_tools) = role.enabled_tools() {
|
||||||
let mut tool_names: HashSet<String> = Default::default();
|
let mut tool_names: HashSet<String> = Default::default();
|
||||||
let declaration_names: HashSet<String> = self
|
let declaration_names: HashSet<String> = self
|
||||||
.functions
|
.functions
|
||||||
@@ -1967,10 +1967,10 @@ impl Config {
|
|||||||
})
|
})
|
||||||
.map(|v| v.name.to_string())
|
.map(|v| v.name.to_string())
|
||||||
.collect();
|
.collect();
|
||||||
if use_tools == "all" {
|
if enabled_tools == "all" {
|
||||||
tool_names.extend(declaration_names);
|
tool_names.extend(declaration_names);
|
||||||
} else {
|
} else {
|
||||||
for item in use_tools.split(',') {
|
for item in enabled_tools.split(',') {
|
||||||
let item = item.trim();
|
let item = item.trim();
|
||||||
if let Some(values) = self.mapping_tools.get(item) {
|
if let Some(values) = self.mapping_tools.get(item) {
|
||||||
tool_names.extend(
|
tool_names.extend(
|
||||||
@@ -2189,7 +2189,7 @@ impl Config {
|
|||||||
let mut values = vec![
|
let mut values = vec![
|
||||||
"temperature",
|
"temperature",
|
||||||
"top_p",
|
"top_p",
|
||||||
"use_tools",
|
"enabled_tools",
|
||||||
"use_mcp_servers",
|
"use_mcp_servers",
|
||||||
"save_session",
|
"save_session",
|
||||||
"compress_threshold",
|
"compress_threshold",
|
||||||
@@ -2232,7 +2232,7 @@ impl Config {
|
|||||||
"stream" => complete_bool(self.stream),
|
"stream" => complete_bool(self.stream),
|
||||||
"save" => complete_bool(self.save),
|
"save" => complete_bool(self.save),
|
||||||
"function_calling" => complete_bool(self.function_calling),
|
"function_calling" => complete_bool(self.function_calling),
|
||||||
"use_tools" => {
|
"enabled_tools" => {
|
||||||
let mut prefix = String::new();
|
let mut prefix = String::new();
|
||||||
let mut ignores = HashSet::new();
|
let mut ignores = HashSet::new();
|
||||||
if let Some((v, _)) = args[1].rsplit_once(',') {
|
if let Some((v, _)) = args[1].rsplit_once(',') {
|
||||||
@@ -2736,8 +2736,8 @@ impl Config {
|
|||||||
self.mapping_tools = v;
|
self.mapping_tools = v;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if let Some(v) = read_env_value::<String>(&get_env_name("use_tools")) {
|
if let Some(v) = read_env_value::<String>(&get_env_name("enabled_tools")) {
|
||||||
self.use_tools = v;
|
self.enabled_tools = v;
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Some(v) = read_env_value::<String>(&get_env_name("repl_prelude")) {
|
if let Some(v) = read_env_value::<String>(&get_env_name("repl_prelude")) {
|
||||||
@@ -2951,7 +2951,7 @@ pub async fn macro_execute(
|
|||||||
let mut config = config.read().clone();
|
let mut config = config.read().clone();
|
||||||
config.temperature = role.temperature();
|
config.temperature = role.temperature();
|
||||||
config.top_p = role.top_p();
|
config.top_p = role.top_p();
|
||||||
config.use_tools = role.use_tools().clone();
|
config.enabled_tools = role.enabled_tools().clone();
|
||||||
config.use_mcp_servers = role.use_mcp_servers().clone();
|
config.use_mcp_servers = role.use_mcp_servers().clone();
|
||||||
config.macro_flag = true;
|
config.macro_flag = true;
|
||||||
config.model = role.model().clone();
|
config.model = role.model().clone();
|
||||||
|
|||||||
+17
-15
@@ -28,12 +28,12 @@ pub trait RoleLike {
|
|||||||
fn model(&self) -> &Model;
|
fn model(&self) -> &Model;
|
||||||
fn temperature(&self) -> Option<f64>;
|
fn temperature(&self) -> Option<f64>;
|
||||||
fn top_p(&self) -> Option<f64>;
|
fn top_p(&self) -> Option<f64>;
|
||||||
fn use_tools(&self) -> Option<String>;
|
fn enabled_tools(&self) -> Option<String>;
|
||||||
fn use_mcp_servers(&self) -> Option<String>;
|
fn use_mcp_servers(&self) -> Option<String>;
|
||||||
fn set_model(&mut self, model: Model);
|
fn set_model(&mut self, model: Model);
|
||||||
fn set_temperature(&mut self, value: Option<f64>);
|
fn set_temperature(&mut self, value: Option<f64>);
|
||||||
fn set_top_p(&mut self, value: Option<f64>);
|
fn set_top_p(&mut self, value: Option<f64>);
|
||||||
fn set_use_tools(&mut self, value: Option<String>);
|
fn set_enabled_tools(&mut self, value: Option<String>);
|
||||||
fn set_use_mcp_servers(&mut self, value: Option<String>);
|
fn set_use_mcp_servers(&mut self, value: Option<String>);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -52,7 +52,7 @@ pub struct Role {
|
|||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
top_p: Option<f64>,
|
top_p: Option<f64>,
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
use_tools: Option<String>,
|
enabled_tools: Option<String>,
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
use_mcp_servers: Option<String>,
|
use_mcp_servers: Option<String>,
|
||||||
|
|
||||||
@@ -85,7 +85,9 @@ impl Role {
|
|||||||
"model" => role.model_id = value.as_str().map(|v| v.to_string()),
|
"model" => role.model_id = value.as_str().map(|v| v.to_string()),
|
||||||
"temperature" => role.temperature = value.as_f64(),
|
"temperature" => role.temperature = value.as_f64(),
|
||||||
"top_p" => role.top_p = value.as_f64(),
|
"top_p" => role.top_p = value.as_f64(),
|
||||||
"use_tools" => role.use_tools = value.as_str().map(|v| v.to_string()),
|
"enabled_tools" => {
|
||||||
|
role.enabled_tools = value.as_str().map(|v| v.to_string())
|
||||||
|
}
|
||||||
"use_mcp_servers" => {
|
"use_mcp_servers" => {
|
||||||
role.use_mcp_servers = value.as_str().map(|v| v.to_string())
|
role.use_mcp_servers = value.as_str().map(|v| v.to_string())
|
||||||
}
|
}
|
||||||
@@ -126,8 +128,8 @@ impl Role {
|
|||||||
if let Some(top_p) = self.top_p() {
|
if let Some(top_p) = self.top_p() {
|
||||||
metadata.push(format!("top_p: {top_p}"));
|
metadata.push(format!("top_p: {top_p}"));
|
||||||
}
|
}
|
||||||
if let Some(use_tools) = self.use_tools() {
|
if let Some(enabled_tools) = self.enabled_tools() {
|
||||||
metadata.push(format!("use_tools: {use_tools}"));
|
metadata.push(format!("enabled_tools: {enabled_tools}"));
|
||||||
}
|
}
|
||||||
if let Some(use_mcp_servers) = self.use_mcp_servers() {
|
if let Some(use_mcp_servers) = self.use_mcp_servers() {
|
||||||
metadata.push(format!("use_mcp_servers: {use_mcp_servers}"));
|
metadata.push(format!("use_mcp_servers: {use_mcp_servers}"));
|
||||||
@@ -168,9 +170,9 @@ impl Role {
|
|||||||
let model = role_like.model();
|
let model = role_like.model();
|
||||||
let temperature = role_like.temperature();
|
let temperature = role_like.temperature();
|
||||||
let top_p = role_like.top_p();
|
let top_p = role_like.top_p();
|
||||||
let use_tools = role_like.use_tools();
|
let enabled_tools = role_like.enabled_tools();
|
||||||
let use_mcp_servers = role_like.use_mcp_servers();
|
let use_mcp_servers = role_like.use_mcp_servers();
|
||||||
self.batch_set(model, temperature, top_p, use_tools, use_mcp_servers);
|
self.batch_set(model, temperature, top_p, enabled_tools, use_mcp_servers);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn batch_set(
|
pub fn batch_set(
|
||||||
@@ -178,7 +180,7 @@ impl Role {
|
|||||||
model: &Model,
|
model: &Model,
|
||||||
temperature: Option<f64>,
|
temperature: Option<f64>,
|
||||||
top_p: Option<f64>,
|
top_p: Option<f64>,
|
||||||
use_tools: Option<String>,
|
enabled_tools: Option<String>,
|
||||||
use_mcp_servers: Option<String>,
|
use_mcp_servers: Option<String>,
|
||||||
) {
|
) {
|
||||||
self.set_model(model.clone());
|
self.set_model(model.clone());
|
||||||
@@ -188,8 +190,8 @@ impl Role {
|
|||||||
if top_p.is_some() {
|
if top_p.is_some() {
|
||||||
self.set_top_p(top_p);
|
self.set_top_p(top_p);
|
||||||
}
|
}
|
||||||
if use_tools.is_some() {
|
if enabled_tools.is_some() {
|
||||||
self.set_use_tools(use_tools);
|
self.set_enabled_tools(enabled_tools);
|
||||||
}
|
}
|
||||||
if use_mcp_servers.is_some() {
|
if use_mcp_servers.is_some() {
|
||||||
self.set_use_mcp_servers(use_mcp_servers);
|
self.set_use_mcp_servers(use_mcp_servers);
|
||||||
@@ -285,8 +287,8 @@ impl RoleLike for Role {
|
|||||||
self.top_p
|
self.top_p
|
||||||
}
|
}
|
||||||
|
|
||||||
fn use_tools(&self) -> Option<String> {
|
fn enabled_tools(&self) -> Option<String> {
|
||||||
self.use_tools.clone()
|
self.enabled_tools.clone()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn use_mcp_servers(&self) -> Option<String> {
|
fn use_mcp_servers(&self) -> Option<String> {
|
||||||
@@ -308,8 +310,8 @@ impl RoleLike for Role {
|
|||||||
self.top_p = value;
|
self.top_p = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
fn set_use_tools(&mut self, value: Option<String>) {
|
fn set_enabled_tools(&mut self, value: Option<String>) {
|
||||||
self.use_tools = value;
|
self.enabled_tools = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
fn set_use_mcp_servers(&mut self, value: Option<String>) {
|
fn set_use_mcp_servers(&mut self, value: Option<String>) {
|
||||||
|
|||||||
+11
-11
@@ -25,7 +25,7 @@ pub struct Session {
|
|||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
top_p: Option<f64>,
|
top_p: Option<f64>,
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
use_tools: Option<String>,
|
enabled_tools: Option<String>,
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
use_mcp_servers: Option<String>,
|
use_mcp_servers: Option<String>,
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
@@ -156,8 +156,8 @@ impl Session {
|
|||||||
if let Some(top_p) = self.top_p() {
|
if let Some(top_p) = self.top_p() {
|
||||||
data["top_p"] = top_p.into();
|
data["top_p"] = top_p.into();
|
||||||
}
|
}
|
||||||
if let Some(use_tools) = self.use_tools() {
|
if let Some(enabled_tools) = self.enabled_tools() {
|
||||||
data["use_tools"] = use_tools.into();
|
data["enabled_tools"] = enabled_tools.into();
|
||||||
}
|
}
|
||||||
if let Some(use_mcp_servers) = self.use_mcp_servers() {
|
if let Some(use_mcp_servers) = self.use_mcp_servers() {
|
||||||
data["use_mcp_servers"] = use_mcp_servers.into();
|
data["use_mcp_servers"] = use_mcp_servers.into();
|
||||||
@@ -204,8 +204,8 @@ impl Session {
|
|||||||
items.push(("top_p", top_p.to_string()));
|
items.push(("top_p", top_p.to_string()));
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Some(use_tools) = self.use_tools() {
|
if let Some(enabled_tools) = self.enabled_tools() {
|
||||||
items.push(("use_tools", use_tools));
|
items.push(("enabled_tools", enabled_tools));
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Some(use_mcp_servers) = self.use_mcp_servers() {
|
if let Some(use_mcp_servers) = self.use_mcp_servers() {
|
||||||
@@ -280,7 +280,7 @@ impl Session {
|
|||||||
self.model_id = role.model().id();
|
self.model_id = role.model().id();
|
||||||
self.temperature = role.temperature();
|
self.temperature = role.temperature();
|
||||||
self.top_p = role.top_p();
|
self.top_p = role.top_p();
|
||||||
self.use_tools = role.use_tools();
|
self.enabled_tools = role.enabled_tools();
|
||||||
self.use_mcp_servers = role.use_mcp_servers();
|
self.use_mcp_servers = role.use_mcp_servers();
|
||||||
self.model = role.model().clone();
|
self.model = role.model().clone();
|
||||||
self.role_name = convert_option_string(role.name());
|
self.role_name = convert_option_string(role.name());
|
||||||
@@ -587,8 +587,8 @@ impl RoleLike for Session {
|
|||||||
self.top_p
|
self.top_p
|
||||||
}
|
}
|
||||||
|
|
||||||
fn use_tools(&self) -> Option<String> {
|
fn enabled_tools(&self) -> Option<String> {
|
||||||
self.use_tools.clone()
|
self.enabled_tools.clone()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn use_mcp_servers(&self) -> Option<String> {
|
fn use_mcp_servers(&self) -> Option<String> {
|
||||||
@@ -618,9 +618,9 @@ impl RoleLike for Session {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn set_use_tools(&mut self, value: Option<String>) {
|
fn set_enabled_tools(&mut self, value: Option<String>) {
|
||||||
if self.use_tools != value {
|
if self.enabled_tools != value {
|
||||||
self.use_tools = value;
|
self.enabled_tools = value;
|
||||||
self.dirty = true;
|
self.dirty = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user