diff --git a/src/Infrastructure/BotSharp.Abstraction/Agents/Enums/BuiltInAgentId.cs b/src/Infrastructure/BotSharp.Abstraction/Agents/Enums/BuiltInAgentId.cs
index 82b0efab..367fd08b 100644
--- a/src/Infrastructure/BotSharp.Abstraction/Agents/Enums/BuiltInAgentId.cs
+++ b/src/Infrastructure/BotSharp.Abstraction/Agents/Enums/BuiltInAgentId.cs
@@ -51,4 +51,14 @@ public static class BuiltInAgentId
/// Translates user-defined natural language rules into programmatic code
///
public const string RulesInterpreter = "201e49a2-40b3-4ccd-b8cc-2476565a1b40";
+
+ ///
+ /// Generate code script
+ ///
+ public const string AIProgrammer = "c2a2faf6-b8b5-47fe-807b-f4714cf25dd4";
+
+ ///
+ /// Handle files
+ ///
+ public const string FileAssistant = "f1e09a73-9efe-46ce-ba02-b3aaf96d97e0";
}
diff --git a/src/Infrastructure/BotSharp.Core.Crontab/BotSharp.Core.Crontab.csproj b/src/Infrastructure/BotSharp.Core.Crontab/BotSharp.Core.Crontab.csproj
index 7e92ca1f..1c9d96e5 100644
--- a/src/Infrastructure/BotSharp.Core.Crontab/BotSharp.Core.Crontab.csproj
+++ b/src/Infrastructure/BotSharp.Core.Crontab/BotSharp.Core.Crontab.csproj
@@ -11,6 +11,7 @@
+
diff --git a/src/Infrastructure/BotSharp.Core/BotSharp.Core.csproj b/src/Infrastructure/BotSharp.Core/BotSharp.Core.csproj
index d960ca18..d8afd37b 100644
--- a/src/Infrastructure/BotSharp.Core/BotSharp.Core.csproj
+++ b/src/Infrastructure/BotSharp.Core/BotSharp.Core.csproj
@@ -96,13 +96,16 @@
-
-
+
+
+
+
+
@@ -172,6 +175,9 @@
PreserveNewest
+
+ PreserveNewest
+
PreserveNewest
@@ -193,9 +199,6 @@
PreserveNewest
-
- PreserveNewest
-
PreserveNewest
@@ -208,6 +211,18 @@
PreserveNewest
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
PreserveNewest
diff --git a/src/Infrastructure/BotSharp.Core/Files/Services/Instruct/FileInstructService.SelectFile.cs b/src/Infrastructure/BotSharp.Core/Files/Services/Instruct/FileInstructService.SelectFile.cs
index d2af898b..3b0b724a 100644
--- a/src/Infrastructure/BotSharp.Core/Files/Services/Instruct/FileInstructService.SelectFile.cs
+++ b/src/Infrastructure/BotSharp.Core/Files/Services/Instruct/FileInstructService.SelectFile.cs
@@ -114,8 +114,8 @@ public partial class FileInstructService
return new NameDesc(text, desc);
}).ToList();
- var agentId = !string.IsNullOrWhiteSpace(options.AgentId) ? options.AgentId : BuiltInAgentId.UtilityAssistant;
- var template = !string.IsNullOrWhiteSpace(options.Template) ? options.Template : "util-file-select_file_instruction";
+ var agentId = !string.IsNullOrWhiteSpace(options.AgentId) ? options.AgentId : BuiltInAgentId.FileAssistant;
+ var template = !string.IsNullOrWhiteSpace(options.Template) ? options.Template : "select_chat_file_instruction";
var prompt = db.GetAgentTemplate(agentId, template);
var data = new Dictionary
diff --git a/src/Infrastructure/BotSharp.Core/data/agents/c2a2faf6-b8b5-47fe-807b-f4714cf25dd4/agent.json b/src/Infrastructure/BotSharp.Core/data/agents/c2a2faf6-b8b5-47fe-807b-f4714cf25dd4/agent.json
new file mode 100644
index 00000000..31c38e57
--- /dev/null
+++ b/src/Infrastructure/BotSharp.Core/data/agents/c2a2faf6-b8b5-47fe-807b-f4714cf25dd4/agent.json
@@ -0,0 +1,18 @@
+{
+ "id": "c2a2faf6-b8b5-47fe-807b-f4714cf25dd4",
+ "name": "AI programmer",
+ "description": "AI programmer is designed to generate code scripts.",
+ "type": "task",
+ "createdDateTime": "2025-10-07T10:39:32Z",
+ "updatedDateTime": "2025-10-07T14:39:32Z",
+ "iconUrl": "/images/logo.png",
+ "disabled": false,
+ "isPublic": true,
+ "llmConfig": {
+ "is_inherit": false,
+ "provider": "openai",
+ "model": "gpt-5",
+ "max_recursion_depth": 3,
+ "reasoning_effort_level": "minimal"
+ }
+}
\ No newline at end of file
diff --git a/src/Infrastructure/BotSharp.Core/data/agents/c2a2faf6-b8b5-47fe-807b-f4714cf25dd4/instructions/instruction.liquid b/src/Infrastructure/BotSharp.Core/data/agents/c2a2faf6-b8b5-47fe-807b-f4714cf25dd4/instructions/instruction.liquid
new file mode 100644
index 00000000..3da026ef
--- /dev/null
+++ b/src/Infrastructure/BotSharp.Core/data/agents/c2a2faf6-b8b5-47fe-807b-f4714cf25dd4/instructions/instruction.liquid
@@ -0,0 +1 @@
+You are a AI programmer to help coding.
\ No newline at end of file
diff --git a/src/Infrastructure/BotSharp.Core/data/agents/f1e09a73-9efe-46ce-ba02-b3aaf96d97e0/agent.json b/src/Infrastructure/BotSharp.Core/data/agents/f1e09a73-9efe-46ce-ba02-b3aaf96d97e0/agent.json
new file mode 100644
index 00000000..8da69b84
--- /dev/null
+++ b/src/Infrastructure/BotSharp.Core/data/agents/f1e09a73-9efe-46ce-ba02-b3aaf96d97e0/agent.json
@@ -0,0 +1,18 @@
+{
+ "id": "f1e09a73-9efe-46ce-ba02-b3aaf96d97e0",
+ "name": "File Assistant",
+ "description": "File Assistant is designed to handle files.",
+ "type": "task",
+ "createdDateTime": "2025-10-07T10:39:32Z",
+ "updatedDateTime": "2025-10-07T14:39:32Z",
+ "iconUrl": "/images/logo.png",
+ "disabled": false,
+ "isPublic": true,
+ "llmConfig": {
+ "is_inherit": false,
+ "provider": "openai",
+ "model": "gpt-5-mini",
+ "max_recursion_depth": 3,
+ "reasoning_effort_level": "minimal"
+ }
+}
\ No newline at end of file
diff --git a/src/Infrastructure/BotSharp.Core/data/agents/f1e09a73-9efe-46ce-ba02-b3aaf96d97e0/instructions/instruction.liquid b/src/Infrastructure/BotSharp.Core/data/agents/f1e09a73-9efe-46ce-ba02-b3aaf96d97e0/instructions/instruction.liquid
new file mode 100644
index 00000000..cfc58109
--- /dev/null
+++ b/src/Infrastructure/BotSharp.Core/data/agents/f1e09a73-9efe-46ce-ba02-b3aaf96d97e0/instructions/instruction.liquid
@@ -0,0 +1 @@
+You are a File Assistant to help handle files.
\ No newline at end of file
diff --git a/src/Plugins/BotSharp.Plugin.ChartHandler/BotSharp.Plugin.ChartHandler.csproj b/src/Plugins/BotSharp.Plugin.ChartHandler/BotSharp.Plugin.ChartHandler.csproj
index 784b2405..1c91204d 100644
--- a/src/Plugins/BotSharp.Plugin.ChartHandler/BotSharp.Plugin.ChartHandler.csproj
+++ b/src/Plugins/BotSharp.Plugin.ChartHandler/BotSharp.Plugin.ChartHandler.csproj
@@ -13,7 +13,7 @@
-
+
@@ -23,7 +23,7 @@
PreserveNewest
-
+
PreserveNewest
diff --git a/src/Plugins/BotSharp.Plugin.ChartHandler/Functions/PlotChartFn.cs b/src/Plugins/BotSharp.Plugin.ChartHandler/Functions/PlotChartFn.cs
index 1c89478c..1cac2c81 100644
--- a/src/Plugins/BotSharp.Plugin.ChartHandler/Functions/PlotChartFn.cs
+++ b/src/Plugins/BotSharp.Plugin.ChartHandler/Functions/PlotChartFn.cs
@@ -123,8 +123,8 @@ public class PlotChartFn : IFunctionCallback
}
else
{
- templateName = "util-chart-plot_instruction";
- templateContent = db.GetAgentTemplate(BuiltInAgentId.UtilityAssistant, templateName);
+ templateName = "chart-js-generate_instruction";
+ templateContent = db.GetAgentTemplate(BuiltInAgentId.AIProgrammer, templateName);
}
return templateContent;
diff --git a/src/Plugins/BotSharp.Plugin.ChartHandler/data/agents/6745151e-6d46-4a02-8de4-1c4f21c7da95/templates/util-chart-plot_instruction.liquid b/src/Plugins/BotSharp.Plugin.ChartHandler/data/agents/c2a2faf6-b8b5-47fe-807b-f4714cf25dd4/templates/chart-js-generate_instruction.liquid
similarity index 100%
rename from src/Plugins/BotSharp.Plugin.ChartHandler/data/agents/6745151e-6d46-4a02-8de4-1c4f21c7da95/templates/util-chart-plot_instruction.liquid
rename to src/Plugins/BotSharp.Plugin.ChartHandler/data/agents/c2a2faf6-b8b5-47fe-807b-f4714cf25dd4/templates/chart-js-generate_instruction.liquid
diff --git a/src/Plugins/BotSharp.Plugin.FileHandler/BotSharp.Plugin.FileHandler.csproj b/src/Plugins/BotSharp.Plugin.FileHandler/BotSharp.Plugin.FileHandler.csproj
index fe05a7e4..4eb83e01 100644
--- a/src/Plugins/BotSharp.Plugin.FileHandler/BotSharp.Plugin.FileHandler.csproj
+++ b/src/Plugins/BotSharp.Plugin.FileHandler/BotSharp.Plugin.FileHandler.csproj
@@ -19,6 +19,7 @@
+
@@ -46,6 +47,9 @@
PreserveNewest
+
+ PreserveNewest
+
diff --git a/src/Infrastructure/BotSharp.Core/data/agents/6745151e-6d46-4a02-8de4-1c4f21c7da95/templates/util-file-select_file_instruction.liquid b/src/Plugins/BotSharp.Plugin.FileHandler/data/agents/f1e09a73-9efe-46ce-ba02-b3aaf96d97e0/templates/select-chat-file_instruction.liquid
similarity index 100%
rename from src/Infrastructure/BotSharp.Core/data/agents/6745151e-6d46-4a02-8de4-1c4f21c7da95/templates/util-file-select_file_instruction.liquid
rename to src/Plugins/BotSharp.Plugin.FileHandler/data/agents/f1e09a73-9efe-46ce-ba02-b3aaf96d97e0/templates/select-chat-file_instruction.liquid
diff --git a/src/Plugins/BotSharp.Plugin.PythonInterpreter/BotSharp.Plugin.PythonInterpreter.csproj b/src/Plugins/BotSharp.Plugin.PythonInterpreter/BotSharp.Plugin.PythonInterpreter.csproj
index 8b0775e8..54ed1270 100644
--- a/src/Plugins/BotSharp.Plugin.PythonInterpreter/BotSharp.Plugin.PythonInterpreter.csproj
+++ b/src/Plugins/BotSharp.Plugin.PythonInterpreter/BotSharp.Plugin.PythonInterpreter.csproj
@@ -11,7 +11,9 @@
-
+
+
+
@@ -21,7 +23,7 @@
PreserveNewest
-
+
PreserveNewest
diff --git a/src/Plugins/BotSharp.Plugin.PythonInterpreter/Functions/PyProgrammerFn.cs b/src/Plugins/BotSharp.Plugin.PythonInterpreter/Functions/PyProgrammerFn.cs
index 1cf14ed8..7be90493 100644
--- a/src/Plugins/BotSharp.Plugin.PythonInterpreter/Functions/PyProgrammerFn.cs
+++ b/src/Plugins/BotSharp.Plugin.PythonInterpreter/Functions/PyProgrammerFn.cs
@@ -177,8 +177,8 @@ public class PyProgrammerFn : IFunctionCallback
}
else
{
- templateName = "util-code-python_generate_instruction";
- templateContent = db.GetAgentTemplate(BuiltInAgentId.UtilityAssistant, templateName);
+ templateName = "py-code_generate_instruction";
+ templateContent = db.GetAgentTemplate(BuiltInAgentId.AIProgrammer, templateName);
}
return templateContent;
diff --git a/src/Plugins/BotSharp.Plugin.PythonInterpreter/data/agents/6745151e-6d46-4a02-8de4-1c4f21c7da95/templates/util-code-python_generate_instruction.liquid b/src/Plugins/BotSharp.Plugin.PythonInterpreter/data/agents/c2a2faf6-b8b5-47fe-807b-f4714cf25dd4/templates/py-code_generate_instruction.liquid
similarity index 100%
rename from src/Plugins/BotSharp.Plugin.PythonInterpreter/data/agents/6745151e-6d46-4a02-8de4-1c4f21c7da95/templates/util-code-python_generate_instruction.liquid
rename to src/Plugins/BotSharp.Plugin.PythonInterpreter/data/agents/c2a2faf6-b8b5-47fe-807b-f4714cf25dd4/templates/py-code_generate_instruction.liquid