@@ -52,6 +52,7 @@ def __init__(
5252 verify_ssl : bool = True ,
5353 session : aiohttp .ClientSession | None = None ,
5454 agent_id : str = "main" ,
55+ debug_logging : bool = False ,
5556 ) -> None :
5657 """Initialize the API client.
5758
@@ -71,6 +72,7 @@ def __init__(
7172 self ._verify_ssl = verify_ssl
7273 self ._session = session
7374 self ._agent_id = agent_id
75+ self ._debug_logging = debug_logging
7476 self ._base_url = f"{ 'https' if use_ssl else 'http' } ://{ host } :{ port } "
7577 # ssl=False disables cert verification for self-signed certs;
7678 # ssl=None uses default verification.
@@ -85,6 +87,20 @@ def update_token(self, token: str) -> None:
8587 """Update the authentication token (e.g., after addon restart)."""
8688 self ._token = token
8789
90+
91+ def _log_request (self , label : str , agent_id : str | None , model : str | None , session_id : str | None , headers : dict [str , str ]) -> None :
92+ if not self ._debug_logging :
93+ return
94+ safe_headers = {k : ("<redacted>" if k .lower () == "authorization" else v ) for k , v in headers .items ()}
95+ _LOGGER .warning (
96+ "OpenClaw API %s: agent=%s model=%s session=%s headers=%s" ,
97+ label ,
98+ agent_id or self ._agent_id or "main" ,
99+ model ,
100+ session_id ,
101+ safe_headers ,
102+ )
103+
88104 def _headers (
89105 self ,
90106 agent_id : str | None = None ,
@@ -239,6 +255,8 @@ async def async_send_message(
239255 session = await self ._get_session ()
240256 url = f"{ self ._base_url } { API_CHAT_COMPLETIONS } "
241257
258+ self ._log_request ("chat" , agent_id , payload .get ("model" ), session_id , headers )
259+
242260 try :
243261 async with session .post (
244262 url ,
@@ -307,6 +325,8 @@ async def async_stream_message(
307325 session = await self ._get_session ()
308326 url = f"{ self ._base_url } { API_CHAT_COMPLETIONS } "
309327
328+ self ._log_request ("chat" , agent_id , payload .get ("model" ), session_id , headers )
329+
310330 try :
311331 async with session .post (
312332 url ,
@@ -372,6 +392,8 @@ async def async_check_connection(self) -> bool:
372392 session = await self ._get_session ()
373393 url = f"{ self ._base_url } { API_CHAT_COMPLETIONS } "
374394
395+ self ._log_request ("chat" , agent_id , payload .get ("model" ), session_id , headers )
396+
375397 try :
376398 async with session .post (
377399 url ,
0 commit comments