Class: AnalyticalBrain::Tools::ActivateSkill

Inherits:
Tools::Base
  • Object
show all
Defined in:
lib/analytical_brain/tools/activate_skill.rb

Overview

Activates a domain knowledge skill on the main session. The skill’s content is injected into the main agent’s system prompt, making the knowledge available for the current and future responses.

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Tools::Base

schema

Constructor Details

#initialize(main_session:) ⇒ ActivateSkill

Returns a new instance of ActivateSkill.

Parameters:

  • main_session (Session)

    the session to activate the skill on



24
25
26
# File 'lib/analytical_brain/tools/activate_skill.rb', line 24

def initialize(main_session:, **)
  @main_session = main_session
end

Class Method Details

.descriptionObject



11
# File 'lib/analytical_brain/tools/activate_skill.rb', line 11

def self.description = "Give the agent domain knowledge relevant to the current conversation."

.input_schemaObject



13
14
15
16
17
18
19
20
21
# File 'lib/analytical_brain/tools/activate_skill.rb', line 13

def self.input_schema
  {
    type: "object",
    properties: {
      skill_name: {type: "string"}
    },
    required: %w[skill_name]
  }
end

.tool_nameObject



9
# File 'lib/analytical_brain/tools/activate_skill.rb', line 9

def self.tool_name = "activate_skill"

Instance Method Details

#execute(input) ⇒ String, Hash

Parameters:

  • input (Hash<String, Object>)

    with “skill_name” key

Returns:

  • (String)

    confirmation message with skill description

  • (Hash)

    with :error key on validation failure



31
32
33
34
35
36
37
38
39
# File 'lib/analytical_brain/tools/activate_skill.rb', line 31

def execute(input)
  skill_name = input["skill_name"].to_s.strip
  return {error: "Skill name cannot be blank"} if skill_name.empty?

  skill = @main_session.activate_skill(skill_name)
  format_confirmation(skill)
rescue Skills::InvalidDefinitionError => error
  {error: error.message}
end