Packages
claude_code
0.35.0
0.36.5
0.36.4
0.36.3
0.36.2
0.36.1
0.36.0
0.35.0
0.34.0
0.33.1
0.32.2
0.32.0
0.31.0
0.30.0
0.29.0
0.28.0
0.27.0
0.26.0
0.25.0
0.24.0
0.23.0
0.22.0
0.21.0
0.20.0
0.19.0
0.18.0
0.17.0
0.16.0
0.15.0
0.14.0
0.13.3
0.13.2
0.13.1
0.13.0
0.12.0
0.11.0
0.10.0
0.9.0
0.8.1
0.8.0
0.7.0
0.6.0
0.5.0
0.4.0
0.3.0
0.2.0
0.1.0
Claude Agent SDK for Elixir – Build AI agents with Claude Code
Current section
Files
Jump to
Current section
Files
lib/claude_code/session/agent_info.ex
defmodule ClaudeCode.Session.AgentInfo do
@moduledoc """
Information about an available subagent.
Returned as part of the initialization response from the CLI,
describing agents that can be invoked via the Task tool.
## Fields
* `:name` - Agent type identifier (e.g., "Explore")
* `:description` - Description of when to use this agent
* `:model` - Model alias this agent uses (nil if it inherits the parent's model)
"""
use ClaudeCode.JSONEncoder
defstruct [
:name,
:description,
:model
]
@type t :: %__MODULE__{
name: String.t(),
description: String.t(),
model: String.t() | nil
}
@doc """
Creates an AgentInfo from a JSON map.
## Examples
iex> ClaudeCode.Session.AgentInfo.new(%{"name" => "Explore", "description" => "Fast codebase exploration"})
%ClaudeCode.Session.AgentInfo{name: "Explore", description: "Fast codebase exploration", model: nil}
"""
@spec new(map()) :: t()
def new(data) when is_map(data) do
%__MODULE__{
name: data["name"],
description: data["description"],
model: data["model"]
}
end
end