2
2
Agent API client for the Langbase SDK.
3
3
"""
4
4
5
- from typing import Any , Dict , List , Optional , Union , overload
5
+ from typing import Any , Dict , List , Literal , Optional , Union , overload
6
6
7
7
from langbase .constants import AGENT_RUN_ENDPOINT
8
8
from langbase .request import Request
9
+ from langbase .types import McpServerSchema , Message , ToolChoice , Tools
9
10
from langbase .utils import clean_null_values
10
11
11
12
@@ -17,7 +18,7 @@ def __init__(self, parent):
17
18
@overload
18
19
def run (
19
20
self ,
20
- input : Union [str , List [Dict [ str , Any ] ]],
21
+ input : Union [str , List [Message ]],
21
22
model : str ,
22
23
api_key : str ,
23
24
instructions : Optional [str ] = None ,
@@ -27,14 +28,14 @@ def run(
27
28
presence_penalty : Optional [float ] = None ,
28
29
frequency_penalty : Optional [float ] = None ,
29
30
stop : Optional [List [str ]] = None ,
30
- tools : Optional [List [Dict [ str , Any ] ]] = None ,
31
- tool_choice : Optional [Union [str , Dict [ str , Any ] ]] = None ,
31
+ tools : Optional [List [Tools ]] = None ,
32
+ tool_choice : Optional [Union [Literal [ "auto" , "required" ], ToolChoice ]] = None ,
32
33
parallel_tool_calls : Optional [bool ] = None ,
33
34
reasoning_effort : Optional [str ] = None ,
34
35
max_completion_tokens : Optional [int ] = None ,
35
36
response_format : Optional [Dict [str , Any ]] = None ,
36
37
custom_model_params : Optional [Dict [str , Any ]] = None ,
37
- mcp_servers : Optional [ List [Dict [ str , Any ]] ] = None ,
38
+ mcp_servers : List [McpServerSchema ] = None ,
38
39
* ,
39
40
stream : bool = True ,
40
41
) -> Any :
@@ -44,7 +45,7 @@ def run(
44
45
@overload
45
46
def run (
46
47
self ,
47
- input : Union [str , List [Dict [ str , Any ] ]],
48
+ input : Union [str , List [Message ]],
48
49
model : str ,
49
50
api_key : str ,
50
51
instructions : Optional [str ] = None ,
@@ -54,22 +55,22 @@ def run(
54
55
presence_penalty : Optional [float ] = None ,
55
56
frequency_penalty : Optional [float ] = None ,
56
57
stop : Optional [List [str ]] = None ,
57
- tools : Optional [List [Dict [ str , Any ] ]] = None ,
58
- tool_choice : Optional [Union [str , Dict [ str , Any ] ]] = None ,
58
+ tools : Optional [List [Tools ]] = None ,
59
+ tool_choice : Optional [Union [Literal [ "auto" , "required" ], ToolChoice ]] = None ,
59
60
parallel_tool_calls : Optional [bool ] = None ,
60
61
reasoning_effort : Optional [str ] = None ,
61
62
max_completion_tokens : Optional [int ] = None ,
62
63
response_format : Optional [Dict [str , Any ]] = None ,
63
64
custom_model_params : Optional [Dict [str , Any ]] = None ,
64
- mcp_servers : Optional [ List [Dict [ str , Any ]] ] = None ,
65
+ mcp_servers : List [McpServerSchema ] = None ,
65
66
stream : bool = False ,
66
67
) -> Dict [str , Any ]:
67
68
"""Non-stream overload - returns dict response when stream=False"""
68
69
...
69
70
70
71
def run (
71
72
self ,
72
- input : Union [str , List [Dict [ str , Any ] ]],
73
+ input : Union [str , List [Message ]],
73
74
model : str ,
74
75
api_key : str ,
75
76
instructions : Optional [str ] = None ,
@@ -79,14 +80,14 @@ def run(
79
80
presence_penalty : Optional [float ] = None ,
80
81
frequency_penalty : Optional [float ] = None ,
81
82
stop : Optional [List [str ]] = None ,
82
- tools : Optional [List [Dict [ str , Any ] ]] = None ,
83
- tool_choice : Optional [Union [str , Dict [ str , Any ] ]] = None ,
83
+ tools : Optional [List [Tools ]] = None ,
84
+ tool_choice : Optional [Union [Literal [ "auto" , "required" ], ToolChoice ]] = None ,
84
85
parallel_tool_calls : Optional [bool ] = None ,
85
86
reasoning_effort : Optional [str ] = None ,
86
87
max_completion_tokens : Optional [int ] = None ,
87
88
response_format : Optional [Dict [str , Any ]] = None ,
88
89
custom_model_params : Optional [Dict [str , Any ]] = None ,
89
- mcp_servers : Optional [ List [Dict [ str , Any ]] ] = None ,
90
+ mcp_servers : List [McpServerSchema ] = None ,
90
91
stream : bool = False ,
91
92
) -> Union [Dict [str , Any ], Any ]:
92
93
"""
0 commit comments