branch: externals/ellama
commit ac1d57b281bef37f43be1cb1bba043b911804c2a
Author: Sergey Kostyaev <[email protected]>
Commit: Sergey Kostyaev <[email protected]>

    Add configurable subagent roles
    
    Added a new customization variable `ellama-subagent-roles` that allows 
defining
    different subagent roles with specific system prompts and tool access
    permissions. Includes default roles for general, explorer, coder, and bash
    agents.
---
 ellama.el | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/ellama.el b/ellama.el
index 3733206d40..823221aea0 100644
--- a/ellama.el
+++ b/ellama.el
@@ -478,6 +478,30 @@ It should be a function with single argument generated 
text string."
   :type 'string
   :group 'ellama)
 
+(defcustom ellama-subagent-roles
+  '(("general"
+     :system "You are a helpful general assistant."
+     :tools :all)
+
+    ("explorer"
+     :system "Explore, inspect, and report findings. Do not modify files."
+     :tools ("read_file" "directory_tree" "grep" "grep_in_file"
+             "count_lines" "lines_range" "project_root" "shell_command"))
+
+    ("coder"
+     :system "You are an expert software developer. Make precise changes."
+     :tools ("read_file" "write_file" "edit_file" "append_file" "prepend_file"
+            "move_file" "apply_patch" "grep" "grep_in_file" "project_root"
+            "directory_tree" "count_lines" "lines_range" "shell_command"))
+
+    ("bash"
+     :system "You are a bash scripting expert."
+     :tools ("shell_command")))
+
+  "Subagent roles with system prompt and allowed tools."
+  :type '(alist :key-type string :value-type plist)
+  :group 'ellama)
+
 (defun ellama--set-file-name-and-save ()
   "Set buffer file name and save buffer."
   (interactive)

Reply via email to