diff --git a/static/admin/agent.js b/static/admin/agent.js index 082de5e..27bf38c 100644 --- a/static/admin/agent.js +++ b/static/admin/agent.js @@ -40,6 +40,7 @@ function openAgentConfig(){ document.getElementById('acfg-base').value = r.api_base || 'https://api.deepseek.com'; document.getElementById('acfg-model').value = r.model || ''; document.getElementById('acfg-serial').value = r.default_serial || ''; + document.getElementById('acfg-steps').value = r.max_steps || 40; document.getElementById('acfg-key-hint').textContent = r.api_key_masked ? ('已配置 ' + r.api_key_masked) : '未配置'; document.getElementById('acfg-key').value = ''; @@ -54,6 +55,7 @@ function saveAgentConfig(){ api_base: document.getElementById('acfg-base').value.trim(), model: document.getElementById('acfg-model').value.trim(), default_serial: document.getElementById('acfg-serial').value.trim(), + max_steps: document.getElementById('acfg-steps').value.trim(), }; const key = document.getElementById('acfg-key').value.trim(); if(key) body.api_key = key; diff --git a/templates/admin/monitor.html b/templates/admin/monitor.html index 6d81020..d5c4b5f 100644 --- a/templates/admin/monitor.html +++ b/templates/admin/monitor.html @@ -507,6 +507,9 @@ body{background:var(--bg);font-family:var(--body);color:var(--text);font-size:14
+
+
diff --git a/web/agent_api.py b/web/agent_api.py index 1750915..e76adbd 100644 --- a/web/agent_api.py +++ b/web/agent_api.py @@ -35,7 +35,8 @@ bp = Blueprint("agent", __name__) _CFG_KEYS = {"api_base": "agent_api_base", "model": "agent_model", "api_key": "agent_api_key", - "default_serial": "agent_default_serial"} + "default_serial": "agent_default_serial", + "max_steps": "agent_max_steps"} # ---------- 运行状态(单实例 + 事件队列) ---------- _run = {"id": None, "state": "idle", "prompt": "", "serial": "", @@ -614,6 +615,10 @@ def _agent_thread(run_id, prompt, serial, cfg): agent.s.model = cfg.get("model") or agent.s.model agent.s.api_key = cfg.get("api_key") or agent.s.api_key agent.s.default_serial = cfg.get("default_serial") or agent.s.default_serial + try: + agent.s.max_steps = max(1, min(200, int(cfg.get("max_steps") or 40))) + except (TypeError, ValueError): + pass # 非法值用默认 40 with _lock: history = list(_run.get("history") or [])