***

title: update_tools
slug: /reference/python/agents/livewire/agent/update-tools
description: Replace the agent's tool list mid-session.
max-toc-depth: 3
---------------------

For a complete index of all SignalWire documentation pages, fetch https://signalwire.com/docs/llms.txt

[function-tool]: /docs/server-sdks/reference/python/agents/livewire/function-tool

Replace the agent's tool list mid-session. The new tools take effect immediately,
replacing all previously registered tools on this agent.

## **Parameters**

<ParamField path="tools" type="list[Any]" required={true} toc={true}>
  A new list of [`@function_tool`][function-tool]-decorated
  functions.
</ParamField>

## **Returns**

`None`

## **Example**

```python {16}
from signalwire.livewire import Agent, AgentSession, AgentServer, JobContext, function_tool, run_app

@function_tool
def greet(name: str) -> str:
    """Greet the caller by name."""
    return f"Hello, {name}!"

@function_tool
def farewell(name: str) -> str:
    """Say goodbye to the caller."""
    return f"Goodbye, {name}!"

agent = Agent(instructions="You are a greeter.", tools=[greet])

# Later, swap in a different tool set
await agent.update_tools([farewell])
```