tool_load: add dynamic tool loader with bash script
Add a tool_load tool that writes a tool name to the session's 9P tools file via ollie-9p, enabling on-demand tool loading. Reduce autoLoad lists in default.json and theo.json to bare essentials — everything else is loaded via tool_load.
This commit is contained in:
parent
0a418c20f4
commit
7beef106e0
|
|
@ -6,33 +6,11 @@
|
||||||
],
|
],
|
||||||
"autoLoad": [
|
"autoLoad": [
|
||||||
"file_read",
|
"file_read",
|
||||||
"file_write",
|
|
||||||
"file_edit",
|
"file_edit",
|
||||||
"file_glob",
|
"file_glob",
|
||||||
"file_grep",
|
"file_grep",
|
||||||
"memory_recall",
|
"file_write",
|
||||||
"memory_remember",
|
"tool_load"
|
||||||
"lsp_definition",
|
|
||||||
"lsp_diagnostics",
|
|
||||||
"lsp_hover",
|
|
||||||
"lsp_references",
|
|
||||||
"lsp_symbols",
|
|
||||||
"gui_screenshot",
|
|
||||||
"gui_windows",
|
|
||||||
"gui_clipboard",
|
|
||||||
"gui_notify",
|
|
||||||
"image_read",
|
|
||||||
"skill_list",
|
|
||||||
"skill_load",
|
|
||||||
"subagent_generate",
|
|
||||||
"process_list",
|
|
||||||
"process_output",
|
|
||||||
"process_signal",
|
|
||||||
"process_dismiss",
|
|
||||||
"logseq",
|
|
||||||
"system_logs",
|
|
||||||
"browser_screencap",
|
|
||||||
"route"
|
|
||||||
],
|
],
|
||||||
"maxSteps": 50,
|
"maxSteps": 50,
|
||||||
"temperature": 0.5,
|
"temperature": 0.5,
|
||||||
|
|
|
||||||
|
|
@ -7,24 +7,11 @@
|
||||||
"shell",
|
"shell",
|
||||||
"reasoning_think",
|
"reasoning_think",
|
||||||
"file_read",
|
"file_read",
|
||||||
|
"file_edit",
|
||||||
"file_glob",
|
"file_glob",
|
||||||
"file_grep",
|
"file_grep",
|
||||||
"file_write",
|
"file_write",
|
||||||
"file_edit",
|
"tool_load"
|
||||||
"gui_screenshot",
|
|
||||||
"gui_windows",
|
|
||||||
"gui_clipboard",
|
|
||||||
"gui_notify",
|
|
||||||
"image_read",
|
|
||||||
"memory_recall",
|
|
||||||
"memory_remember",
|
|
||||||
"lsp_definition",
|
|
||||||
"lsp_diagnostics",
|
|
||||||
"lsp_hover",
|
|
||||||
"lsp_references",
|
|
||||||
"lsp_symbols",
|
|
||||||
"skill_list",
|
|
||||||
"skill_load"
|
|
||||||
],
|
],
|
||||||
"maxSteps": 30,
|
"maxSteps": 30,
|
||||||
"temperature": 0.3,
|
"temperature": 0.3,
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# args_json: {"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Tool name to load into the current session/agent"}}}
|
||||||
|
# ollie:prompt
|
||||||
|
# ## tool_load
|
||||||
|
#
|
||||||
|
# Load a tool into the current session/agent by writing its name to
|
||||||
|
# `session/{sid}/agent/{aid}/tools` via ollie-9p.
|
||||||
|
#
|
||||||
|
# **Args**: `name` (required) — the tool name to load.
|
||||||
|
#
|
||||||
|
# ```
|
||||||
|
# tool_load(name="file_read")
|
||||||
|
# ```
|
||||||
|
# ollie:end
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
name=$(grep -oP '"name"\s*:\s*"\K[^"]+')
|
||||||
|
echo "$name" | ollie-9p write "session/$OLLIE_SESSION_ID/agent/$OLLIE_UNAME/tools"
|
||||||
|
echo "loaded: $name"
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
"description": "Load a tool into the current session/agent via ollie-9p.",
|
||||||
|
"prompt": "## tool_load\n\nLoad a tool into the current session/agent by writing its name to\n`session/{sid}/agent/{aid}/tools` via ollie-9p.\n\n**Args**: `name` (required) — the tool name to load.\n\n```\ntool_load(name=\"file_read\")\n```",
|
||||||
|
"args": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"name"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"name": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Tool name to load into the current session/agent"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tier": "hot",
|
||||||
|
"readOnly": false
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue