dao-ai 0.1.16__tar.gz → 0.1.18__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 (346) hide show
  1. dao_ai-0.1.18/CONTRIBUTORS.md +16 -0
  2. {dao_ai-0.1.16 → dao_ai-0.1.18}/PKG-INFO +3 -3
  3. {dao_ai-0.1.16 → dao_ai-0.1.18}/README.md +1 -1
  4. dao_ai-0.1.18/config/examples/01_getting_started/README.md +221 -0
  5. dao_ai-0.1.18/config/examples/02_mcp/README.md +513 -0
  6. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/02_mcp/custom_mcp.yaml +1 -1
  7. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/02_mcp/filtered_mcp.yaml +1 -2
  8. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/02_mcp/managed_mcp.yaml +1 -1
  9. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/02_mcp/slack_integration.yaml +1 -1
  10. dao_ai-0.1.18/config/examples/03_reranking/README.md +365 -0
  11. dao_ai-0.1.18/config/examples/03_reranking/instruction_aware_reranking.yaml +213 -0
  12. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/03_reranking/vector_search_with_reranking.yaml +44 -78
  13. dao_ai-0.1.18/config/examples/04_genie/README.md +268 -0
  14. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/04_genie/genie_lru_cache.yaml +1 -1
  15. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/04_genie/genie_semantic_cache.yaml +1 -1
  16. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/04_genie/genie_with_conversation_id.yaml +1 -1
  17. dao_ai-0.1.18/config/examples/05_memory/README.md +271 -0
  18. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/05_memory/conversation_summarization.yaml +1 -1
  19. dao_ai-0.1.18/config/examples/06_on_behalf_of_user/README.md +206 -0
  20. dao_ai-0.1.18/config/examples/07_human_in_the_loop/README.md +276 -0
  21. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/07_human_in_the_loop/human_in_the_loop.yaml +1 -1
  22. dao_ai-0.1.18/config/examples/08_guardrails/README.md +311 -0
  23. dao_ai-0.1.18/config/examples/09_structured_output/README.md +284 -0
  24. dao_ai-0.1.18/config/examples/10_agent_integrations/README.md +277 -0
  25. dao_ai-0.1.18/config/examples/11_prompt_engineering/README.md +269 -0
  26. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/11_prompt_engineering/prompt_optimization.yaml +0 -1
  27. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/11_prompt_engineering/prompt_registry.yaml +0 -1
  28. dao_ai-0.1.18/config/examples/12_middleware/README.md +286 -0
  29. dao_ai-0.1.18/config/examples/13_orchestration/README.md +313 -0
  30. dao_ai-0.1.18/config/examples/14_basic_tools/README.md +386 -0
  31. dao_ai-0.1.18/config/examples/15_complete_applications/README.md +369 -0
  32. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/15_complete_applications/deep_research.yaml +0 -1
  33. dao_ai-0.1.18/config/examples/15_complete_applications/hardware_store_instructed.yaml +531 -0
  34. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/15_complete_applications/hardware_store_lakebase.yaml +4 -3
  35. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/15_complete_applications/hardware_store_swarm.yaml +0 -4
  36. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/15_complete_applications/quick_serve_restaurant.yaml +1 -1
  37. dao_ai-0.1.18/config/examples/16_instructed_retriever/README.md +464 -0
  38. dao_ai-0.1.18/config/examples/16_instructed_retriever/full_pipeline.yaml +256 -0
  39. dao_ai-0.1.18/config/examples/16_instructed_retriever/instructed_retriever.yaml +245 -0
  40. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/README.md +1 -1
  41. {dao_ai-0.1.16 → dao_ai-0.1.18}/docs/architecture.md +51 -10
  42. {dao_ai-0.1.16 → dao_ai-0.1.18}/docs/configuration-reference.md +0 -1
  43. dao_ai-0.1.18/docs/hardware_store/retail_supervisor.png +0 -0
  44. dao_ai-0.1.18/docs/hardware_store/retail_swarm.png +0 -0
  45. dao_ai-0.1.18/notebooks/07_run_evaluation.py +332 -0
  46. dao_ai-0.1.18/notebooks/09_evaluate_inferences.py +275 -0
  47. {dao_ai-0.1.16 → dao_ai-0.1.18}/pyproject.toml +2 -2
  48. {dao_ai-0.1.16 → dao_ai-0.1.18}/requirements.txt +65 -70
  49. {dao_ai-0.1.16 → dao_ai-0.1.18}/schemas/model_config_schema.json +351 -19
  50. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/cli.py +12 -4
  51. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/config.py +471 -44
  52. dao_ai-0.1.18/src/dao_ai/evaluation.py +543 -0
  53. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/memory/postgres.py +146 -35
  54. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/orchestration/core.py +33 -9
  55. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/orchestration/supervisor.py +23 -8
  56. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/orchestration/swarm.py +6 -1
  57. dao_ai-0.1.16/src/dao_ai/prompts.py → dao_ai-0.1.18/src/dao_ai/prompts/__init__.py +10 -1
  58. dao_ai-0.1.18/src/dao_ai/prompts/instructed_retriever_decomposition.yaml +58 -0
  59. dao_ai-0.1.18/src/dao_ai/prompts/instruction_reranker.yaml +14 -0
  60. dao_ai-0.1.18/src/dao_ai/prompts/router.yaml +37 -0
  61. dao_ai-0.1.18/src/dao_ai/prompts/verifier.yaml +46 -0
  62. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/providers/databricks.py +33 -12
  63. dao_ai-0.1.18/src/dao_ai/tools/instructed_retriever.py +366 -0
  64. dao_ai-0.1.18/src/dao_ai/tools/instruction_reranker.py +202 -0
  65. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/tools/mcp.py +21 -10
  66. dao_ai-0.1.18/src/dao_ai/tools/router.py +89 -0
  67. dao_ai-0.1.18/src/dao_ai/tools/vector_search.py +725 -0
  68. dao_ai-0.1.18/src/dao_ai/tools/verifier.py +159 -0
  69. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/utils.py +182 -2
  70. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/vector_search.py +9 -1
  71. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/conftest.py +11 -0
  72. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_databricks.py +116 -0
  73. dao_ai-0.1.18/tests/dao_ai/test_evaluation.py +542 -0
  74. dao_ai-0.1.18/tests/dao_ai/test_instructed_retriever.py +616 -0
  75. dao_ai-0.1.18/tests/dao_ai/test_instruction_reranker.py +363 -0
  76. dao_ai-0.1.18/tests/dao_ai/test_instruction_reranker_integration.py +145 -0
  77. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_mcp.py +3 -2
  78. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_mcp_filtering_integration.py +38 -26
  79. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_mcp_function_model.py +23 -19
  80. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_reranking.py +25 -6
  81. dao_ai-0.1.18/tests/dao_ai/test_router.py +151 -0
  82. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_swarm_middleware.py +0 -8
  83. dao_ai-0.1.18/tests/dao_ai/test_verifier.py +273 -0
  84. dao_ai-0.1.18/tests/test_mcp_app_auth.py +114 -0
  85. dao_ai-0.1.16/config/examples/01_getting_started/README.md +0 -74
  86. dao_ai-0.1.16/config/examples/02_mcp/README.md +0 -281
  87. dao_ai-0.1.16/config/examples/03_reranking/README.md +0 -322
  88. dao_ai-0.1.16/config/examples/04_genie/README.md +0 -106
  89. dao_ai-0.1.16/config/examples/05_memory/README.md +0 -127
  90. dao_ai-0.1.16/config/examples/06_on_behalf_of_user/README.md +0 -172
  91. dao_ai-0.1.16/config/examples/07_human_in_the_loop/README.md +0 -151
  92. dao_ai-0.1.16/config/examples/08_guardrails/README.md +0 -201
  93. dao_ai-0.1.16/config/examples/09_structured_output/README.md +0 -96
  94. dao_ai-0.1.16/config/examples/10_agent_integrations/README.md +0 -450
  95. dao_ai-0.1.16/config/examples/11_prompt_engineering/README.md +0 -172
  96. dao_ai-0.1.16/config/examples/12_middleware/README.md +0 -1253
  97. dao_ai-0.1.16/config/examples/13_orchestration/README.md +0 -168
  98. dao_ai-0.1.16/config/examples/14_basic_tools/README.md +0 -123
  99. dao_ai-0.1.16/config/examples/15_complete_applications/README.md +0 -308
  100. dao_ai-0.1.16/docs/hardware_store/retail_supervisor.png +0 -0
  101. dao_ai-0.1.16/docs/hardware_store/retail_swarm.png +0 -0
  102. dao_ai-0.1.16/notebooks/07_run_evaluation.py +0 -288
  103. dao_ai-0.1.16/notebooks/09_evaluate_inferences.py +0 -217
  104. dao_ai-0.1.16/src/dais2025/models.py +0 -183
  105. dao_ai-0.1.16/src/dais2025/tools/__init__.py +0 -62
  106. dao_ai-0.1.16/src/dais2025/tools/customer.py +0 -1578
  107. dao_ai-0.1.16/src/dais2025/tools/employee.py +0 -737
  108. dao_ai-0.1.16/src/dais2025/tools/executive.py +0 -93
  109. dao_ai-0.1.16/src/dais2025/tools/genie.py +0 -76
  110. dao_ai-0.1.16/src/dais2025/tools/inventory.py +0 -469
  111. dao_ai-0.1.16/src/dais2025/tools/models.py +0 -183
  112. dao_ai-0.1.16/src/dais2025/tools/store.py +0 -211
  113. dao_ai-0.1.16/src/dao_ai/providers/__init__.py +0 -0
  114. dao_ai-0.1.16/src/dao_ai/tools/vector_search.py +0 -418
  115. {dao_ai-0.1.16 → dao_ai-0.1.18}/.gitignore +0 -0
  116. {dao_ai-0.1.16 → dao_ai-0.1.18}/.python-version +0 -0
  117. {dao_ai-0.1.16 → dao_ai-0.1.18}/CHANGELOG.md +0 -0
  118. {dao_ai-0.1.16 → dao_ai-0.1.18}/CONTRIBUTING.md +0 -0
  119. {dao_ai-0.1.16 → dao_ai-0.1.18}/LICENSE +0 -0
  120. {dao_ai-0.1.16 → dao_ai-0.1.18}/Makefile +0 -0
  121. {dao_ai-0.1.16 → dao_ai-0.1.18}/app.yaml +0 -0
  122. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/01_getting_started/minimal.yaml +0 -0
  123. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/02_mcp/external_mcp.yaml +0 -0
  124. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/04_genie/genie_basic.yaml +0 -0
  125. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/05_memory/in_memory_basic.yaml +0 -0
  126. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/05_memory/lakebase_persistence.yaml +0 -0
  127. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/05_memory/postgres_persistence.yaml +0 -0
  128. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/06_on_behalf_of_user/obo_basic.yaml +0 -0
  129. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/08_guardrails/guardrails_basic.yaml +0 -0
  130. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/09_structured_output/structured_output.yaml +0 -0
  131. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/10_agent_integrations/agent_bricks.yaml +0 -0
  132. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/10_agent_integrations/kasal.yaml +0 -0
  133. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/12_middleware/combined_middleware.yaml +0 -0
  134. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/12_middleware/context_management.yaml +0 -0
  135. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/12_middleware/custom_field_validation.yaml +0 -0
  136. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/12_middleware/limit_middleware.yaml +0 -0
  137. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/12_middleware/logging_middleware.yaml +0 -0
  138. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/12_middleware/pii_middleware.yaml +0 -0
  139. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/12_middleware/retry_middleware.yaml +0 -0
  140. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/12_middleware/tool_selector_middleware.yaml +0 -0
  141. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/13_orchestration/supervisor_pattern.yaml +0 -0
  142. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/13_orchestration/swarm_pattern.yaml +0 -0
  143. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/14_basic_tools/sql_tool_example.yaml +0 -0
  144. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/15_complete_applications/brick_store.yaml +0 -0
  145. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/15_complete_applications/executive_assistant.yaml +0 -0
  146. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/15_complete_applications/genie_and_genie_mcp.yaml +0 -0
  147. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/15_complete_applications/genie_vector_search_hybrid.yaml +0 -0
  148. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/15_complete_applications/hardware_store.yaml +0 -0
  149. {dao_ai-0.1.16 → dao_ai-0.1.18}/config/examples/15_complete_applications/reservations_system.yaml +0 -0
  150. {dao_ai-0.1.16 → dao_ai-0.1.18}/data/dais2025/appointments.sql +0 -0
  151. {dao_ai-0.1.16 → dao_ai-0.1.18}/data/dais2025/appointments_data.sql +0 -0
  152. {dao_ai-0.1.16 → dao_ai-0.1.18}/data/dais2025/brand_rep_demo_data.sql +0 -0
  153. {dao_ai-0.1.16 → dao_ai-0.1.18}/data/dais2025/brand_rep_demo_queries.sql +0 -0
  154. {dao_ai-0.1.16 → dao_ai-0.1.18}/data/dais2025/brand_rep_demo_tables.sql +0 -0
  155. {dao_ai-0.1.16 → dao_ai-0.1.18}/data/dais2025/brand_rep_demo_validation.sql +0 -0
  156. {dao_ai-0.1.16 → dao_ai-0.1.18}/data/dais2025/customers.sql +0 -0
  157. {dao_ai-0.1.16 → dao_ai-0.1.18}/data/dais2025/customers_data.sql +0 -0
  158. {dao_ai-0.1.16 → dao_ai-0.1.18}/data/dais2025/dim_stores.sql +0 -0
  159. {dao_ai-0.1.16 → dao_ai-0.1.18}/data/dais2025/dim_stores_data.sql +0 -0
  160. {dao_ai-0.1.16 → dao_ai-0.1.18}/data/dais2025/employee_performance.sql +0 -0
  161. {dao_ai-0.1.16 → dao_ai-0.1.18}/data/dais2025/employee_performance_data.sql +0 -0
  162. {dao_ai-0.1.16 → dao_ai-0.1.18}/data/dais2025/employee_tasks.sql +0 -0
  163. {dao_ai-0.1.16 → dao_ai-0.1.18}/data/dais2025/employee_tasks_data.sql +0 -0
  164. {dao_ai-0.1.16 → dao_ai-0.1.18}/data/dais2025/inventory.sql +0 -0
  165. {dao_ai-0.1.16 → dao_ai-0.1.18}/data/dais2025/inventory_data.sql +0 -0
  166. {dao_ai-0.1.16 → dao_ai-0.1.18}/data/dais2025/managers.sql +0 -0
  167. {dao_ai-0.1.16 → dao_ai-0.1.18}/data/dais2025/managers_data.sql +0 -0
  168. {dao_ai-0.1.16 → dao_ai-0.1.18}/data/dais2025/product_data.sql +0 -0
  169. {dao_ai-0.1.16 → dao_ai-0.1.18}/data/dais2025/products.sql +0 -0
  170. {dao_ai-0.1.16 → dao_ai-0.1.18}/data/dais2025/task_assignments.sql +0 -0
  171. {dao_ai-0.1.16 → dao_ai-0.1.18}/data/hardware_store/inventory.snappy.parquet +0 -0
  172. {dao_ai-0.1.16 → dao_ai-0.1.18}/data/hardware_store/inventory.sql +0 -0
  173. {dao_ai-0.1.16 → dao_ai-0.1.18}/data/hardware_store/products.snappy.parquet +0 -0
  174. {dao_ai-0.1.16 → dao_ai-0.1.18}/data/hardware_store/products.sql +0 -0
  175. {dao_ai-0.1.16 → dao_ai-0.1.18}/data/quick_serve_restaurant/.gitkeep +0 -0
  176. {dao_ai-0.1.16 → dao_ai-0.1.18}/data/quick_serve_restaurant/fulfil_item_orders.sql +0 -0
  177. {dao_ai-0.1.16 → dao_ai-0.1.18}/data/quick_serve_restaurant/items_description.csv +0 -0
  178. {dao_ai-0.1.16 → dao_ai-0.1.18}/data/quick_serve_restaurant/items_description.sql +0 -0
  179. {dao_ai-0.1.16 → dao_ai-0.1.18}/data/quick_serve_restaurant/items_raw.csv +0 -0
  180. {dao_ai-0.1.16 → dao_ai-0.1.18}/data/quick_serve_restaurant/items_raw.sql +0 -0
  181. {dao_ai-0.1.16 → dao_ai-0.1.18}/data/quick_serve_restaurant/orders_raw.csv +0 -0
  182. {dao_ai-0.1.16 → dao_ai-0.1.18}/data/quick_serve_restaurant/orders_raw.sql +0 -0
  183. {dao_ai-0.1.16 → dao_ai-0.1.18}/databricks.yaml.template +0 -0
  184. {dao_ai-0.1.16 → dao_ai-0.1.18}/docs/cli-reference.md +0 -0
  185. {dao_ai-0.1.16 → dao_ai-0.1.18}/docs/contributing.md +0 -0
  186. {dao_ai-0.1.16 → dao_ai-0.1.18}/docs/examples.md +0 -0
  187. {dao_ai-0.1.16 → dao_ai-0.1.18}/docs/faq.md +0 -0
  188. {dao_ai-0.1.16 → dao_ai-0.1.18}/docs/hardware_store/README.md +0 -0
  189. {dao_ai-0.1.16 → dao_ai-0.1.18}/docs/images/genie.png +0 -0
  190. {dao_ai-0.1.16 → dao_ai-0.1.18}/docs/key-capabilities.md +0 -0
  191. {dao_ai-0.1.16 → dao_ai-0.1.18}/docs/python-api.md +0 -0
  192. {dao_ai-0.1.16 → dao_ai-0.1.18}/docs/quick_serve_restaurant/.gitkeep +0 -0
  193. {dao_ai-0.1.16 → dao_ai-0.1.18}/docs/quick_serve_restaurant/quick-serve-restaurant.png +0 -0
  194. {dao_ai-0.1.16 → dao_ai-0.1.18}/docs/why-dao.md +0 -0
  195. {dao_ai-0.1.16 → dao_ai-0.1.18}/environment.yaml +0 -0
  196. {dao_ai-0.1.16 → dao_ai-0.1.18}/examples/dais2025/examples.yaml +0 -0
  197. {dao_ai-0.1.16 → dao_ai-0.1.18}/examples/deep_research/examples.yaml +0 -0
  198. {dao_ai-0.1.16 → dao_ai-0.1.18}/examples/executive_assistant/examples.yaml +0 -0
  199. {dao_ai-0.1.16 → dao_ai-0.1.18}/examples/hardware_store/examples.yaml +0 -0
  200. {dao_ai-0.1.16 → dao_ai-0.1.18}/examples/quick_serve_restaurant/.gitkeep +0 -0
  201. {dao_ai-0.1.16 → dao_ai-0.1.18}/examples/quick_serve_restaurant/examples.yaml +0 -0
  202. {dao_ai-0.1.16 → dao_ai-0.1.18}/functions/dais2025/extract_store_numbers.sql +0 -0
  203. {dao_ai-0.1.16 → dao_ai-0.1.18}/functions/dais2025/find_inventory_by_sku.sql +0 -0
  204. {dao_ai-0.1.16 → dao_ai-0.1.18}/functions/dais2025/find_inventory_by_upc.sql +0 -0
  205. {dao_ai-0.1.16 → dao_ai-0.1.18}/functions/dais2025/find_product_by_sku.sql +0 -0
  206. {dao_ai-0.1.16 → dao_ai-0.1.18}/functions/dais2025/find_product_by_upc.sql +0 -0
  207. {dao_ai-0.1.16 → dao_ai-0.1.18}/functions/dais2025/find_store_by_number.sql +0 -0
  208. {dao_ai-0.1.16 → dao_ai-0.1.18}/functions/dais2025/find_store_inventory_by_sku.sql +0 -0
  209. {dao_ai-0.1.16 → dao_ai-0.1.18}/functions/dais2025/find_store_inventory_by_upc.sql +0 -0
  210. {dao_ai-0.1.16 → dao_ai-0.1.18}/functions/hardware_store/find_inventory_by_sku.sql +0 -0
  211. {dao_ai-0.1.16 → dao_ai-0.1.18}/functions/hardware_store/find_inventory_by_upc.sql +0 -0
  212. {dao_ai-0.1.16 → dao_ai-0.1.18}/functions/hardware_store/find_product_by_sku.sql +0 -0
  213. {dao_ai-0.1.16 → dao_ai-0.1.18}/functions/hardware_store/find_product_by_upc.sql +0 -0
  214. {dao_ai-0.1.16 → dao_ai-0.1.18}/functions/hardware_store/find_store_inventory_by_sku.sql +0 -0
  215. {dao_ai-0.1.16 → dao_ai-0.1.18}/functions/hardware_store/find_store_inventory_by_upc.sql +0 -0
  216. {dao_ai-0.1.16 → dao_ai-0.1.18}/functions/quick_serve_restaurant/.gitkeep +0 -0
  217. {dao_ai-0.1.16 → dao_ai-0.1.18}/functions/quick_serve_restaurant/insert_coffee_order.sql +0 -0
  218. {dao_ai-0.1.16 → dao_ai-0.1.18}/functions/quick_serve_restaurant/lookup_items_by_descriptions.sql +0 -0
  219. {dao_ai-0.1.16 → dao_ai-0.1.18}/functions/quick_serve_restaurant/match_historical_item_order_by_date.sql +0 -0
  220. {dao_ai-0.1.16 → dao_ai-0.1.18}/functions/quick_serve_restaurant/match_item_by_description_and_price.sql +0 -0
  221. {dao_ai-0.1.16 → dao_ai-0.1.18}/notebooks/01_ingest_and_transform.py +0 -0
  222. {dao_ai-0.1.16 → dao_ai-0.1.18}/notebooks/02_provision_vector_search.py +0 -0
  223. {dao_ai-0.1.16 → dao_ai-0.1.18}/notebooks/03_provision_lakebase.py +0 -0
  224. {dao_ai-0.1.16 → dao_ai-0.1.18}/notebooks/04_unity_catalog_tools.py +0 -0
  225. {dao_ai-0.1.16 → dao_ai-0.1.18}/notebooks/05_deploy_agent.py +0 -0
  226. {dao_ai-0.1.16 → dao_ai-0.1.18}/notebooks/06_generate_evaluation_data.py +0 -0
  227. {dao_ai-0.1.16 → dao_ai-0.1.18}/notebooks/08_run_examples.py +0 -0
  228. {dao_ai-0.1.16 → dao_ai-0.1.18}/notebooks/10_optimize_prompts.py +0 -0
  229. {dao_ai-0.1.16 → dao_ai-0.1.18}/notebooks/99_scratchpad.py +0 -0
  230. {dao_ai-0.1.16 → dao_ai-0.1.18}/schemas/bundle_config_schema.json +0 -0
  231. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/__init__.py +0 -0
  232. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/apps/__init__.py +0 -0
  233. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/apps/handlers.py +0 -0
  234. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/apps/model_serving.py +0 -0
  235. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/apps/resources.py +0 -0
  236. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/apps/server.py +0 -0
  237. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/catalog.py +0 -0
  238. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/genie/__init__.py +0 -0
  239. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/genie/cache/__init__.py +0 -0
  240. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/genie/cache/base.py +0 -0
  241. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/genie/cache/core.py +0 -0
  242. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/genie/cache/lru.py +0 -0
  243. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/genie/cache/semantic.py +0 -0
  244. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/genie/core.py +0 -0
  245. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/graph.py +0 -0
  246. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/hooks/__init__.py +0 -0
  247. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/hooks/core.py +0 -0
  248. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/logging.py +0 -0
  249. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/memory/__init__.py +0 -0
  250. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/memory/base.py +0 -0
  251. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/memory/core.py +0 -0
  252. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/memory/databricks.py +0 -0
  253. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/messages.py +0 -0
  254. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/middleware/__init__.py +0 -0
  255. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/middleware/assertions.py +0 -0
  256. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/middleware/base.py +0 -0
  257. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/middleware/context_editing.py +0 -0
  258. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/middleware/core.py +0 -0
  259. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/middleware/guardrails.py +0 -0
  260. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/middleware/human_in_the_loop.py +0 -0
  261. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/middleware/message_validation.py +0 -0
  262. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/middleware/model_call_limit.py +0 -0
  263. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/middleware/model_retry.py +0 -0
  264. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/middleware/pii.py +0 -0
  265. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/middleware/summarization.py +0 -0
  266. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/middleware/tool_call_limit.py +0 -0
  267. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/middleware/tool_retry.py +0 -0
  268. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/middleware/tool_selector.py +0 -0
  269. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/models.py +0 -0
  270. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/nodes.py +0 -0
  271. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/optimization.py +0 -0
  272. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/orchestration/__init__.py +0 -0
  273. {dao_ai-0.1.16/src/dais2025 → dao_ai-0.1.18/src/dao_ai/providers}/__init__.py +0 -0
  274. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/providers/base.py +0 -0
  275. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/state.py +0 -0
  276. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/tools/__init__.py +0 -0
  277. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/tools/agent.py +0 -0
  278. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/tools/core.py +0 -0
  279. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/tools/email.py +0 -0
  280. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/tools/genie.py +0 -0
  281. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/tools/memory.py +0 -0
  282. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/tools/python.py +0 -0
  283. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/tools/search.py +0 -0
  284. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/tools/slack.py +0 -0
  285. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/tools/sql.py +0 -0
  286. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/tools/time.py +0 -0
  287. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/tools/unity_catalog.py +0 -0
  288. {dao_ai-0.1.16 → dao_ai-0.1.18}/src/dao_ai/types.py +0 -0
  289. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/config/test_model_config.yaml +0 -0
  290. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/middleware/test_context_editing.py +0 -0
  291. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/middleware/test_model_call_limit.py +0 -0
  292. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/middleware/test_model_retry.py +0 -0
  293. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/middleware/test_pii.py +0 -0
  294. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/middleware/test_tool_call_limit.py +0 -0
  295. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/middleware/test_tool_retry.py +0 -0
  296. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/middleware/test_tool_selector.py +0 -0
  297. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_agent_response_format.py +0 -0
  298. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_assertions_middleware.py +0 -0
  299. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_catalog.py +0 -0
  300. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_chat_history.py +0 -0
  301. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_config.py +0 -0
  302. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_function_parsing.py +0 -0
  303. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_genie.py +0 -0
  304. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_genie_conversation_ids_in_outputs.py +0 -0
  305. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_genie_databricks_integration.py +0 -0
  306. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_genie_room_model.py +0 -0
  307. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_guardrail_retry.py +0 -0
  308. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_hitl_config_model.py +0 -0
  309. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_hitl_responses_agent.py +0 -0
  310. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_hooks.py +0 -0
  311. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_human_in_the_loop.py +0 -0
  312. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_inference.py +0 -0
  313. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_inference_integration.py +0 -0
  314. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_input_output_structure.py +0 -0
  315. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_interrupt_type.py +0 -0
  316. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_llm_interrupt_handling.py +0 -0
  317. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_mcp_filtering.py +0 -0
  318. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_message_validation_middleware.py +0 -0
  319. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_messages.py +0 -0
  320. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_models.py +0 -0
  321. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_optimization.py +0 -0
  322. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_postgres_integration.py +0 -0
  323. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_prompt_optimizations.py +0 -0
  324. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_prompts.py +0 -0
  325. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_reranking_integration.py +0 -0
  326. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_resources_model_genie_integration.py +0 -0
  327. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_response_format.py +0 -0
  328. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_responses_agent_structured_output_unit.py +0 -0
  329. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_semantic_cache_context.py +0 -0
  330. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_sql_tool.py +0 -0
  331. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_sql_tool_integration.py +0 -0
  332. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_state.py +0 -0
  333. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_summarization_inference.py +0 -0
  334. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_tools.py +0 -0
  335. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_types.py +0 -0
  336. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_unity_catalog.py +0 -0
  337. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_utils.py +0 -0
  338. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_utils_type_from_fqn.py +0 -0
  339. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_vector_search.py +0 -0
  340. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/test_warehouse_model.py +0 -0
  341. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/dao_ai/weather_server_mcp.py +0 -0
  342. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/hardware_store/.gitkeep +0 -0
  343. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/hardware_store/test_graph.py +0 -0
  344. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/images/doritos_upc.png +0 -0
  345. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/images/lays_upc.png +0 -0
  346. {dao_ai-0.1.16 → dao_ai-0.1.18}/tests/quick_serve_restaurant/.gitkeep +0 -0
