@@ -101,12 +101,19 @@ def upload_file(file_path: str, bucket: str) -> str:
101101 @tool
102102 def query_database (sql : str ) -> str :
103103 """Execute a SQL query on the analytics database."""
104- return f "Query result: 42 rows"
104+ return "Query result: 42 rows"
105105
106106 all_tools = [
107- search_products , get_order_detail , cancel_order , create_refund ,
108- send_notification , get_user_profile , update_inventory ,
109- generate_report , upload_file , query_database ,
107+ search_products ,
108+ get_order_detail ,
109+ cancel_order ,
110+ create_refund ,
111+ send_notification ,
112+ get_user_profile ,
113+ update_inventory ,
114+ generate_report ,
115+ upload_file ,
116+ query_database ,
110117 ]
111118
112119 # -- 핵심: filter_tools 적용 (2줄) --
@@ -199,11 +206,10 @@ def send_notification(user_id: str, message: str) -> str:
199206 """Send push notification to a user."""
200207 return f"Sent to { user_id } "
201208
202- all_tools = [ search_products , get_order_detail , cancel_order ,
203- create_refund , send_notification ]
209+ # 데모용 tool 정의 (실제 적용 코드는 아래 print 블록 참고)
210+ _ = [ search_products , get_order_detail , cancel_order , create_refund , send_notification ]
204211
205212 # -- 핵심: create_agent 교체 --
206- from graph_tool_call .langchain import create_agent as create_filtered_agent
207213
208214 # query_mode="message": 기본값, 추가 LLM 호출 없음 (빠름)
209215 # query_mode="llm": 대화 컨텍스트에서 검색 쿼리 생성 (멀티턴 강함)
@@ -284,27 +290,70 @@ def pattern_c_gateway():
284290 tools (50~500개) → create_gateway_tools() → 2개 meta-tool → agent_core
285291 """
286292 import json
287- from langchain_core .tools import tool
288293
289294 # -- 시뮬레이션: DB에서 가져온 사용자 등록 tool 50개 --
290295 tools = []
291296 tool_categories = {
292- "order" : ["create_order" , "get_order" , "cancel_order" , "update_order" , "list_orders" ,
293- "get_order_status" , "track_shipment" , "confirm_delivery" , "return_order" ,
294- "exchange_order" ],
295- "product" : ["search_products" , "get_product" , "create_product" , "update_product" ,
296- "delete_product" , "get_product_reviews" , "add_product_review" ,
297- "get_product_inventory" , "update_price" , "get_categories" ],
298- "user" : ["get_user" , "create_user" , "update_user" , "delete_user" , "list_users" ,
299- "get_user_orders" , "get_user_wishlist" , "add_to_wishlist" ,
300- "get_user_notifications" , "update_preferences" ],
301- "payment" : ["process_payment" , "create_refund" , "get_payment_status" ,
302- "list_transactions" , "get_invoice" , "send_receipt" ,
303- "validate_coupon" , "apply_discount" , "get_billing_info" ,
304- "update_payment_method" ],
305- "admin" : ["generate_report" , "get_analytics" , "export_data" , "import_data" ,
306- "get_system_status" , "clear_cache" , "send_notification" ,
307- "create_announcement" , "get_audit_log" , "manage_permissions" ],
297+ "order" : [
298+ "create_order" ,
299+ "get_order" ,
300+ "cancel_order" ,
301+ "update_order" ,
302+ "list_orders" ,
303+ "get_order_status" ,
304+ "track_shipment" ,
305+ "confirm_delivery" ,
306+ "return_order" ,
307+ "exchange_order" ,
308+ ],
309+ "product" : [
310+ "search_products" ,
311+ "get_product" ,
312+ "create_product" ,
313+ "update_product" ,
314+ "delete_product" ,
315+ "get_product_reviews" ,
316+ "add_product_review" ,
317+ "get_product_inventory" ,
318+ "update_price" ,
319+ "get_categories" ,
320+ ],
321+ "user" : [
322+ "get_user" ,
323+ "create_user" ,
324+ "update_user" ,
325+ "delete_user" ,
326+ "list_users" ,
327+ "get_user_orders" ,
328+ "get_user_wishlist" ,
329+ "add_to_wishlist" ,
330+ "get_user_notifications" ,
331+ "update_preferences" ,
332+ ],
333+ "payment" : [
334+ "process_payment" ,
335+ "create_refund" ,
336+ "get_payment_status" ,
337+ "list_transactions" ,
338+ "get_invoice" ,
339+ "send_receipt" ,
340+ "validate_coupon" ,
341+ "apply_discount" ,
342+ "get_billing_info" ,
343+ "update_payment_method" ,
344+ ],
345+ "admin" : [
346+ "generate_report" ,
347+ "get_analytics" ,
348+ "export_data" ,
349+ "import_data" ,
350+ "get_system_status" ,
351+ "clear_cache" ,
352+ "send_notification" ,
353+ "create_announcement" ,
354+ "get_audit_log" ,
355+ "manage_permissions" ,
356+ ],
308357 }
309358
310359 for category , tool_names in tool_categories .items ():
@@ -410,7 +459,7 @@ def bonus_multiturn_scenario():
410459 top_name = results [0 ].name if results else "없음"
411460 match = "✓" if top_name == s ["expected" ] else "✗"
412461
413- print (f" 턴 { s [' turn' ]} : \ "{ s [' message' ] } \" " )
462+ print (f' 턴 { s [" turn" ]} : "{ s [" message" ] } "' )
414463 print (f" → message 모드 Top-1: { top_name } { match } " )
415464 if "note" in s :
416465 print (f" ※ { s ['note' ]} " )
0 commit comments