From 850d2e2e666e280e089e44cf5f729ee9899cdb6c Mon Sep 17 00:00:00 2001 From: butubb <1422726308@qq.com> Date: Sun, 6 Sep 2026 09:26:53 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9C=80=E5=A4=A7=E6=89=A7=E8=A1=8C?= =?UTF-8?q?=E6=AD=A5=E9=AA=A4=E5=8F=AF=E9=85=8D=E7=BD=AE=E2=80=94=E2=80=94?= =?UTF-8?q?AI=20=E6=8E=A7=E5=88=B6=E5=8F=B0=20=E2=9A=99=20=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E5=BC=B9=E7=AA=97=E6=96=B0=E5=A2=9E=E3=80=8C=E6=9C=80?= =?UTF-8?q?=E5=A4=A7=E6=89=A7=E8=A1=8C=E6=AD=A5=E9=AA=A4=E3=80=8D=E8=BE=93?= =?UTF-8?q?=E5=85=A5=EF=BC=881-200=EF=BC=8C=E9=BB=98=E8=AE=A4=2040?= =?UTF-8?q?=EF=BC=89=EF=BC=8C=E5=AD=98=20app=5Fmeta=EF=BC=88agent=5Fmax=5F?= =?UTF-8?q?steps=EF=BC=89=EF=BC=8CAgent=20=E7=BA=BF=E7=A8=8B=E8=BF=90?= =?UTF-8?q?=E8=A1=8C=E6=97=B6=E8=A6=86=E7=9B=96=20agent.s.max=5Fsteps?= =?UTF-8?q?=EF=BC=9B=E6=AD=A4=E5=89=8D=E4=BB=85=E7=8E=AF=E5=A2=83=E5=8F=98?= =?UTF-8?q?=E9=87=8F=20AGENT=5FMAX=5FSTEPS=20=E5=8F=AF=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- static/admin/agent.js | 2 ++ templates/admin/monitor.html | 3 +++ web/agent_api.py | 7 ++++++- 3 files changed, 11 insertions(+), 1 deletion(-) 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 [])