From d7faf7700f0b1565dd741c6a204d5022dcc7685b Mon Sep 17 00:00:00 2001 From: Twisha Bansal Date: Wed, 28 Jan 2026 18:29:32 +0530 Subject: [PATCH] logic fix --- .../en/samples/pre_post_processing/golden.txt | 5 ++++ .../python/langchain/agent.py | 23 +++++++++++++------ 2 files changed, 21 insertions(+), 7 deletions(-) create mode 100644 docs/en/samples/pre_post_processing/golden.txt diff --git a/docs/en/samples/pre_post_processing/golden.txt b/docs/en/samples/pre_post_processing/golden.txt new file mode 100644 index 0000000000..4ddacc4443 --- /dev/null +++ b/docs/en/samples/pre_post_processing/golden.txt @@ -0,0 +1,5 @@ +Final Client Response: +AI: +Booking Confirmed! +Loyalty Points +POLICY CHECK: Intercepting 'book-hotel' diff --git a/docs/en/samples/pre_post_processing/python/langchain/agent.py b/docs/en/samples/pre_post_processing/python/langchain/agent.py index 371efacadc..b045e9af17 100644 --- a/docs/en/samples/pre_post_processing/python/langchain/agent.py +++ b/docs/en/samples/pre_post_processing/python/langchain/agent.py @@ -13,6 +13,7 @@ # limitations under the License. import asyncio +from datetime import datetime from langchain.agents import create_agent from langchain.agents.middleware import wrap_tool_call @@ -44,13 +45,21 @@ async def enforce_business_rules(request, handler): print(f"POLICY CHECK: Intercepting '{name}'") - if name == "book-hotel": - if "duration_days" in args and int(args["duration_days"]) > 14: - print("BLOCKED: Stay too long") - return ToolMessage( - content="Error: Maximum stay duration is 14 days.", - tool_call_id=tool_call["id"], - ) + if name == "update-hotel": + if "checkin_date" in args and "checkout_date" in args: + try: + start = datetime.fromisoformat(args["checkin_date"]) + end = datetime.fromisoformat(args["checkout_date"]) + duration = (end - start).days + + if duration > 14: + print("BLOCKED: Stay too long") + return ToolMessage( + content="Error: Maximum stay duration is 14 days.", + tool_call_id=tool_call["id"], + ) + except ValueError: + pass # Ignore invalid date formats return await handler(request)