tool_action#

Bases: BaseAction “)

Attributes#

Name

Type

Description

<a href="tool_action.mdx#griptape.common.actions.tool_action.ToolAction.tag" title="tag = field(metadata={'serializable': True}) class-attribute instance-attribute (griptape.common.actions.tool_action.ToolAction.tag)"><code class="language-python">tag</code></a>

str

The tag (unique identifier) of the action.<br/>

<a href="tool_action.mdx#griptape.common.actions.tool_action.ToolAction.name" title="name = field(metadata={'serializable': True}) class-attribute instance-attribute (griptape.common.actions.tool_action.ToolAction.name)"><code class="language-python">name</code></a>

str

The name (Tool name) of the action.<br/>

<a href="tool_action.mdx#griptape.common.actions.tool_action.ToolAction.path" title="path = field(default=None, metadata={'serializable': True}) class-attribute instance-attribute (griptape.common.actions.tool_action.ToolAction.path)"><code class="language-python">path</code></a>

Optional[str]

The path (Tool activity name) of the action.<br/>

<a href="tool_action.mdx#griptape.common.actions.tool_action.ToolAction.input" title="input = field(factory=dict, metadata={'serializable': True}) class-attribute instance-attribute (griptape.common.actions.tool_action.ToolAction.input)"><code class="language-python">input</code></a>

dict

The input (Tool params) of the action.<br/>

<a href="tool_action.mdx#griptape.common.actions.tool_action.ToolAction.tool" title="tool = field(default=None) class-attribute instance-attribute (griptape.common.actions.tool_action.ToolAction.tool)"><code class="language-python">tool</code></a>

<a href="../../tools#griptape.tools.BaseTool" title="BaseTool (griptape.tools.BaseTool)"><code class="language-python">Optional[BaseTool]</code></a>

The matched Tool of the action.<br/>

<a href="tool_action.mdx#griptape.common.actions.tool_action.ToolAction.output" title="output = field(default=None) class-attribute instance-attribute (griptape.common.actions.tool_action.ToolAction.output)"><code class="language-python">output</code></a>

<a href="../../artifacts#griptape.artifacts.BaseArtifact" title="BaseArtifact (griptape.artifacts.BaseArtifact)"><code class="language-python">Optional[BaseArtifact]</code></a>

The output (Tool result) of the action.<br/>

Source Code in griptape/common/actions/tool_action.py

@define(kw_only=True)
class ToolAction(BaseAction):
    """Represents an instance of an LLM using a Tool.

    Attributes:
        tag: The tag (unique identifier) of the action.
        name: The name (Tool name) of the action.
        path: The path (Tool activity name) of the action.
        input: The input (Tool params) of the action.
        tool: The matched Tool of the action.
        output: The output (Tool result) of the action.
    """

    tag: str = field(metadata={"serializable": True})
    name: str = field(metadata={"serializable": True})
    path: Optional[str] = field(default=None, metadata={"serializable": True})
    input: dict = field(factory=dict, metadata={"serializable": True})
    tool: Optional[BaseTool] = field(default=None)
    output: Optional[BaseArtifact] = field(default=None)

    def __str__(self) -> str:
        return json.dumps(self.to_dict())

    def to_native_tool_name(self) -> str:
        parts = [self.name]

        if self.path is not None:
            parts.append(self.path)

        return "_".join(parts)

    @classmethod
    def from_native_tool_name(cls, native_tool_name: str) -> tuple[str, Optional[str]]:
        parts = native_tool_name.split("_", 1)

        if len(parts) == 1:
            name, path = parts[0], None
        else:
            name, path = parts

        return name, path
  • input = field(factory=dict, metadata={'serializable': True}) class-attribute instance-attribute

  • name = field(metadata={'serializable': True}) class-attribute instance-attribute

  • output = field(default=None) class-attribute instance-attribute

  • path = field(default=None, metadata={'serializable': True}) class-attribute instance-attribute

  • tag = field(metadata={'serializable': True}) class-attribute instance-attribute

  • tool = field(default=None) class-attribute instance-attribute

str()#

Source Code in griptape/common/actions/tool_action.py

def __str__(self) -> str:
    return json.dumps(self.to_dict())

from_native_tool_name(native_tool_name)classmethod#

Source Code in griptape/common/actions/tool_action.py

@classmethod
def from_native_tool_name(cls, native_tool_name: str) -> tuple[str, Optional[str]]:
    parts = native_tool_name.split("_", 1)

    if len(parts) == 1:
        name, path = parts[0], None
    else:
        name, path = parts

    return name, path

to_native_tool_name()#

Source Code in griptape/common/actions/tool_action.py

def to_native_tool_name(self) -> str:
    parts = [self.name]

    if self.path is not None:
        parts.append(self.path)

    return "_".join(parts)