quantalogic 0.58.0__tar.gz → 0.59.0__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 (176) hide show
  1. {quantalogic-0.58.0 → quantalogic-0.59.0}/PKG-INFO +124 -30
  2. {quantalogic-0.58.0 → quantalogic-0.59.0}/README.md +123 -29
  3. {quantalogic-0.58.0 → quantalogic-0.59.0}/pyproject.toml +1 -1
  4. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/agent.py +540 -123
  5. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/agent_factory.py +44 -40
  6. quantalogic-0.59.0/quantalogic/config.py +19 -0
  7. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/event_emitter.py +2 -2
  8. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/main.py +81 -5
  9. quantalogic-0.59.0/quantalogic/prompts/chat_system_prompt.j2 +54 -0
  10. quantalogic-0.59.0/quantalogic/task_runner.py +440 -0
  11. quantalogic-0.58.0/quantalogic/config.py +0 -18
  12. quantalogic-0.58.0/quantalogic/task_runner.py +0 -283
  13. {quantalogic-0.58.0 → quantalogic-0.59.0}/LICENSE +0 -0
  14. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/__init__.py +0 -0
  15. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/agent_config.py +0 -0
  16. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/coding_agent.py +0 -0
  17. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/console_print_events.py +0 -0
  18. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/console_print_token.py +0 -0
  19. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/create_custom_agent.py +0 -0
  20. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/docs_cli.py +0 -0
  21. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/flow/__init__.py +0 -0
  22. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/flow/flow.py +0 -0
  23. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/flow/flow_extractor.py +0 -0
  24. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/flow/flow_generator.py +0 -0
  25. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/flow/flow_manager.py +0 -0
  26. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/flow/flow_manager_schema.py +0 -0
  27. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/flow/flow_mermaid.py +0 -0
  28. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/flow/flow_validator.py +0 -0
  29. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/flow/flow_yaml.linkedin.md +0 -0
  30. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/flow/flow_yaml.md +0 -0
  31. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/flow/templates/prompt_check_inventory.j2 +0 -0
  32. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/flow/templates/system_check_inventory.j2 +0 -0
  33. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/generative_model.py +0 -0
  34. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/get_model_info.py +0 -0
  35. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/interactive_text_editor.py +0 -0
  36. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/memory.py +0 -0
  37. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/model_info.py +0 -0
  38. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/model_info_list.py +0 -0
  39. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/model_info_litellm.py +0 -0
  40. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/model_names.py +0 -0
  41. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/prompts/memory_compaction_prompt.j2 +0 -0
  42. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/prompts/observation_response_format.j2 +0 -0
  43. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/prompts/repeated_tool_call_error.j2 +0 -0
  44. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/prompts/system_prompt.j2 +0 -0
  45. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/prompts/task_prompt.j2 +0 -0
  46. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/prompts/task_summary_prompt.j2 +0 -0
  47. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/prompts/tools_prompt.j2 +0 -0
  48. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/prompts/variables_prompt.j2 +0 -0
  49. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/prompts.py +0 -0
  50. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/quantlitellm.py +0 -0
  51. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/search_agent.py +0 -0
  52. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/server/__init__.py +0 -0
  53. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/server/agent_server.py +0 -0
  54. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/server/models.py +0 -0
  55. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/server/routes.py +0 -0
  56. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/server/state.py +0 -0
  57. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/server/static/js/event_visualizer.js +0 -0
  58. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/server/static/js/quantalogic.js +0 -0
  59. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/server/templates/index.html +0 -0
  60. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/task_file_reader.py +0 -0
  61. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tool_manager.py +0 -0
  62. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/__init__.py +0 -0
  63. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/agent_tool.py +0 -0
  64. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/composio/__init__.py +0 -0
  65. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/composio/composio.py +0 -0
  66. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/database/__init__.py +0 -0
  67. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/database/generate_database_report_tool.py +0 -0
  68. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/database/sql_query_tool_advanced.py +0 -0
  69. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/document_tools/__init__.py +0 -0
  70. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/document_tools/markdown_to_docx_tool.py +0 -0
  71. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/document_tools/markdown_to_epub_tool.py +0 -0
  72. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/document_tools/markdown_to_html_tool.py +0 -0
  73. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/document_tools/markdown_to_ipynb_tool.py +0 -0
  74. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/document_tools/markdown_to_latex_tool.py +0 -0
  75. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/document_tools/markdown_to_pdf_tool.py +0 -0
  76. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/document_tools/markdown_to_pptx_tool.py +0 -0
  77. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/download_http_file_tool.py +0 -0
  78. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/duckduckgo_search_tool.py +0 -0
  79. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/edit_whole_content_tool.py +0 -0
  80. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/elixir_tool.py +0 -0
  81. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/execute_bash_command_tool.py +0 -0
  82. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/finance/__init__.py +0 -0
  83. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/finance/alpha_vantage_tool.py +0 -0
  84. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/finance/ccxt_tool.py +0 -0
  85. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/finance/finance_llm_tool.py +0 -0
  86. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/finance/google_finance.py +0 -0
  87. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/finance/market_intelligence_tool.py +0 -0
  88. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/finance/technical_analysis_tool.py +0 -0
  89. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/finance/tradingview_tool.py +0 -0
  90. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/finance/yahoo_finance.py +0 -0
  91. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/git/__init__.py +0 -0
  92. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/git/bitbucket_clone_repo_tool.py +0 -0
  93. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/git/bitbucket_operations_tool.py +0 -0
  94. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/git/clone_repo_tool.py +0 -0
  95. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/git/git_operations_tool.py +0 -0
  96. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/google_packages/__init__.py +0 -0
  97. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/google_packages/google_news_tool.py +0 -0
  98. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/grep_app_tool.py +0 -0
  99. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/image_generation/__init__.py +0 -0
  100. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/image_generation/dalle_e.py +0 -0
  101. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/input_question_tool.py +0 -0
  102. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/jinja_tool.py +0 -0
  103. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/language_handlers/__init__.py +0 -0
  104. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/language_handlers/c_handler.py +0 -0
  105. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/language_handlers/cpp_handler.py +0 -0
  106. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/language_handlers/go_handler.py +0 -0
  107. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/language_handlers/java_handler.py +0 -0
  108. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/language_handlers/javascript_handler.py +0 -0
  109. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/language_handlers/python_handler.py +0 -0
  110. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/language_handlers/rust_handler.py +0 -0
  111. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/language_handlers/scala_handler.py +0 -0
  112. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/language_handlers/typescript_handler.py +0 -0
  113. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/list_directory_tool.py +0 -0
  114. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/llm_tool.py +0 -0
  115. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/llm_vision_tool.py +0 -0
  116. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/markitdown_tool.py +0 -0
  117. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/nasa_packages/__init__.py +0 -0
  118. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/nasa_packages/models.py +0 -0
  119. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/nasa_packages/nasa_apod_tool.py +0 -0
  120. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/nasa_packages/nasa_neows_tool.py +0 -0
  121. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/nasa_packages/services.py +0 -0
  122. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/nodejs_tool.py +0 -0
  123. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/presentation_tools/__init__.py +0 -0
  124. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/presentation_tools/presentation_llm_tool.py +0 -0
  125. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/product_hunt/__init__.py +0 -0
  126. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/product_hunt/product_hunt_tool.py +0 -0
  127. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/product_hunt/services.py +0 -0
  128. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/python_tool.py +0 -0
  129. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/rag_tool/__init__.py +0 -0
  130. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/rag_tool/document_metadata.py +0 -0
  131. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/rag_tool/query_response.py +0 -0
  132. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/rag_tool/rag_tool.py +0 -0
  133. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/rag_tool/rag_tool_beta.py +0 -0
  134. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/read_file_block_tool.py +0 -0
  135. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/read_file_tool.py +0 -0
  136. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/read_html_tool.py +0 -0
  137. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/replace_in_file_tool.py +0 -0
  138. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/ripgrep_tool.py +0 -0
  139. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/safe_python_interpreter_tool.py +0 -0
  140. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/search_definition_names.py +0 -0
  141. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/sequence_tool.py +0 -0
  142. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/serpapi_search_tool.py +0 -0
  143. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/sql_query_tool.py +0 -0
  144. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/task_complete_tool.py +0 -0
  145. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/tool.py +0 -0
  146. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/unified_diff_tool.py +0 -0
  147. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/utilities/__init__.py +0 -0
  148. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/utilities/csv_processor_tool.py +0 -0
  149. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/utilities/download_file_tool.py +0 -0
  150. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/utilities/mermaid_validator_tool.py +0 -0
  151. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/utilities/vscode_tool.py +0 -0
  152. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/utils/__init__.py +0 -0
  153. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/utils/create_sample_database.py +0 -0
  154. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/utils/generate_database_report.py +0 -0
  155. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/wikipedia_search_tool.py +0 -0
  156. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/tools/write_file_tool.py +0 -0
  157. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/utils/__init__.py +0 -0
  158. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/utils/ask_user_validation.py +0 -0
  159. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/utils/async_utils.py +0 -0
  160. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/utils/check_version.py +0 -0
  161. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/utils/download_http_file.py +0 -0
  162. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/utils/get_all_models.py +0 -0
  163. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/utils/get_coding_environment.py +0 -0
  164. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/utils/get_environment.py +0 -0
  165. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/utils/get_quantalogic_rules_content.py +0 -0
  166. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/utils/git_ls.py +0 -0
  167. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/utils/lm_studio_model_info.py +0 -0
  168. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/utils/python_interpreter.py +0 -0
  169. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/utils/read_file.py +0 -0
  170. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/utils/read_http_text_content.py +0 -0
  171. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/utils/xml_utility.py +0 -0
  172. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/version.py +0 -0
  173. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/version_check.py +0 -0
  174. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/welcome_message.py +0 -0
  175. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/xml_parser.py +0 -0
  176. {quantalogic-0.58.0 → quantalogic-0.59.0}/quantalogic/xml_tool_parser.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: quantalogic