@@ -0,0 +1,16 @@
1
+ # Contributors
2
+
3
+ Thank you to all the contributors who have helped make dao-ai possible!
4
+
5
+ ## Core Contributors
6
+
7
+ - **Nate Fleming** ([@natefleming-db](https://github.com/natefleming-db)) - Project creator and lead maintainer
8
+
9
+ ## Contributors
10
+
11
+ - **Peter Park** ([@park-peter](https://github.com/park-peter))
12
+ - **Dipankar Kush** ([@dipankarkush-db](https://github.com/dipankarkush-db))
13
+
14
+ ---
15
+
16
+ We appreciate every contribution, whether it's code, documentation, bug reports, or feature suggestions. If you'd like to contribute, please see our [Contributing Guide](CONTRIBUTING.md).
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dao-ai
3
- Version: 0.1.16
3
+ Version: 0.1.18
4
4
  Summary: DAO AI: A modular, multi-agent orchestration framework for complex AI workflows. Supports agent handoff, tool integration, and dynamic configuration via YAML.
5
5
  Project-URL: Homepage, https://github.com/natefleming/dao-ai
6
6
  Project-URL: Documentation, https://natefleming.github.io/dao-ai
@@ -26,7 +26,7 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
26
26
  Classifier: Topic :: System :: Distributed Computing
27
27
  Requires-Python: >=3.11
28
28
  Requires-Dist: databricks-agents>=1.9.0
29
- Requires-Dist: databricks-langchain[memory]>=0.12.1
29
+ Requires-Dist: databricks-langchain[memory]>=0.13.0
30
30
  Requires-Dist: databricks-mcp>=0.5.0
31
31
  Requires-Dist: databricks-sdk[openai]>=0.77.0
32
32
  Requires-Dist: ddgs>=9.10.0
@@ -235,7 +235,7 @@ app:
235
235
  - *assistant
236
236
  orchestration:
237
237
  swarm:
238
- model: *default_llm
238
+ default_agent: *assistant
239
239
  ```
240
240
 
241
241
  **💡 What's happening here?**
@@ -156,7 +156,7 @@ app:
156
156
  - *assistant
157
157
  orchestration:
158
158
  swarm:
159
- model: *default_llm
159
+ default_agent: *assistant
160
160
  ```
161
161
 
162
162
  **💡 What's happening here?**
@@ -0,0 +1,221 @@
1
+ # 01. Getting Started
2
+
3
+ **Foundation concepts for beginners**
4
+
5
+ Your starting point for DAO AI. These examples introduce core concepts with minimal complexity.
6
+
7
+ ## Architecture Overview
8
+
9
+ ```mermaid
10
+ %%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#1565c0', 'primaryTextColor': '#fff'}}}%%
11
+ flowchart TB
12
+ subgraph User["👤 User"]
13
+ Query["What products do you have?"]
14
+ end
15
+
16
+ subgraph DAO["🤖 DAO AI Application"]
17
+ subgraph Agent["Simple Agent"]
18
+ direction TB
19
+ LLM["🧠 Claude Sonnet 4<br/><i>Language Model</i>"]
20
+ Prompt["📝 System Prompt<br/><i>Retail Assistant</i>"]
21
+ LLM --- Prompt
22
+ end
23
+
24
+ subgraph Tools["🔧 Available Tools"]
25
+ direction LR
26
+ Genie["🧞 Genie Tool<br/><i>Natural Language → SQL</i>"]
27
+ VS["🔍 Vector Search<br/><i>Semantic Search</i>"]
28
+ end
29
+
30
+ Agent --> Tools
31
+ end
32
+
33
+ subgraph Databricks["☁️ Databricks Platform"]
34
+ direction TB
35
+ GenieRoom["🧞 Genie Room<br/><i>retail_genie_room</i>"]
36
+ VectorStore["📊 Vector Store<br/><i>products_vector_store</i>"]
37
+ UC["🗄️ Unity Catalog<br/><i>retail_consumer_goods.hardware_store</i>"]
38
+
39
+ GenieRoom --> UC
40
+ VectorStore --> UC
41
+ end
42
+
43
+ Query --> Agent
44
+ Genie --> GenieRoom
45
+ VS --> VectorStore
46
+ Agent -->|"Response"| Query
47
+
48
+ style User fill:#f5f5f5,stroke:#424242
49
+ style Agent fill:#e3f2fd,stroke:#1565c0
50
+ style Tools fill:#fff3e0,stroke:#e65100
51
+ style Databricks fill:#e8f5e9,stroke:#2e7d32
52
+ ```
53
+
54
+ ## Examples
55
+
56
+ | File | Description | Prerequisites |
57
+ |------|-------------|---------------|
58
+ | [`minimal.yaml`](./minimal.yaml) | Simplest agent with Genie and Vector Search | Databricks workspace, LLM endpoint |
59
+
60
+ ## Configuration Structure
61
+
62
+ ```mermaid
63
+ %%{init: {'theme': 'base'}}%%
64
+ flowchart TB
65
+ subgraph YAML["📄 minimal.yaml Structure"]
66
+ direction TB
67
+
68
+ subgraph S1["1️⃣ schemas:"]
69
+ Schema["Define Unity Catalog location<br/><code>catalog_name: retail_consumer_goods</code><br/><code>schema_name: hardware_store</code>"]
70
+ end
71
+
72
+ subgraph S2["2️⃣ resources:"]
73
+ LLMs["<b>llms:</b> Language models"]
74
+ VS["<b>vector_stores:</b> Search indexes"]
75
+ GR["<b>genie_rooms:</b> Genie spaces"]
76
+ end
77
+
78
+ subgraph S3["3️⃣ tools:"]
79
+ GT["<b>genie_tool:</b> Natural language SQL"]
80
+ VST["<b>vector_search_tool:</b> Semantic search"]
81
+ end
82
+
83
+ subgraph S4["4️⃣ agents:"]
84
+ Agent["<b>simple_agent:</b><br/>• model: *default_llm<br/>• tools: [*genie_tool, *vector_search_tool]<br/>• prompt: You are a helpful..."]
85
+ end
86
+
87
+ subgraph S5["5️⃣ app:"]
88
+ App["<b>name:</b> minimal_dao<br/><b>agents:</b> [*simple_agent]<br/><b>registered_model:</b> ..."]
89
+ end
90
+ end
91
+
92
+ S1 --> S2 --> S3 --> S4 --> S5
93
+
94
+ style S1 fill:#e3f2fd,stroke:#1565c0
95
+ style S2 fill:#e8f5e9,stroke:#2e7d32
96
+ style S3 fill:#fff3e0,stroke:#e65100
97
+ style S4 fill:#f3e5f5,stroke:#7b1fa2
98
+ style S5 fill:#fce4ec,stroke:#c2185b
99
+ ```
100
+
101
+ ## Data Flow
102
+
103
+ ```mermaid
104
+ %%{init: {'theme': 'base'}}%%
105
+ sequenceDiagram
106
+ autonumber
107
+ participant 👤 as User
108
+ participant 🤖 as Agent
109
+ participant 🧞 as Genie Tool
110
+ participant 🔍 as Vector Search
111
+ participant ☁️ as Databricks
112
+
113
+ 👤->>🤖: What products are in stock?
114
+ 🤖->>🤖: Analyze query intent
115
+
116
+ alt Structured Data Query
117
+ 🤖->>🧞: Call Genie tool
118
+ 🧞->>☁️: Natural language → SQL
119
+ ☁️-->>🧞: Query results
120
+ 🧞-->>🤖: Formatted data
121
+ else Semantic Search
122
+ 🤖->>🔍: Call Vector Search
123
+ 🔍->>☁️: Embedding search
124
+ ☁️-->>🔍: Similar products
125
+ 🔍-->>🤖: Search results
126
+ end
127
+
128
+ 🤖->>🤖: Synthesize response
129
+ 🤖-->>👤: Here are the products in stock...
130
+ ```
131
+
132
+ ## Key Concepts
133
+
134
+ ```mermaid
135
+ %%{init: {'theme': 'base'}}%%
136
+ graph TB
137
+ subgraph Concepts["📚 Core Concepts"]
138
+ subgraph YAML["YAML Anchors & Aliases"]
139
+ Anchor["<code>&default_llm</code> — Define anchor"]
140
+ Alias["<code>*default_llm</code> — Reference it"]
141
+ end
142
+
143
+ subgraph Resources["Resource Types"]
144
+ R1["🧠 <b>LLMs</b> — Language models"]
145
+ R2["📊 <b>Vector Stores</b> — Semantic search"]
146
+ R3["🧞 <b>Genie Rooms</b> — Natural language SQL"]
147
+ end
148
+
149
+ subgraph Tools["Tool Patterns"]
150
+ T1["🏭 <b>Factory</b> — dao_ai.tools.create_*"]
151
+ T2["🐍 <b>Python</b> — Custom functions"]
152
+ T3["🔌 <b>MCP</b> — External services"]
153
+ end
154
+ end
155
+
156
+ style YAML fill:#e3f2fd,stroke:#1565c0
157
+ style Resources fill:#e8f5e9,stroke:#2e7d32
158
+ style Tools fill:#fff3e0,stroke:#e65100
159
+ ```
160
+
161
+ ## Quick Start
162
+
163
+ ```bash
164
+ # Validate configuration
165
+ dao-ai validate -c config/examples/01_getting_started/minimal.yaml
166
+
167
+ # Chat with the agent
168
+ dao-ai chat -c config/examples/01_getting_started/minimal.yaml
169
+
170
+ # Visualize architecture
171
+ dao-ai graph -c config/examples/01_getting_started/minimal.yaml -o graph.png
172
+ ```
173
+
174
+ **Example queries:**
175
+ - "What products do you have?"
176
+ - "Show me power tools"
177
+ - "What's in the hardware department?"
178
+
179
+ ## Prerequisites
180
+
181
+ ```mermaid
182
+ %%{init: {'theme': 'base'}}%%
183
+ graph LR
184
+ subgraph Required["✅ Prerequisites"]
185
+ P1["☁️ Databricks workspace"]
186
+ P2["🧠 LLM endpoint access"]
187
+ P3["🧞 Genie space (optional)"]
188
+ P4["📊 Vector index (optional)"]
189
+ end
190
+
191
+ style Required fill:#e8f5e9,stroke:#2e7d32
192
+ ```
193
+
194
+ ## Next Steps
195
+
196
+ ```mermaid
197
+ %%{init: {'theme': 'base'}}%%
198
+ graph LR
199
+ Start["01_getting_started"] --> MCP["02_mcp<br/><i>Tool integrations</i>"]
200
+ Start --> Genie["04_genie<br/><i>Caching</i>"]
201
+ Start --> HITL["07_human_in_the_loop<br/><i>Safety</i>"]
202
+
203
+ style Start fill:#e3f2fd,stroke:#1565c0
204
+ style MCP fill:#fff3e0,stroke:#e65100
205
+ style Genie fill:#e8f5e9,stroke:#2e7d32
206
+ style HITL fill:#fce4ec,stroke:#c2185b
207
+ ```
208
+
209
+ ## Troubleshooting
210
+
211
+ | Issue | Solution |
212
+ |-------|----------|
213
+ | "Model endpoint not found" | Verify endpoint name, check access |
214
+ | "Genie space not accessible" | Confirm space_id, check permissions |
215
+ | "Vector search failed" | Verify index exists and is active |
216
+
217
+ ## Related Documentation
218
+
219
+ - [Configuration Reference](../../../docs/configuration-reference.md)
220
+ - [Key Capabilities](../../../docs/key-capabilities.md)
221
+ - [Python API](../../../docs/python-api.md)