3131 DEFALUT_MODEL_AGENT_PROVIDER ,
3232 DEFAULT_MODEL_AGENT_API_BASE ,
3333 DEFAULT_MODEL_AGENT_NAME ,
34+ DEFAULT_MODEL_EXTRA_HEADERS ,
3435)
3536from veadk .evaluation import EvalSetRecorder
3637from veadk .knowledgebase import KnowledgeBase
@@ -73,6 +74,9 @@ class Agent(LlmAgent):
7374 model_api_key : str = Field (default_factory = lambda : getenv ("MODEL_AGENT_API_KEY" ))
7475 """The api key of the model for agent running."""
7576
77+ model_extra_headers : dict = Field (default_factory = dict )
78+ """The extra headers to include in the model requests."""
79+
7680 tools : list [ToolUnion ] = []
7781 """The tools provided to agent."""
7882
@@ -96,11 +100,23 @@ class Agent(LlmAgent):
96100
97101 def model_post_init (self , __context : Any ) -> None :
98102 super ().model_post_init (None ) # for sub_agents init
99- self .model = LiteLlm (
100- model = f"{ self .model_provider } /{ self .model_name } " ,
101- api_key = self .model_api_key ,
102- api_base = self .model_api_base ,
103- )
103+
104+ self .model_extra_headers |= DEFAULT_MODEL_EXTRA_HEADERS
105+
106+ if not self .model :
107+ self .model = LiteLlm (
108+ model = f"{ self .model_provider } /{ self .model_name } " ,
109+ api_key = self .model_api_key ,
110+ api_base = self .model_api_base ,
111+ extra_headers = self .model_extra_headers ,
112+ )
113+ logger .debug (
114+ f"LiteLLM client created with extra headers: { self .model_extra_headers } "
115+ )
116+ else :
117+ logger .warning (
118+ "You are trying to use your own LiteLLM client, some default request headers may be missing."
119+ )
104120
105121 if self .knowledgebase :
106122 from veadk .tools import load_knowledgebase_tool
0 commit comments