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



28
29
30
# File 'lib/analytical_brain/tools/activate_skill.rb', line 28

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

Class Method Details

.descriptionObject



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

def self.description = "Activate a domain knowledge skill on the main session. " \
"The skill's content will be injected into the agent's system prompt."

.input_schemaObject



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

def self.input_schema
  {
    type: "object",
    properties: {
      name: {
        type: "string",
        description: "Name of the skill to activate (from the available skills list)"
      }
    },
    required: %w[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 “name” key

Returns:

  • (String)

    confirmation message with skill description

  • (Hash)

    with :error key on validation failure



35
36
37
38
39
40
41
42
43
# File 'lib/analytical_brain/tools/activate_skill.rb', line 35

def execute(input)
  skill_name = input["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