Skip to content

Python: [Feature]: Add timeout parameter to FoundryChatClient #9698

Description

Description

FoundryAgent and the base OpenAI chat clients accept a timeout argument, but FoundryChatClient and RawFoundryChatClient do not. There is no supported way to set an HTTP timeout when constructing a FoundryChatClient.

Callers currently have to reassign the wrapped client after construction:

client = FoundryChatClient(project_endpoint=..., credential=..., model=...)
client.client = client.client.with_options(timeout=60)

This relies on client.client being a reassignable attribute, which is not a documented contract.

Proposal

Add timeout: float | None = None to RawFoundryChatClient.__init__ and FoundryChatClient.__init__, and apply it with openai_client.with_options(timeout=timeout) on the client returned by project_client.get_openai_client(). This mirrors what FoundryAgent already does. When not provided, behavior is unchanged (OpenAI SDK default).

I have a small PR ready (implementation plus unit tests) and will link it here.

Language

Python

Activity

  1. added
    pythonUsage: [Issues, PRs], Target: Python
    triageUsage: [Issues], Target: All issues that still need to be triaged
    on Oct 26, 2026
  2. added
    agentsUsage: [Issues, PRs], Target: Single agent
    foundryUsage: [Issues, PRs], Target: all Foundry integrations
    on Oct 26, 2026
  3. removed
    triageUsage: [Issues], Target: All issues that still need to be triaged
    on Oct 26, 2026
  4. eavanvalkenburg commented on Oct 26, 2026

    @eavanvalkenburg
    Member

    This is a capability core MAF should own: supported HTTP-timeout configuration is broadly useful for users of the first-party Foundry clients. The team will consider this request without a commitment to implementation or timing.

    Before settling the constructor contract, we should confirm omitted/default timeout behavior, handling and ownership of injected clients, and consistency with FoundryAgent. Existing implementation review is tracked in #9699.

  5. eavanvalkenburg commented on Oct 26, 2026

    @eavanvalkenburg
    Member

    /plan Check the public timeout contract against existing PR #9699, which already has maintainer approval, rather than proposing parallel implementation. Preserve omitted/default timeout behavior, confirm caller-owned client lifetimes, and verify consistency with FoundryAgent.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

agentsUsage: [Issues, PRs], Target: Single agentfoundryUsage: [Issues, PRs], Target: all Foundry integrationspythonUsage: [Issues, PRs], Target: Python

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions