Class: SwarmSDK::Agent::SystemPromptBuilder
- Inherits:
-
Object
- Object
- SwarmSDK::Agent::SystemPromptBuilder
- Defined in:
- lib/swarm_sdk/agent/system_prompt_builder.rb
Overview
Builds system prompts for agents
This class encapsulates all system prompt construction logic, including:
- Base system prompt rendering (for coding agents)
- Non-coding base prompt rendering
- Plugin prompt contribution collection
- Combining base and custom prompts
Safety Note for SwarmMemory Integration
This is an INTERNAL helper that receives Definition attributes as input.
Definition remains the single source of truth with all instance variables.
SwarmMemory uses agent_definition.instance_eval { binding } for ERB templating,
which requires all properties to be on Definition object. This helper is safe
because it doesn't affect Definition's structure - it only extracts logic.
Constant Summary collapse
- BASE_SYSTEM_PROMPT_PATH =
File.("../prompts/base_system_prompt.md.erb", __dir__)
Class Method Summary collapse
-
.build(custom_prompt:, coding_agent:, disable_default_tools:, directory:, definition:, disable_environment_info: false) ⇒ String
Build the complete system prompt for an agent.
Instance Method Summary collapse
- #build ⇒ Object
-
#initialize(custom_prompt:, coding_agent:, disable_default_tools:, directory:, definition:, disable_environment_info: false) ⇒ SystemPromptBuilder
constructor
A new instance of SystemPromptBuilder.
Constructor Details
#initialize(custom_prompt:, coding_agent:, disable_default_tools:, directory:, definition:, disable_environment_info: false) ⇒ SystemPromptBuilder
Returns a new instance of SystemPromptBuilder.
46 47 48 49 50 51 52 53 54 |
# File 'lib/swarm_sdk/agent/system_prompt_builder.rb', line 46 def initialize(custom_prompt:, coding_agent:, disable_default_tools:, directory:, definition:, disable_environment_info: false) @custom_prompt = custom_prompt @coding_agent = coding_agent @disable_default_tools = disable_default_tools @directory = directory @definition = definition @disable_environment_info = disable_environment_info end |
Class Method Details
.build(custom_prompt:, coding_agent:, disable_default_tools:, directory:, definition:, disable_environment_info: false) ⇒ String
Build the complete system prompt for an agent
33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/swarm_sdk/agent/system_prompt_builder.rb', line 33 def build(custom_prompt:, coding_agent:, disable_default_tools:, directory:, definition:, disable_environment_info: false) new( custom_prompt: custom_prompt, coding_agent: coding_agent, disable_default_tools: disable_default_tools, directory: directory, definition: definition, disable_environment_info: disable_environment_info, ).build end |
Instance Method Details
#build ⇒ Object
56 57 58 59 60 |
# File 'lib/swarm_sdk/agent/system_prompt_builder.rb', line 56 def build prompt = base_prompt_section prompt = append_plugin_contributions(prompt) prompt end |