langroid 0.33.10__tar.gz → 0.33.11__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. {langroid-0.33.10 → langroid-0.33.11}/PKG-INFO +1 -1
  2. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/base.py +5 -0
  3. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/chat_agent.py +12 -8
  4. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/task.py +9 -2
  5. {langroid-0.33.10 → langroid-0.33.11}/pyproject.toml +1 -1
  6. {langroid-0.33.10 → langroid-0.33.11}/.gitignore +0 -0
  7. {langroid-0.33.10 → langroid-0.33.11}/LICENSE +0 -0
  8. {langroid-0.33.10 → langroid-0.33.11}/README.md +0 -0
  9. {langroid-0.33.10 → langroid-0.33.11}/langroid/__init__.py +0 -0
  10. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/__init__.py +0 -0
  11. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/batch.py +0 -0
  12. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/callbacks/__init__.py +0 -0
  13. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/callbacks/chainlit.py +0 -0
  14. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/chat_document.py +0 -0
  15. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/openai_assistant.py +0 -0
  16. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/special/__init__.py +0 -0
  17. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/special/arangodb/__init__.py +0 -0
  18. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/special/arangodb/arangodb_agent.py +0 -0
  19. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/special/arangodb/system_messages.py +0 -0
  20. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/special/arangodb/tools.py +0 -0
  21. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/special/arangodb/utils.py +0 -0
  22. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/special/doc_chat_agent.py +0 -0
  23. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/special/lance_doc_chat_agent.py +0 -0
  24. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/special/lance_rag/__init__.py +0 -0
  25. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/special/lance_rag/critic_agent.py +0 -0
  26. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/special/lance_rag/lance_rag_task.py +0 -0
  27. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/special/lance_rag/query_planner_agent.py +0 -0
  28. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/special/lance_tools.py +0 -0
  29. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/special/neo4j/__init__.py +0 -0
  30. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/special/neo4j/csv_kg_chat.py +0 -0
  31. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/special/neo4j/neo4j_chat_agent.py +0 -0
  32. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/special/neo4j/system_messages.py +0 -0
  33. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/special/neo4j/tools.py +0 -0
  34. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/special/relevance_extractor_agent.py +0 -0
  35. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/special/retriever_agent.py +0 -0
  36. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/special/sql/__init__.py +0 -0
  37. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/special/sql/sql_chat_agent.py +0 -0
  38. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/special/sql/utils/__init__.py +0 -0
  39. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/special/sql/utils/description_extractors.py +0 -0
  40. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/special/sql/utils/populate_metadata.py +0 -0
  41. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/special/sql/utils/system_message.py +0 -0
  42. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/special/sql/utils/tools.py +0 -0
  43. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/special/table_chat_agent.py +0 -0
  44. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/tool_message.py +0 -0
  45. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/tools/__init__.py +0 -0
  46. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/tools/duckduckgo_search_tool.py +0 -0
  47. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/tools/file_tools.py +0 -0
  48. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/tools/google_search_tool.py +0 -0
  49. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/tools/metaphor_search_tool.py +0 -0
  50. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/tools/orchestration.py +0 -0
  51. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/tools/recipient_tool.py +0 -0
  52. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/tools/retrieval_tool.py +0 -0
  53. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/tools/rewind_tool.py +0 -0
  54. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/tools/segment_extract_tool.py +0 -0
  55. {langroid-0.33.10 → langroid-0.33.11}/langroid/agent/xml_tool_message.py +0 -0
  56. {langroid-0.33.10 → langroid-0.33.11}/langroid/cachedb/__init__.py +0 -0
  57. {langroid-0.33.10 → langroid-0.33.11}/langroid/cachedb/base.py +0 -0
  58. {langroid-0.33.10 → langroid-0.33.11}/langroid/cachedb/momento_cachedb.py +0 -0
  59. {langroid-0.33.10 → langroid-0.33.11}/langroid/cachedb/redis_cachedb.py +0 -0
  60. {langroid-0.33.10 → langroid-0.33.11}/langroid/embedding_models/__init__.py +0 -0
  61. {langroid-0.33.10 → langroid-0.33.11}/langroid/embedding_models/base.py +0 -0
  62. {langroid-0.33.10 → langroid-0.33.11}/langroid/embedding_models/models.py +0 -0
  63. {langroid-0.33.10 → langroid-0.33.11}/langroid/embedding_models/protoc/__init__.py +0 -0
  64. {langroid-0.33.10 → langroid-0.33.11}/langroid/embedding_models/protoc/embeddings.proto +0 -0
  65. {langroid-0.33.10 → langroid-0.33.11}/langroid/embedding_models/protoc/embeddings_pb2.py +0 -0
  66. {langroid-0.33.10 → langroid-0.33.11}/langroid/embedding_models/protoc/embeddings_pb2.pyi +0 -0
  67. {langroid-0.33.10 → langroid-0.33.11}/langroid/embedding_models/protoc/embeddings_pb2_grpc.py +0 -0
  68. {langroid-0.33.10 → langroid-0.33.11}/langroid/embedding_models/remote_embeds.py +0 -0
  69. {langroid-0.33.10 → langroid-0.33.11}/langroid/exceptions.py +0 -0
  70. {langroid-0.33.10 → langroid-0.33.11}/langroid/language_models/__init__.py +0 -0
  71. {langroid-0.33.10 → langroid-0.33.11}/langroid/language_models/azure_openai.py +0 -0
  72. {langroid-0.33.10 → langroid-0.33.11}/langroid/language_models/base.py +0 -0
  73. {langroid-0.33.10 → langroid-0.33.11}/langroid/language_models/config.py +0 -0
  74. {langroid-0.33.10 → langroid-0.33.11}/langroid/language_models/mock_lm.py +0 -0
  75. {langroid-0.33.10 → langroid-0.33.11}/langroid/language_models/openai_gpt.py +0 -0
  76. {langroid-0.33.10 → langroid-0.33.11}/langroid/language_models/prompt_formatter/__init__.py +0 -0
  77. {langroid-0.33.10 → langroid-0.33.11}/langroid/language_models/prompt_formatter/base.py +0 -0
  78. {langroid-0.33.10 → langroid-0.33.11}/langroid/language_models/prompt_formatter/hf_formatter.py +0 -0
  79. {langroid-0.33.10 → langroid-0.33.11}/langroid/language_models/prompt_formatter/llama2_formatter.py +0 -0
  80. {langroid-0.33.10 → langroid-0.33.11}/langroid/language_models/utils.py +0 -0
  81. {langroid-0.33.10 → langroid-0.33.11}/langroid/mytypes.py +0 -0
  82. {langroid-0.33.10 → langroid-0.33.11}/langroid/parsing/__init__.py +0 -0
  83. {langroid-0.33.10 → langroid-0.33.11}/langroid/parsing/agent_chats.py +0 -0
  84. {langroid-0.33.10 → langroid-0.33.11}/langroid/parsing/code_parser.py +0 -0
  85. {langroid-0.33.10 → langroid-0.33.11}/langroid/parsing/document_parser.py +0 -0
  86. {langroid-0.33.10 → langroid-0.33.11}/langroid/parsing/para_sentence_split.py +0 -0
  87. {langroid-0.33.10 → langroid-0.33.11}/langroid/parsing/parse_json.py +0 -0
  88. {langroid-0.33.10 → langroid-0.33.11}/langroid/parsing/parser.py +0 -0
  89. {langroid-0.33.10 → langroid-0.33.11}/langroid/parsing/repo_loader.py +0 -0
  90. {langroid-0.33.10 → langroid-0.33.11}/langroid/parsing/routing.py +0 -0
  91. {langroid-0.33.10 → langroid-0.33.11}/langroid/parsing/search.py +0 -0
  92. {langroid-0.33.10 → langroid-0.33.11}/langroid/parsing/spider.py +0 -0
  93. {langroid-0.33.10 → langroid-0.33.11}/langroid/parsing/table_loader.py +0 -0
  94. {langroid-0.33.10 → langroid-0.33.11}/langroid/parsing/url_loader.py +0 -0
  95. {langroid-0.33.10 → langroid-0.33.11}/langroid/parsing/urls.py +0 -0
  96. {langroid-0.33.10 → langroid-0.33.11}/langroid/parsing/utils.py +0 -0
  97. {langroid-0.33.10 → langroid-0.33.11}/langroid/parsing/web_search.py +0 -0
  98. {langroid-0.33.10 → langroid-0.33.11}/langroid/prompts/__init__.py +0 -0
  99. {langroid-0.33.10 → langroid-0.33.11}/langroid/prompts/dialog.py +0 -0
  100. {langroid-0.33.10 → langroid-0.33.11}/langroid/prompts/prompts_config.py +0 -0
  101. {langroid-0.33.10 → langroid-0.33.11}/langroid/prompts/templates.py +0 -0
  102. {langroid-0.33.10 → langroid-0.33.11}/langroid/py.typed +0 -0
  103. {langroid-0.33.10 → langroid-0.33.11}/langroid/pydantic_v1/__init__.py +0 -0
  104. {langroid-0.33.10 → langroid-0.33.11}/langroid/pydantic_v1/main.py +0 -0
  105. {langroid-0.33.10 → langroid-0.33.11}/langroid/utils/__init__.py +0 -0
  106. {langroid-0.33.10 → langroid-0.33.11}/langroid/utils/algorithms/__init__.py +0 -0
  107. {langroid-0.33.10 → langroid-0.33.11}/langroid/utils/algorithms/graph.py +0 -0
  108. {langroid-0.33.10 → langroid-0.33.11}/langroid/utils/configuration.py +0 -0
  109. {langroid-0.33.10 → langroid-0.33.11}/langroid/utils/constants.py +0 -0
  110. {langroid-0.33.10 → langroid-0.33.11}/langroid/utils/git_utils.py +0 -0
  111. {langroid-0.33.10 → langroid-0.33.11}/langroid/utils/globals.py +0 -0
  112. {langroid-0.33.10 → langroid-0.33.11}/langroid/utils/logging.py +0 -0
  113. {langroid-0.33.10 → langroid-0.33.11}/langroid/utils/object_registry.py +0 -0
  114. {langroid-0.33.10 → langroid-0.33.11}/langroid/utils/output/__init__.py +0 -0
  115. {langroid-0.33.10 → langroid-0.33.11}/langroid/utils/output/citations.py +0 -0
  116. {langroid-0.33.10 → langroid-0.33.11}/langroid/utils/output/printing.py +0 -0
  117. {langroid-0.33.10 → langroid-0.33.11}/langroid/utils/output/status.py +0 -0
  118. {langroid-0.33.10 → langroid-0.33.11}/langroid/utils/pandas_utils.py +0 -0
  119. {langroid-0.33.10 → langroid-0.33.11}/langroid/utils/pydantic_utils.py +0 -0
  120. {langroid-0.33.10 → langroid-0.33.11}/langroid/utils/system.py +0 -0
  121. {langroid-0.33.10 → langroid-0.33.11}/langroid/utils/types.py +0 -0
  122. {langroid-0.33.10 → langroid-0.33.11}/langroid/vector_store/__init__.py +0 -0
  123. {langroid-0.33.10 → langroid-0.33.11}/langroid/vector_store/base.py +0 -0
  124. {langroid-0.33.10 → langroid-0.33.11}/langroid/vector_store/chromadb.py +0 -0
  125. {langroid-0.33.10 → langroid-0.33.11}/langroid/vector_store/lancedb.py +0 -0
  126. {langroid-0.33.10 → langroid-0.33.11}/langroid/vector_store/meilisearch.py +0 -0
  127. {langroid-0.33.10 → langroid-0.33.11}/langroid/vector_store/momento.py +0 -0
  128. {langroid-0.33.10 → langroid-0.33.11}/langroid/vector_store/qdrantdb.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: langroid
