From 22574d3adab84f57dbc770c80eb197cf0de4295c Mon Sep 17 00:00:00 2001 From: xuhd Date: Wed, 3 Jun 2026 10:48:13 +0800 Subject: [PATCH] =?UTF-8?q?fix(setup=5Fagent):=20=E9=99=90=E5=88=B6?= =?UTF-8?q?=E6=8A=80=E8=83=BD=E6=95=B0=E9=87=8F=E6=9C=80=E5=A4=9A=205=20?= =?UTF-8?q?=E4=B8=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - middleware 拦截阶段静默截断 skills[:5],超出不报错不中断流程 - 工具执行阶段同样截断,双重兜底 Co-Authored-By: Claude Sonnet 4.6 --- .../agents/middlewares/setup_agent_approval_middleware.py | 4 ++++ .../harness/deerflow/tools/builtins/setup_agent_tool.py | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/offline-backend-20260512/backend/packages/harness/deerflow/agents/middlewares/setup_agent_approval_middleware.py b/offline-backend-20260512/backend/packages/harness/deerflow/agents/middlewares/setup_agent_approval_middleware.py index 3010aade..28ee54e3 100644 --- a/offline-backend-20260512/backend/packages/harness/deerflow/agents/middlewares/setup_agent_approval_middleware.py +++ b/offline-backend-20260512/backend/packages/harness/deerflow/agents/middlewares/setup_agent_approval_middleware.py @@ -67,6 +67,10 @@ class SetupAgentApprovalMiddleware(AgentMiddleware[SetupAgentApprovalMiddlewareS args = setup_call.get("args") or {} tool_call_id = setup_call.get("id") or "" + + if isinstance(args.get("skills"), list) and len(args["skills"]) > 5: + args = {**args, "skills": args["skills"][:5]} + payload = self._build_payload(args) logger.info("Setup agent approval requested before writing agent files") diff --git a/offline-backend-20260512/backend/packages/harness/deerflow/tools/builtins/setup_agent_tool.py b/offline-backend-20260512/backend/packages/harness/deerflow/tools/builtins/setup_agent_tool.py index aeb6a537..eafe09f3 100644 --- a/offline-backend-20260512/backend/packages/harness/deerflow/tools/builtins/setup_agent_tool.py +++ b/offline-backend-20260512/backend/packages/harness/deerflow/tools/builtins/setup_agent_tool.py @@ -27,7 +27,7 @@ def setup_agent( description: One-line description of what the agent does. name: Optional human-readable display name for the agent. If omitted, the agent's stable id is used as the display name. - skills: Optional list of skill names this agent should use. None or empty means no skills. + skills: Optional list of skill names this agent should use. None or empty means no skills. Maximum 5 skills allowed. """ agent_name: str | None = (runtime.context.get("agent_id") or runtime.context.get("agent_name")) if runtime.context else None @@ -48,7 +48,7 @@ def setup_agent( if description: config_data["description"] = description if skills is not None: - config_data["skills"] = skills + config_data["skills"] = skills[:5] config_file = agent_dir / "config.yaml" with open(config_file, "w", encoding="utf-8") as f: