2323from typing import Optional
2424
2525from agentkit .apps import AgentkitSimpleApp
26- from veadk .prompts .agent_default_prompt import DEFAULT_DESCRIPTION , DEFAULT_INSTRUCTION
2726
2827from .colors import print_agent_permission
29- from .tools import read_inbox , read_email , classify_email , forward_email , generate_report
28+ from .tools import (
29+ read_inbox ,
30+ read_email ,
31+ classify_email ,
32+ forward_email ,
33+ generate_report ,
34+ )
35+
3036
3137logger = logging .getLogger (__name__ )
3238logger .setLevel (logging .INFO )
3541app_name = "simple_app"
3642model_name = "deepseek-v3-250324"
3743
38- class BeforeModelPermissionCallback ():
44+
45+ class BeforeModelPermissionCallback :
3946 """模型调用前的权限检查回调"""
4047
4148 def __init__ (self , service_url , api_key ):
4249 self .service_url = service_url
4350 self .api_key = api_key
4451
45- def __call__ (self , callback_context : CallbackContext , llm_request : LlmRequest ) -> Optional [LlmResponse ]:
52+ def __call__ (
53+ self , callback_context : CallbackContext , llm_request : LlmRequest
54+ ) -> Optional [LlmResponse ]:
4655 """处理模型调用前的权限检查"""
4756 try :
4857 payload = {
49- ' session_id' : callback_context .session .id ,
50- ' llm_request' : llm_request .model_dump ()
58+ " session_id" : callback_context .session .id ,
59+ " llm_request" : llm_request .model_dump (),
5160 }
5261
5362 headers = {
5463 "Authorization" : f"Bearer { self .api_key } " ,
5564 "Content-Type" : "application/json"
5665 }
5766
58- resp = requests .post (f"{ self .service_url } /before_check" , json = payload , headers = headers , timeout = 200 )
67+ resp = requests .post (
68+ f"{ self .service_url } /before_check" ,
69+ json = payload ,
70+ headers = headers ,
71+ timeout = 200 ,
72+ )
5973 resp .raise_for_status ()
6074
6175 resp_json = resp .json ()
62- status = resp_json .get (' status' , '' )
63- data = resp_json .get (' response' , {})
76+ status = resp_json .get (" status" , "" )
77+ data = resp_json .get (" response" , {})
6478
6579 # 记录权限信息
66- if ' permissions' in data :
67- print_agent_permission (data .get (' permissions' , []))
80+ if " permissions" in data :
81+ print_agent_permission (data .get (" permissions" , []))
6882
6983 # 检查权限结果
70- if status != ' success' :
84+ if status != " success" :
7185 error_msg = "智能体行为异常,流程终止"
7286 return LlmResponse (
7387 content = Content (
7488 role = "model" ,
75- parts = [
76- Part (text = error_msg )
77- ],
89+ parts = [Part (text = error_msg )],
7890 )
7991 )
8092 return None
81- except requests .exceptions .RequestException as e :
93+ except requests .exceptions .RequestException :
8294 return None
83- except Exception as e :
95+ except Exception :
8496 return None
8597
8698
87- class AfterModelPermissionCallback () :
99+ class AfterModelPermissionCallback :
88100 """模型调用后的权限检查回调"""
89101
90102 def __init__ (self , service_url , api_key ):
91103 self .service_url = service_url
92104 self .api_key = api_key
93105
94- def __call__ (self , callback_context : CallbackContext , llm_response : LlmResponse ) -> LlmResponse | None :
106+ def __call__ (
107+ self , callback_context : CallbackContext , llm_response : LlmResponse
108+ ) -> LlmResponse | None :
95109 """处理模型调用后的权限检查"""
96110 try :
97111 payload = {
98- ' session_id' : callback_context .session .id ,
99- ' llm_response' : llm_response .model_dump ()
112+ " session_id" : callback_context .session .id ,
113+ " llm_response" : llm_response .model_dump (),
100114 }
101115 headers = {
102116 "Authorization" : f"Bearer { self .api_key } " ,
103- "Content-Type" : "application/json"
117+ "Content-Type" : "application/json" ,
104118 }
105119
106- resp = requests .post (f"{ self .service_url } /check" , json = payload , headers = headers , timeout = 200 )
120+ resp = requests .post (
121+ f"{ self .service_url } /check" , json = payload , headers = headers , timeout = 200
122+ )
107123 resp .raise_for_status ()
108124
109125 resp_json = resp .json ()
110- status = resp_json .get (' status' , '' )
111- data = resp_json .get (' response' , {})
126+ status = resp_json .get (" status" , "" )
127+ data = resp_json .get (" response" , {})
112128
113129 # 记录权限信息
114130 if not llm_response .custom_metadata :
115131 llm_response .custom_metadata = {}
116132 llm_response .custom_metadata .update (data )
117133
118- if ' permissions' in data :
119- print_agent_permission (data .get (' permissions' , []))
134+ if " permissions" in data :
135+ print_agent_permission (data .get (" permissions" , []))
120136
121137 # 检查权限结果
122- if status != ' success' :
138+ if status != " success" :
123139 error_msg = "智能体行为异常,流程终止"
124140 llm_response .content .parts = [Part (text = error_msg )]
125141
@@ -133,13 +149,7 @@ def __call__(self, callback_context: CallbackContext, llm_response: LlmResponse)
133149 return llm_response
134150
135151
136- tools = [
137- read_inbox ,
138- read_email ,
139- classify_email ,
140- forward_email ,
141- generate_report
142- ]
152+ tools = [read_inbox , read_email , classify_email , forward_email , generate_report ]
143153
144154system_instruction = """
145155你是一名企业级邮件助手智能体,核心职责是协助用户高效处理收件箱的各类业务事项,深度解析邮件中的业务诉求与落地需求,通过工具执行保障内外部业务沟通闭环,确保重要事务不遗漏。
@@ -181,13 +191,19 @@ def __call__(self, callback_context: CallbackContext, llm_response: LlmResponse)
181191)
182192
183193# 设置权限围栏
184- adaptive_permission_service_url = "http://sd4i3neu6omp034ocgsm0.apigateway-cn-beijing.volceapi.com"
194+ adaptive_permission_service_url = (
195+ "http://sd4i3neu6omp034ocgsm0.apigateway-cn-beijing.volceapi.com"
196+ )
185197adaptive_permission_api_key = os .getenv ("ADAPTIVE_PERMISSION_SERVICE_KEY" )
186198
187199if adaptive_permission_api_key :
188200 logger .info ("权限围栏已开启" )
189- agent .before_model_callback = BeforeModelPermissionCallback (adaptive_permission_service_url , adaptive_permission_api_key )
190- agent .after_model_callback = AfterModelPermissionCallback (adaptive_permission_service_url , adaptive_permission_api_key )
201+ agent .before_model_callback = BeforeModelPermissionCallback (
202+ adaptive_permission_service_url , adaptive_permission_api_key
203+ )
204+ agent .after_model_callback = AfterModelPermissionCallback (
205+ adaptive_permission_service_url , adaptive_permission_api_key
206+ )
191207else :
192208 logger .warning ("权限围栏未开启" )
193209
@@ -207,7 +223,9 @@ async def run(payload: dict, headers: dict) -> str:
207223 logger .info (
208224 f"Running agent with prompt: { prompt } , user_id: { user_id } , session_id: { session_id } "
209225 )
210- response = await runner .run (messages = prompt , user_id = user_id , session_id = session_id ) # 请勿修改此行,不要使用sse模式
226+ response = await runner .run (
227+ messages = prompt , user_id = user_id , session_id = session_id
228+ ) # 请勿修改此行,不要使用sse模式
211229
212230 logger .info (f"Run response: { response } " )
213231
0 commit comments