3
- Version: 0.58.0
3
+ Version: 0.59.0
4
4
  Summary: QuantaLogic ReAct Agents
5
5
  Author: Raphaël MANSUY
6
6
  Author-email: raphael.mansuy@gmail.com
@@ -47,13 +47,10 @@ Requires-Dist: types-pyyaml (>=6.0.12.20241230,<7.0.0.0)
47
47
  Requires-Dist: typing-extensions (>=4.12.2,<5.0.0)
48
48
  Description-Content-Type: text/markdown
49
49
 
50
- # QuantaLogic
51
-
52
- [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
53
- [![Python](https://img.shields.io/badge/Python-3.12+-blue.svg)](https://www.python.org/downloads/)
50
+ https://img.shields.io/badge/Python-3.12+-blue.svg)](https://www.python.org/downloads/)
54
51
  [![Documentation](https://img.shields.io/badge/docs-latest-brightgreen.svg)](https://quantalogic.github.io/quantalogic/)
55
52
 
56
- Hey there, welcome to **QuantaLogic**—your cosmic toolkit for crafting AI agents and workflows that shine! Whether you’re coding up a storm, automating a business process, or dreaming up something wild, QuantaLogic is here to make it happen. We’re talking **large language models (LLMs)** fused with a stellar toolset, featuring two powerhouse approaches: the **ReAct framework** for dynamic problem-solving and the dazzling new **Flow module** for structured brilliance.
53
+ Hey there, welcome to **QuantaLogic**—your cosmic toolkit for crafting AI agents and workflows that shine! Whether you’re coding up a storm, automating a business process, chatting with a clever assistant, or dreaming up something wild, QuantaLogic is here to make it happen. We’re talking **large language models (LLMs)** fused with a stellar toolset, featuring three powerhouse approaches: the **ReAct framework** for dynamic problem-solving, the dazzling new **Flow module** for structured brilliance, and a shiny **Chat mode** for conversational magic with tool-calling capabilities.
57
54
 
58
55
  Picture this: a CLI that’s as easy as a snap, a Python API that’s pure magic, and a framework that scales from quick hacks to galactic enterprises. Ready to launch? Let’s blast off!
59
56
 
@@ -68,7 +65,7 @@ Picture this: a CLI that’s as easy as a snap, a Python API that’s pure magic
68
65
 
69
66
  ## Why QuantaLogic?
70
67
 
71
- At [QuantaLogic](https://www.quantalogic.app), we spotted a black hole: amazing AI models from OpenAI, Anthropic, and DeepSeek weren’t fully lighting up real-world tasks. Our mission? Ignite that spark! We’re here to make generative AI a breeze for developers, businesses, and dreamers alike—turning ideas into action, one brilliant solution at a time.
68
+ At [QuantaLogic](https://www.quantalogic.app), we spotted a black hole: amazing AI models from OpenAI, Anthropic, and DeepSeek weren’t fully lighting up real-world tasks. Our mission? Ignite that spark! We’re here to make generative AI a breeze for developers, businesses, and dreamers alike—turning ideas into action, one brilliant solution at a time, whether through task-solving, structured workflows, or natural conversation.
72
69
 
73
70
  > "AI should be your co-pilot, not a puzzle. QuantaLogic makes it happen—fast, fun, and fearless!"
74
71
 
@@ -78,6 +75,7 @@ At [QuantaLogic](https://www.quantalogic.app), we spotted a black hole: amazing
78
75
 
79
76
  - **ReAct Framework**: Reasoning + action = unstoppable agents!
80
77
  - **Flow Module**: Structured workflows that flow like a river.
78
+ - **Chat Mode**: Conversational brilliance with tool-calling powers.
81
79
  - **LLM Galaxy**: Tap into OpenAI, DeepSeek, and more via LiteLLM.
82
80
  - **Secure Tools**: Docker-powered safety for code and files.
83
81
  - **Live Monitoring**: Watch it unfold with a web interface and SSE.
@@ -96,7 +94,8 @@ At [QuantaLogic](https://www.quantalogic.app), we spotted a black hole: amazing
96
94
  - [Flow Module: Structured Workflows](#flow-module-structured-workflows)
97
95
  - 📘 **[Workflow YAML DSL Specification](./quantalogic/flow/flow_yaml.md)**: Comprehensive guide to defining powerful, structured workflows using our Domain-Specific Language
98
96
  - 📚 **[Flow YAML Documentation](./quantalogic/flow/flow_yaml)**: Dive into the official documentation for a deeper understanding of Flow YAML and its applications
99
- - [ReAct vs. Flow: Pick Your Power](#react-vs-flow-pick-your-power)
97
+ - [Chat Mode: Conversational Power](#chat-mode-conversational-power)
98
+ - [ReAct vs. Flow vs. Chat: Pick Your Power](#react-vs-flow-vs-chat-pick-your-power)
100
99
  - [Using the CLI](#using-the-cli)
101
100
  - [Examples That Spark Joy](#examples-that-spark-joy)
102
101
  - [Core Components](#core-components)
@@ -148,6 +147,12 @@ quantalogic task "Write a Python function for Fibonacci numbers"
148
147
  ```
149
148
  > Boom! ReAct whips up a solution in seconds.
150
149
 
150
+ ### CLI: Chat Mode
151
+ ```bash
152
+ quantalogic chat --persona "You are a witty space explorer" "Tell me about Mars with a search"
153
+ ```
154
+ > Chat mode engages, uses tools if needed, and delivers a conversational response!
155
+
151
156
  ### Python: ReAct Agent
152
157
  ```python
153
158
  from quantalogic import Agent
@@ -158,8 +163,17 @@ print(result)
158
163
  # Output: "def fib(n): return [0, 1] if n <= 2 else fib(n-1) + [fib(n-1)[-1] + fib(n-1)[-2]]"
159
164
  ```
160
165
 
161
- ### Synchronous Agent Example
166
+ ### Python: Chat Mode
167
+ ```python
168
+ from quantalogic import Agent
162
169
 
170
+ agent = Agent(model_name="gpt-4o", chat_system_prompt="You are a friendly guide")
171
+ response = agent.chat("What's the weather like in Tokyo?")
172
+ print(response)
173
+ # Engages in conversation, potentially calling a weather tool if configured
174
+ ```
175
+
176
+ ### Synchronous Agent Example
163
177
  ```python
164
178
  from quantalogic import Agent
165
179
 
@@ -176,7 +190,6 @@ print(result)
176
190
  ```
177
191
 
178
192
  ### Async Agent Example 🌊
179
-
180
193
  ```python
181
194
  import asyncio
182
195
  from quantalogic import Agent
@@ -400,9 +413,6 @@ print(result["chapter"])
400
413
  ```
401
414
 
402
415
  ### Example: Story Generator Agent
403
-
404
- Here's a more complex example showing a complete story generation workflow using the Flow module:
405
-
406
416
  ```python
407
417
  from typing import List
408
418
  import anyio
@@ -499,22 +509,72 @@ Think content pipelines, automation flows, or any multi-step task that needs ord
499
509
 
500
510
  ---
501
511
 
502
- ## ReAct vs. Flow: Pick Your Power
512
+ ## Chat Mode: Conversational Power
513
+
514
+ The **Chat mode** is your conversational companion—engaging, flexible, and tool-savvy. Built on the same robust ReAct foundation, it lets you chat naturally with an AI persona while seamlessly integrating tool calls when needed. Perfect for interactive dialogues or quick queries with a dash of utility.
515
+
516
+ ### How It Works
517
+ 1. **You Chat**: "What’s the weather like today?"
518
+ 2. **It Responds**: Engages conversationally, deciding if a tool (like a weather lookup) is needed.
519
+ 3. **Tool Magic**: If required, it calls tools using the same XML-based system as ReAct, then weaves the results into the conversation.
520
+ 4. **Keeps Going**: Maintains context for a smooth, flowing chat.
521
+
522
+ ### Example: CLI Chat with Tool Call
523
+ ```bash
524
+ quantalogic chat --persona "You are a helpful travel guide" "Find me flights to Paris"
525
+ ```
526
+ > The agent chats back: "Looking up flights to Paris… Here are some options from a search tool: [flight details]. Anything else I can help with?"
527
+
528
+ ### Example: Python Chat with Tool Call
529
+ ```python
530
+ from quantalogic import Agent
531
+ from quantalogic.tools import DuckDuckGoSearchTool
532
+
533
+ agent = Agent(
534
+ model_name="gpt-4o",
535
+ chat_system_prompt="You are a curious explorer",
536
+ tools=[DuckDuckGoSearchTool()]
537
+ )
538
+ response = agent.chat("Tell me about the tallest mountain")
539
+ print(response)
540
+ # Might output: "I’ll look that up! The tallest mountain is Mount Everest, standing at 8,848 meters, according to a quick search."
541
+ ```
542
+
543
+ ### Tool Integration
544
+ Chat mode uses the same tool-calling mechanism as ReAct:
545
+ ```xml
546
+ <action>
547
+ <duckduckgo_tool>
548
+ <query>tallest mountain</query>
549
+ <max_results>5</max_results>
550
+ </duckduckgo_tool>
551
+ </action>
552
+ ```
553
+ - Tools are auto-executed (configurable with `--auto-tool-call`) and results are formatted naturally.
554
+ - Prioritize specific tools with `--tool-mode` (e.g., `search` or `code`).
555
+
556
+ ### Why It’s Awesome
557
+ Ideal for casual chats, quick info lookups, or interactive assistance with tool-powered precision—without the rigid task-solving structure of ReAct.
558
+
559
+ ---
560
+
561
+ ## ReAct vs. Flow vs. Chat: Pick Your Power
503
562
 
504
- Both are stellar, but here’s the scoop:
563
+ All three modes are stellar, but here’s the scoop:
505
564
 
506
- | Feature | ReAct Framework | Flow Module |
507
- |---------------------|--------------------------------|--------------------------------|
508
- | **Vibe** | Free-spirited, adaptive | Organized, predictable |
509
- | **Flow** | Loops ‘til it’s solved | Follows a roadmap |
510
- | **Sweet Spot** | Creative chaos (coding, Q&A) | Steady workflows (pipelines) |
511
- | **State** | Memory keeps it loose | Nodes lock it down |
512
- | **Tools** | Grabbed as needed | Baked into nodes |
513
- | **Watch It** | Events like `task_complete` | Observers like `NODE_STARTED` |
565
+ | Feature | ReAct Framework | Flow Module | Chat Mode |
566
+ |---------------------|--------------------------|--------------------------|--------------------------|
567
+ | **Vibe** | Free-spirited, adaptive | Organized, predictable | Conversational, flexible |
568
+ | **Flow** | Loops ‘til it’s solved | Follows a roadmap | Flows with the chat |
569
+ | **Sweet Spot** | Creative chaos (coding, Q&A) | Steady workflows (pipelines) | Casual chats, quick queries |
570
+ | **State** | Memory keeps it loose | Nodes lock it down | Context keeps it flowing |
571
+ | **Tools** | Grabbed as needed | Baked into nodes | Called when relevant |
572
+ | **Watch It** | Events like `task_complete` | Observers like `NODE_STARTED` | Events like `chat_response` |
514
573
 
515
574
  ### When to Choose
516
575
  - **ReAct**: Code on-the-fly, explore answers, debug like a pro.
517
576
  - **Flow**: Build a pipeline, automate a process, keep it tight.
577
+ - **Chat**: Converse naturally, get quick answers, use tools on demand.
518
578
 
519
579
  ---
520
580
 
@@ -542,6 +602,10 @@ Use a `.env` file or export these variables in your shell for seamless integrati
542
602
  ```bash
543
603
  quantalogic task "Summarize this file" --file notes.txt
544
604
  ```
605
+ - **`chat`**: Start a conversation.
606
+ ```bash
607
+ quantalogic chat --persona "You are a tech guru" "What’s new in AI?"
608
+ ```
545
609
  - **`list-models`**: List supported LiteLLM models with optional fuzzy search.
546
610
  ```bash
547
611
  quantalogic list-models --search "gpt"
@@ -556,14 +620,17 @@ Use a `.env` file or export these variables in your shell for seamless integrati
556
620
  - `deepseek/deepseek-reasoner`
557
621
  - `openrouter/deepseek/deepseek-r1`
558
622
  - `openrouter/openai/gpt-4o`
559
- - **`--mode [code|basic|interpreter|full|code-basic|search|search-full]`**: Agent mode
623
+ - **`--mode [code|basic|interpreter|full|code-basic|search|search-full|chat]`**: Agent mode
560
624
  - **`--vision-model-name TEXT`**: Specify the vision model to use (litellm format)
561
625
  - **`--log [info|debug|warning]`**: Set logging level
562
626
  - **`--verbose`**: Enable verbose output
563
- - **`--max-iterations INTEGER`**: Maximum number of iterations (default: 30)
627
+ - **`--max-iterations INTEGER`**: Maximum number of iterations (default: 30, task mode only)
564
628
  - **`--max-tokens-working-memory INTEGER`**: Set the maximum tokens allowed in working memory
565
629
  - **`--compact-every-n-iteration INTEGER`**: Set the frequency of memory compaction
566
630
  - **`--thinking-model TEXT`**: The thinking model to use
631
+ - **`--persona TEXT`**: Set the chat persona (chat mode only)
632
+ - **`--tool-mode TEXT`**: Prioritize a tool or toolset (chat mode only)
633
+ - **`--auto-tool-call`**: Enable/disable auto tool execution (chat mode only, default: True)
567
634
  - **`--version`**: Show version information
568
635
 
569
636
  > **Tip**: Run `quantalogic --help` for the complete command reference!
@@ -608,6 +675,12 @@ quantalogic task "Solve 2x + 5 = 15"
608
675
  ```
609
676
  > Output: "Let’s solve it! 2x + 5 = 15 → 2x = 10 → x = 5. Done!"
610
677
 
678
+ ### Bonus: Chat Query
679
+ ```bash
680
+ quantalogic chat "Search for the latest AI breakthroughs"
681
+ ```
682
+ > Output: "I’ll dig into that! Here’s what I found with a search: [latest AI news]. Pretty cool, right?"
683
+
611
684
  ---
612
685
 
613
686
  ## Core Components
@@ -621,6 +694,11 @@ quantalogic task "Solve 2x + 5 = 15"
621
694
  - **Nodes**: Your task blocks.
622
695
  - **Engine**: The maestro of execution.
623
696
 
697
+ ### Chat Mode
698
+ - **Persona**: Customizable conversational style.
699
+ - **Tools**: Integrated seamlessly via ReAct’s system.
700
+ - **Context**: Keeps the conversation flowing.
701
+
624
702
  ### Tools Arsenal
625
703
  - **Code**: `PythonTool`, `NodeJsTool`.
626
704
  - **Files**: `ReadFileTool`, `WriteFileTool`.
@@ -679,9 +757,6 @@ result = weather_tool.execute(city="New York") # Execute as a tool
679
757
  ```
680
758
 
681
759
  #### Using Custom Tools with ReAct Agent
682
-
683
- Here's how to integrate custom tools with a ReAct Agent:
684
-
685
760
  ```python
686
761
  from quantalogic import Agent
687
762
  from quantalogic.tools import create_tool, PythonTool
@@ -720,7 +795,26 @@ result = agent.solve_task(
720
795
  print(result)
721
796
  ```
722
797
 
723
- In this example, the agent can seamlessly use both the standard `PythonTool` and your custom stock price lookup tool to complete the task.
798
+ #### Using Custom Tools in Chat Mode
799
+ ```python
800
+ from quantalogic import Agent
801
+ from quantalogic.tools import create_tool
802
+
803
+ # Reuse the stock price tool
804
+ stock_tool = create_tool(get_stock_price)
805
+
806
+ # Create a chat agent
807
+ agent = Agent(
808
+ model_name="gpt-4o",
809
+ chat_system_prompt="You are a financial advisor",
810
+ tools=[stock_tool]
811
+ )
812
+
813
+ # Chat with tool usage
814
+ response = agent.chat("What’s the price of Microsoft stock?")
815
+ print(response)
816
+ # Might output: "Let me check that for you! MSFT is currently trading at $425.27."
817
+ ```
724
818
 
725
819
  Key features of `create_tool()`:
726
820
  - 🔧 Automatically converts functions to Tools
@@ -795,5 +889,5 @@ export LM_STUDIO_API_KEY="lm-your-key"
795
889
 
796
890
  ## Final Boost
797
891
 
798
- QuantaLogic is your ticket to AI awesomeness. Install it, play with it, and let’s build something unforgettable together!
892
+ QuantaLogic is your ticket to AI awesomeness. Install it, play with it—whether solving tasks, crafting workflows, or chatting up a storm—and let’s build something unforgettable together!
799
893
 
@@ -1,10 +1,7 @@
1
- # QuantaLogic
2
-
3
- [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
4
- [![Python](https://img.shields.io/badge/Python-3.12+-blue.svg)](https://www.python.org/downloads/)
1
+ https://img.shields.io/badge/Python-3.12+-blue.svg)](https://www.python.org/downloads/)
5
2
  [![Documentation](https://img.shields.io/badge/docs-latest-brightgreen.svg)](https://quantalogic.github.io/quantalogic/)
6
3
 
7
- Hey there, welcome to **QuantaLogic**—your cosmic toolkit for crafting AI agents and workflows that shine! Whether you’re coding up a storm, automating a business process, or dreaming up something wild, QuantaLogic is here to make it happen. We’re talking **large language models (LLMs)** fused with a stellar toolset, featuring two powerhouse approaches: the **ReAct framework** for dynamic problem-solving and the dazzling new **Flow module** for structured brilliance.
4
+ Hey there, welcome to **QuantaLogic**—your cosmic toolkit for crafting AI agents and workflows that shine! Whether you’re coding up a storm, automating a business process, chatting with a clever assistant, or dreaming up something wild, QuantaLogic is here to make it happen. We’re talking **large language models (LLMs)** fused with a stellar toolset, featuring three powerhouse approaches: the **ReAct framework** for dynamic problem-solving, the dazzling new **Flow module** for structured brilliance, and a shiny **Chat mode** for conversational magic with tool-calling capabilities.
8
5
 
9
6
  Picture this: a CLI that’s as easy as a snap, a Python API that’s pure magic, and a framework that scales from quick hacks to galactic enterprises. Ready to launch? Let’s blast off!
10
7
 
@@ -19,7 +16,7 @@ Picture this: a CLI that’s as easy as a snap, a Python API that’s pure magic
19
16
 
20
17
  ## Why QuantaLogic?
21
18
 
22
- At [QuantaLogic](https://www.quantalogic.app), we spotted a black hole: amazing AI models from OpenAI, Anthropic, and DeepSeek weren’t fully lighting up real-world tasks. Our mission? Ignite that spark! We’re here to make generative AI a breeze for developers, businesses, and dreamers alike—turning ideas into action, one brilliant solution at a time.
19
+ At [QuantaLogic](https://www.quantalogic.app), we spotted a black hole: amazing AI models from OpenAI, Anthropic, and DeepSeek weren’t fully lighting up real-world tasks. Our mission? Ignite that spark! We’re here to make generative AI a breeze for developers, businesses, and dreamers alike—turning ideas into action, one brilliant solution at a time, whether through task-solving, structured workflows, or natural conversation.
23
20
 
24
21
  > "AI should be your co-pilot, not a puzzle. QuantaLogic makes it happen—fast, fun, and fearless!"
25
22
 
@@ -29,6 +26,7 @@ At [QuantaLogic](https://www.quantalogic.app), we spotted a black hole: amazing
29
26
 
30
27
  - **ReAct Framework**: Reasoning + action = unstoppable agents!
31
28
  - **Flow Module**: Structured workflows that flow like a river.
29
+ - **Chat Mode**: Conversational brilliance with tool-calling powers.
32
30
  - **LLM Galaxy**: Tap into OpenAI, DeepSeek, and more via LiteLLM.
33
31
  - **Secure Tools**: Docker-powered safety for code and files.
34
32
  - **Live Monitoring**: Watch it unfold with a web interface and SSE.
@@ -47,7 +45,8 @@ At [QuantaLogic](https://www.quantalogic.app), we spotted a black hole: amazing
47
45
  - [Flow Module: Structured Workflows](#flow-module-structured-workflows)
48
46
  - 📘 **[Workflow YAML DSL Specification](./quantalogic/flow/flow_yaml.md)**: Comprehensive guide to defining powerful, structured workflows using our Domain-Specific Language
49
47
  - 📚 **[Flow YAML Documentation](./quantalogic/flow/flow_yaml)**: Dive into the official documentation for a deeper understanding of Flow YAML and its applications
50
- - [ReAct vs. Flow: Pick Your Power](#react-vs-flow-pick-your-power)
48
+ - [Chat Mode: Conversational Power](#chat-mode-conversational-power)
49
+ - [ReAct vs. Flow vs. Chat: Pick Your Power](#react-vs-flow-vs-chat-pick-your-power)
51
50
  - [Using the CLI](#using-the-cli)
52
51
  - [Examples That Spark Joy](#examples-that-spark-joy)
53
52
  - [Core Components](#core-components)
@@ -99,6 +98,12 @@ quantalogic task "Write a Python function for Fibonacci numbers"
99
98
  ```
100
99
  > Boom! ReAct whips up a solution in seconds.
101
100
 
101
+ ### CLI: Chat Mode
102
+ ```bash
103
+ quantalogic chat --persona "You are a witty space explorer" "Tell me about Mars with a search"
104
+ ```
105
+ > Chat mode engages, uses tools if needed, and delivers a conversational response!
106
+
102
107
  ### Python: ReAct Agent
103
108
  ```python
104
109
  from quantalogic import Agent
@@ -109,8 +114,17 @@ print(result)
109
114
  # Output: "def fib(n): return [0, 1] if n <= 2 else fib(n-1) + [fib(n-1)[-1] + fib(n-1)[-2]]"
110
115
  ```
111
116
 
112
- ### Synchronous Agent Example
117
+ ### Python: Chat Mode
118
+ ```python
119
+ from quantalogic import Agent
113
120
 
121
+ agent = Agent(model_name="gpt-4o", chat_system_prompt="You are a friendly guide")
122
+ response = agent.chat("What's the weather like in Tokyo?")
123
+ print(response)
124
+ # Engages in conversation, potentially calling a weather tool if configured
125
+ ```
126
+
127
+ ### Synchronous Agent Example
114
128
  ```python
115
129
  from quantalogic import Agent
116
130
 
@@ -127,7 +141,6 @@ print(result)
127
141
  ```
128
142
 
129
143
  ### Async Agent Example 🌊
130
-
131
144
  ```python
132
145
  import asyncio
133
146
  from quantalogic import Agent
@@ -351,9 +364,6 @@ print(result["chapter"])
351
364
  ```
352
365
 
353
366
  ### Example: Story Generator Agent
354
-
355
- Here's a more complex example showing a complete story generation workflow using the Flow module:
356
-
357
367
  ```python
358
368
  from typing import List
359
369
  import anyio
@@ -450,22 +460,72 @@ Think content pipelines, automation flows, or any multi-step task that needs ord
450
460
 
451
461
  ---
452
462
 
453
- ## ReAct vs. Flow: Pick Your Power
463
+ ## Chat Mode: Conversational Power
464
+
465
+ The **Chat mode** is your conversational companion—engaging, flexible, and tool-savvy. Built on the same robust ReAct foundation, it lets you chat naturally with an AI persona while seamlessly integrating tool calls when needed. Perfect for interactive dialogues or quick queries with a dash of utility.
466
+
467
+ ### How It Works
468
+ 1. **You Chat**: "What’s the weather like today?"
469
+ 2. **It Responds**: Engages conversationally, deciding if a tool (like a weather lookup) is needed.
470
+ 3. **Tool Magic**: If required, it calls tools using the same XML-based system as ReAct, then weaves the results into the conversation.
471
+ 4. **Keeps Going**: Maintains context for a smooth, flowing chat.
472
+
473
+ ### Example: CLI Chat with Tool Call
474
+ ```bash
475
+ quantalogic chat --persona "You are a helpful travel guide" "Find me flights to Paris"
476
+ ```
477
+ > The agent chats back: "Looking up flights to Paris… Here are some options from a search tool: [flight details]. Anything else I can help with?"
478
+
479
+ ### Example: Python Chat with Tool Call
480
+ ```python
481
+ from quantalogic import Agent
482
+ from quantalogic.tools import DuckDuckGoSearchTool
483
+
484
+ agent = Agent(
485
+ model_name="gpt-4o",
486
+ chat_system_prompt="You are a curious explorer",
487
+ tools=[DuckDuckGoSearchTool()]
488
+ )
489
+ response = agent.chat("Tell me about the tallest mountain")
490
+ print(response)
491
+ # Might output: "I’ll look that up! The tallest mountain is Mount Everest, standing at 8,848 meters, according to a quick search."
492
+ ```
493
+
494
+ ### Tool Integration
495
+ Chat mode uses the same tool-calling mechanism as ReAct:
496
+ ```xml
497
+ <action>
498
+ <duckduckgo_tool>
499
+ <query>tallest mountain</query>
500
+ <max_results>5</max_results>
501
+ </duckduckgo_tool>
502
+ </action>
503
+ ```
504
+ - Tools are auto-executed (configurable with `--auto-tool-call`) and results are formatted naturally.
505
+ - Prioritize specific tools with `--tool-mode` (e.g., `search` or `code`).
506
+
507
+ ### Why It’s Awesome
508
+ Ideal for casual chats, quick info lookups, or interactive assistance with tool-powered precision—without the rigid task-solving structure of ReAct.
509
+
510
+ ---
511
+
512
+ ## ReAct vs. Flow vs. Chat: Pick Your Power
454
513
 
455
- Both are stellar, but here’s the scoop:
514
+ All three modes are stellar, but here’s the scoop:
456
515
 
457
- | Feature | ReAct Framework | Flow Module |
458
- |---------------------|--------------------------------|--------------------------------|
459
- | **Vibe** | Free-spirited, adaptive | Organized, predictable |
460
- | **Flow** | Loops ‘til it’s solved | Follows a roadmap |
461
- | **Sweet Spot** | Creative chaos (coding, Q&A) | Steady workflows (pipelines) |
462
- | **State** | Memory keeps it loose | Nodes lock it down |
463
- | **Tools** | Grabbed as needed | Baked into nodes |
464
- | **Watch It** | Events like `task_complete` | Observers like `NODE_STARTED` |
516
+ | Feature | ReAct Framework | Flow Module | Chat Mode |
517
+ |---------------------|--------------------------|--------------------------|--------------------------|
518
+ | **Vibe** | Free-spirited, adaptive | Organized, predictable | Conversational, flexible |
519
+ | **Flow** | Loops ‘til it’s solved | Follows a roadmap | Flows with the chat |
520
+ | **Sweet Spot** | Creative chaos (coding, Q&A) | Steady workflows (pipelines) | Casual chats, quick queries |
521
+ | **State** | Memory keeps it loose | Nodes lock it down | Context keeps it flowing |
522
+ | **Tools** | Grabbed as needed | Baked into nodes | Called when relevant |
523
+ | **Watch It** | Events like `task_complete` | Observers like `NODE_STARTED` | Events like `chat_response` |
465
524
 
466
525
  ### When to Choose
467
526
  - **ReAct**: Code on-the-fly, explore answers, debug like a pro.
468
527
  - **Flow**: Build a pipeline, automate a process, keep it tight.
528
+ - **Chat**: Converse naturally, get quick answers, use tools on demand.
469
529
 
470
530
  ---
471
531
 
@@ -493,6 +553,10 @@ Use a `.env` file or export these variables in your shell for seamless integrati
493
553
  ```bash
494
554
  quantalogic task "Summarize this file" --file notes.txt
495
555
  ```
556
+ - **`chat`**: Start a conversation.
557
+ ```bash
558
+ quantalogic chat --persona "You are a tech guru" "What’s new in AI?"
559
+ ```
496
560
  - **`list-models`**: List supported LiteLLM models with optional fuzzy search.
497
561
  ```bash
498
562
  quantalogic list-models --search "gpt"
@@ -507,14 +571,17 @@ Use a `.env` file or export these variables in your shell for seamless integrati
507
571
  - `deepseek/deepseek-reasoner`
508
572
  - `openrouter/deepseek/deepseek-r1`
509
573
  - `openrouter/openai/gpt-4o`
510
- - **`--mode [code|basic|interpreter|full|code-basic|search|search-full]`**: Agent mode
574
+ - **`--mode [code|basic|interpreter|full|code-basic|search|search-full|chat]`**: Agent mode
511
575
  - **`--vision-model-name TEXT`**: Specify the vision model to use (litellm format)
512
576
  - **`--log [info|debug|warning]`**: Set logging level
513
577
  - **`--verbose`**: Enable verbose output
514
- - **`--max-iterations INTEGER`**: Maximum number of iterations (default: 30)
578
+ - **`--max-iterations INTEGER`**: Maximum number of iterations (default: 30, task mode only)
515
579
  - **`--max-tokens-working-memory INTEGER`**: Set the maximum tokens allowed in working memory
516
580
  - **`--compact-every-n-iteration INTEGER`**: Set the frequency of memory compaction
517
581
  - **`--thinking-model TEXT`**: The thinking model to use
582
+ - **`--persona TEXT`**: Set the chat persona (chat mode only)
583
+ - **`--tool-mode TEXT`**: Prioritize a tool or toolset (chat mode only)
584
+ - **`--auto-tool-call`**: Enable/disable auto tool execution (chat mode only, default: True)
518
585
  - **`--version`**: Show version information
519
586
 
520
587
  > **Tip**: Run `quantalogic --help` for the complete command reference!
@@ -559,6 +626,12 @@ quantalogic task "Solve 2x + 5 = 15"
559
626
  ```
560
627
  > Output: "Let’s solve it! 2x + 5 = 15 → 2x = 10 → x = 5. Done!"
561
628
 
629
+ ### Bonus: Chat Query
630
+ ```bash
631
+ quantalogic chat "Search for the latest AI breakthroughs"
632
+ ```
633
+ > Output: "I’ll dig into that! Here’s what I found with a search: [latest AI news]. Pretty cool, right?"
634
+
562
635
  ---
563
636
 
564
637
  ## Core Components
@@ -572,6 +645,11 @@ quantalogic task "Solve 2x + 5 = 15"
572
645
  - **Nodes**: Your task blocks.
573
646
  - **Engine**: The maestro of execution.
574
647
 
648
+ ### Chat Mode
649
+ - **Persona**: Customizable conversational style.
650
+ - **Tools**: Integrated seamlessly via ReAct’s system.
651
+ - **Context**: Keeps the conversation flowing.
652
+
575
653
  ### Tools Arsenal
576
654
  - **Code**: `PythonTool`, `NodeJsTool`.
577
655
  - **Files**: `ReadFileTool`, `WriteFileTool`.
@@ -630,9 +708,6 @@ result = weather_tool.execute(city="New York") # Execute as a tool
630
708
  ```
631
709
 
632
710
  #### Using Custom Tools with ReAct Agent
633
-
634
- Here's how to integrate custom tools with a ReAct Agent:
635
-
636
711
  ```python
637
712
  from quantalogic import Agent
638
713
  from quantalogic.tools import create_tool, PythonTool
@@ -671,7 +746,26 @@ result = agent.solve_task(
671
746
  print(result)
672
747
  ```
673
748
 
674
- In this example, the agent can seamlessly use both the standard `PythonTool` and your custom stock price lookup tool to complete the task.
749
+ #### Using Custom Tools in Chat Mode
750
+ ```python
751
+ from quantalogic import Agent
752
+ from quantalogic.tools import create_tool
753
+
754
+ # Reuse the stock price tool
755
+ stock_tool = create_tool(get_stock_price)
756
+
757
+ # Create a chat agent
758
+ agent = Agent(
759
+ model_name="gpt-4o",
760
+ chat_system_prompt="You are a financial advisor",
761
+ tools=[stock_tool]
762
+ )
763
+
764
+ # Chat with tool usage
765
+ response = agent.chat("What’s the price of Microsoft stock?")
766
+ print(response)
767
+ # Might output: "Let me check that for you! MSFT is currently trading at $425.27."
768
+ ```
675
769
 
676
770
  Key features of `create_tool()`:
677
771
  - 🔧 Automatically converts functions to Tools
@@ -746,4 +840,4 @@ export LM_STUDIO_API_KEY="lm-your-key"
746
840
 
747
841
  ## Final Boost
748
842
 
749
- QuantaLogic is your ticket to AI awesomeness. Install it, play with it, and let’s build something unforgettable together!
843
+ QuantaLogic is your ticket to AI awesomeness. Install it, play with it—whether solving tasks, crafting workflows, or chatting up a storm—and let’s build something unforgettable together!
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "quantalogic"
3
- version = "0.58.0"
3
+ version = "0.59.0"
4
4
  description = "QuantaLogic ReAct Agents"
5
5
  authors = ["Raphaël MANSUY <raphael.mansuy@gmail.com>"]
6
6
  readme = "README.md"