Charles Grandjean commited on
Commit
47fa0a5
Β·
1 Parent(s): 102353e

force tool call more logs

Browse files
subagents/doc_editor.py CHANGED
@@ -40,7 +40,9 @@ class DocumentEditorAgent:
40
  self.llm = llm
41
  # All tools are LangChain tools with @tool decorator
42
  self.tools = [replace_html, add_html, delete_html, inspect_document, attempt_completion]
43
- self.llm_with_tools = self.llm.bind_tools(self.tools)
 
 
44
  self.workflow = self._build_workflow()
45
 
46
  def _build_workflow(self) -> StateGraph:
 
40
  self.llm = llm
41
  # All tools are LangChain tools with @tool decorator
42
  self.tools = [replace_html, add_html, delete_html, inspect_document, attempt_completion]
43
+ # Force at least one tool call at each iteration using tool_choice="any"
44
+ self.llm_with_tools = self.llm.bind_tools(self.tools, tool_choice="any")
45
+ logger.info("πŸ”§ Tool binding configured with tool_choice='any' to force tool calls")
46
  self.workflow = self._build_workflow()
47
 
48
  def _build_workflow(self) -> StateGraph:
subagents/pdf_analyzer.py CHANGED
@@ -173,6 +173,15 @@ class PDFAnalyzerAgent:
173
  intermediate_steps.append(response)
174
  state["actors"] = response.content
175
  state["intermediate_steps"] = intermediate_steps
 
 
 
 
 
 
 
 
 
176
  logger.info("βœ… Actors extracted")
177
 
178
  return state
@@ -193,6 +202,15 @@ class PDFAnalyzerAgent:
193
  intermediate_steps.append(response)
194
  state["key_details"] = response.content
195
  state["intermediate_steps"] = intermediate_steps
 
 
 
 
 
 
 
 
 
196
  logger.info("βœ… Key details extracted")
197
 
198
  return state
@@ -214,6 +232,15 @@ class PDFAnalyzerAgent:
214
  state["summary"] = response.content
215
  state["intermediate_steps"] = intermediate_steps
216
  state["processing_status"] = "complete"
 
 
 
 
 
 
 
 
 
217
  logger.info("βœ… Summary generated")
218
 
219
  return state
 
173
  intermediate_steps.append(response)
174
  state["actors"] = response.content
175
  state["intermediate_steps"] = intermediate_steps
176
+
177
+ # Log detailed LLM response
178
+ logger.info("=" * 80)
179
+ logger.info("πŸ€– LLM RESPONSE (extract_actors)")
180
+ logger.info("=" * 80)
181
+ logger.info(f"πŸ“Š Response length: {len(response.content)} characters")
182
+ logger.info(f"πŸ“„ Content preview (first 300 chars):")
183
+ logger.info(response.content[:300] + ("..." if len(response.content) > 300 else ""))
184
+ logger.info("=" * 80)
185
  logger.info("βœ… Actors extracted")
186
 
187
  return state
 
202
  intermediate_steps.append(response)
203
  state["key_details"] = response.content
204
  state["intermediate_steps"] = intermediate_steps
205
+
206
+ # Log detailed LLM response
207
+ logger.info("=" * 80)
208
+ logger.info("πŸ€– LLM RESPONSE (extract_key_details)")
209
+ logger.info("=" * 80)
210
+ logger.info(f"πŸ“Š Response length: {len(response.content)} characters")
211
+ logger.info(f"πŸ“„ Content preview (first 300 chars):")
212
+ logger.info(response.content[:300] + ("..." if len(response.content) > 300 else ""))
213
+ logger.info("=" * 80)
214
  logger.info("βœ… Key details extracted")
215
 
216
  return state
 
232
  state["summary"] = response.content
233
  state["intermediate_steps"] = intermediate_steps
234
  state["processing_status"] = "complete"
235
+
236
+ # Log detailed LLM response
237
+ logger.info("=" * 80)
238
+ logger.info("πŸ€– LLM RESPONSE (generate_summary)")
239
+ logger.info("=" * 80)
240
+ logger.info(f"πŸ“Š Response length: {len(response.content)} characters")
241
+ logger.info(f"πŸ“„ Content preview (first 300 chars):")
242
+ logger.info(response.content[:300] + ("..." if len(response.content) > 300 else ""))
243
+ logger.info("=" * 80)
244
  logger.info("βœ… Summary generated")
245
 
246
  return state