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 recalled message stays in the conversation and evicts naturally from the sliding window.

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



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

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

Class Method Details

.descriptionObject



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

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

.input_schemaObject



13
14
15
16
17
18
19
20
21
# File 'lib/analytical_brain/tools/deactivate_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/deactivate_skill.rb', line 9

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



31
32
33
34
35
36
37
# File 'lib/analytical_brain/tools/deactivate_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?

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