|  | @@ -1,9 +1,9 @@
 | 
	
		
			
				|  |  | -import os
 | 
	
		
			
				|  |  |  from collections.abc import Mapping, Sequence
 | 
	
		
			
				|  |  |  from typing import Any, Optional, TextIO, Union
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  from pydantic import BaseModel
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +from configs import dify_config
 | 
	
		
			
				|  |  |  from core.ops.entities.trace_entity import TraceTaskName
 | 
	
		
			
				|  |  |  from core.ops.ops_trace_manager import TraceQueueManager, TraceTask
 | 
	
		
			
				|  |  |  from core.tools.entities.tool_entities import ToolInvokeMessage
 | 
	
	
		
			
				|  | @@ -50,7 +50,8 @@ class DifyAgentCallbackHandler(BaseModel):
 | 
	
		
			
				|  |  |          tool_inputs: Mapping[str, Any],
 | 
	
		
			
				|  |  |      ) -> None:
 | 
	
		
			
				|  |  |          """Do nothing."""
 | 
	
		
			
				|  |  | -        print_text("\n[on_tool_start] ToolCall:" + tool_name + "\n" + str(tool_inputs) + "\n", color=self.color)
 | 
	
		
			
				|  |  | +        if dify_config.DEBUG:
 | 
	
		
			
				|  |  | +            print_text("\n[on_tool_start] ToolCall:" + tool_name + "\n" + str(tool_inputs) + "\n", color=self.color)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      def on_tool_end(
 | 
	
		
			
				|  |  |          self,
 | 
	
	
		
			
				|  | @@ -62,11 +63,12 @@ class DifyAgentCallbackHandler(BaseModel):
 | 
	
		
			
				|  |  |          trace_manager: Optional[TraceQueueManager] = None,
 | 
	
		
			
				|  |  |      ) -> None:
 | 
	
		
			
				|  |  |          """If not the final action, print out observation."""
 | 
	
		
			
				|  |  | -        print_text("\n[on_tool_end]\n", color=self.color)
 | 
	
		
			
				|  |  | -        print_text("Tool: " + tool_name + "\n", color=self.color)
 | 
	
		
			
				|  |  | -        print_text("Inputs: " + str(tool_inputs) + "\n", color=self.color)
 | 
	
		
			
				|  |  | -        print_text("Outputs: " + str(tool_outputs)[:1000] + "\n", color=self.color)
 | 
	
		
			
				|  |  | -        print_text("\n")
 | 
	
		
			
				|  |  | +        if dify_config.DEBUG:
 | 
	
		
			
				|  |  | +            print_text("\n[on_tool_end]\n", color=self.color)
 | 
	
		
			
				|  |  | +            print_text("Tool: " + tool_name + "\n", color=self.color)
 | 
	
		
			
				|  |  | +            print_text("Inputs: " + str(tool_inputs) + "\n", color=self.color)
 | 
	
		
			
				|  |  | +            print_text("Outputs: " + str(tool_outputs)[:1000] + "\n", color=self.color)
 | 
	
		
			
				|  |  | +            print_text("\n")
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          if trace_manager:
 | 
	
		
			
				|  |  |              trace_manager.add_trace_task(
 | 
	
	
		
			
				|  | @@ -82,30 +84,33 @@ class DifyAgentCallbackHandler(BaseModel):
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      def on_tool_error(self, error: Union[Exception, KeyboardInterrupt], **kwargs: Any) -> None:
 | 
	
		
			
				|  |  |          """Do nothing."""
 | 
	
		
			
				|  |  | -        print_text("\n[on_tool_error] Error: " + str(error) + "\n", color="red")
 | 
	
		
			
				|  |  | +        if dify_config.DEBUG:
 | 
	
		
			
				|  |  | +            print_text("\n[on_tool_error] Error: " + str(error) + "\n", color="red")
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      def on_agent_start(self, thought: str) -> None:
 | 
	
		
			
				|  |  |          """Run on agent start."""
 | 
	
		
			
				|  |  | -        if thought:
 | 
	
		
			
				|  |  | -            print_text(
 | 
	
		
			
				|  |  | -                "\n[on_agent_start] \nCurrent Loop: " + str(self.current_loop) + "\nThought: " + thought + "\n",
 | 
	
		
			
				|  |  | -                color=self.color,
 | 
	
		
			
				|  |  | -            )
 | 
	
		
			
				|  |  | -        else:
 | 
	
		
			
				|  |  | -            print_text("\n[on_agent_start] \nCurrent Loop: " + str(self.current_loop) + "\n", color=self.color)
 | 
	
		
			
				|  |  | +        if dify_config.DEBUG:
 | 
	
		
			
				|  |  | +            if thought:
 | 
	
		
			
				|  |  | +                print_text(
 | 
	
		
			
				|  |  | +                    "\n[on_agent_start] \nCurrent Loop: " + str(self.current_loop) + "\nThought: " + thought + "\n",
 | 
	
		
			
				|  |  | +                    color=self.color,
 | 
	
		
			
				|  |  | +                )
 | 
	
		
			
				|  |  | +            else:
 | 
	
		
			
				|  |  | +                print_text("\n[on_agent_start] \nCurrent Loop: " + str(self.current_loop) + "\n", color=self.color)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      def on_agent_finish(self, color: Optional[str] = None, **kwargs: Any) -> None:
 | 
	
		
			
				|  |  |          """Run on agent end."""
 | 
	
		
			
				|  |  | -        print_text("\n[on_agent_finish]\n Loop: " + str(self.current_loop) + "\n", color=self.color)
 | 
	
		
			
				|  |  | +        if dify_config.DEBUG:
 | 
	
		
			
				|  |  | +            print_text("\n[on_agent_finish]\n Loop: " + str(self.current_loop) + "\n", color=self.color)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          self.current_loop += 1
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @property
 | 
	
		
			
				|  |  |      def ignore_agent(self) -> bool:
 | 
	
		
			
				|  |  |          """Whether to ignore agent callbacks."""
 | 
	
		
			
				|  |  | -        return not os.environ.get("DEBUG") or os.environ.get("DEBUG").lower() != "true"
 | 
	
		
			
				|  |  | +        return not dify_config.DEBUG
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @property
 | 
	
		
			
				|  |  |      def ignore_chat_model(self) -> bool:
 | 
	
		
			
				|  |  |          """Whether to ignore chat model callbacks."""
 | 
	
		
			
				|  |  | -        return not os.environ.get("DEBUG") or os.environ.get("DEBUG").lower() != "true"
 | 
	
		
			
				|  |  | +        return not dify_config.DEBUG
 |