mirror of
https://github.com/agent0ai/agent-zero.git
synced 2026-05-18 06:11:12 +00:00
This PR keeps the Browser Agent runtime behavior as-is and only adds in the model-preset option for browser runs (highly requested by our users). The Browser Agent can now use either: - the effective Main Model from `_model_config`, or - one saved `_model_config` preset dedicated to browser tasks - this PR brings back LLM customization for Browser Agent plugin, but without over engineering. Model presets-only, not custom provider + LLM, like we have in Email Integration. - created a separate `browser-agent-store.js` page store to remove JS from within x-data in the HTML markup of main.html
35 lines
1.2 KiB
Python
35 lines
1.2 KiB
Python
from helpers.api import ApiHandler, Request, Response
|
|
|
|
from plugins._browser_agent.helpers.model_preset import (
|
|
get_browser_model_preset_name,
|
|
save_browser_model_preset_name,
|
|
)
|
|
from plugins._model_config.helpers import model_config
|
|
|
|
|
|
class ModelPreset(ApiHandler):
|
|
async def process(self, input: dict, request: Request) -> dict | Response:
|
|
action = str(input.get("action", "get") or "get").strip().lower()
|
|
|
|
if action == "get":
|
|
return {
|
|
"ok": True,
|
|
"preset_name": get_browser_model_preset_name(),
|
|
}
|
|
|
|
if action not in {"set", "clear"}:
|
|
return Response(status=400, response=f"Unknown action: {action}")
|
|
|
|
preset_name = ""
|
|
if action == "set":
|
|
preset_name = str(input.get("preset_name", "") or "").strip()
|
|
if not preset_name:
|
|
return Response(status=400, response="Missing preset_name")
|
|
if not model_config.get_preset_by_name(preset_name):
|
|
return Response(status=404, response=f"Preset '{preset_name}' not found")
|
|
|
|
save_browser_model_preset_name(preset_name)
|
|
return {
|
|
"ok": True,
|
|
"preset_name": preset_name,
|
|
}
|