Adovo

Applied AI

An agent tool description can expose an internal default

Inspect generated callable-object tool descriptions before they reach a model, especially when dataclass defaults include internal settings.

October 28, 2026

An agent's tool description tells the model when and how to use a capability. A reported Agents SDK issue found that wrapping a callable object can pick up an inherited class docstring or a generated dataclass signature instead of the intended __call__ description. In the reproduction, a dataclass description included an internal base URL default. The wrong text is created before a model request is sent.

Inspect the tool contract as model input

During registration, print or assert the final tool name, description, and parameter schema in a safe local test. Compare them with the text approved for model exposure. Include callable classes with abstract bases, dataclasses, named tuples, and plain __call__ methods if your application uses them. The SDK tool guide says docstrings normally provide tool descriptions and that an explicit override is available. What matters is the final generated contract, not the developer's intention.

Remove accidental disclosure

If a generated description contains internal hostnames, defaults, or irrelevant inherited prose, provide a deliberate description override or use a simple function wrapper. Do not put secrets in docstrings or constructor defaults in the first place. Treat tool metadata as text that may be sent to the model provider and may affect tool selection. A nonsensical description can cause a reliability problem even without a secret.

Make registration a checked boundary

Add a small test that fails when the final description changes unexpectedly after a dependency upgrade. Review the issue status and version before assuming the SDK will choose __call__ documentation. This check belongs at agent construction, where the contract is visible and no business action has happened yet.

Adovo’s view

The model acts on the contract it receives, not the one a developer thought they wrote. Tool descriptions are part of the application interface. Inspect them with the same care as an API schema before exposing the agent to real work.

Continue exploring

Applied AI

AgentsState

An approved agent can resume with a different context

Test Pydantic context round trips in an agent approval workflow so resumed actions retain stable keys and changed fields.

Read more

Applied AI

AI agentsTool permissions

Production AI agents need action permissions at the tool boundary

A broad service account turns a helpful agent into an uncontrolled operator. Scope tools, data and approvals to each action.

Read more

Applied AI

LangGraphAgent Workflows

A deferred LangGraph join can run before all branches finish

A deferred join is not a substitute for proving branch completion. Reproduce scheduling behavior and make aggregation safe to rerun.

Read more
Explore applied AI services →