3
- Version: 0.33.10
3
+ Version: 0.33.11
4
4
  Summary: Harness LLMs with Multi-Agent Programming
5
5
  Author-email: Prasad Chalasani <pchalasani@gmail.com>
6
6
  License: MIT
@@ -1039,6 +1039,11 @@ class Agent(ABC):
1039
1039
  """
1040
1040
  if msg is None:
1041
1041
  return False
1042
+ if isinstance(msg, ChatDocument):
1043
+ if len(msg.tool_messages) > 0:
1044
+ return True
1045
+ if msg.metadata.sender != Entity.LLM:
1046
+ return False
1042
1047
  try:
1043
1048
  tools = self.get_tool_messages(msg)
1044
1049
  return len(tools) > 0
@@ -1063,18 +1063,20 @@ class ChatAgent(Agent):
1063
1063
 
1064
1064
  return tools
1065
1065
 
1066
- def _get_any_tool_message(self, optional: bool = True) -> type[ToolMessage]:
1066
+ def _get_any_tool_message(self, optional: bool = True) -> type[ToolMessage] | None:
1067
1067
  """
1068
1068
  Returns a `ToolMessage` which wraps all enabled tools, excluding those
1069
1069
  where strict recovery is disabled. Used in strict recovery.
1070
1070
  """
1071
- any_tool_type = Union[ # type: ignore
1072
- *(
1073
- self.llm_tools_map[t]
1074
- for t in self.llm_tools_usable
1075
- if t not in self.disable_strict_tools_set
1076
- )
1077
- ]
1071
+ possible_tools = tuple(
1072
+ self.llm_tools_map[t]
1073
+ for t in self.llm_tools_usable
1074
+ if t not in self.disable_strict_tools_set
1075
+ )
1076
+ if len(possible_tools) == 0:
1077
+ return None
1078
+ any_tool_type = Union.__getitem__(possible_tools) # type ignore
1079
+
1078
1080
  maybe_optional_type = Optional[any_tool_type] if optional else any_tool_type
1079
1081
 
1080
1082
  class AnyTool(ToolMessage):
@@ -1225,6 +1227,8 @@ class ChatAgent(Agent):
1225
1227
  and self.config.strict_recovery
1226
1228
  ):
1227
1229
  AnyTool = self._get_any_tool_message()
1230
+ if AnyTool is None:
1231
+ return None
1228
1232
  self.set_output_format(
1229
1233
  AnyTool,
1230
1234
  force_tools=True,
@@ -1429,8 +1429,15 @@ class Task:
1429
1429
  else:
1430
1430
  response_fn = self._entity_responder_map[cast(Entity, e)]
1431
1431
  result = response_fn(self.pending_message)
1432
- # update result.tool_messages if any
1433
- if isinstance(result, ChatDocument):
1432
+ # update result.tool_messages if any.
1433
+ # Do this only if sender is LLM, since this could be
1434
+ # a tool-call result from the Agent responder, which may
1435
+ # contain strings that look like tools, and we don't want to
1436
+ # trigger strict tool recovery due to that.
1437
+ if (
1438
+ isinstance(result, ChatDocument)
1439
+ and result.metadata.sender == Entity.LLM
1440
+ ):
1434
1441
  self.agent.try_get_tool_messages(result)
1435
1442
 
1436
1443
  result_chat_doc = self.agent.to_ChatDocument(
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "langroid"
3
- version = "0.33.10"
3
+ version = "0.33.11"
4
4
  authors = [
5
5
  {name = "Prasad Chalasani", email = "pchalasani@gmail.com"},
6
6
  ]
File without changes
File without changes
File without changes
File without changes