dao-ai 0.1.17__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.17 → dao_ai-0.1.18}/PKG-INFO +2 -2
  3. dao_ai-0.1.18/config/examples/01_getting_started/README.md +221 -0
  4. dao_ai-0.1.18/config/examples/02_mcp/README.md +513 -0
  5. dao_ai-0.1.18/config/examples/03_reranking/README.md +365 -0
  6. dao_ai-0.1.18/config/examples/03_reranking/instruction_aware_reranking.yaml +213 -0
  7. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/03_reranking/vector_search_with_reranking.yaml +44 -78
  8. dao_ai-0.1.18/config/examples/04_genie/README.md +268 -0
  9. dao_ai-0.1.18/config/examples/05_memory/README.md +271 -0
  10. dao_ai-0.1.18/config/examples/06_on_behalf_of_user/README.md +206 -0
  11. dao_ai-0.1.18/config/examples/07_human_in_the_loop/README.md +276 -0
  12. dao_ai-0.1.18/config/examples/08_guardrails/README.md +311 -0
  13. dao_ai-0.1.18/config/examples/09_structured_output/README.md +284 -0
  14. dao_ai-0.1.18/config/examples/10_agent_integrations/README.md +277 -0
  15. dao_ai-0.1.18/config/examples/11_prompt_engineering/README.md +269 -0
  16. dao_ai-0.1.18/config/examples/12_middleware/README.md +286 -0
  17. dao_ai-0.1.18/config/examples/13_orchestration/README.md +313 -0
  18. dao_ai-0.1.18/config/examples/14_basic_tools/README.md +386 -0
  19. dao_ai-0.1.18/config/examples/15_complete_applications/README.md +369 -0
  20. dao_ai-0.1.18/config/examples/15_complete_applications/hardware_store_instructed.yaml +531 -0
  21. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/15_complete_applications/hardware_store_lakebase.yaml +4 -3
  22. dao_ai-0.1.18/config/examples/16_instructed_retriever/README.md +464 -0
  23. dao_ai-0.1.18/config/examples/16_instructed_retriever/full_pipeline.yaml +256 -0
  24. dao_ai-0.1.18/config/examples/16_instructed_retriever/instructed_retriever.yaml +245 -0
  25. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/README.md +1 -1
  26. {dao_ai-0.1.17 → dao_ai-0.1.18}/docs/architecture.md +51 -9
  27. dao_ai-0.1.18/docs/hardware_store/retail_supervisor.png +0 -0
  28. dao_ai-0.1.18/docs/hardware_store/retail_swarm.png +0 -0
  29. dao_ai-0.1.18/notebooks/07_run_evaluation.py +332 -0
  30. dao_ai-0.1.18/notebooks/09_evaluate_inferences.py +275 -0
  31. {dao_ai-0.1.17 → dao_ai-0.1.18}/pyproject.toml +2 -2
  32. {dao_ai-0.1.17 → dao_ai-0.1.18}/requirements.txt +65 -70
  33. {dao_ai-0.1.17 → dao_ai-0.1.18}/schemas/model_config_schema.json +345 -12
  34. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/cli.py +8 -3
  35. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/config.py +414 -32
  36. dao_ai-0.1.18/src/dao_ai/evaluation.py +543 -0
  37. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/memory/postgres.py +146 -35
  38. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/orchestration/core.py +33 -9
  39. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/orchestration/supervisor.py +23 -8
  40. dao_ai-0.1.17/src/dao_ai/prompts.py → dao_ai-0.1.18/src/dao_ai/prompts/__init__.py +10 -1
  41. dao_ai-0.1.18/src/dao_ai/prompts/instructed_retriever_decomposition.yaml +58 -0
  42. dao_ai-0.1.18/src/dao_ai/prompts/instruction_reranker.yaml +14 -0
  43. dao_ai-0.1.18/src/dao_ai/prompts/router.yaml +37 -0
  44. dao_ai-0.1.18/src/dao_ai/prompts/verifier.yaml +46 -0
  45. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/providers/databricks.py +33 -12
  46. dao_ai-0.1.18/src/dao_ai/tools/instructed_retriever.py +366 -0
  47. dao_ai-0.1.18/src/dao_ai/tools/instruction_reranker.py +202 -0
  48. dao_ai-0.1.18/src/dao_ai/tools/router.py +89 -0
  49. dao_ai-0.1.18/src/dao_ai/tools/vector_search.py +725 -0
  50. dao_ai-0.1.18/src/dao_ai/tools/verifier.py +159 -0
  51. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/utils.py +182 -2
  52. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/vector_search.py +9 -1
  53. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/conftest.py +11 -0
  54. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_databricks.py +116 -0
  55. dao_ai-0.1.18/tests/dao_ai/test_evaluation.py +542 -0
  56. dao_ai-0.1.18/tests/dao_ai/test_instructed_retriever.py +616 -0
  57. dao_ai-0.1.18/tests/dao_ai/test_instruction_reranker.py +363 -0
  58. dao_ai-0.1.18/tests/dao_ai/test_instruction_reranker_integration.py +145 -0
  59. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_mcp_filtering_integration.py +10 -9
  60. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_reranking.py +25 -6
  61. dao_ai-0.1.18/tests/dao_ai/test_router.py +151 -0
  62. dao_ai-0.1.18/tests/dao_ai/test_verifier.py +273 -0
  63. dao_ai-0.1.17/config/examples/01_getting_started/README.md +0 -74
  64. dao_ai-0.1.17/config/examples/02_mcp/README.md +0 -281
  65. dao_ai-0.1.17/config/examples/03_reranking/README.md +0 -322
  66. dao_ai-0.1.17/config/examples/04_genie/README.md +0 -106
  67. dao_ai-0.1.17/config/examples/05_memory/README.md +0 -127
  68. dao_ai-0.1.17/config/examples/06_on_behalf_of_user/README.md +0 -172
  69. dao_ai-0.1.17/config/examples/07_human_in_the_loop/README.md +0 -151
  70. dao_ai-0.1.17/config/examples/08_guardrails/README.md +0 -201
  71. dao_ai-0.1.17/config/examples/09_structured_output/README.md +0 -96
  72. dao_ai-0.1.17/config/examples/10_agent_integrations/README.md +0 -450
  73. dao_ai-0.1.17/config/examples/11_prompt_engineering/README.md +0 -172
  74. dao_ai-0.1.17/config/examples/12_middleware/README.md +0 -1253
  75. dao_ai-0.1.17/config/examples/13_orchestration/README.md +0 -170
  76. dao_ai-0.1.17/config/examples/14_basic_tools/README.md +0 -123
  77. dao_ai-0.1.17/config/examples/15_complete_applications/README.md +0 -308
  78. dao_ai-0.1.17/docs/hardware_store/retail_supervisor.png +0 -0
  79. dao_ai-0.1.17/docs/hardware_store/retail_swarm.png +0 -0
  80. dao_ai-0.1.17/notebooks/07_run_evaluation.py +0 -288
  81. dao_ai-0.1.17/notebooks/09_evaluate_inferences.py +0 -217
  82. dao_ai-0.1.17/src/dais2025/models.py +0 -183
  83. dao_ai-0.1.17/src/dais2025/tools/__init__.py +0 -62
  84. dao_ai-0.1.17/src/dais2025/tools/customer.py +0 -1578
  85. dao_ai-0.1.17/src/dais2025/tools/employee.py +0 -737
  86. dao_ai-0.1.17/src/dais2025/tools/executive.py +0 -93
  87. dao_ai-0.1.17/src/dais2025/tools/genie.py +0 -76
  88. dao_ai-0.1.17/src/dais2025/tools/inventory.py +0 -469
  89. dao_ai-0.1.17/src/dais2025/tools/models.py +0 -183
  90. dao_ai-0.1.17/src/dais2025/tools/store.py +0 -211
  91. dao_ai-0.1.17/src/dao_ai/providers/__init__.py +0 -0
  92. dao_ai-0.1.17/src/dao_ai/tools/vector_search.py +0 -418
  93. {dao_ai-0.1.17 → dao_ai-0.1.18}/.gitignore +0 -0
  94. {dao_ai-0.1.17 → dao_ai-0.1.18}/.python-version +0 -0
  95. {dao_ai-0.1.17 → dao_ai-0.1.18}/CHANGELOG.md +0 -0
  96. {dao_ai-0.1.17 → dao_ai-0.1.18}/CONTRIBUTING.md +0 -0
  97. {dao_ai-0.1.17 → dao_ai-0.1.18}/LICENSE +0 -0
  98. {dao_ai-0.1.17 → dao_ai-0.1.18}/Makefile +0 -0
  99. {dao_ai-0.1.17 → dao_ai-0.1.18}/README.md +0 -0
  100. {dao_ai-0.1.17 → dao_ai-0.1.18}/app.yaml +0 -0
  101. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/01_getting_started/minimal.yaml +0 -0
  102. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/02_mcp/custom_mcp.yaml +0 -0
  103. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/02_mcp/external_mcp.yaml +0 -0
  104. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/02_mcp/filtered_mcp.yaml +0 -0
  105. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/02_mcp/managed_mcp.yaml +0 -0
  106. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/02_mcp/slack_integration.yaml +0 -0
  107. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/04_genie/genie_basic.yaml +0 -0
  108. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/04_genie/genie_lru_cache.yaml +0 -0
  109. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/04_genie/genie_semantic_cache.yaml +0 -0
  110. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/04_genie/genie_with_conversation_id.yaml +0 -0
  111. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/05_memory/conversation_summarization.yaml +0 -0
  112. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/05_memory/in_memory_basic.yaml +0 -0
  113. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/05_memory/lakebase_persistence.yaml +0 -0
  114. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/05_memory/postgres_persistence.yaml +0 -0
  115. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/06_on_behalf_of_user/obo_basic.yaml +0 -0
  116. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/07_human_in_the_loop/human_in_the_loop.yaml +0 -0
  117. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/08_guardrails/guardrails_basic.yaml +0 -0
  118. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/09_structured_output/structured_output.yaml +0 -0
  119. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/10_agent_integrations/agent_bricks.yaml +0 -0
  120. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/10_agent_integrations/kasal.yaml +0 -0
  121. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/11_prompt_engineering/prompt_optimization.yaml +0 -0
  122. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/11_prompt_engineering/prompt_registry.yaml +0 -0
  123. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/12_middleware/combined_middleware.yaml +0 -0
  124. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/12_middleware/context_management.yaml +0 -0
  125. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/12_middleware/custom_field_validation.yaml +0 -0
  126. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/12_middleware/limit_middleware.yaml +0 -0
  127. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/12_middleware/logging_middleware.yaml +0 -0
  128. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/12_middleware/pii_middleware.yaml +0 -0
  129. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/12_middleware/retry_middleware.yaml +0 -0
  130. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/12_middleware/tool_selector_middleware.yaml +0 -0
  131. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/13_orchestration/supervisor_pattern.yaml +0 -0
  132. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/13_orchestration/swarm_pattern.yaml +0 -0
  133. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/14_basic_tools/sql_tool_example.yaml +0 -0
  134. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/15_complete_applications/brick_store.yaml +0 -0
  135. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/15_complete_applications/deep_research.yaml +0 -0
  136. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/15_complete_applications/executive_assistant.yaml +0 -0
  137. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/15_complete_applications/genie_and_genie_mcp.yaml +0 -0
  138. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/15_complete_applications/genie_vector_search_hybrid.yaml +0 -0
  139. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/15_complete_applications/hardware_store.yaml +0 -0
  140. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/15_complete_applications/hardware_store_swarm.yaml +0 -0
  141. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/15_complete_applications/quick_serve_restaurant.yaml +0 -0
  142. {dao_ai-0.1.17 → dao_ai-0.1.18}/config/examples/15_complete_applications/reservations_system.yaml +0 -0
  143. {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/appointments.sql +0 -0
  144. {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/appointments_data.sql +0 -0
  145. {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/brand_rep_demo_data.sql +0 -0
  146. {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/brand_rep_demo_queries.sql +0 -0
  147. {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/brand_rep_demo_tables.sql +0 -0
  148. {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/brand_rep_demo_validation.sql +0 -0
  149. {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/customers.sql +0 -0
  150. {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/customers_data.sql +0 -0
  151. {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/dim_stores.sql +0 -0
  152. {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/dim_stores_data.sql +0 -0
  153. {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/employee_performance.sql +0 -0
  154. {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/employee_performance_data.sql +0 -0
  155. {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/employee_tasks.sql +0 -0
  156. {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/employee_tasks_data.sql +0 -0
  157. {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/inventory.sql +0 -0
  158. {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/inventory_data.sql +0 -0
  159. {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/managers.sql +0 -0
  160. {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/managers_data.sql +0 -0
  161. {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/product_data.sql +0 -0
  162. {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/products.sql +0 -0
  163. {dao_ai-0.1.17 → dao_ai-0.1.18}/data/dais2025/task_assignments.sql +0 -0
  164. {dao_ai-0.1.17 → dao_ai-0.1.18}/data/hardware_store/inventory.snappy.parquet +0 -0
  165. {dao_ai-0.1.17 → dao_ai-0.1.18}/data/hardware_store/inventory.sql +0 -0
  166. {dao_ai-0.1.17 → dao_ai-0.1.18}/data/hardware_store/products.snappy.parquet +0 -0
  167. {dao_ai-0.1.17 → dao_ai-0.1.18}/data/hardware_store/products.sql +0 -0
  168. {dao_ai-0.1.17 → dao_ai-0.1.18}/data/quick_serve_restaurant/.gitkeep +0 -0
  169. {dao_ai-0.1.17 → dao_ai-0.1.18}/data/quick_serve_restaurant/fulfil_item_orders.sql +0 -0
  170. {dao_ai-0.1.17 → dao_ai-0.1.18}/data/quick_serve_restaurant/items_description.csv +0 -0
  171. {dao_ai-0.1.17 → dao_ai-0.1.18}/data/quick_serve_restaurant/items_description.sql +0 -0
  172. {dao_ai-0.1.17 → dao_ai-0.1.18}/data/quick_serve_restaurant/items_raw.csv +0 -0
  173. {dao_ai-0.1.17 → dao_ai-0.1.18}/data/quick_serve_restaurant/items_raw.sql +0 -0
  174. {dao_ai-0.1.17 → dao_ai-0.1.18}/data/quick_serve_restaurant/orders_raw.csv +0 -0
  175. {dao_ai-0.1.17 → dao_ai-0.1.18}/data/quick_serve_restaurant/orders_raw.sql +0 -0
  176. {dao_ai-0.1.17 → dao_ai-0.1.18}/databricks.yaml.template +0 -0
  177. {dao_ai-0.1.17 → dao_ai-0.1.18}/docs/cli-reference.md +0 -0
  178. {dao_ai-0.1.17 → dao_ai-0.1.18}/docs/configuration-reference.md +0 -0
  179. {dao_ai-0.1.17 → dao_ai-0.1.18}/docs/contributing.md +0 -0
  180. {dao_ai-0.1.17 → dao_ai-0.1.18}/docs/examples.md +0 -0
  181. {dao_ai-0.1.17 → dao_ai-0.1.18}/docs/faq.md +0 -0
  182. {dao_ai-0.1.17 → dao_ai-0.1.18}/docs/hardware_store/README.md +0 -0
  183. {dao_ai-0.1.17 → dao_ai-0.1.18}/docs/images/genie.png +0 -0
  184. {dao_ai-0.1.17 → dao_ai-0.1.18}/docs/key-capabilities.md +0 -0
  185. {dao_ai-0.1.17 → dao_ai-0.1.18}/docs/python-api.md +0 -0
  186. {dao_ai-0.1.17 → dao_ai-0.1.18}/docs/quick_serve_restaurant/.gitkeep +0 -0
  187. {dao_ai-0.1.17 → dao_ai-0.1.18}/docs/quick_serve_restaurant/quick-serve-restaurant.png +0 -0
  188. {dao_ai-0.1.17 → dao_ai-0.1.18}/docs/why-dao.md +0 -0
  189. {dao_ai-0.1.17 → dao_ai-0.1.18}/environment.yaml +0 -0
  190. {dao_ai-0.1.17 → dao_ai-0.1.18}/examples/dais2025/examples.yaml +0 -0
  191. {dao_ai-0.1.17 → dao_ai-0.1.18}/examples/deep_research/examples.yaml +0 -0
  192. {dao_ai-0.1.17 → dao_ai-0.1.18}/examples/executive_assistant/examples.yaml +0 -0
  193. {dao_ai-0.1.17 → dao_ai-0.1.18}/examples/hardware_store/examples.yaml +0 -0
  194. {dao_ai-0.1.17 → dao_ai-0.1.18}/examples/quick_serve_restaurant/.gitkeep +0 -0
  195. {dao_ai-0.1.17 → dao_ai-0.1.18}/examples/quick_serve_restaurant/examples.yaml +0 -0
  196. {dao_ai-0.1.17 → dao_ai-0.1.18}/functions/dais2025/extract_store_numbers.sql +0 -0
  197. {dao_ai-0.1.17 → dao_ai-0.1.18}/functions/dais2025/find_inventory_by_sku.sql +0 -0
  198. {dao_ai-0.1.17 → dao_ai-0.1.18}/functions/dais2025/find_inventory_by_upc.sql +0 -0
  199. {dao_ai-0.1.17 → dao_ai-0.1.18}/functions/dais2025/find_product_by_sku.sql +0 -0
  200. {dao_ai-0.1.17 → dao_ai-0.1.18}/functions/dais2025/find_product_by_upc.sql +0 -0
  201. {dao_ai-0.1.17 → dao_ai-0.1.18}/functions/dais2025/find_store_by_number.sql +0 -0
  202. {dao_ai-0.1.17 → dao_ai-0.1.18}/functions/dais2025/find_store_inventory_by_sku.sql +0 -0
  203. {dao_ai-0.1.17 → dao_ai-0.1.18}/functions/dais2025/find_store_inventory_by_upc.sql +0 -0
  204. {dao_ai-0.1.17 → dao_ai-0.1.18}/functions/hardware_store/find_inventory_by_sku.sql +0 -0
  205. {dao_ai-0.1.17 → dao_ai-0.1.18}/functions/hardware_store/find_inventory_by_upc.sql +0 -0
  206. {dao_ai-0.1.17 → dao_ai-0.1.18}/functions/hardware_store/find_product_by_sku.sql +0 -0
  207. {dao_ai-0.1.17 → dao_ai-0.1.18}/functions/hardware_store/find_product_by_upc.sql +0 -0
  208. {dao_ai-0.1.17 → dao_ai-0.1.18}/functions/hardware_store/find_store_inventory_by_sku.sql +0 -0
  209. {dao_ai-0.1.17 → dao_ai-0.1.18}/functions/hardware_store/find_store_inventory_by_upc.sql +0 -0
  210. {dao_ai-0.1.17 → dao_ai-0.1.18}/functions/quick_serve_restaurant/.gitkeep +0 -0
  211. {dao_ai-0.1.17 → dao_ai-0.1.18}/functions/quick_serve_restaurant/insert_coffee_order.sql +0 -0
  212. {dao_ai-0.1.17 → dao_ai-0.1.18}/functions/quick_serve_restaurant/lookup_items_by_descriptions.sql +0 -0
  213. {dao_ai-0.1.17 → dao_ai-0.1.18}/functions/quick_serve_restaurant/match_historical_item_order_by_date.sql +0 -0
  214. {dao_ai-0.1.17 → dao_ai-0.1.18}/functions/quick_serve_restaurant/match_item_by_description_and_price.sql +0 -0
  215. {dao_ai-0.1.17 → dao_ai-0.1.18}/notebooks/01_ingest_and_transform.py +0 -0
  216. {dao_ai-0.1.17 → dao_ai-0.1.18}/notebooks/02_provision_vector_search.py +0 -0
  217. {dao_ai-0.1.17 → dao_ai-0.1.18}/notebooks/03_provision_lakebase.py +0 -0
  218. {dao_ai-0.1.17 → dao_ai-0.1.18}/notebooks/04_unity_catalog_tools.py +0 -0
  219. {dao_ai-0.1.17 → dao_ai-0.1.18}/notebooks/05_deploy_agent.py +0 -0
  220. {dao_ai-0.1.17 → dao_ai-0.1.18}/notebooks/06_generate_evaluation_data.py +0 -0
  221. {dao_ai-0.1.17 → dao_ai-0.1.18}/notebooks/08_run_examples.py +0 -0
  222. {dao_ai-0.1.17 → dao_ai-0.1.18}/notebooks/10_optimize_prompts.py +0 -0
  223. {dao_ai-0.1.17 → dao_ai-0.1.18}/notebooks/99_scratchpad.py +0 -0
  224. {dao_ai-0.1.17 → dao_ai-0.1.18}/schemas/bundle_config_schema.json +0 -0
  225. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/__init__.py +0 -0
  226. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/apps/__init__.py +0 -0
  227. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/apps/handlers.py +0 -0
  228. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/apps/model_serving.py +0 -0
  229. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/apps/resources.py +0 -0
  230. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/apps/server.py +0 -0
  231. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/catalog.py +0 -0
  232. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/genie/__init__.py +0 -0
  233. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/genie/cache/__init__.py +0 -0
  234. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/genie/cache/base.py +0 -0
  235. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/genie/cache/core.py +0 -0
  236. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/genie/cache/lru.py +0 -0
  237. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/genie/cache/semantic.py +0 -0
  238. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/genie/core.py +0 -0
  239. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/graph.py +0 -0
  240. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/hooks/__init__.py +0 -0
  241. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/hooks/core.py +0 -0
  242. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/logging.py +0 -0
  243. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/memory/__init__.py +0 -0
  244. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/memory/base.py +0 -0
  245. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/memory/core.py +0 -0
  246. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/memory/databricks.py +0 -0
  247. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/messages.py +0 -0
  248. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/middleware/__init__.py +0 -0
  249. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/middleware/assertions.py +0 -0
  250. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/middleware/base.py +0 -0
  251. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/middleware/context_editing.py +0 -0
  252. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/middleware/core.py +0 -0
  253. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/middleware/guardrails.py +0 -0
  254. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/middleware/human_in_the_loop.py +0 -0
  255. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/middleware/message_validation.py +0 -0
  256. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/middleware/model_call_limit.py +0 -0
  257. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/middleware/model_retry.py +0 -0
  258. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/middleware/pii.py +0 -0
  259. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/middleware/summarization.py +0 -0
  260. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/middleware/tool_call_limit.py +0 -0
  261. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/middleware/tool_retry.py +0 -0
  262. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/middleware/tool_selector.py +0 -0
  263. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/models.py +0 -0
  264. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/nodes.py +0 -0
  265. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/optimization.py +0 -0
  266. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/orchestration/__init__.py +0 -0
  267. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/orchestration/swarm.py +0 -0
  268. {dao_ai-0.1.17/src/dais2025 → dao_ai-0.1.18/src/dao_ai/providers}/__init__.py +0 -0
  269. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/providers/base.py +0 -0
  270. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/state.py +0 -0
  271. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/tools/__init__.py +0 -0
  272. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/tools/agent.py +0 -0
  273. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/tools/core.py +0 -0
  274. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/tools/email.py +0 -0
  275. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/tools/genie.py +0 -0
  276. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/tools/mcp.py +0 -0
  277. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/tools/memory.py +0 -0
  278. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/tools/python.py +0 -0
  279. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/tools/search.py +0 -0
  280. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/tools/slack.py +0 -0
  281. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/tools/sql.py +0 -0
  282. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/tools/time.py +0 -0
  283. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/tools/unity_catalog.py +0 -0
  284. {dao_ai-0.1.17 → dao_ai-0.1.18}/src/dao_ai/types.py +0 -0
  285. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/config/test_model_config.yaml +0 -0
  286. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/middleware/test_context_editing.py +0 -0
  287. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/middleware/test_model_call_limit.py +0 -0
  288. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/middleware/test_model_retry.py +0 -0
  289. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/middleware/test_pii.py +0 -0
  290. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/middleware/test_tool_call_limit.py +0 -0
  291. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/middleware/test_tool_retry.py +0 -0
  292. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/middleware/test_tool_selector.py +0 -0
  293. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_agent_response_format.py +0 -0
  294. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_assertions_middleware.py +0 -0
  295. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_catalog.py +0 -0
  296. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_chat_history.py +0 -0
  297. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_config.py +0 -0
  298. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_function_parsing.py +0 -0
  299. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_genie.py +0 -0
  300. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_genie_conversation_ids_in_outputs.py +0 -0
  301. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_genie_databricks_integration.py +0 -0
  302. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_genie_room_model.py +0 -0
  303. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_guardrail_retry.py +0 -0
  304. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_hitl_config_model.py +0 -0
  305. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_hitl_responses_agent.py +0 -0
  306. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_hooks.py +0 -0
  307. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_human_in_the_loop.py +0 -0
  308. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_inference.py +0 -0
  309. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_inference_integration.py +0 -0
  310. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_input_output_structure.py +0 -0
  311. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_interrupt_type.py +0 -0
  312. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_llm_interrupt_handling.py +0 -0
  313. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_mcp.py +0 -0
  314. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_mcp_filtering.py +0 -0
  315. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_mcp_function_model.py +0 -0
  316. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_message_validation_middleware.py +0 -0
  317. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_messages.py +0 -0
  318. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_models.py +0 -0
  319. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_optimization.py +0 -0
  320. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_postgres_integration.py +0 -0
  321. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_prompt_optimizations.py +0 -0
  322. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_prompts.py +0 -0
  323. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_reranking_integration.py +0 -0
  324. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_resources_model_genie_integration.py +0 -0
  325. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_response_format.py +0 -0
  326. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_responses_agent_structured_output_unit.py +0 -0
  327. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_semantic_cache_context.py +0 -0
  328. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_sql_tool.py +0 -0
  329. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_sql_tool_integration.py +0 -0
  330. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_state.py +0 -0
  331. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_summarization_inference.py +0 -0
  332. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_swarm_middleware.py +0 -0
  333. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_tools.py +0 -0
  334. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_types.py +0 -0
  335. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_unity_catalog.py +0 -0
  336. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_utils.py +0 -0
  337. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_utils_type_from_fqn.py +0 -0
  338. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_vector_search.py +0 -0
  339. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/test_warehouse_model.py +0 -0
  340. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/dao_ai/weather_server_mcp.py +0 -0
  341. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/hardware_store/.gitkeep +0 -0
  342. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/hardware_store/test_graph.py +0 -0
  343. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/images/doritos_upc.png +0 -0
  344. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/images/lays_upc.png +0 -0
  345. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/quick_serve_restaurant/.gitkeep +0 -0
  346. {dao_ai-0.1.17 → dao_ai-0.1.18}/tests/test_mcp_app_auth.py +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.17
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
@@ -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)