Class: AnalyticalBrain::Tools::DeactivateSkill

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

Overview

Deactivates a domain knowledge skill on the main session. The skill’s content is removed from the main agent’s system prompt.

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Tools::Base

schema, truncation_threshold

Constructor Details

#initialize(main_session:) ⇒ DeactivateSkill

Returns a new instance of DeactivateSkill.

Parameters:

  • main_session (Session)

    the session to deactivate the skill on



23
24
25
# File 'lib/analytical_brain/tools/deactivate_skill.rb', line 23

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

Class Method Details

.descriptionObject



10
# File 'lib/analytical_brain/tools/deactivate_skill.rb', line 10

def self.description = "Remove domain knowledge that is no longer relevant."

.input_schemaObject



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

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

.tool_nameObject



8
# File 'lib/analytical_brain/tools/deactivate_skill.rb', line 8

def self.tool_name = "deactivate_skill"

Instance Method Details

#execute(input) ⇒ String, Hash

Parameters:

  • input (Hash<String, Object>)

    with “skill_name” key

Returns:

  • (String)

    confirmation message

  • (Hash)

    with :error key on validation failure



30
31
32
33
34
35
36
# File 'lib/analytical_brain/tools/deactivate_skill.rb', line 30

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

  @main_session.deactivate_skill(skill_name)
  "Deactivated skill: #{skill_name}"
end