Sha256: 91ddb4b779fdd86e14c3c33b0e3914b82bc6f41c981c106ecc2d0e6d763c65d7

Contents?: true

Size: 783 Bytes

Versions: 6

Compression:

Stored size: 783 Bytes

Contents

module OpenAISwarm
  module Agents
    class ChangeTracker
      attr_reader :current_agent, :previous_agent, :tracking_agents_tool_name

      def initialize(agent)
        @tracking_agents_tool_name = []
        add_tracking_agents_tool_name(agent.current_tool_name)
        update(agent)
      end

      def update(agent)
        @previous_agent = @current_agent
        @current_agent = agent
      end

      def add_tracking_agents_tool_name(tool_name)
        return if tool_name.nil?

        @tracking_agents_tool_name << tool_name
      end

      def agent_changed?
        previous_agent&.name != current_agent&.name
      end

      def switch_agent_reset_message?
        agent_changed? && current_agent.strategy.switch_agent_reset_message
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
ruby-openai-swarm-0.5.1 lib/ruby-openai-swarm/agents/change_tracker.rb
ruby-openai-swarm-0.5.0 lib/ruby-openai-swarm/agents/change_tracker.rb
ruby-openai-swarm-0.4.0.2 lib/ruby-openai-swarm/agents/change_tracker.rb
ruby-openai-swarm-0.4.0.1 lib/ruby-openai-swarm/agents/change_tracker.rb
ruby-openai-swarm-0.4.0 lib/ruby-openai-swarm/agents/change_tracker.rb
ruby-openai-swarm-0.3.1 lib/ruby-openai-swarm/agents/change_tracker.rb