diff --git a/agent/display.py b/agent/display.py index e7f074c4e..17595ce27 100644 --- a/agent/display.py +++ b/agent/display.py @@ -31,6 +31,8 @@ def build_tool_preview(tool_name: str, args: dict, max_len: int = 40) -> str: "vision_analyze": "question", "mixture_of_agents": "user_prompt", "skill_view": "name", "skills_list": "category", "schedule_cronjob": "name", + "execute_code": "code", "delegate_task": "goal", + "clarify": "question", "skill_manage": "name", } if tool_name == "process": @@ -97,7 +99,7 @@ def build_tool_preview(tool_name: str, args: dict, max_len: int = 40) -> str: key = primary_args.get(tool_name) if not key: - for fallback_key in ("query", "text", "command", "path", "name", "prompt"): + for fallback_key in ("query", "text", "command", "path", "name", "prompt", "code", "goal"): if fallback_key in args: key = fallback_key break diff --git a/gateway/run.py b/gateway/run.py index 8154b76f1..8db99487e 100644 --- a/gateway/run.py +++ b/gateway/run.py @@ -1672,7 +1672,7 @@ class GatewayRunner: progress_queue = queue.Queue() if tool_progress_enabled else None last_tool = [None] # Mutable container for tracking in closure - def progress_callback(tool_name: str, preview: str = None): + def progress_callback(tool_name: str, preview: str = None, args: dict = None): """Callback invoked by agent when a tool is called.""" if not progress_queue: return @@ -1692,6 +1692,7 @@ class GatewayRunner: "write_file": "✍️", "patch": "🔧", "search": "🔎", + "search_files": "🔎", "list_directory": "📂", "image_generate": "🎨", "text_to_speech": "🔊", @@ -1717,14 +1718,28 @@ class GatewayRunner: "schedule_cronjob": "⏰", "list_cronjobs": "⏰", "remove_cronjob": "⏰", + "execute_code": "🐍", + "delegate_task": "🔀", + "clarify": "❓", + "skill_manage": "📝", } emoji = tool_emojis.get(tool_name, "⚙️") + # Verbose mode: show detailed arguments + if progress_mode == "verbose" and args: + import json as _json + args_str = _json.dumps(args, ensure_ascii=False, default=str) + if len(args_str) > 200: + args_str = args_str[:197] + "..." + msg = f"{emoji} {tool_name}({list(args.keys())})\n{args_str}" + progress_queue.put(msg) + return + if preview: # Truncate preview to keep messages clean - if len(preview) > 40: - preview = preview[:37] + "..." - msg = f"{emoji} {tool_name}... \"{preview}\"" + if len(preview) > 80: + preview = preview[:77] + "..." + msg = f"{emoji} {tool_name}: \"{preview}\"" else: msg = f"{emoji} {tool_name}..." diff --git a/run_agent.py b/run_agent.py index 0b12ce53f..4c60b4bd8 100644 --- a/run_agent.py +++ b/run_agent.py @@ -2442,7 +2442,7 @@ class AIAgent: if self.tool_progress_callback: try: preview = _build_tool_preview(function_name, function_args) - self.tool_progress_callback(function_name, preview) + self.tool_progress_callback(function_name, preview, function_args) except Exception as cb_err: logging.debug(f"Tool progress callback error: {cb_err}")