Class: OpenAISwarm::Agents::ChangeTracker

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby-openai-swarm/agents/change_tracker.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(agent) ⇒ ChangeTracker

Returns a new instance of ChangeTracker.



6
7
8
9
10
# File 'lib/ruby-openai-swarm/agents/change_tracker.rb', line 6

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

Instance Attribute Details

#current_agentObject (readonly)

Returns the value of attribute current_agent.



4
5
6
# File 'lib/ruby-openai-swarm/agents/change_tracker.rb', line 4

def current_agent
  @current_agent
end

#previous_agentObject (readonly)

Returns the value of attribute previous_agent.



4
5
6
# File 'lib/ruby-openai-swarm/agents/change_tracker.rb', line 4

def previous_agent
  @previous_agent
end

#tracking_agents_tool_nameObject (readonly)

Returns the value of attribute tracking_agents_tool_name.



4
5
6
# File 'lib/ruby-openai-swarm/agents/change_tracker.rb', line 4

def tracking_agents_tool_name
  @tracking_agents_tool_name
end

Instance Method Details

#add_tracking_agents_tool_name(tool_name) ⇒ Object



17
18
19
20
21
# File 'lib/ruby-openai-swarm/agents/change_tracker.rb', line 17

def add_tracking_agents_tool_name(tool_name)
  return if tool_name.nil?

  @tracking_agents_tool_name << tool_name
end

#agent_changed?Boolean

Returns:

  • (Boolean)


23
24
25
# File 'lib/ruby-openai-swarm/agents/change_tracker.rb', line 23

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

#switch_agent_reset_message?Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/ruby-openai-swarm/agents/change_tracker.rb', line 27

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

#update(agent) ⇒ Object



12
13
14
15
# File 'lib/ruby-openai-swarm/agents/change_tracker.rb', line 12

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