> ## Documentation Index
> Fetch the complete documentation index at: https://praison.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Tool Definitions • AI Agent SDK

> get_tool_definitions: Get OpenAI-compatible tool definitions with dynamic schema overrides applied.

# get\_tool\_definitions

<div className="flex items-center gap-2">
  <Badge color="teal">Function</Badge>
</div>

> This function is defined in the [**registry**](../modules/registry) module.

Get OpenAI-compatible tool definitions with dynamic schema overrides applied.

This is the main entry point for getting tool schemas that respects
dynamic overrides. Called every time tools need to be passed to the LLM.

```mermaid theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#8B0000', 'primaryTextColor': '#fff', 'primaryBorderColor': '#710101', 'lineColor': '#189AB4', 'secondaryColor': '#189AB4', 'tertiaryColor': '#fff' }}}%%

graph LR
    agent["Agent"] -- "uses" --> tool["Tool: get_tool_definitions"]
    tool -- "returns" --> result["Result"]
    style tool fill:#189AB4,color:#fff
    style agent fill:#8B0000,color:#fff
    style result fill:#8B0000,color:#fff
```

## Signature

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
def get_tool_definitions(permission_resolver: Optional[Callable[[str], bool]]) -> List[Dict[str, Any]]
```

## Parameters

<ParamField query="permission_resolver" type="Optional" required={false}>
  Optional `(tool_name) -&gt; bool` filter; denied tools are dropped from the advertised schema (deny = hide).
</ParamField>

### Returns

<ResponseField name="Returns" type="List[Dict[str, Any]]">
  List of OpenAI-compatible tool definition dictionaries
</ResponseField>

## Uses

* `get_tool_definitions`
* `get_registry`

## Used By

* [`get_tool_definitions`](../functions/get_tool_definitions)

## Source

<Card title="View on GitHub" icon="github" href="https://github.com/MervinPraison/PraisonAI/blob/main/src/praisonai-agents/praisonaiagents/tools/registry.py#L642">
  `praisonaiagents/tools/registry.py` at line 642
</Card>

***

## Related Documentation

<CardGroup cols={2}>
  <Card title="Tools Concept" icon="wrench" href="/docs/docs/concepts/tools" />

  <Card title="Create Custom Tools" icon="plus" href="/docs/docs/guides/tools/create-custom-tools" />

  <Card title="Tool Development" icon="code" href="/docs/docs/tutorials/advanced-tool-development" />
</CardGroup>
