prompts: restore legacy, plugins, agent0 profile

Restore main.communication, main.solving, main.tips and tool.response, which made the model dumber. For some reasons the drawback was more visible with frontier LLMs.

restore builtin plugins and agent0 profile
This commit is contained in:
Alessandro 2026-04-03 06:49:25 +02:00
parent 3a512b8c1b
commit 86dca86f6f
10 changed files with 288 additions and 93 deletions

View file

@ -19,15 +19,73 @@ examples:
1 terminal command
~~~json
{
"thoughts": ["I should run a terminal command in the default session."],
"headline": "Running terminal command",
"tool_name": "code_execution_tool",
"tool_args": {
"runtime": "terminal",
"session": 0,
"reset": false,
"code": "pwd"
}
"thoughts": [
"Need to do...",
"Need to install...",
],
"headline": "Installing zip package via terminal",
"tool_name": "code_execution_tool",
"tool_args": {
"runtime": "terminal",
"session": 0,
"reset": false,
"code": "apt-get install zip",
}
}
~~~
2 execute python code
~~~json
{
"thoughts": [
"Need to do...",
"I can use...",
"Then I can...",
],
"headline": "Executing Python code to check current directory",
"tool_name": "code_execution_tool",
"tool_args": {
"runtime": "python",
"session": 0,
"reset": false,
"code": "import os\nprint(os.getcwd())",
}
}
~~~
3 execute nodejs code
~~~json
{
"thoughts": [
"Need to do...",
"I can use...",
"Then I can...",
],
"headline": "Executing Javascript code to check current directory",
"tool_name": "code_execution_tool",
"tool_args": {
"runtime": "nodejs",
"session": 0,
"reset": false,
"code": "console.log(process.cwd());",
}
}
~~~
4 wait for output with long-running scripts
~~~json
{
"thoughts": [
"Waiting for program to finish...",
],
"headline": "Waiting for long-running program to complete",
"tool_name": "code_execution_tool",
"tool_args": {
"runtime": "output",
"session": 0,
}
}
~~~

View file

@ -1,4 +1,19 @@
### input
send keyboard input to a running terminal session
args: `keyboard`, `session`
use only for interactive terminal programs, not browser tasks
### input:
use keyboard arg for terminal program input
use session arg for terminal session number
answer dialogues enter passwords etc
not for browser
usage:
~~~json
{
"thoughts": [
"The program asks for Y/N...",
],
"headline": "Responding to terminal program prompt",
"tool_name": "input",
"tool_args": {
"keyboard": "Y",
"session": 0
}
}
~~~

View file

@ -1,9 +1,13 @@
## promptinclude
matching `{{name_pattern}}` files in workdir are auto-injected into the system prompt
use this for standing preferences, project notes, and other long-lived context that should survive future chats
when the user asks to remember or persist standing notes or preferences, update a matching file with `text_editor` instead of only acknowledging it
if the user wants a preference or note to persist across conversations, write it; do not only promise to remember it
# Behavioral prompt includes
"{{name_pattern}}" files in workdir auto-injected into system prompt
create/edit/delete persist across conversations
preference change/remember/note > MUST persist via text_editor before responding
never just acknowledge verbally always persist to file
use for persistent notes knowledge project context
recursive search alphabetical by full path
{{if includes}}
obey included rules and preferences below
### includes
!!! obey all rules preferences instructions below
{{includes}}
{{endif}}

View file

@ -1,24 +1,67 @@
### text_editor
read write or patch text files; binary files are not supported
always use the method form in `tool_name`; never send bare `text_editor`
- `text_editor:read`: `path`, optional `line_from`, `line_to`
- `text_editor:write`: `path`, `content`
- `text_editor:patch`: `path`, `edits[]`
example:
file read write patch with numbered lines
not code execution rejects binary
terminal (grep find sed) advance search/replace
#### text_editor:read
read file with numbered lines
args path line_from line_to (inclusive optional)
no range → first {{default_line_count}} lines
long lines cropped output may trim by token limit
read surrounding context before patching
usage:
~~~json
{
"thoughts": ["Need to inspect the file before patching it."],
"headline": "Reading file with text editor",
"tool_name": "text_editor:read",
"tool_args": {
"path": "/path/file.py",
"line_from": 1,
"line_to": 50
}
...
"tool_name": "text_editor:read",
"tool_args": {
"path": "/path/file.py",
"line_from": 1,
"line_to": 50
}
}
~~~
#### text_editor:write
create/overwrite file auto-creates dirs
args path content
usage:
~~~json
{
...
"tool_name": "text_editor:write",
"tool_args": {
"path": "/path/file.py",
"content": "import os\nprint('hello')\n"
}
}
~~~
#### text_editor:patch
line edits on existing file
args path edits [{from to content}]
from to inclusive \n in content
{from:2 to:2 content:"x\n"} replace line
{from:1 to:3 content:"x\n"} replace range
{from:2 to:2} delete (no content)
{from:2 content:"x\n"} insert before (omit to)
use original line numbers from read
dont adjust for shifts no overlapping edits
ensure valid syntax in content (all braces brackets tags closed)
only replace exact lines needed dont include surrounding unchanged lines
re-read when insert delete or N≠M replace else patch again ok
large changes write over multiple patches
usage:
~~~json
{
...
"tool_name": "text_editor:patch",
"tool_args": {
"path": "/path/file.py",
"edits": [
{"from": 1, "content": "import sys\n"},
{"from": 5, "to": 5, "content": " if x == 2:\n"}
]
}
}
~~~
patch edit format: `{from,to?,content?}`
- omit `to` to insert before `from`
- omit `content` to delete
- line numbers come from the last read
- avoid overlapping edits; re-read after insert delete or other line shifts