Module: SwarmSDK::V3

Defined in:
lib/swarm_sdk/v3.rb,
lib/swarm_sdk/v3/agent.rb,
lib/swarm_sdk/v3/debug_log.rb,
lib/swarm_sdk/v3/tools/base.rb,
lib/swarm_sdk/v3/tools/bash.rb,
lib/swarm_sdk/v3/tools/edit.rb,
lib/swarm_sdk/v3/tools/glob.rb,
lib/swarm_sdk/v3/tools/grep.rb,
lib/swarm_sdk/v3/tools/read.rb,
lib/swarm_sdk/v3/loop/result.rb,
lib/swarm_sdk/v3/memory/card.rb,
lib/swarm_sdk/v3/memory/edge.rb,
lib/swarm_sdk/v3/tools/clock.rb,
lib/swarm_sdk/v3/tools/think.rb,
lib/swarm_sdk/v3/tools/write.rb,
lib/swarm_sdk/v3/event_stream.rb,
lib/swarm_sdk/v3/hooks/result.rb,
lib/swarm_sdk/v3/hooks/runner.rb,
lib/swarm_sdk/v3/memory/store.rb,
lib/swarm_sdk/v3/agent_builder.rb,
lib/swarm_sdk/v3/configuration.rb,
lib/swarm_sdk/v3/hooks/context.rb,
lib/swarm_sdk/v3/loop/executor.rb,
lib/swarm_sdk/v3/mcp/connector.rb,
lib/swarm_sdk/v3/mcp/mcp_error.rb,
lib/swarm_sdk/v3/skills/loader.rb,
lib/swarm_sdk/v3/loop/iteration.rb,
lib/swarm_sdk/v3/mcp/tool_proxy.rb,
lib/swarm_sdk/v3/memory/cluster.rb,
lib/swarm_sdk/v3/sub_task_agent.rb,
lib/swarm_sdk/v3/tools/registry.rb,
lib/swarm_sdk/v3/tools/sub_task.rb,
lib/swarm_sdk/v3/memory/embedder.rb,
lib/swarm_sdk/v3/skills/manifest.rb,
lib/swarm_sdk/v3/agent_definition.rb,
lib/swarm_sdk/v3/memory/retriever.rb,
lib/swarm_sdk/v3/memory/compressor.rb,
lib/swarm_sdk/v3/tools/message_user.rb,
lib/swarm_sdk/v3/tools/read_tracker.rb,
lib/swarm_sdk/v3/mcp/stdio_transport.rb,
lib/swarm_sdk/v3/memory/consolidator.rb,
lib/swarm_sdk/v3/memory/adapters/base.rb,
lib/swarm_sdk/v3/mcp/server_definition.rb,
lib/swarm_sdk/v3/mcp/ssl_http_transport.rb,
lib/swarm_sdk/v3/memory/context_builder.rb,
lib/swarm_sdk/v3/tools/message_teammate.rb,
lib/swarm_sdk/v3/memory/exposure_tracker.rb,
lib/swarm_sdk/v3/memory/ingestion_pipeline.rb,
lib/swarm_sdk/v3/memory/adapters/vector_utils.rb,
lib/swarm_sdk/v3/memory/adapters/faiss_support.rb,
lib/swarm_sdk/v3/memory/adapters/sqlite_adapter.rb,
lib/swarm_sdk/v3/tools/document_converters/base.rb,
lib/swarm_sdk/v3/memory/adapters/filesystem_adapter.rb,
lib/swarm_sdk/v3/tools/document_converters/pdf_converter.rb,
lib/swarm_sdk/v3/tools/document_converters/docx_converter.rb,
lib/swarm_sdk/v3/tools/document_converters/xlsx_converter.rb

Overview

V3 is the next-generation agent primitive with built-in memory.

Self-contained module with its own Zeitwerk loader and zero dependencies on V2 code. The core insight: the LLM’s context window is a staging area, not the whole brain. Older turns get consolidated into memory cards, and retrieval brings relevant memory back into working context on demand.

Examples:

Basic usage

require "swarm_sdk/v3"

definition = SwarmSDK::V3::AgentDefinition.new(
  name: :assistant,
  description: "A helpful assistant",
  model: "claude-sonnet-4",
  tools: [:Read, :Write, :Edit, :Bash, :Grep, :Glob],
  memory_directory: ".swarm/memory",
)

agent = SwarmSDK::V3::Agent.new(definition)
response = agent.ask("Build a login page")

Without memory (pure conversation)

definition = SwarmSDK::V3::AgentDefinition.new(
  name: :chat,
  description: "Simple chat agent",
  model: "claude-sonnet-4",
)

agent = SwarmSDK::V3::Agent.new(definition)
response = agent.ask("Hello!")

Defined Under Namespace

Modules: DebugLog, EventStream, Hooks, Loop, MCP, Memory, Skills, Tools Classes: Agent, AgentBuilder, AgentDefinition, Configuration, ConfigurationError, Error, MemoryBuilder, MemoryError, SubTaskAgent, ToolExecutionError

Class Method Summary collapse

Class Method Details

.agent { ... } ⇒ Agent

Build a single V3 Agent from a DSL block

Convenience entry point that delegates to SwarmSDK::V3::AgentBuilder.build. Returns an initialized Agent ready for use with SwarmSDK::V3::Agent#ask.

Examples:

agent = SwarmSDK::V3.agent do
  name :assistant
  description "A helpful assistant"
  tools :Read, :Write, :Edit
  streaming true

  memory do
    directory ".swarm/memory"
  end
end

agent.ask("Hello!")

Yields:

Returns:

  • (Agent)

    Initialized agent

Raises:



87
88
89
# File 'lib/swarm_sdk/v3.rb', line 87

def agent(&block)
  AgentBuilder.build(&block)
end

.configurationConfiguration

Access the global configuration instance

Examples:

model = SwarmSDK::V3.configuration.default_model

Returns:



115
116
117
# File 'lib/swarm_sdk/v3.rb', line 115

def configuration
  Configuration.instance
end

.configure {|Configuration| ... } ⇒ Configuration

Configure V3 global settings

Convenience wrapper around SwarmSDK::V3::Configuration.configure. Yields the configuration instance and applies provider settings to RubyLLM.

Examples:

SwarmSDK::V3.configure do |config|
  config.default_model = "claude-sonnet-4"
  config.anthropic_api_key = ENV["ANTHROPIC_API_KEY"]
  config.default_tools = [:Think, :Clock]
end

Yields:

Returns:



105
106
107
# File 'lib/swarm_sdk/v3.rb', line 105

def configure(&block)
  Configuration.configure(&block)
end

.reset_configuration!void

This method returns an undefined value.

Reset configuration to defaults



122
123
124
# File 'lib/swarm_sdk/v3.rb', line 122

def reset_configuration!
  Configuration.reset!
end