feat: default task dependencies to temporary
This commit is contained in:
@@ -52,6 +52,14 @@ still requires current-state inspection, bounded output, verification, versioned
|
|||||||
source and recovery documentation. Preserve unrelated user changes and dirty
|
source and recovery documentation. Preserve unrelated user changes and dirty
|
||||||
worktrees.
|
worktrees.
|
||||||
|
|
||||||
|
Treat dependencies as transient by default. If the user asks to use, run, test
|
||||||
|
or try a program, first use an existing executable. If it is unavailable,
|
||||||
|
obtain only a task-local copy under `/tmp` or the tool's temporary workspace,
|
||||||
|
use it for the current request, verify the result and remove it afterwards.
|
||||||
|
Install packages, services, containers or configuration persistently only when
|
||||||
|
the current request explicitly asks to install, set up or keep them permanently.
|
||||||
|
When persistence intent is ambiguous, choose the transient path and report it.
|
||||||
|
|
||||||
For GitHub implementation details, README files, source trees, API routes and
|
For GitHub implementation details, README files, source trees, API routes and
|
||||||
code search, use the official read-only GitHub Repository MCP. Use general web
|
code search, use the official read-only GitHub Repository MCP. Use general web
|
||||||
search for broader public research. Avoid repeated synonymous tool calls and
|
search for broader public research. Avoid repeated synonymous tool calls and
|
||||||
|
|||||||
@@ -307,6 +307,8 @@ class AutoToolSelectorTests(unittest.IsolatedAsyncioTestCase):
|
|||||||
self.assertIn("direct MUA management or shell tool", result["messages"][0]["content"])
|
self.assertIn("direct MUA management or shell tool", result["messages"][0]["content"])
|
||||||
self.assertIn("Do not ask the user to enable another tool", result["messages"][0]["content"])
|
self.assertIn("Do not ask the user to enable another tool", result["messages"][0]["content"])
|
||||||
self.assertIn("start-status-result pattern", result["messages"][0]["content"])
|
self.assertIn("start-status-result pattern", result["messages"][0]["content"])
|
||||||
|
self.assertIn("transient-by-default dependency handling", result["messages"][0]["content"])
|
||||||
|
self.assertIn("task-local copy under /tmp", result["messages"][0]["content"])
|
||||||
self.assertTrue(result["metadata"]["mikeai_long_operator_task"])
|
self.assertTrue(result["metadata"]["mikeai_long_operator_task"])
|
||||||
|
|
||||||
async def test_generic_remote_host_file_operation_gets_operator(self):
|
async def test_generic_remote_host_file_operation_gets_operator(self):
|
||||||
|
|||||||
@@ -54,6 +54,21 @@ ein höheres, aber weiterhin endliches Ausführungsbudget: 64 Aufrufe insgesamt
|
|||||||
und 24 je Werkzeug. Normale Recherche bleibt bei 40 beziehungsweise 12. Das
|
und 24 je Werkzeug. Normale Recherche bleibt bei 40 beziehungsweise 12. Das
|
||||||
ist keine Sonderregel für YouTube, ffmpeg, MUA oder einen bestimmten Server.
|
ist keine Sonderregel für YouTube, ffmpeg, MUA oder einen bestimmten Server.
|
||||||
|
|
||||||
|
## Lebensdauer von Hilfsprogrammen
|
||||||
|
|
||||||
|
Die Absicht des Benutzers bestimmt die Lebensdauer einer Abhängigkeit:
|
||||||
|
|
||||||
|
- **nutzen, ausführen, testen, ausprobieren:** zuerst ein vorhandenes Programm
|
||||||
|
verwenden; fehlt es, nur eine auftragsbezogene Kopie unter `/tmp` oder im
|
||||||
|
temporären Arbeitsbereich ablegen und nach der Verifikation entfernen;
|
||||||
|
- **installieren, einrichten, dauerhaft bereitstellen:** reproduzierbar und
|
||||||
|
persistent über die versionierte Plattformkonfiguration installieren;
|
||||||
|
- **unklare Formulierung:** flüchtig bleiben und im Ergebnis offen angeben,
|
||||||
|
was temporär verwendet wurde.
|
||||||
|
|
||||||
|
Diese Regel gilt für alle Clients und Zielsysteme. Sie ist nicht auf FFmpeg,
|
||||||
|
Downloads oder Unraid beschränkt.
|
||||||
|
|
||||||
## Community-Bezug
|
## Community-Bezug
|
||||||
|
|
||||||
Das folgt dem MCP-Modell: Ein Client verbindet einen vertrauenswürdigen
|
Das folgt dem MCP-Modell: Ein Client verbindet einen vertrauenswürdigen
|
||||||
|
|||||||
@@ -205,7 +205,7 @@ ein Download, Transcode oder vergleichbarer Auftrag weder Open WebUI noch Hermes
|
|||||||
oder Pi bis zum Prozessende. Die drei Werkzeuge erben dieselbe ausdrücklich
|
oder Pi bis zum Prozessende. Die drei Werkzeuge erben dieselbe ausdrücklich
|
||||||
erteilte Berechtigung wie die uneingeschränkte Shell.
|
erteilte Berechtigung wie die uneingeschränkte Shell.
|
||||||
|
|
||||||
Auto Tool Selector 4.5 kennzeichnet allgemeine lange Operator-Aufgaben
|
Auto Tool Selector 4.6 kennzeichnet allgemeine lange Operator-Aufgaben
|
||||||
produktunabhängig. Der OpenWebUI-Agentenloop stellt dafür bis zu 64
|
produktunabhängig. Der OpenWebUI-Agentenloop stellt dafür bis zu 64
|
||||||
Werkzeugausführungen insgesamt und 24 je Werkzeug bereit; normale Aufgaben
|
Werkzeugausführungen insgesamt und 24 je Werkzeug bereit; normale Aufgaben
|
||||||
bleiben bei 40/12. Zusätzlich verlangt der Systemhinweis das generische
|
bleiben bei 40/12. Zusätzlich verlangt der Systemhinweis das generische
|
||||||
@@ -254,7 +254,7 @@ Angebote und sortierte Notebook, Zubehör sowie ein Ersatzteilgerät aus. Das
|
|||||||
belegt sowohl die technische Grenze als auch eine brauchbare Synthese; ein
|
belegt sowohl die technische Grenze als auch eine brauchbare Synthese; ein
|
||||||
eBay-spezifischer MCP war nicht erforderlich.
|
eBay-spezifischer MCP war nicht erforderlich.
|
||||||
|
|
||||||
Auto Tool Selector 4.5 erkennt zusätzlich allgemeine operative Arbeit über
|
Auto Tool Selector 4.6 erkennt zusätzlich allgemeine operative Arbeit über
|
||||||
Fähigkeitsklassen: Eine ausdrückliche Ausführungs- oder Änderungsabsicht in
|
Fähigkeitsklassen: Eine ausdrückliche Ausführungs- oder Änderungsabsicht in
|
||||||
Verbindung mit Host, Dateisystem, Kommando, Dienst, Pfad oder typischen
|
Verbindung mit Host, Dateisystem, Kommando, Dienst, Pfad oder typischen
|
||||||
Kommandozeilenwerkzeugen stellt den Athena Operator bereit. Dadurch benötigen
|
Kommandozeilenwerkzeugen stellt den Athena Operator bereit. Dadurch benötigen
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
"""
|
"""
|
||||||
title: MikeAI Auto Tool Selector
|
title: MikeAI Auto Tool Selector
|
||||||
author: MikeAI
|
author: MikeAI
|
||||||
version: 4.5.0
|
version: 4.6.0
|
||||||
description: Keeps broad web access available and adds relevant portable MCP domains without acting as a gate.
|
description: Keeps broad web access available and adds relevant portable MCP domains without acting as a gate.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@@ -169,7 +169,14 @@ class Filter:
|
|||||||
"A missing, disabled or failed specialist tool is not evidence that a service "
|
"A missing, disabled or failed specialist tool is not evidence that a service "
|
||||||
"does not exist. Use an available broad capability such as native web search or "
|
"does not exist. Use an available broad capability such as native web search or "
|
||||||
"the Athena Operator terminal when it can answer the unresolved question. Never "
|
"the Athena Operator terminal when it can answer the unresolved question. Never "
|
||||||
"duplicate an existing backend; integrate or relay it and report any remaining gap."
|
"duplicate an existing backend; integrate or relay it and report any remaining gap. "
|
||||||
|
"Apply transient-by-default dependency handling: when the user asks to use, run, "
|
||||||
|
"test or try a program, first use an existing executable; if it is missing, obtain "
|
||||||
|
"only a task-local copy under /tmp (or the target tool's temporary workspace), use "
|
||||||
|
"it for this request and remove it after verification. Persist packages, services, "
|
||||||
|
"containers or configuration only when the current request explicitly says install, "
|
||||||
|
"set up, configure permanently or otherwise clearly requests persistence. If the "
|
||||||
|
"wording is ambiguous, keep the dependency transient and state what was done."
|
||||||
)
|
)
|
||||||
if "unraid" in selected and "unraid_admin" in selected and "operator" in selected:
|
if "unraid" in selected and "unraid_admin" in selected and "operator" in selected:
|
||||||
rule += (
|
rule += (
|
||||||
|
|||||||
Reference in New Issue
Block a user