Class: Gemlings::ManagedAgentTool

Inherits:
Tool
  • Object
show all
Defined in:
lib/gemlings/agent.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Tool

description, inherited, input, inputs, output_type, to_prompt, to_schema, tool_name

Constructor Details

#initialize(agent) ⇒ ManagedAgentTool

Returns a new instance of ManagedAgentTool.



315
316
317
# File 'lib/gemlings/agent.rb', line 315

def initialize(agent)
  @agent = agent
end

Class Method Details

.for(agent) ⇒ Object

Factory that creates an anonymous subclass per agent instance



307
308
309
310
311
312
313
# File 'lib/gemlings/agent.rb', line 307

def self.for(agent)
  klass = Class.new(self) do
    tool_name(agent.name || "agent")
    description(agent.description || "A managed agent")
  end
  klass.new(agent)
end

Instance Method Details

#call(task:, **_kwargs) ⇒ Object



319
320
321
# File 'lib/gemlings/agent.rb', line 319

def call(task:, **_kwargs)
  @agent.run(task)
end