Joseph Pollack commited on
Commit
c7402fb
·
1 Parent(s): 4d6a33a

fix typo mkdocs yaml

Browse files
Files changed (39) hide show
  1. mkdocs.yml +0 -2
  2. pyproject.toml +2 -0
  3. site/404.html +1 -1
  4. site/api/agents/index.html +1 -52
  5. site/api/models/index.html +1 -1
  6. site/api/orchestrators/index.html +1 -35
  7. site/api/services/index.html +49 -30
  8. site/api/tools/index.html +0 -0
  9. site/architecture/agents/index.html +1 -1
  10. site/architecture/graph-orchestration/index.html +0 -9
  11. site/architecture/graph_orchestration/index.html +11 -11
  12. site/architecture/middleware/index.html +40 -20
  13. site/architecture/orchestrators/index.html +1 -1
  14. site/architecture/services/index.html +30 -29
  15. site/architecture/tools/index.html +19 -18
  16. site/architecture/workflow-diagrams/index.html +16 -31
  17. site/architecture/workflows/index.html +0 -503
  18. site/configuration/CONFIGURATION/index.html +0 -130
  19. site/configuration/index.html +0 -0
  20. site/contributing/code-quality/index.html +12 -1
  21. site/contributing/code-style/index.html +23 -3
  22. site/contributing/error-handling/index.html +9 -9
  23. site/contributing/implementation-patterns/index.html +10 -10
  24. site/contributing/index.html +52 -15
  25. site/contributing/prompt-engineering/index.html +1 -1
  26. site/contributing/testing/index.html +37 -13
  27. site/getting-started/examples/index.html +49 -49
  28. site/getting-started/installation/index.html +27 -21
  29. site/getting-started/mcp-integration/index.html +35 -35
  30. site/getting-started/quick-start/index.html +44 -6
  31. site/index.html +16 -9
  32. site/license/index.html +1 -1
  33. site/overview/architecture/index.html +1 -1
  34. site/overview/features/index.html +1 -1
  35. site/overview/quick-start/index.html +22 -15
  36. site/search/search_index.json +0 -0
  37. site/sitemap.xml +33 -45
  38. site/team/index.html +1 -1
  39. uv.lock +52 -0
mkdocs.yml CHANGED
@@ -55,8 +55,6 @@ plugins:
55
  lang:
56
  - en
57
  separator: '[\s\-,:!=\[\]()"`/]+|\.(?!\d)|&[lg]t;|&'
58
- prebuild_index: true # Faster search initialization
59
- indexing: full # Full-text indexing for better results
60
  - mermaid2
61
  - codeinclude
62
  - git-revision-date-localized:
 
55
  lang:
56
  - en
57
  separator: '[\s\-,:!=\[\]()"`/]+|\.(?!\d)|&[lg]t;|&'
 
 
58
  - mermaid2
59
  - codeinclude
60
  - git-revision-date-localized:
pyproject.toml CHANGED
@@ -70,6 +70,7 @@ dev = [
70
  "mkdocs-material>=9.0.0",
71
  "mkdocs-mermaid2-plugin>=1.1.0",
72
  "mkdocs-codeinclude-plugin>=0.2.0",
 
73
  "mkdocs-minify-plugin>=0.8.0",
74
  "pymdown-extensions>=10.17.2",
75
  ]
@@ -192,6 +193,7 @@ dev = [
192
  "mkdocs-codeinclude-plugin>=0.2.1",
193
  "mkdocs-material>=9.7.0",
194
  "mkdocs-mermaid2-plugin>=1.2.3",
 
195
  "mkdocs-minify-plugin>=0.8.0",
196
  "structlog>=25.5.0",
197
  "ty>=0.0.1a28",
 
70
  "mkdocs-material>=9.0.0",
71
  "mkdocs-mermaid2-plugin>=1.1.0",
72
  "mkdocs-codeinclude-plugin>=0.2.0",
73
+ "mkdocs-git-revision-date-localized-plugin>=1.2.0",
74
  "mkdocs-minify-plugin>=0.8.0",
75
  "pymdown-extensions>=10.17.2",
76
  ]
 
193
  "mkdocs-codeinclude-plugin>=0.2.1",
194
  "mkdocs-material>=9.7.0",
195
  "mkdocs-mermaid2-plugin>=1.2.3",
196
+ "mkdocs-git-revision-date-localized-plugin>=1.2.0",
197
  "mkdocs-minify-plugin>=0.8.0",
198
  "structlog>=25.5.0",
199
  "ty>=0.0.1a28",
site/404.html CHANGED
@@ -1 +1 @@
1
- <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DETERMINATOR Team"><link rel=icon href=/GradioDemo/assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>The DETERMINATOR</title><link rel=stylesheet href=/GradioDemo/assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=/GradioDemo/assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><script>__md_scope=new URL("/GradioDemo/",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=/GradioDemo/. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=/GradioDemo/. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=/GradioDemo/overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=/GradioDemo/getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=/GradioDemo/configuration/CONFIGURATION/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=/GradioDemo/architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=/GradioDemo/api/agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=/GradioDemo/contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=/GradioDemo/LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=/GradioDemo/team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=/GradioDemo/. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=/GradioDemo/. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=/GradioDemo/overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=/GradioDemo/overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=/GradioDemo/getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=/GradioDemo/getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Quick Start Guide </span> </a> </li> <li class=md-nav__item> <a href=/GradioDemo/getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=/GradioDemo/getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <label class=md-nav__link for=__nav_4 id=__nav_4_label tabindex=0> <span class=md-ellipsis> Configuration </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=/GradioDemo/configuration/CONFIGURATION/ class=md-nav__link> <span class=md-ellipsis> Configuration Guide </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=/GradioDemo/architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=/GradioDemo/architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=/GradioDemo/architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=/GradioDemo/architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=/GradioDemo/architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=/GradioDemo/architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=/GradioDemo/architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=/GradioDemo/api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=/GradioDemo/api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=/GradioDemo/api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=/GradioDemo/api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=/GradioDemo/api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <label class=md-nav__link for=__nav_7 id=__nav_7_label tabindex=0> <span class=md-ellipsis> Contributing </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=/GradioDemo/contributing/ class=md-nav__link> <span class=md-ellipsis> Contributing to DeepCritical </span> </a> </li> <li class=md-nav__item> <a href=/GradioDemo/contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=/GradioDemo/contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=/GradioDemo/contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=/GradioDemo/contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=/GradioDemo/contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=/GradioDemo/contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=/GradioDemo/LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=/GradioDemo/team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=sidebar data-md-type=toc> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1>404 - Not found</h1> </article> </div> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=github.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title=huggingface.co class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "/GradioDemo/", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy"], "search": "/GradioDemo/assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=/GradioDemo/assets/javascripts/bundle.e71a0d61.min.js></script> </body> </html>
 
1
+ <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DeepCritical Team"><link rel=icon href=/GradioDemo/assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>The DETERMINATOR</title><link rel=stylesheet href=/GradioDemo/assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=/GradioDemo/assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><link rel=stylesheet href=/GradioDemo/css/timeago.css><script>__md_scope=new URL("/GradioDemo/",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=/GradioDemo/. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=/GradioDemo/. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=/GradioDemo/overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=/GradioDemo/getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=/GradioDemo/configuration/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=/GradioDemo/architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=/GradioDemo/api/agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=/GradioDemo/contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=/GradioDemo/LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=/GradioDemo/team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=/GradioDemo/. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=/GradioDemo/. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=/GradioDemo/overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=/GradioDemo/overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=/GradioDemo/getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=/GradioDemo/getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Single Command Deploy </span> </a> </li> <li class=md-nav__item> <a href=/GradioDemo/getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=/GradioDemo/getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <div class="md-nav__link md-nav__container"> <a href=/GradioDemo/configuration/ class="md-nav__link "> <span class=md-ellipsis> Configuration </span> </a> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=/GradioDemo/architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=/GradioDemo/architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=/GradioDemo/architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=/GradioDemo/architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=/GradioDemo/architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=/GradioDemo/architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=/GradioDemo/architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=/GradioDemo/api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=/GradioDemo/api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=/GradioDemo/api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=/GradioDemo/api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=/GradioDemo/api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <div class="md-nav__link md-nav__container"> <a href=/GradioDemo/contributing/ class="md-nav__link "> <span class=md-ellipsis> Contributing </span> </a> <label class="md-nav__link " for=__nav_7 id=__nav_7_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=/GradioDemo/contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=/GradioDemo/contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=/GradioDemo/contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=/GradioDemo/contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=/GradioDemo/contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=/GradioDemo/contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=/GradioDemo/LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=/GradioDemo/team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1>404 - Not found</h1> </article> </div> <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=GitHub class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://twitter.com/josephpollack target=_blank rel=noopener title=Twitter class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M459.4 151.7c.3 4.5.3 9.1.3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103v-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53C87.4 130.8 165 172.4 252.1 176.9c-1.6-7.8-2.6-15.9-2.6-24C249.5 95.1 296.3 48 354.4 48c30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title="Live Demo" class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> <a href=https://discord.gg/n8ytYeh25n target=_blank rel=noopener title=Discord class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 576 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M492.5 69.8c-.2-.3-.4-.6-.8-.7-38.1-17.5-78.4-30-119.7-37.1-.4-.1-.8 0-1.1.1s-.6.4-.8.8c-5.5 9.9-10.5 20.2-14.9 30.6-44.6-6.8-89.9-6.8-134.4 0-4.5-10.5-9.5-20.7-15.1-30.6-.2-.3-.5-.6-.8-.8s-.7-.2-1.1-.2C162.5 39 122.2 51.5 84.1 69c-.3.1-.6.4-.8.7C7.1 183.5-13.8 294.6-3.6 404.2c0 .3.1.5.2.8s.3.4.5.6c44.4 32.9 94 58 146.8 74.2.4.1.8.1 1.1 0s.7-.4.9-.7c11.3-15.4 21.4-31.8 30-48.8.1-.2.2-.5.2-.8s0-.5-.1-.8-.2-.5-.4-.6-.4-.3-.7-.4c-15.8-6.1-31.2-13.4-45.9-21.9-.3-.2-.5-.4-.7-.6s-.3-.6-.3-.9 0-.6.2-.9.3-.5.6-.7c3.1-2.3 6.2-4.7 9.1-7.1.3-.2.6-.4.9-.4s.7 0 1 .1c96.2 43.9 200.4 43.9 295.5 0 .3-.1.7-.2 1-.2s.7.2.9.4c2.9 2.4 6 4.9 9.1 7.2.2.2.4.4.6.7s.2.6.2.9-.1.6-.3.9-.4.5-.6.6c-14.7 8.6-30 15.9-45.9 21.8-.2.1-.5.2-.7.4s-.3.4-.4.7-.1.5-.1.8.1.5.2.8c8.8 17 18.8 33.3 30 48.8.2.3.6.6.9.7s.8.1 1.1 0c52.9-16.2 102.6-41.3 147.1-74.2.2-.2.4-.4.5-.6s.2-.5.2-.8c12.3-126.8-20.5-236.9-86.9-334.5zm-302 267.7c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.4 59.2-52.8 59.2m195.4 0c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.2 59.2-52.8 59.2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "/GradioDemo/", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "navigation.indexes", "navigation.instant", "navigation.tracking", "navigation.smooth", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy", "content.tabs.link", "content.tooltips", "toc.integrate"], "search": "/GradioDemo/assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=/GradioDemo/assets/javascripts/bundle.e71a0d61.min.js></script> <script src=/GradioDemo/js/timeago.min.js></script> <script src=/GradioDemo/js/timeago_mkdocs_material.js></script> </body> </html>
site/api/agents/index.html CHANGED
@@ -1,52 +1 @@
1
- <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DETERMINATOR Team"><link href=https://deepcritical.github.io/GradioDemo/api/agents/ rel=canonical><link href=../../architecture/services/ rel=prev><link href=../tools/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Agents API Reference - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#agents-api-reference class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Agents API Reference </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/CONFIGURATION/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../../architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=./ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../../contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Quick Start Guide </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <label class=md-nav__link for=__nav_4 id=__nav_4_label tabindex=0> <span class=md-ellipsis> Configuration </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../configuration/CONFIGURATION/ class=md-nav__link> <span class=md-ellipsis> Configuration Guide </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_6 checked> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=true> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Agents API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Agents API Reference </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#knowledgegapagent class=md-nav__link> <span class=md-ellipsis> KnowledgeGapAgent </span> </a> <nav class=md-nav aria-label=KnowledgeGapAgent> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> <nav class=md-nav aria-label=Methods> <ul class=md-nav__list> <li class=md-nav__item> <a href=#evaluate class=md-nav__link> <span class=md-ellipsis> evaluate </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#toolselectoragent class=md-nav__link> <span class=md-ellipsis> ToolSelectorAgent </span> </a> <nav class=md-nav aria-label=ToolSelectorAgent> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods_1 class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> <nav class=md-nav aria-label=Methods> <ul class=md-nav__list> <li class=md-nav__item> <a href=#select_tools class=md-nav__link> <span class=md-ellipsis> select_tools </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#writeragent class=md-nav__link> <span class=md-ellipsis> WriterAgent </span> </a> <nav class=md-nav aria-label=WriterAgent> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods_2 class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> <nav class=md-nav aria-label=Methods> <ul class=md-nav__list> <li class=md-nav__item> <a href=#write_report class=md-nav__link> <span class=md-ellipsis> write_report </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#longwriteragent class=md-nav__link> <span class=md-ellipsis> LongWriterAgent </span> </a> <nav class=md-nav aria-label=LongWriterAgent> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods_3 class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> <nav class=md-nav aria-label=Methods> <ul class=md-nav__list> <li class=md-nav__item> <a href=#write_next_section class=md-nav__link> <span class=md-ellipsis> write_next_section </span> </a> </li> <li class=md-nav__item> <a href=#write_report_1 class=md-nav__link> <span class=md-ellipsis> write_report </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#proofreaderagent class=md-nav__link> <span class=md-ellipsis> ProofreaderAgent </span> </a> <nav class=md-nav aria-label=ProofreaderAgent> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods_4 class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> <nav class=md-nav aria-label=Methods> <ul class=md-nav__list> <li class=md-nav__item> <a href=#proofread class=md-nav__link> <span class=md-ellipsis> proofread </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#thinkingagent class=md-nav__link> <span class=md-ellipsis> ThinkingAgent </span> </a> <nav class=md-nav aria-label=ThinkingAgent> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods_5 class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> <nav class=md-nav aria-label=Methods> <ul class=md-nav__list> <li class=md-nav__item> <a href=#generate_observations class=md-nav__link> <span class=md-ellipsis> generate_observations </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#inputparseragent class=md-nav__link> <span class=md-ellipsis> InputParserAgent </span> </a> <nav class=md-nav aria-label=InputParserAgent> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods_6 class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> <nav class=md-nav aria-label=Methods> <ul class=md-nav__list> <li class=md-nav__item> <a href=#parse_query class=md-nav__link> <span class=md-ellipsis> parse_query </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#factory-functions class=md-nav__link> <span class=md-ellipsis> Factory Functions </span> </a> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <label class=md-nav__link for=__nav_7 id=__nav_7_label tabindex=0> <span class=md-ellipsis> Contributing </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../contributing/ class=md-nav__link> <span class=md-ellipsis> Contributing to DeepCritical </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=sidebar data-md-type=toc> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#knowledgegapagent class=md-nav__link> <span class=md-ellipsis> KnowledgeGapAgent </span> </a> <nav class=md-nav aria-label=KnowledgeGapAgent> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> <nav class=md-nav aria-label=Methods> <ul class=md-nav__list> <li class=md-nav__item> <a href=#evaluate class=md-nav__link> <span class=md-ellipsis> evaluate </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#toolselectoragent class=md-nav__link> <span class=md-ellipsis> ToolSelectorAgent </span> </a> <nav class=md-nav aria-label=ToolSelectorAgent> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods_1 class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> <nav class=md-nav aria-label=Methods> <ul class=md-nav__list> <li class=md-nav__item> <a href=#select_tools class=md-nav__link> <span class=md-ellipsis> select_tools </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#writeragent class=md-nav__link> <span class=md-ellipsis> WriterAgent </span> </a> <nav class=md-nav aria-label=WriterAgent> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods_2 class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> <nav class=md-nav aria-label=Methods> <ul class=md-nav__list> <li class=md-nav__item> <a href=#write_report class=md-nav__link> <span class=md-ellipsis> write_report </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#longwriteragent class=md-nav__link> <span class=md-ellipsis> LongWriterAgent </span> </a> <nav class=md-nav aria-label=LongWriterAgent> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods_3 class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> <nav class=md-nav aria-label=Methods> <ul class=md-nav__list> <li class=md-nav__item> <a href=#write_next_section class=md-nav__link> <span class=md-ellipsis> write_next_section </span> </a> </li> <li class=md-nav__item> <a href=#write_report_1 class=md-nav__link> <span class=md-ellipsis> write_report </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#proofreaderagent class=md-nav__link> <span class=md-ellipsis> ProofreaderAgent </span> </a> <nav class=md-nav aria-label=ProofreaderAgent> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods_4 class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> <nav class=md-nav aria-label=Methods> <ul class=md-nav__list> <li class=md-nav__item> <a href=#proofread class=md-nav__link> <span class=md-ellipsis> proofread </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#thinkingagent class=md-nav__link> <span class=md-ellipsis> ThinkingAgent </span> </a> <nav class=md-nav aria-label=ThinkingAgent> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods_5 class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> <nav class=md-nav aria-label=Methods> <ul class=md-nav__list> <li class=md-nav__item> <a href=#generate_observations class=md-nav__link> <span class=md-ellipsis> generate_observations </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#inputparseragent class=md-nav__link> <span class=md-ellipsis> InputParserAgent </span> </a> <nav class=md-nav aria-label=InputParserAgent> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods_6 class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> <nav class=md-nav aria-label=Methods> <ul class=md-nav__list> <li class=md-nav__item> <a href=#parse_query class=md-nav__link> <span class=md-ellipsis> parse_query </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#factory-functions class=md-nav__link> <span class=md-ellipsis> Factory Functions </span> </a> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=agents-api-reference>Agents API Reference<a class=headerlink href=#agents-api-reference title="Permanent link">&para;</a></h1> <p>This page documents the API for DeepCritical agents.</p> <h2 id=knowledgegapagent>KnowledgeGapAgent<a class=headerlink href=#knowledgegapagent title="Permanent link">&para;</a></h2> <p><strong>Module</strong>: <code>src.agents.knowledge_gap</code></p> <p><strong>Purpose</strong>: Evaluates research state and identifies knowledge gaps.</p> <h3 id=methods>Methods<a class=headerlink href=#methods title="Permanent link">&para;</a></h3> <h4 id=evaluate><code>evaluate</code><a class=headerlink href=#evaluate title="Permanent link">&para;</a></h4> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=k>async</span> <span class=k>def</span><span class=w> </span><span class=nf>evaluate</span><span class=p>(</span>
2
- <a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a> <span class=bp>self</span><span class=p>,</span>
3
- <a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a> <span class=n>query</span><span class=p>:</span> <span class=nb>str</span><span class=p>,</span>
4
- <a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a> <span class=n>background_context</span><span class=p>:</span> <span class=nb>str</span><span class=p>,</span>
5
- <a id=__codelineno-0-5 name=__codelineno-0-5 href=#__codelineno-0-5></a> <span class=n>conversation_history</span><span class=p>:</span> <span class=n>Conversation</span><span class=p>,</span>
6
- <a id=__codelineno-0-6 name=__codelineno-0-6 href=#__codelineno-0-6></a> <span class=n>iteration</span><span class=p>:</span> <span class=nb>int</span><span class=p>,</span>
7
- <a id=__codelineno-0-7 name=__codelineno-0-7 href=#__codelineno-0-7></a> <span class=n>time_elapsed_minutes</span><span class=p>:</span> <span class=nb>float</span><span class=p>,</span>
8
- <a id=__codelineno-0-8 name=__codelineno-0-8 href=#__codelineno-0-8></a> <span class=n>max_time_minutes</span><span class=p>:</span> <span class=nb>float</span>
9
- <a id=__codelineno-0-9 name=__codelineno-0-9 href=#__codelineno-0-9></a><span class=p>)</span> <span class=o>-&gt;</span> <span class=n>KnowledgeGapOutput</span>
10
- </code></pre></div> <p>Evaluates research completeness and identifies outstanding knowledge gaps.</p> <p><strong>Parameters</strong>: - <code>query</code>: Research query string - <code>background_context</code>: Background context for the query - <code>conversation_history</code>: Conversation history with previous iterations - <code>iteration</code>: Current iteration number - <code>time_elapsed_minutes</code>: Elapsed time in minutes - <code>max_time_minutes</code>: Maximum time limit in minutes</p> <p><strong>Returns</strong>: <code>KnowledgeGapOutput</code> with: - <code>research_complete</code>: Boolean indicating if research is complete - <code>outstanding_gaps</code>: List of remaining knowledge gaps</p> <h2 id=toolselectoragent>ToolSelectorAgent<a class=headerlink href=#toolselectoragent title="Permanent link">&para;</a></h2> <p><strong>Module</strong>: <code>src.agents.tool_selector</code></p> <p><strong>Purpose</strong>: Selects appropriate tools for addressing knowledge gaps.</p> <h3 id=methods_1>Methods<a class=headerlink href=#methods_1 title="Permanent link">&para;</a></h3> <h4 id=select_tools><code>select_tools</code><a class=headerlink href=#select_tools title="Permanent link">&para;</a></h4> <div class=highlight><pre><span></span><code><a id=__codelineno-1-1 name=__codelineno-1-1 href=#__codelineno-1-1></a><span class=k>async</span> <span class=k>def</span><span class=w> </span><span class=nf>select_tools</span><span class=p>(</span>
11
- <a id=__codelineno-1-2 name=__codelineno-1-2 href=#__codelineno-1-2></a> <span class=bp>self</span><span class=p>,</span>
12
- <a id=__codelineno-1-3 name=__codelineno-1-3 href=#__codelineno-1-3></a> <span class=n>query</span><span class=p>:</span> <span class=nb>str</span><span class=p>,</span>
13
- <a id=__codelineno-1-4 name=__codelineno-1-4 href=#__codelineno-1-4></a> <span class=n>knowledge_gaps</span><span class=p>:</span> <span class=nb>list</span><span class=p>[</span><span class=nb>str</span><span class=p>],</span>
14
- <a id=__codelineno-1-5 name=__codelineno-1-5 href=#__codelineno-1-5></a> <span class=n>available_tools</span><span class=p>:</span> <span class=nb>list</span><span class=p>[</span><span class=nb>str</span><span class=p>]</span>
15
- <a id=__codelineno-1-6 name=__codelineno-1-6 href=#__codelineno-1-6></a><span class=p>)</span> <span class=o>-&gt;</span> <span class=n>AgentSelectionPlan</span>
16
- </code></pre></div> <p>Selects tools for addressing knowledge gaps.</p> <p><strong>Parameters</strong>: - <code>query</code>: Research query string - <code>knowledge_gaps</code>: List of knowledge gaps to address - <code>available_tools</code>: List of available tool names</p> <p><strong>Returns</strong>: <code>AgentSelectionPlan</code> with list of <code>AgentTask</code> objects.</p> <h2 id=writeragent>WriterAgent<a class=headerlink href=#writeragent title="Permanent link">&para;</a></h2> <p><strong>Module</strong>: <code>src.agents.writer</code></p> <p><strong>Purpose</strong>: Generates final reports from research findings.</p> <h3 id=methods_2>Methods<a class=headerlink href=#methods_2 title="Permanent link">&para;</a></h3> <h4 id=write_report><code>write_report</code><a class=headerlink href=#write_report title="Permanent link">&para;</a></h4> <div class=highlight><pre><span></span><code><a id=__codelineno-2-1 name=__codelineno-2-1 href=#__codelineno-2-1></a><span class=k>async</span> <span class=k>def</span><span class=w> </span><span class=nf>write_report</span><span class=p>(</span>
17
- <a id=__codelineno-2-2 name=__codelineno-2-2 href=#__codelineno-2-2></a> <span class=bp>self</span><span class=p>,</span>
18
- <a id=__codelineno-2-3 name=__codelineno-2-3 href=#__codelineno-2-3></a> <span class=n>query</span><span class=p>:</span> <span class=nb>str</span><span class=p>,</span>
19
- <a id=__codelineno-2-4 name=__codelineno-2-4 href=#__codelineno-2-4></a> <span class=n>findings</span><span class=p>:</span> <span class=nb>str</span><span class=p>,</span>
20
- <a id=__codelineno-2-5 name=__codelineno-2-5 href=#__codelineno-2-5></a> <span class=n>output_length</span><span class=p>:</span> <span class=nb>str</span> <span class=o>=</span> <span class=s2>&quot;medium&quot;</span><span class=p>,</span>
21
- <a id=__codelineno-2-6 name=__codelineno-2-6 href=#__codelineno-2-6></a> <span class=n>output_instructions</span><span class=p>:</span> <span class=nb>str</span> <span class=o>|</span> <span class=kc>None</span> <span class=o>=</span> <span class=kc>None</span>
22
- <a id=__codelineno-2-7 name=__codelineno-2-7 href=#__codelineno-2-7></a><span class=p>)</span> <span class=o>-&gt;</span> <span class=nb>str</span>
23
- </code></pre></div> <p>Generates a markdown report from research findings.</p> <p><strong>Parameters</strong>: - <code>query</code>: Research query string - <code>findings</code>: Research findings to include in report - <code>output_length</code>: Desired output length ("short", "medium", "long") - <code>output_instructions</code>: Additional instructions for report generation</p> <p><strong>Returns</strong>: Markdown string with numbered citations.</p> <h2 id=longwriteragent>LongWriterAgent<a class=headerlink href=#longwriteragent title="Permanent link">&para;</a></h2> <p><strong>Module</strong>: <code>src.agents.long_writer</code></p> <p><strong>Purpose</strong>: Long-form report generation with section-by-section writing.</p> <h3 id=methods_3>Methods<a class=headerlink href=#methods_3 title="Permanent link">&para;</a></h3> <h4 id=write_next_section><code>write_next_section</code><a class=headerlink href=#write_next_section title="Permanent link">&para;</a></h4> <div class=highlight><pre><span></span><code><a id=__codelineno-3-1 name=__codelineno-3-1 href=#__codelineno-3-1></a><span class=k>async</span> <span class=k>def</span><span class=w> </span><span class=nf>write_next_section</span><span class=p>(</span>
24
- <a id=__codelineno-3-2 name=__codelineno-3-2 href=#__codelineno-3-2></a> <span class=bp>self</span><span class=p>,</span>
25
- <a id=__codelineno-3-3 name=__codelineno-3-3 href=#__codelineno-3-3></a> <span class=n>query</span><span class=p>:</span> <span class=nb>str</span><span class=p>,</span>
26
- <a id=__codelineno-3-4 name=__codelineno-3-4 href=#__codelineno-3-4></a> <span class=n>draft</span><span class=p>:</span> <span class=n>ReportDraft</span><span class=p>,</span>
27
- <a id=__codelineno-3-5 name=__codelineno-3-5 href=#__codelineno-3-5></a> <span class=n>section_title</span><span class=p>:</span> <span class=nb>str</span><span class=p>,</span>
28
- <a id=__codelineno-3-6 name=__codelineno-3-6 href=#__codelineno-3-6></a> <span class=n>section_content</span><span class=p>:</span> <span class=nb>str</span>
29
- <a id=__codelineno-3-7 name=__codelineno-3-7 href=#__codelineno-3-7></a><span class=p>)</span> <span class=o>-&gt;</span> <span class=n>LongWriterOutput</span>
30
- </code></pre></div> <p>Writes the next section of a long-form report.</p> <p><strong>Parameters</strong>: - <code>query</code>: Research query string - <code>draft</code>: Current report draft - <code>section_title</code>: Title of the section to write - <code>section_content</code>: Content/guidance for the section</p> <p><strong>Returns</strong>: <code>LongWriterOutput</code> with updated draft.</p> <h4 id=write_report_1><code>write_report</code><a class=headerlink href=#write_report_1 title="Permanent link">&para;</a></h4> <div class=highlight><pre><span></span><code><a id=__codelineno-4-1 name=__codelineno-4-1 href=#__codelineno-4-1></a><span class=k>async</span> <span class=k>def</span><span class=w> </span><span class=nf>write_report</span><span class=p>(</span>
31
- <a id=__codelineno-4-2 name=__codelineno-4-2 href=#__codelineno-4-2></a> <span class=bp>self</span><span class=p>,</span>
32
- <a id=__codelineno-4-3 name=__codelineno-4-3 href=#__codelineno-4-3></a> <span class=n>query</span><span class=p>:</span> <span class=nb>str</span><span class=p>,</span>
33
- <a id=__codelineno-4-4 name=__codelineno-4-4 href=#__codelineno-4-4></a> <span class=n>report_title</span><span class=p>:</span> <span class=nb>str</span><span class=p>,</span>
34
- <a id=__codelineno-4-5 name=__codelineno-4-5 href=#__codelineno-4-5></a> <span class=n>report_draft</span><span class=p>:</span> <span class=n>ReportDraft</span>
35
- <a id=__codelineno-4-6 name=__codelineno-4-6 href=#__codelineno-4-6></a><span class=p>)</span> <span class=o>-&gt;</span> <span class=nb>str</span>
36
- </code></pre></div> <p>Generates final report from draft.</p> <p><strong>Parameters</strong>: - <code>query</code>: Research query string - <code>report_title</code>: Title of the report - <code>report_draft</code>: Complete report draft</p> <p><strong>Returns</strong>: Final markdown report string.</p> <h2 id=proofreaderagent>ProofreaderAgent<a class=headerlink href=#proofreaderagent title="Permanent link">&para;</a></h2> <p><strong>Module</strong>: <code>src.agents.proofreader</code></p> <p><strong>Purpose</strong>: Proofreads and polishes report drafts.</p> <h3 id=methods_4>Methods<a class=headerlink href=#methods_4 title="Permanent link">&para;</a></h3> <h4 id=proofread><code>proofread</code><a class=headerlink href=#proofread title="Permanent link">&para;</a></h4> <div class=highlight><pre><span></span><code><a id=__codelineno-5-1 name=__codelineno-5-1 href=#__codelineno-5-1></a><span class=k>async</span> <span class=k>def</span><span class=w> </span><span class=nf>proofread</span><span class=p>(</span>
37
- <a id=__codelineno-5-2 name=__codelineno-5-2 href=#__codelineno-5-2></a> <span class=bp>self</span><span class=p>,</span>
38
- <a id=__codelineno-5-3 name=__codelineno-5-3 href=#__codelineno-5-3></a> <span class=n>query</span><span class=p>:</span> <span class=nb>str</span><span class=p>,</span>
39
- <a id=__codelineno-5-4 name=__codelineno-5-4 href=#__codelineno-5-4></a> <span class=n>report_title</span><span class=p>:</span> <span class=nb>str</span><span class=p>,</span>
40
- <a id=__codelineno-5-5 name=__codelineno-5-5 href=#__codelineno-5-5></a> <span class=n>report_draft</span><span class=p>:</span> <span class=n>ReportDraft</span>
41
- <a id=__codelineno-5-6 name=__codelineno-5-6 href=#__codelineno-5-6></a><span class=p>)</span> <span class=o>-&gt;</span> <span class=nb>str</span>
42
- </code></pre></div> <p>Proofreads and polishes a report draft.</p> <p><strong>Parameters</strong>: - <code>query</code>: Research query string - <code>report_title</code>: Title of the report - <code>report_draft</code>: Report draft to proofread</p> <p><strong>Returns</strong>: Polished markdown string.</p> <h2 id=thinkingagent>ThinkingAgent<a class=headerlink href=#thinkingagent title="Permanent link">&para;</a></h2> <p><strong>Module</strong>: <code>src.agents.thinking</code></p> <p><strong>Purpose</strong>: Generates observations from conversation history.</p> <h3 id=methods_5>Methods<a class=headerlink href=#methods_5 title="Permanent link">&para;</a></h3> <h4 id=generate_observations><code>generate_observations</code><a class=headerlink href=#generate_observations title="Permanent link">&para;</a></h4> <div class=highlight><pre><span></span><code><a id=__codelineno-6-1 name=__codelineno-6-1 href=#__codelineno-6-1></a><span class=k>async</span> <span class=k>def</span><span class=w> </span><span class=nf>generate_observations</span><span class=p>(</span>
43
- <a id=__codelineno-6-2 name=__codelineno-6-2 href=#__codelineno-6-2></a> <span class=bp>self</span><span class=p>,</span>
44
- <a id=__codelineno-6-3 name=__codelineno-6-3 href=#__codelineno-6-3></a> <span class=n>query</span><span class=p>:</span> <span class=nb>str</span><span class=p>,</span>
45
- <a id=__codelineno-6-4 name=__codelineno-6-4 href=#__codelineno-6-4></a> <span class=n>background_context</span><span class=p>:</span> <span class=nb>str</span><span class=p>,</span>
46
- <a id=__codelineno-6-5 name=__codelineno-6-5 href=#__codelineno-6-5></a> <span class=n>conversation_history</span><span class=p>:</span> <span class=n>Conversation</span>
47
- <a id=__codelineno-6-6 name=__codelineno-6-6 href=#__codelineno-6-6></a><span class=p>)</span> <span class=o>-&gt;</span> <span class=nb>str</span>
48
- </code></pre></div> <p>Generates observations from conversation history.</p> <p><strong>Parameters</strong>: - <code>query</code>: Research query string - <code>background_context</code>: Background context - <code>conversation_history</code>: Conversation history</p> <p><strong>Returns</strong>: Observation string.</p> <h2 id=inputparseragent>InputParserAgent<a class=headerlink href=#inputparseragent title="Permanent link">&para;</a></h2> <p><strong>Module</strong>: <code>src.agents.input_parser</code></p> <p><strong>Purpose</strong>: Parses and improves user queries, detects research mode.</p> <h3 id=methods_6>Methods<a class=headerlink href=#methods_6 title="Permanent link">&para;</a></h3> <h4 id=parse_query><code>parse_query</code><a class=headerlink href=#parse_query title="Permanent link">&para;</a></h4> <div class=highlight><pre><span></span><code><a id=__codelineno-7-1 name=__codelineno-7-1 href=#__codelineno-7-1></a><span class=k>async</span> <span class=k>def</span><span class=w> </span><span class=nf>parse_query</span><span class=p>(</span>
49
- <a id=__codelineno-7-2 name=__codelineno-7-2 href=#__codelineno-7-2></a> <span class=bp>self</span><span class=p>,</span>
50
- <a id=__codelineno-7-3 name=__codelineno-7-3 href=#__codelineno-7-3></a> <span class=n>query</span><span class=p>:</span> <span class=nb>str</span>
51
- <a id=__codelineno-7-4 name=__codelineno-7-4 href=#__codelineno-7-4></a><span class=p>)</span> <span class=o>-&gt;</span> <span class=n>ParsedQuery</span>
52
- </code></pre></div> <p>Parses and improves a user query.</p> <p><strong>Parameters</strong>: - <code>query</code>: Original query string</p> <p><strong>Returns</strong>: <code>ParsedQuery</code> with: - <code>original_query</code>: Original query string - <code>improved_query</code>: Refined query string - <code>research_mode</code>: "iterative" or "deep" - <code>key_entities</code>: List of key entities - <code>research_questions</code>: List of research questions</p> <h2 id=factory-functions>Factory Functions<a class=headerlink href=#factory-functions title="Permanent link">&para;</a></h2> <p>All agents have factory functions in <code>src.agent_factory.agents</code>:</p> <p><strong>Parameters</strong>: - <code>model</code>: Optional Pydantic AI model. If None, uses <code>get_model()</code> from settings.</p> <p><strong>Returns</strong>: Agent instance.</p> <h2 id=see-also>See Also<a class=headerlink href=#see-also title="Permanent link">&para;</a></h2> <ul> <li><a href=../../architecture/agents/ >Architecture - Agents</a> - Architecture overview</li> <li><a href=../models/ >Models API</a> - Data models used by agents</li> </ul> </article> </div> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=github.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title=huggingface.co class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> </body> </html>
 
1
+ <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DeepCritical Team"><link href=https://deepcritical.github.io/GradioDemo/api/agents/ rel=canonical><link href=../../architecture/services/ rel=prev><link href=../tools/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Agents API Reference - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><link rel=stylesheet href=../../css/timeago.css><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#agents-api-reference class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Agents API Reference </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../../architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=./ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../../contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Single Command Deploy </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <div class="md-nav__link md-nav__container"> <a href=../../configuration/ class="md-nav__link "> <span class=md-ellipsis> Configuration </span> </a> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_6 checked> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=true> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Agents API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Agents API Reference </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#knowledgegapagent class=md-nav__link> <span class=md-ellipsis> KnowledgeGapAgent </span> </a> <nav class=md-nav aria-label=KnowledgeGapAgent> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#toolselectoragent class=md-nav__link> <span class=md-ellipsis> ToolSelectorAgent </span> </a> <nav class=md-nav aria-label=ToolSelectorAgent> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods_1 class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#writeragent class=md-nav__link> <span class=md-ellipsis> WriterAgent </span> </a> <nav class=md-nav aria-label=WriterAgent> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods_2 class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#longwriteragent class=md-nav__link> <span class=md-ellipsis> LongWriterAgent </span> </a> <nav class=md-nav aria-label=LongWriterAgent> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods_3 class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#proofreaderagent class=md-nav__link> <span class=md-ellipsis> ProofreaderAgent </span> </a> <nav class=md-nav aria-label=ProofreaderAgent> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods_4 class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#thinkingagent class=md-nav__link> <span class=md-ellipsis> ThinkingAgent </span> </a> <nav class=md-nav aria-label=ThinkingAgent> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods_5 class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#inputparseragent class=md-nav__link> <span class=md-ellipsis> InputParserAgent </span> </a> <nav class=md-nav aria-label=InputParserAgent> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods_6 class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#factory-functions class=md-nav__link> <span class=md-ellipsis> Factory Functions </span> </a> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <div class="md-nav__link md-nav__container"> <a href=../../contributing/ class="md-nav__link "> <span class=md-ellipsis> Contributing </span> </a> <label class="md-nav__link " for=__nav_7 id=__nav_7_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=agents-api-reference>Agents API Reference<a class=headerlink href=#agents-api-reference title="Anchor link to this section">&para;</a></h1> <p>This page documents the API for DeepCritical agents.</p> <h2 id=knowledgegapagent>KnowledgeGapAgent<a class=headerlink href=#knowledgegapagent title="Anchor link to this section">&para;</a></h2> <p><strong>Module</strong>: <code>src.agents.knowledge_gap</code></p> <p><strong>Purpose</strong>: Evaluates research state and identifies knowledge gaps.</p> <h3 id=methods>Methods<a class=headerlink href=#methods title="Anchor link to this section">&para;</a></h3> <h4 id=evaluate><code>evaluate</code><a class=headerlink href=#evaluate title="Anchor link to this section">&para;</a></h4> <p>Evaluates research completeness and identifies outstanding knowledge gaps.</p> <p><strong>Parameters</strong>: - <code>query</code>: Research query string - <code>background_context</code>: Background context for the query (default: "") - <code>conversation_history</code>: History of actions, findings, and thoughts as string (default: "") - <code>iteration</code>: Current iteration number (default: 0) - <code>time_elapsed_minutes</code>: Elapsed time in minutes (default: 0.0) - <code>max_time_minutes</code>: Maximum time limit in minutes (default: 10)</p> <p><strong>Returns</strong>: <code>KnowledgeGapOutput</code> with: - <code>research_complete</code>: Boolean indicating if research is complete - <code>outstanding_gaps</code>: List of remaining knowledge gaps</p> <h2 id=toolselectoragent>ToolSelectorAgent<a class=headerlink href=#toolselectoragent title="Anchor link to this section">&para;</a></h2> <p><strong>Module</strong>: <code>src.agents.tool_selector</code></p> <p><strong>Purpose</strong>: Selects appropriate tools for addressing knowledge gaps.</p> <h3 id=methods_1>Methods<a class=headerlink href=#methods_1 title="Anchor link to this section">&para;</a></h3> <h4 id=select_tools><code>select_tools</code><a class=headerlink href=#select_tools title="Anchor link to this section">&para;</a></h4> <p>Selects tools for addressing a knowledge gap.</p> <p><strong>Parameters</strong>: - <code>gap</code>: The knowledge gap to address - <code>query</code>: Research query string - <code>background_context</code>: Optional background context (default: "") - <code>conversation_history</code>: History of actions, findings, and thoughts as string (default: "")</p> <p><strong>Returns</strong>: <code>AgentSelectionPlan</code> with list of <code>AgentTask</code> objects.</p> <h2 id=writeragent>WriterAgent<a class=headerlink href=#writeragent title="Anchor link to this section">&para;</a></h2> <p><strong>Module</strong>: <code>src.agents.writer</code></p> <p><strong>Purpose</strong>: Generates final reports from research findings.</p> <h3 id=methods_2>Methods<a class=headerlink href=#methods_2 title="Anchor link to this section">&para;</a></h3> <h4 id=write_report><code>write_report</code><a class=headerlink href=#write_report title="Anchor link to this section">&para;</a></h4> <p>Generates a markdown report from research findings.</p> <p><strong>Parameters</strong>: - <code>query</code>: Research query string - <code>findings</code>: Research findings to include in report - <code>output_length</code>: Optional description of desired output length (default: "") - <code>output_instructions</code>: Optional additional instructions for report generation (default: "")</p> <p><strong>Returns</strong>: Markdown string with numbered citations.</p> <h2 id=longwriteragent>LongWriterAgent<a class=headerlink href=#longwriteragent title="Anchor link to this section">&para;</a></h2> <p><strong>Module</strong>: <code>src.agents.long_writer</code></p> <p><strong>Purpose</strong>: Long-form report generation with section-by-section writing.</p> <h3 id=methods_3>Methods<a class=headerlink href=#methods_3 title="Anchor link to this section">&para;</a></h3> <h4 id=write_next_section><code>write_next_section</code><a class=headerlink href=#write_next_section title="Anchor link to this section">&para;</a></h4> <p>Writes the next section of a long-form report.</p> <p><strong>Parameters</strong>: - <code>original_query</code>: The original research query - <code>report_draft</code>: Current report draft as string (all sections written so far) - <code>next_section_title</code>: Title of the section to write - <code>next_section_draft</code>: Draft content for the next section</p> <p><strong>Returns</strong>: <code>LongWriterOutput</code> with formatted section and references.</p> <h4 id=write_report_1><code>write_report</code><a class=headerlink href=#write_report_1 title="Anchor link to this section">&para;</a></h4> <p>Generates final report from draft.</p> <p><strong>Parameters</strong>: - <code>query</code>: Research query string - <code>report_title</code>: Title of the report - <code>report_draft</code>: Complete report draft</p> <p><strong>Returns</strong>: Final markdown report string.</p> <h2 id=proofreaderagent>ProofreaderAgent<a class=headerlink href=#proofreaderagent title="Anchor link to this section">&para;</a></h2> <p><strong>Module</strong>: <code>src.agents.proofreader</code></p> <p><strong>Purpose</strong>: Proofreads and polishes report drafts.</p> <h3 id=methods_4>Methods<a class=headerlink href=#methods_4 title="Anchor link to this section">&para;</a></h3> <h4 id=proofread><code>proofread</code><a class=headerlink href=#proofread title="Anchor link to this section">&para;</a></h4> <p>Proofreads and polishes a report draft.</p> <p><strong>Parameters</strong>: - <code>query</code>: Research query string - <code>report_title</code>: Title of the report - <code>report_draft</code>: Report draft to proofread</p> <p><strong>Returns</strong>: Polished markdown string.</p> <h2 id=thinkingagent>ThinkingAgent<a class=headerlink href=#thinkingagent title="Anchor link to this section">&para;</a></h2> <p><strong>Module</strong>: <code>src.agents.thinking</code></p> <p><strong>Purpose</strong>: Generates observations from conversation history.</p> <h3 id=methods_5>Methods<a class=headerlink href=#methods_5 title="Anchor link to this section">&para;</a></h3> <h4 id=generate_observations><code>generate_observations</code><a class=headerlink href=#generate_observations title="Anchor link to this section">&para;</a></h4> <p>Generates observations from conversation history.</p> <p><strong>Parameters</strong>: - <code>query</code>: Research query string - <code>background_context</code>: Optional background context (default: "") - <code>conversation_history</code>: History of actions, findings, and thoughts as string (default: "") - <code>iteration</code>: Current iteration number (default: 1)</p> <p><strong>Returns</strong>: Observation string.</p> <h2 id=inputparseragent>InputParserAgent<a class=headerlink href=#inputparseragent title="Anchor link to this section">&para;</a></h2> <p><strong>Module</strong>: <code>src.agents.input_parser</code></p> <p><strong>Purpose</strong>: Parses and improves user queries, detects research mode.</p> <h3 id=methods_6>Methods<a class=headerlink href=#methods_6 title="Anchor link to this section">&para;</a></h3> <h4 id=parse><code>parse</code><a class=headerlink href=#parse title="Anchor link to this section">&para;</a></h4> <p>Parses and improves a user query.</p> <p><strong>Parameters</strong>: - <code>query</code>: Original query string</p> <p><strong>Returns</strong>: <code>ParsedQuery</code> with: - <code>original_query</code>: Original query string - <code>improved_query</code>: Refined query string - <code>research_mode</code>: "iterative" or "deep" - <code>key_entities</code>: List of key entities - <code>research_questions</code>: List of research questions</p> <h2 id=factory-functions>Factory Functions<a class=headerlink href=#factory-functions title="Anchor link to this section">&para;</a></h2> <p>All agents have factory functions in <code>src.agent_factory.agents</code>:</p> <p><strong>Parameters</strong>: - <code>model</code>: Optional Pydantic AI model. If None, uses <code>get_model()</code> from settings. - <code>oauth_token</code>: Optional OAuth token from HuggingFace login (takes priority over env vars)</p> <p><strong>Returns</strong>: Agent instance.</p> <h2 id=see-also>See Also<a class=headerlink href=#see-also title="Anchor link to this section">&para;</a></h2> <ul> <li><a href=../../architecture/agents/ >Architecture - Agents</a> - Architecture overview</li> <li><a href=../models/ >Models API</a> - Data models used by agents</li> </ul> <aside class=md-source-file> <span class=md-source-file__fact> <span class=md-icon title="Last update"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="December 2, 2025 01:35:56 UTC"><span class=timeago datetime=2025-12-02T01:35:56+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="December 2, 2025 01:35:56 UTC">2025-12-02</span> </span> <span class=md-source-file__fact> <span class=md-icon title=Created> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M14.47 15.08 11 13V7h1.5v5.25l3.08 1.83c-.41.28-.79.62-1.11 1m-1.39 4.84c-.36.05-.71.08-1.08.08-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8c0 .37-.03.72-.08 1.08.69.1 1.33.32 1.92.64.1-.56.16-1.13.16-1.72 0-5.5-4.5-10-10-10S2 6.5 2 12s4.47 10 10 10c.59 0 1.16-.06 1.72-.16-.32-.59-.54-1.23-.64-1.92M18 15v3h-3v2h3v3h2v-3h3v-2h-3v-3z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="November 29, 2025 21:40:26 UTC"><span class=timeago datetime=2025-11-29T21:40:26+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="November 29, 2025 21:40:26 UTC">2025-11-29</span> </span> </aside> </article> </div> <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=GitHub class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://twitter.com/josephpollack target=_blank rel=noopener title=Twitter class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M459.4 151.7c.3 4.5.3 9.1.3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103v-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53C87.4 130.8 165 172.4 252.1 176.9c-1.6-7.8-2.6-15.9-2.6-24C249.5 95.1 296.3 48 354.4 48c30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title="Live Demo" class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> <a href=https://discord.gg/n8ytYeh25n target=_blank rel=noopener title=Discord class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 576 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M492.5 69.8c-.2-.3-.4-.6-.8-.7-38.1-17.5-78.4-30-119.7-37.1-.4-.1-.8 0-1.1.1s-.6.4-.8.8c-5.5 9.9-10.5 20.2-14.9 30.6-44.6-6.8-89.9-6.8-134.4 0-4.5-10.5-9.5-20.7-15.1-30.6-.2-.3-.5-.6-.8-.8s-.7-.2-1.1-.2C162.5 39 122.2 51.5 84.1 69c-.3.1-.6.4-.8.7C7.1 183.5-13.8 294.6-3.6 404.2c0 .3.1.5.2.8s.3.4.5.6c44.4 32.9 94 58 146.8 74.2.4.1.8.1 1.1 0s.7-.4.9-.7c11.3-15.4 21.4-31.8 30-48.8.1-.2.2-.5.2-.8s0-.5-.1-.8-.2-.5-.4-.6-.4-.3-.7-.4c-15.8-6.1-31.2-13.4-45.9-21.9-.3-.2-.5-.4-.7-.6s-.3-.6-.3-.9 0-.6.2-.9.3-.5.6-.7c3.1-2.3 6.2-4.7 9.1-7.1.3-.2.6-.4.9-.4s.7 0 1 .1c96.2 43.9 200.4 43.9 295.5 0 .3-.1.7-.2 1-.2s.7.2.9.4c2.9 2.4 6 4.9 9.1 7.2.2.2.4.4.6.7s.2.6.2.9-.1.6-.3.9-.4.5-.6.6c-14.7 8.6-30 15.9-45.9 21.8-.2.1-.5.2-.7.4s-.3.4-.4.7-.1.5-.1.8.1.5.2.8c8.8 17 18.8 33.3 30 48.8.2.3.6.6.9.7s.8.1 1.1 0c52.9-16.2 102.6-41.3 147.1-74.2.2-.2.4-.4.5-.6s.2-.5.2-.8c12.3-126.8-20.5-236.9-86.9-334.5zm-302 267.7c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.4 59.2-52.8 59.2m195.4 0c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.2 59.2-52.8 59.2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "navigation.indexes", "navigation.instant", "navigation.tracking", "navigation.smooth", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy", "content.tabs.link", "content.tooltips", "toc.integrate"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> <script src=../../js/timeago.min.js></script> <script src=../../js/timeago_mkdocs_material.js></script> </body> </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
site/api/models/index.html CHANGED
@@ -1 +1 @@
1
- <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DETERMINATOR Team"><link href=https://deepcritical.github.io/GradioDemo/api/models/ rel=canonical><link href=../services/ rel=prev><link href=../../contributing/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Models API Reference - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#models-api-reference class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Models API Reference </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/CONFIGURATION/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../../architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../../contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Quick Start Guide </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <label class=md-nav__link for=__nav_4 id=__nav_4_label tabindex=0> <span class=md-ellipsis> Configuration </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../configuration/CONFIGURATION/ class=md-nav__link> <span class=md-ellipsis> Configuration Guide </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_6 checked> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=true> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Models API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Models API Reference </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#evidence class=md-nav__link> <span class=md-ellipsis> Evidence </span> </a> </li> <li class=md-nav__item> <a href=#citation class=md-nav__link> <span class=md-ellipsis> Citation </span> </a> </li> <li class=md-nav__item> <a href=#knowledgegapoutput class=md-nav__link> <span class=md-ellipsis> KnowledgeGapOutput </span> </a> </li> <li class=md-nav__item> <a href=#agentselectionplan class=md-nav__link> <span class=md-ellipsis> AgentSelectionPlan </span> </a> </li> <li class=md-nav__item> <a href=#agenttask class=md-nav__link> <span class=md-ellipsis> AgentTask </span> </a> </li> <li class=md-nav__item> <a href=#reportdraft class=md-nav__link> <span class=md-ellipsis> ReportDraft </span> </a> </li> <li class=md-nav__item> <a href=#reportsection class=md-nav__link> <span class=md-ellipsis> ReportSection </span> </a> </li> <li class=md-nav__item> <a href=#parsedquery class=md-nav__link> <span class=md-ellipsis> ParsedQuery </span> </a> </li> <li class=md-nav__item> <a href=#conversation class=md-nav__link> <span class=md-ellipsis> Conversation </span> </a> </li> <li class=md-nav__item> <a href=#iterationdata class=md-nav__link> <span class=md-ellipsis> IterationData </span> </a> </li> <li class=md-nav__item> <a href=#agentevent class=md-nav__link> <span class=md-ellipsis> AgentEvent </span> </a> </li> <li class=md-nav__item> <a href=#budgetstatus class=md-nav__link> <span class=md-ellipsis> BudgetStatus </span> </a> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <label class=md-nav__link for=__nav_7 id=__nav_7_label tabindex=0> <span class=md-ellipsis> Contributing </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../contributing/ class=md-nav__link> <span class=md-ellipsis> Contributing to DeepCritical </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=sidebar data-md-type=toc> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#evidence class=md-nav__link> <span class=md-ellipsis> Evidence </span> </a> </li> <li class=md-nav__item> <a href=#citation class=md-nav__link> <span class=md-ellipsis> Citation </span> </a> </li> <li class=md-nav__item> <a href=#knowledgegapoutput class=md-nav__link> <span class=md-ellipsis> KnowledgeGapOutput </span> </a> </li> <li class=md-nav__item> <a href=#agentselectionplan class=md-nav__link> <span class=md-ellipsis> AgentSelectionPlan </span> </a> </li> <li class=md-nav__item> <a href=#agenttask class=md-nav__link> <span class=md-ellipsis> AgentTask </span> </a> </li> <li class=md-nav__item> <a href=#reportdraft class=md-nav__link> <span class=md-ellipsis> ReportDraft </span> </a> </li> <li class=md-nav__item> <a href=#reportsection class=md-nav__link> <span class=md-ellipsis> ReportSection </span> </a> </li> <li class=md-nav__item> <a href=#parsedquery class=md-nav__link> <span class=md-ellipsis> ParsedQuery </span> </a> </li> <li class=md-nav__item> <a href=#conversation class=md-nav__link> <span class=md-ellipsis> Conversation </span> </a> </li> <li class=md-nav__item> <a href=#iterationdata class=md-nav__link> <span class=md-ellipsis> IterationData </span> </a> </li> <li class=md-nav__item> <a href=#agentevent class=md-nav__link> <span class=md-ellipsis> AgentEvent </span> </a> </li> <li class=md-nav__item> <a href=#budgetstatus class=md-nav__link> <span class=md-ellipsis> BudgetStatus </span> </a> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=models-api-reference>Models API Reference<a class=headerlink href=#models-api-reference title="Permanent link">&para;</a></h1> <p>This page documents the Pydantic models used throughout DeepCritical.</p> <h2 id=evidence>Evidence<a class=headerlink href=#evidence title="Permanent link">&para;</a></h2> <p><strong>Module</strong>: <code>src.utils.models</code></p> <p><strong>Purpose</strong>: Represents evidence from search results.</p> <p><strong>Fields</strong>: - <code>citation</code>: Citation information (title, URL, date, authors) - <code>content</code>: Evidence text content - <code>relevance_score</code>: Relevance score (0.0-1.0) - <code>metadata</code>: Additional metadata dictionary</p> <h2 id=citation>Citation<a class=headerlink href=#citation title="Permanent link">&para;</a></h2> <p><strong>Module</strong>: <code>src.utils.models</code></p> <p><strong>Purpose</strong>: Citation information for evidence.</p> <p><strong>Fields</strong>: - <code>title</code>: Article/trial title - <code>url</code>: Source URL - <code>date</code>: Publication date (optional) - <code>authors</code>: List of authors (optional)</p> <h2 id=knowledgegapoutput>KnowledgeGapOutput<a class=headerlink href=#knowledgegapoutput title="Permanent link">&para;</a></h2> <p><strong>Module</strong>: <code>src.utils.models</code></p> <p><strong>Purpose</strong>: Output from knowledge gap evaluation.</p> <p><strong>Fields</strong>: - <code>research_complete</code>: Boolean indicating if research is complete - <code>outstanding_gaps</code>: List of remaining knowledge gaps</p> <h2 id=agentselectionplan>AgentSelectionPlan<a class=headerlink href=#agentselectionplan title="Permanent link">&para;</a></h2> <p><strong>Module</strong>: <code>src.utils.models</code></p> <p><strong>Purpose</strong>: Plan for tool/agent selection.</p> <p><strong>Fields</strong>: - <code>tasks</code>: List of agent tasks to execute</p> <h2 id=agenttask>AgentTask<a class=headerlink href=#agenttask title="Permanent link">&para;</a></h2> <p><strong>Module</strong>: <code>src.utils.models</code></p> <p><strong>Purpose</strong>: Individual agent task.</p> <p><strong>Fields</strong>: - <code>agent_name</code>: Name of agent to use - <code>query</code>: Task query - <code>context</code>: Additional context dictionary</p> <h2 id=reportdraft>ReportDraft<a class=headerlink href=#reportdraft title="Permanent link">&para;</a></h2> <p><strong>Module</strong>: <code>src.utils.models</code></p> <p><strong>Purpose</strong>: Draft structure for long-form reports.</p> <p><strong>Fields</strong>: - <code>title</code>: Report title - <code>sections</code>: List of report sections - <code>references</code>: List of citations</p> <h2 id=reportsection>ReportSection<a class=headerlink href=#reportsection title="Permanent link">&para;</a></h2> <p><strong>Module</strong>: <code>src.utils.models</code></p> <p><strong>Purpose</strong>: Individual section in a report draft.</p> <p><strong>Fields</strong>: - <code>title</code>: Section title - <code>content</code>: Section content - <code>order</code>: Section order number</p> <h2 id=parsedquery>ParsedQuery<a class=headerlink href=#parsedquery title="Permanent link">&para;</a></h2> <p><strong>Module</strong>: <code>src.utils.models</code></p> <p><strong>Purpose</strong>: Parsed and improved query.</p> <p><strong>Fields</strong>: - <code>original_query</code>: Original query string - <code>improved_query</code>: Refined query string - <code>research_mode</code>: Research mode ("iterative" or "deep") - <code>key_entities</code>: List of key entities - <code>research_questions</code>: List of research questions</p> <h2 id=conversation>Conversation<a class=headerlink href=#conversation title="Permanent link">&para;</a></h2> <p><strong>Module</strong>: <code>src.utils.models</code></p> <p><strong>Purpose</strong>: Conversation history with iterations.</p> <p><strong>Fields</strong>: - <code>iterations</code>: List of iteration data</p> <h2 id=iterationdata>IterationData<a class=headerlink href=#iterationdata title="Permanent link">&para;</a></h2> <p><strong>Module</strong>: <code>src.utils.models</code></p> <p><strong>Purpose</strong>: Data for a single iteration.</p> <p><strong>Fields</strong>: - <code>iteration</code>: Iteration number - <code>observations</code>: Generated observations - <code>knowledge_gaps</code>: Identified knowledge gaps - <code>tool_calls</code>: Tool calls made - <code>findings</code>: Findings from tools - <code>thoughts</code>: Agent thoughts</p> <h2 id=agentevent>AgentEvent<a class=headerlink href=#agentevent title="Permanent link">&para;</a></h2> <p><strong>Module</strong>: <code>src.utils.models</code></p> <p><strong>Purpose</strong>: Event emitted during research execution.</p> <p><strong>Fields</strong>: - <code>type</code>: Event type (e.g., "started", "search_complete", "complete") - <code>iteration</code>: Iteration number (optional) - <code>data</code>: Event data dictionary</p> <h2 id=budgetstatus>BudgetStatus<a class=headerlink href=#budgetstatus title="Permanent link">&para;</a></h2> <p><strong>Module</strong>: <code>src.utils.models</code></p> <p><strong>Purpose</strong>: Current budget status.</p> <p><strong>Fields</strong>: - <code>tokens_used</code>: Tokens used so far - <code>tokens_limit</code>: Token limit - <code>time_elapsed_seconds</code>: Elapsed time in seconds - <code>time_limit_seconds</code>: Time limit in seconds - <code>iterations</code>: Current iteration count - <code>iterations_limit</code>: Iteration limit</p> <h2 id=see-also>See Also<a class=headerlink href=#see-also title="Permanent link">&para;</a></h2> <ul> <li><a href=../../architecture/agents/ >Architecture - Agents</a> - How models are used</li> <li><a href=../../configuration/ >Configuration</a> - Model configuration</li> </ul> </article> </div> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=github.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title=huggingface.co class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> </body> </html>
 
1
+ <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DeepCritical Team"><link href=https://deepcritical.github.io/GradioDemo/api/models/ rel=canonical><link href=../services/ rel=prev><link href=../../contributing/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Models API Reference - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><link rel=stylesheet href=../../css/timeago.css><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#models-api-reference class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Models API Reference </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../../architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../../contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Single Command Deploy </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <div class="md-nav__link md-nav__container"> <a href=../../configuration/ class="md-nav__link "> <span class=md-ellipsis> Configuration </span> </a> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_6 checked> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=true> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Models API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Models API Reference </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#evidence class=md-nav__link> <span class=md-ellipsis> Evidence </span> </a> </li> <li class=md-nav__item> <a href=#citation class=md-nav__link> <span class=md-ellipsis> Citation </span> </a> </li> <li class=md-nav__item> <a href=#knowledgegapoutput class=md-nav__link> <span class=md-ellipsis> KnowledgeGapOutput </span> </a> </li> <li class=md-nav__item> <a href=#agentselectionplan class=md-nav__link> <span class=md-ellipsis> AgentSelectionPlan </span> </a> </li> <li class=md-nav__item> <a href=#agenttask class=md-nav__link> <span class=md-ellipsis> AgentTask </span> </a> </li> <li class=md-nav__item> <a href=#reportdraft class=md-nav__link> <span class=md-ellipsis> ReportDraft </span> </a> </li> <li class=md-nav__item> <a href=#reportsection class=md-nav__link> <span class=md-ellipsis> ReportSection </span> </a> </li> <li class=md-nav__item> <a href=#parsedquery class=md-nav__link> <span class=md-ellipsis> ParsedQuery </span> </a> </li> <li class=md-nav__item> <a href=#conversation class=md-nav__link> <span class=md-ellipsis> Conversation </span> </a> </li> <li class=md-nav__item> <a href=#iterationdata class=md-nav__link> <span class=md-ellipsis> IterationData </span> </a> </li> <li class=md-nav__item> <a href=#agentevent class=md-nav__link> <span class=md-ellipsis> AgentEvent </span> </a> </li> <li class=md-nav__item> <a href=#budgetstatus class=md-nav__link> <span class=md-ellipsis> BudgetStatus </span> </a> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <div class="md-nav__link md-nav__container"> <a href=../../contributing/ class="md-nav__link "> <span class=md-ellipsis> Contributing </span> </a> <label class="md-nav__link " for=__nav_7 id=__nav_7_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=models-api-reference>Models API Reference<a class=headerlink href=#models-api-reference title="Anchor link to this section">&para;</a></h1> <p>This page documents the Pydantic models used throughout DeepCritical.</p> <h2 id=evidence>Evidence<a class=headerlink href=#evidence title="Anchor link to this section">&para;</a></h2> <p><strong>Module</strong>: <code>src.utils.models</code></p> <p><strong>Purpose</strong>: Represents evidence from search results.</p> <p><strong>Fields</strong>: - <code>citation</code>: Citation information (title, URL, date, authors) - <code>content</code>: Evidence text content - <code>relevance</code>: Relevance score (0.0-1.0) - <code>metadata</code>: Additional metadata dictionary</p> <h2 id=citation>Citation<a class=headerlink href=#citation title="Anchor link to this section">&para;</a></h2> <p><strong>Module</strong>: <code>src.utils.models</code></p> <p><strong>Purpose</strong>: Citation information for evidence.</p> <p><strong>Fields</strong>: - <code>source</code>: Source name (e.g., "pubmed", "clinicaltrials", "europepmc", "web", "rag") - <code>title</code>: Article/trial title - <code>url</code>: Source URL - <code>date</code>: Publication date (YYYY-MM-DD or "Unknown") - <code>authors</code>: List of authors (optional)</p> <h2 id=knowledgegapoutput>KnowledgeGapOutput<a class=headerlink href=#knowledgegapoutput title="Anchor link to this section">&para;</a></h2> <p><strong>Module</strong>: <code>src.utils.models</code></p> <p><strong>Purpose</strong>: Output from knowledge gap evaluation.</p> <p><strong>Fields</strong>: - <code>research_complete</code>: Boolean indicating if research is complete - <code>outstanding_gaps</code>: List of remaining knowledge gaps</p> <h2 id=agentselectionplan>AgentSelectionPlan<a class=headerlink href=#agentselectionplan title="Anchor link to this section">&para;</a></h2> <p><strong>Module</strong>: <code>src.utils.models</code></p> <p><strong>Purpose</strong>: Plan for tool/agent selection.</p> <p><strong>Fields</strong>: - <code>tasks</code>: List of agent tasks to execute</p> <h2 id=agenttask>AgentTask<a class=headerlink href=#agenttask title="Anchor link to this section">&para;</a></h2> <p><strong>Module</strong>: <code>src.utils.models</code></p> <p><strong>Purpose</strong>: Individual agent task.</p> <p><strong>Fields</strong>: - <code>gap</code>: The knowledge gap being addressed (optional) - <code>agent</code>: Name of agent to use - <code>query</code>: The specific query for the agent - <code>entity_website</code>: The website of the entity being researched, if known (optional)</p> <h2 id=reportdraft>ReportDraft<a class=headerlink href=#reportdraft title="Anchor link to this section">&para;</a></h2> <p><strong>Module</strong>: <code>src.utils.models</code></p> <p><strong>Purpose</strong>: Draft structure for long-form reports.</p> <p><strong>Fields</strong>: - <code>sections</code>: List of report sections</p> <h2 id=reportsection>ReportSection<a class=headerlink href=#reportsection title="Anchor link to this section">&para;</a></h2> <p><strong>Module</strong>: <code>src.utils.models</code></p> <p><strong>Purpose</strong>: Individual section in a report draft.</p> <p><strong>Fields</strong>: - <code>section_title</code>: The title of the section - <code>section_content</code>: The content of the section</p> <h2 id=parsedquery>ParsedQuery<a class=headerlink href=#parsedquery title="Anchor link to this section">&para;</a></h2> <p><strong>Module</strong>: <code>src.utils.models</code></p> <p><strong>Purpose</strong>: Parsed and improved query.</p> <p><strong>Fields</strong>: - <code>original_query</code>: Original query string - <code>improved_query</code>: Refined query string - <code>research_mode</code>: Research mode ("iterative" or "deep") - <code>key_entities</code>: List of key entities - <code>research_questions</code>: List of research questions</p> <h2 id=conversation>Conversation<a class=headerlink href=#conversation title="Anchor link to this section">&para;</a></h2> <p><strong>Module</strong>: <code>src.utils.models</code></p> <p><strong>Purpose</strong>: Conversation history with iterations.</p> <p><strong>Fields</strong>: - <code>history</code>: List of iteration data</p> <h2 id=iterationdata>IterationData<a class=headerlink href=#iterationdata title="Anchor link to this section">&para;</a></h2> <p><strong>Module</strong>: <code>src.utils.models</code></p> <p><strong>Purpose</strong>: Data for a single iteration.</p> <p><strong>Fields</strong>: - <code>gap</code>: The gap addressed in the iteration - <code>tool_calls</code>: The tool calls made - <code>findings</code>: The findings collected from tool calls - <code>thought</code>: The thinking done to reflect on the success of the iteration and next steps</p> <h2 id=agentevent>AgentEvent<a class=headerlink href=#agentevent title="Anchor link to this section">&para;</a></h2> <p><strong>Module</strong>: <code>src.utils.models</code></p> <p><strong>Purpose</strong>: Event emitted during research execution.</p> <p><strong>Fields</strong>: - <code>type</code>: Event type (e.g., "started", "search_complete", "complete") - <code>iteration</code>: Iteration number (optional) - <code>data</code>: Event data dictionary</p> <h2 id=budgetstatus>BudgetStatus<a class=headerlink href=#budgetstatus title="Anchor link to this section">&para;</a></h2> <p><strong>Module</strong>: <code>src.utils.models</code></p> <p><strong>Purpose</strong>: Current budget status.</p> <p><strong>Fields</strong>: - <code>tokens_used</code>: Total tokens used - <code>tokens_limit</code>: Token budget limit - <code>time_elapsed_seconds</code>: Time elapsed in seconds - <code>time_limit_seconds</code>: Time budget limit (default: 600.0 seconds / 10 minutes) - <code>iterations</code>: Number of iterations completed - <code>iterations_limit</code>: Maximum iterations (default: 10) - <code>iteration_tokens</code>: Tokens used per iteration (iteration number -&gt; token count)</p> <h2 id=see-also>See Also<a class=headerlink href=#see-also title="Anchor link to this section">&para;</a></h2> <ul> <li><a href=../../architecture/agents/ >Architecture - Agents</a> - How models are used</li> <li><a href=../../configuration/ >Configuration</a> - Model configuration</li> </ul> <aside class=md-source-file> <span class=md-source-file__fact> <span class=md-icon title="Last update"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="December 2, 2025 01:35:56 UTC"><span class=timeago datetime=2025-12-02T01:35:56+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="December 2, 2025 01:35:56 UTC">2025-12-02</span> </span> <span class=md-source-file__fact> <span class=md-icon title=Created> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M14.47 15.08 11 13V7h1.5v5.25l3.08 1.83c-.41.28-.79.62-1.11 1m-1.39 4.84c-.36.05-.71.08-1.08.08-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8c0 .37-.03.72-.08 1.08.69.1 1.33.32 1.92.64.1-.56.16-1.13.16-1.72 0-5.5-4.5-10-10-10S2 6.5 2 12s4.47 10 10 10c.59 0 1.16-.06 1.72-.16-.32-.59-.54-1.23-.64-1.92M18 15v3h-3v2h3v3h2v-3h3v-2h-3v-3z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="November 29, 2025 21:40:26 UTC"><span class=timeago datetime=2025-11-29T21:40:26+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="November 29, 2025 21:40:26 UTC">2025-11-29</span> </span> </aside> </article> </div> <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=GitHub class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://twitter.com/josephpollack target=_blank rel=noopener title=Twitter class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M459.4 151.7c.3 4.5.3 9.1.3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103v-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53C87.4 130.8 165 172.4 252.1 176.9c-1.6-7.8-2.6-15.9-2.6-24C249.5 95.1 296.3 48 354.4 48c30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title="Live Demo" class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> <a href=https://discord.gg/n8ytYeh25n target=_blank rel=noopener title=Discord class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 576 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M492.5 69.8c-.2-.3-.4-.6-.8-.7-38.1-17.5-78.4-30-119.7-37.1-.4-.1-.8 0-1.1.1s-.6.4-.8.8c-5.5 9.9-10.5 20.2-14.9 30.6-44.6-6.8-89.9-6.8-134.4 0-4.5-10.5-9.5-20.7-15.1-30.6-.2-.3-.5-.6-.8-.8s-.7-.2-1.1-.2C162.5 39 122.2 51.5 84.1 69c-.3.1-.6.4-.8.7C7.1 183.5-13.8 294.6-3.6 404.2c0 .3.1.5.2.8s.3.4.5.6c44.4 32.9 94 58 146.8 74.2.4.1.8.1 1.1 0s.7-.4.9-.7c11.3-15.4 21.4-31.8 30-48.8.1-.2.2-.5.2-.8s0-.5-.1-.8-.2-.5-.4-.6-.4-.3-.7-.4c-15.8-6.1-31.2-13.4-45.9-21.9-.3-.2-.5-.4-.7-.6s-.3-.6-.3-.9 0-.6.2-.9.3-.5.6-.7c3.1-2.3 6.2-4.7 9.1-7.1.3-.2.6-.4.9-.4s.7 0 1 .1c96.2 43.9 200.4 43.9 295.5 0 .3-.1.7-.2 1-.2s.7.2.9.4c2.9 2.4 6 4.9 9.1 7.2.2.2.4.4.6.7s.2.6.2.9-.1.6-.3.9-.4.5-.6.6c-14.7 8.6-30 15.9-45.9 21.8-.2.1-.5.2-.7.4s-.3.4-.4.7-.1.5-.1.8.1.5.2.8c8.8 17 18.8 33.3 30 48.8.2.3.6.6.9.7s.8.1 1.1 0c52.9-16.2 102.6-41.3 147.1-74.2.2-.2.4-.4.5-.6s.2-.5.2-.8c12.3-126.8-20.5-236.9-86.9-334.5zm-302 267.7c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.4 59.2-52.8 59.2m195.4 0c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.2 59.2-52.8 59.2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "navigation.indexes", "navigation.instant", "navigation.tracking", "navigation.smooth", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy", "content.tabs.link", "content.tooltips", "toc.integrate"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> <script src=../../js/timeago.min.js></script> <script src=../../js/timeago_mkdocs_material.js></script> </body> </html>
site/api/orchestrators/index.html CHANGED
@@ -1,35 +1 @@
1
- <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DETERMINATOR Team"><link href=https://deepcritical.github.io/GradioDemo/api/orchestrators/ rel=canonical><link href=../tools/ rel=prev><link href=../services/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Orchestrators API Reference - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#orchestrators-api-reference class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Orchestrators API Reference </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/CONFIGURATION/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../../architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../../contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Quick Start Guide </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <label class=md-nav__link for=__nav_4 id=__nav_4_label tabindex=0> <span class=md-ellipsis> Configuration </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../configuration/CONFIGURATION/ class=md-nav__link> <span class=md-ellipsis> Configuration Guide </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_6 checked> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=true> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Orchestrators API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Orchestrators API Reference </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#iterativeresearchflow class=md-nav__link> <span class=md-ellipsis> IterativeResearchFlow </span> </a> <nav class=md-nav aria-label=IterativeResearchFlow> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> <nav class=md-nav aria-label=Methods> <ul class=md-nav__list> <li class=md-nav__item> <a href=#run class=md-nav__link> <span class=md-ellipsis> run </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#deepresearchflow class=md-nav__link> <span class=md-ellipsis> DeepResearchFlow </span> </a> <nav class=md-nav aria-label=DeepResearchFlow> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods_1 class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> <nav class=md-nav aria-label=Methods> <ul class=md-nav__list> <li class=md-nav__item> <a href=#run_1 class=md-nav__link> <span class=md-ellipsis> run </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#graphorchestrator class=md-nav__link> <span class=md-ellipsis> GraphOrchestrator </span> </a> <nav class=md-nav aria-label=GraphOrchestrator> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods_2 class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> <nav class=md-nav aria-label=Methods> <ul class=md-nav__list> <li class=md-nav__item> <a href=#run_2 class=md-nav__link> <span class=md-ellipsis> run </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#orchestrator-factory class=md-nav__link> <span class=md-ellipsis> Orchestrator Factory </span> </a> <nav class=md-nav aria-label="Orchestrator Factory"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#functions class=md-nav__link> <span class=md-ellipsis> Functions </span> </a> <nav class=md-nav aria-label=Functions> <ul class=md-nav__list> <li class=md-nav__item> <a href=#create_orchestrator class=md-nav__link> <span class=md-ellipsis> create_orchestrator </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#magenticorchestrator class=md-nav__link> <span class=md-ellipsis> MagenticOrchestrator </span> </a> <nav class=md-nav aria-label=MagenticOrchestrator> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods_3 class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> <nav class=md-nav aria-label=Methods> <ul class=md-nav__list> <li class=md-nav__item> <a href=#run_3 class=md-nav__link> <span class=md-ellipsis> run </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <label class=md-nav__link for=__nav_7 id=__nav_7_label tabindex=0> <span class=md-ellipsis> Contributing </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../contributing/ class=md-nav__link> <span class=md-ellipsis> Contributing to DeepCritical </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=sidebar data-md-type=toc> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#iterativeresearchflow class=md-nav__link> <span class=md-ellipsis> IterativeResearchFlow </span> </a> <nav class=md-nav aria-label=IterativeResearchFlow> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> <nav class=md-nav aria-label=Methods> <ul class=md-nav__list> <li class=md-nav__item> <a href=#run class=md-nav__link> <span class=md-ellipsis> run </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#deepresearchflow class=md-nav__link> <span class=md-ellipsis> DeepResearchFlow </span> </a> <nav class=md-nav aria-label=DeepResearchFlow> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods_1 class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> <nav class=md-nav aria-label=Methods> <ul class=md-nav__list> <li class=md-nav__item> <a href=#run_1 class=md-nav__link> <span class=md-ellipsis> run </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#graphorchestrator class=md-nav__link> <span class=md-ellipsis> GraphOrchestrator </span> </a> <nav class=md-nav aria-label=GraphOrchestrator> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods_2 class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> <nav class=md-nav aria-label=Methods> <ul class=md-nav__list> <li class=md-nav__item> <a href=#run_2 class=md-nav__link> <span class=md-ellipsis> run </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#orchestrator-factory class=md-nav__link> <span class=md-ellipsis> Orchestrator Factory </span> </a> <nav class=md-nav aria-label="Orchestrator Factory"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#functions class=md-nav__link> <span class=md-ellipsis> Functions </span> </a> <nav class=md-nav aria-label=Functions> <ul class=md-nav__list> <li class=md-nav__item> <a href=#create_orchestrator class=md-nav__link> <span class=md-ellipsis> create_orchestrator </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#magenticorchestrator class=md-nav__link> <span class=md-ellipsis> MagenticOrchestrator </span> </a> <nav class=md-nav aria-label=MagenticOrchestrator> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods_3 class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> <nav class=md-nav aria-label=Methods> <ul class=md-nav__list> <li class=md-nav__item> <a href=#run_3 class=md-nav__link> <span class=md-ellipsis> run </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=orchestrators-api-reference>Orchestrators API Reference<a class=headerlink href=#orchestrators-api-reference title="Permanent link">&para;</a></h1> <p>This page documents the API for DeepCritical orchestrators.</p> <h2 id=iterativeresearchflow>IterativeResearchFlow<a class=headerlink href=#iterativeresearchflow title="Permanent link">&para;</a></h2> <p><strong>Module</strong>: <code>src.orchestrator.research_flow</code></p> <p><strong>Purpose</strong>: Single-loop research with search-judge-synthesize cycles.</p> <h3 id=methods>Methods<a class=headerlink href=#methods title="Permanent link">&para;</a></h3> <h4 id=run><code>run</code><a class=headerlink href=#run title="Permanent link">&para;</a></h4> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=k>async</span> <span class=k>def</span><span class=w> </span><span class=nf>run</span><span class=p>(</span>
2
- <a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a> <span class=bp>self</span><span class=p>,</span>
3
- <a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a> <span class=n>query</span><span class=p>:</span> <span class=nb>str</span><span class=p>,</span>
4
- <a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a> <span class=n>background_context</span><span class=p>:</span> <span class=nb>str</span> <span class=o>=</span> <span class=s2>&quot;&quot;</span><span class=p>,</span>
5
- <a id=__codelineno-0-5 name=__codelineno-0-5 href=#__codelineno-0-5></a> <span class=n>max_iterations</span><span class=p>:</span> <span class=nb>int</span> <span class=o>|</span> <span class=kc>None</span> <span class=o>=</span> <span class=kc>None</span><span class=p>,</span>
6
- <a id=__codelineno-0-6 name=__codelineno-0-6 href=#__codelineno-0-6></a> <span class=n>max_time_minutes</span><span class=p>:</span> <span class=nb>float</span> <span class=o>|</span> <span class=kc>None</span> <span class=o>=</span> <span class=kc>None</span><span class=p>,</span>
7
- <a id=__codelineno-0-7 name=__codelineno-0-7 href=#__codelineno-0-7></a> <span class=n>token_budget</span><span class=p>:</span> <span class=nb>int</span> <span class=o>|</span> <span class=kc>None</span> <span class=o>=</span> <span class=kc>None</span>
8
- <a id=__codelineno-0-8 name=__codelineno-0-8 href=#__codelineno-0-8></a><span class=p>)</span> <span class=o>-&gt;</span> <span class=n>AsyncGenerator</span><span class=p>[</span><span class=n>AgentEvent</span><span class=p>,</span> <span class=kc>None</span><span class=p>]</span>
9
- </code></pre></div> <p>Runs iterative research flow.</p> <p><strong>Parameters</strong>: - <code>query</code>: Research query string - <code>background_context</code>: Background context (default: "") - <code>max_iterations</code>: Maximum iterations (default: from settings) - <code>max_time_minutes</code>: Maximum time in minutes (default: from settings) - <code>token_budget</code>: Token budget (default: from settings)</p> <p><strong>Yields</strong>: <code>AgentEvent</code> objects for: - <code>started</code>: Research started - <code>search_complete</code>: Search completed - <code>judge_complete</code>: Evidence evaluation completed - <code>synthesizing</code>: Generating report - <code>complete</code>: Research completed - <code>error</code>: Error occurred</p> <h2 id=deepresearchflow>DeepResearchFlow<a class=headerlink href=#deepresearchflow title="Permanent link">&para;</a></h2> <p><strong>Module</strong>: <code>src.orchestrator.research_flow</code></p> <p><strong>Purpose</strong>: Multi-section parallel research with planning and synthesis.</p> <h3 id=methods_1>Methods<a class=headerlink href=#methods_1 title="Permanent link">&para;</a></h3> <h4 id=run_1><code>run</code><a class=headerlink href=#run_1 title="Permanent link">&para;</a></h4> <div class=highlight><pre><span></span><code><a id=__codelineno-1-1 name=__codelineno-1-1 href=#__codelineno-1-1></a><span class=k>async</span> <span class=k>def</span><span class=w> </span><span class=nf>run</span><span class=p>(</span>
10
- <a id=__codelineno-1-2 name=__codelineno-1-2 href=#__codelineno-1-2></a> <span class=bp>self</span><span class=p>,</span>
11
- <a id=__codelineno-1-3 name=__codelineno-1-3 href=#__codelineno-1-3></a> <span class=n>query</span><span class=p>:</span> <span class=nb>str</span><span class=p>,</span>
12
- <a id=__codelineno-1-4 name=__codelineno-1-4 href=#__codelineno-1-4></a> <span class=n>background_context</span><span class=p>:</span> <span class=nb>str</span> <span class=o>=</span> <span class=s2>&quot;&quot;</span><span class=p>,</span>
13
- <a id=__codelineno-1-5 name=__codelineno-1-5 href=#__codelineno-1-5></a> <span class=n>max_iterations_per_section</span><span class=p>:</span> <span class=nb>int</span> <span class=o>|</span> <span class=kc>None</span> <span class=o>=</span> <span class=kc>None</span><span class=p>,</span>
14
- <a id=__codelineno-1-6 name=__codelineno-1-6 href=#__codelineno-1-6></a> <span class=n>max_time_minutes</span><span class=p>:</span> <span class=nb>float</span> <span class=o>|</span> <span class=kc>None</span> <span class=o>=</span> <span class=kc>None</span><span class=p>,</span>
15
- <a id=__codelineno-1-7 name=__codelineno-1-7 href=#__codelineno-1-7></a> <span class=n>token_budget</span><span class=p>:</span> <span class=nb>int</span> <span class=o>|</span> <span class=kc>None</span> <span class=o>=</span> <span class=kc>None</span>
16
- <a id=__codelineno-1-8 name=__codelineno-1-8 href=#__codelineno-1-8></a><span class=p>)</span> <span class=o>-&gt;</span> <span class=n>AsyncGenerator</span><span class=p>[</span><span class=n>AgentEvent</span><span class=p>,</span> <span class=kc>None</span><span class=p>]</span>
17
- </code></pre></div> <p>Runs deep research flow.</p> <p><strong>Parameters</strong>: - <code>query</code>: Research query string - <code>background_context</code>: Background context (default: "") - <code>max_iterations_per_section</code>: Maximum iterations per section (default: from settings) - <code>max_time_minutes</code>: Maximum time in minutes (default: from settings) - <code>token_budget</code>: Token budget (default: from settings)</p> <p><strong>Yields</strong>: <code>AgentEvent</code> objects for: - <code>started</code>: Research started - <code>planning</code>: Creating research plan - <code>looping</code>: Running parallel research loops - <code>synthesizing</code>: Synthesizing results - <code>complete</code>: Research completed - <code>error</code>: Error occurred</p> <h2 id=graphorchestrator>GraphOrchestrator<a class=headerlink href=#graphorchestrator title="Permanent link">&para;</a></h2> <p><strong>Module</strong>: <code>src.orchestrator.graph_orchestrator</code></p> <p><strong>Purpose</strong>: Graph-based execution using Pydantic AI agents as nodes.</p> <h3 id=methods_2>Methods<a class=headerlink href=#methods_2 title="Permanent link">&para;</a></h3> <h4 id=run_2><code>run</code><a class=headerlink href=#run_2 title="Permanent link">&para;</a></h4> <div class=highlight><pre><span></span><code><a id=__codelineno-2-1 name=__codelineno-2-1 href=#__codelineno-2-1></a><span class=k>async</span> <span class=k>def</span><span class=w> </span><span class=nf>run</span><span class=p>(</span>
18
- <a id=__codelineno-2-2 name=__codelineno-2-2 href=#__codelineno-2-2></a> <span class=bp>self</span><span class=p>,</span>
19
- <a id=__codelineno-2-3 name=__codelineno-2-3 href=#__codelineno-2-3></a> <span class=n>query</span><span class=p>:</span> <span class=nb>str</span><span class=p>,</span>
20
- <a id=__codelineno-2-4 name=__codelineno-2-4 href=#__codelineno-2-4></a> <span class=n>research_mode</span><span class=p>:</span> <span class=nb>str</span> <span class=o>=</span> <span class=s2>&quot;auto&quot;</span><span class=p>,</span>
21
- <a id=__codelineno-2-5 name=__codelineno-2-5 href=#__codelineno-2-5></a> <span class=n>use_graph</span><span class=p>:</span> <span class=nb>bool</span> <span class=o>=</span> <span class=kc>True</span>
22
- <a id=__codelineno-2-6 name=__codelineno-2-6 href=#__codelineno-2-6></a><span class=p>)</span> <span class=o>-&gt;</span> <span class=n>AsyncGenerator</span><span class=p>[</span><span class=n>AgentEvent</span><span class=p>,</span> <span class=kc>None</span><span class=p>]</span>
23
- </code></pre></div> <p>Runs graph-based research orchestration.</p> <p><strong>Parameters</strong>: - <code>query</code>: Research query string - <code>research_mode</code>: Research mode ("iterative", "deep", or "auto") - <code>use_graph</code>: Whether to use graph execution (default: True)</p> <p><strong>Yields</strong>: <code>AgentEvent</code> objects during graph execution.</p> <h2 id=orchestrator-factory>Orchestrator Factory<a class=headerlink href=#orchestrator-factory title="Permanent link">&para;</a></h2> <p><strong>Module</strong>: <code>src.orchestrator_factory</code></p> <p><strong>Purpose</strong>: Factory for creating orchestrators.</p> <h3 id=functions>Functions<a class=headerlink href=#functions title="Permanent link">&para;</a></h3> <h4 id=create_orchestrator><code>create_orchestrator</code><a class=headerlink href=#create_orchestrator title="Permanent link">&para;</a></h4> <div class=highlight><pre><span></span><code><a id=__codelineno-3-1 name=__codelineno-3-1 href=#__codelineno-3-1></a><span class=k>def</span><span class=w> </span><span class=nf>create_orchestrator</span><span class=p>(</span>
24
- <a id=__codelineno-3-2 name=__codelineno-3-2 href=#__codelineno-3-2></a> <span class=n>search_handler</span><span class=p>:</span> <span class=n>SearchHandlerProtocol</span><span class=p>,</span>
25
- <a id=__codelineno-3-3 name=__codelineno-3-3 href=#__codelineno-3-3></a> <span class=n>judge_handler</span><span class=p>:</span> <span class=n>JudgeHandlerProtocol</span><span class=p>,</span>
26
- <a id=__codelineno-3-4 name=__codelineno-3-4 href=#__codelineno-3-4></a> <span class=n>config</span><span class=p>:</span> <span class=nb>dict</span><span class=p>[</span><span class=nb>str</span><span class=p>,</span> <span class=n>Any</span><span class=p>],</span>
27
- <a id=__codelineno-3-5 name=__codelineno-3-5 href=#__codelineno-3-5></a> <span class=n>mode</span><span class=p>:</span> <span class=nb>str</span> <span class=o>|</span> <span class=kc>None</span> <span class=o>=</span> <span class=kc>None</span>
28
- <a id=__codelineno-3-6 name=__codelineno-3-6 href=#__codelineno-3-6></a><span class=p>)</span> <span class=o>-&gt;</span> <span class=n>Any</span>
29
- </code></pre></div> <p>Creates an orchestrator instance.</p> <p><strong>Parameters</strong>: - <code>search_handler</code>: Search handler protocol implementation - <code>judge_handler</code>: Judge handler protocol implementation - <code>config</code>: Configuration dictionary - <code>mode</code>: Orchestrator mode ("simple", "advanced", "magentic", or None for auto-detect)</p> <p><strong>Returns</strong>: Orchestrator instance.</p> <p><strong>Raises</strong>: - <code>ValueError</code>: If requirements not met</p> <p><strong>Modes</strong>: - <code>"simple"</code>: Legacy orchestrator - <code>"advanced"</code> or <code>"magentic"</code>: Magentic orchestrator (requires OpenAI API key) - <code>None</code>: Auto-detect based on API key availability</p> <h2 id=magenticorchestrator>MagenticOrchestrator<a class=headerlink href=#magenticorchestrator title="Permanent link">&para;</a></h2> <p><strong>Module</strong>: <code>src.orchestrator_magentic</code></p> <p><strong>Purpose</strong>: Multi-agent coordination using Microsoft Agent Framework.</p> <h3 id=methods_3>Methods<a class=headerlink href=#methods_3 title="Permanent link">&para;</a></h3> <h4 id=run_3><code>run</code><a class=headerlink href=#run_3 title="Permanent link">&para;</a></h4> <div class=highlight><pre><span></span><code><a id=__codelineno-4-1 name=__codelineno-4-1 href=#__codelineno-4-1></a><span class=k>async</span> <span class=k>def</span><span class=w> </span><span class=nf>run</span><span class=p>(</span>
30
- <a id=__codelineno-4-2 name=__codelineno-4-2 href=#__codelineno-4-2></a> <span class=bp>self</span><span class=p>,</span>
31
- <a id=__codelineno-4-3 name=__codelineno-4-3 href=#__codelineno-4-3></a> <span class=n>query</span><span class=p>:</span> <span class=nb>str</span><span class=p>,</span>
32
- <a id=__codelineno-4-4 name=__codelineno-4-4 href=#__codelineno-4-4></a> <span class=n>max_rounds</span><span class=p>:</span> <span class=nb>int</span> <span class=o>=</span> <span class=mi>15</span><span class=p>,</span>
33
- <a id=__codelineno-4-5 name=__codelineno-4-5 href=#__codelineno-4-5></a> <span class=n>max_stalls</span><span class=p>:</span> <span class=nb>int</span> <span class=o>=</span> <span class=mi>3</span>
34
- <a id=__codelineno-4-6 name=__codelineno-4-6 href=#__codelineno-4-6></a><span class=p>)</span> <span class=o>-&gt;</span> <span class=n>AsyncGenerator</span><span class=p>[</span><span class=n>AgentEvent</span><span class=p>,</span> <span class=kc>None</span><span class=p>]</span>
35
- </code></pre></div> <p>Runs Magentic orchestration.</p> <p><strong>Parameters</strong>: - <code>query</code>: Research query string - <code>max_rounds</code>: Maximum rounds (default: 15) - <code>max_stalls</code>: Maximum stalls before reset (default: 3)</p> <p><strong>Yields</strong>: <code>AgentEvent</code> objects converted from Magentic events.</p> <p><strong>Requirements</strong>: - <code>agent-framework-core</code> package - OpenAI API key</p> <h2 id=see-also>See Also<a class=headerlink href=#see-also title="Permanent link">&para;</a></h2> <ul> <li><a href=../../architecture/orchestrators/ >Architecture - Orchestrators</a> - Architecture overview</li> <li><a href=../../architecture/graph-orchestration/ >Graph Orchestration</a> - Graph execution details</li> </ul> </article> </div> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=github.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title=huggingface.co class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> </body> </html>
 
1
+ <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DeepCritical Team"><link href=https://deepcritical.github.io/GradioDemo/api/orchestrators/ rel=canonical><link href=../tools/ rel=prev><link href=../services/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Orchestrators API Reference - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><link rel=stylesheet href=../../css/timeago.css><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#orchestrators-api-reference class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Orchestrators API Reference </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../../architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../../contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Single Command Deploy </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <div class="md-nav__link md-nav__container"> <a href=../../configuration/ class="md-nav__link "> <span class=md-ellipsis> Configuration </span> </a> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_6 checked> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=true> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Orchestrators API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Orchestrators API Reference </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#iterativeresearchflow class=md-nav__link> <span class=md-ellipsis> IterativeResearchFlow </span> </a> <nav class=md-nav aria-label=IterativeResearchFlow> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#deepresearchflow class=md-nav__link> <span class=md-ellipsis> DeepResearchFlow </span> </a> <nav class=md-nav aria-label=DeepResearchFlow> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods_1 class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#graphorchestrator class=md-nav__link> <span class=md-ellipsis> GraphOrchestrator </span> </a> <nav class=md-nav aria-label=GraphOrchestrator> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods_2 class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#orchestrator-factory class=md-nav__link> <span class=md-ellipsis> Orchestrator Factory </span> </a> <nav class=md-nav aria-label="Orchestrator Factory"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#functions class=md-nav__link> <span class=md-ellipsis> Functions </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#magenticorchestrator class=md-nav__link> <span class=md-ellipsis> MagenticOrchestrator </span> </a> <nav class=md-nav aria-label=MagenticOrchestrator> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods_3 class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <div class="md-nav__link md-nav__container"> <a href=../../contributing/ class="md-nav__link "> <span class=md-ellipsis> Contributing </span> </a> <label class="md-nav__link " for=__nav_7 id=__nav_7_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=orchestrators-api-reference>Orchestrators API Reference<a class=headerlink href=#orchestrators-api-reference title="Anchor link to this section">&para;</a></h1> <p>This page documents the API for DeepCritical orchestrators.</p> <h2 id=iterativeresearchflow>IterativeResearchFlow<a class=headerlink href=#iterativeresearchflow title="Anchor link to this section">&para;</a></h2> <p><strong>Module</strong>: <code>src.orchestrator.research_flow</code></p> <p><strong>Purpose</strong>: Single-loop research with search-judge-synthesize cycles.</p> <h3 id=methods>Methods<a class=headerlink href=#methods title="Anchor link to this section">&para;</a></h3> <h4 id=run><code>run</code><a class=headerlink href=#run title="Anchor link to this section">&para;</a></h4> <p>Runs iterative research flow.</p> <p><strong>Parameters</strong>: - <code>query</code>: Research query string - <code>background_context</code>: Background context (default: "") - <code>output_length</code>: Optional description of desired output length (default: "") - <code>output_instructions</code>: Optional additional instructions for report generation (default: "")</p> <p><strong>Returns</strong>: Final report string.</p> <p><strong>Note</strong>: <code>max_iterations</code>, <code>max_time_minutes</code>, and <code>token_budget</code> are constructor parameters, not <code>run()</code> parameters.</p> <h2 id=deepresearchflow>DeepResearchFlow<a class=headerlink href=#deepresearchflow title="Anchor link to this section">&para;</a></h2> <p><strong>Module</strong>: <code>src.orchestrator.research_flow</code></p> <p><strong>Purpose</strong>: Multi-section parallel research with planning and synthesis.</p> <h3 id=methods_1>Methods<a class=headerlink href=#methods_1 title="Anchor link to this section">&para;</a></h3> <h4 id=run_1><code>run</code><a class=headerlink href=#run_1 title="Anchor link to this section">&para;</a></h4> <p>Runs deep research flow.</p> <p><strong>Parameters</strong>: - <code>query</code>: Research query string</p> <p><strong>Returns</strong>: Final report string.</p> <p><strong>Note</strong>: <code>max_iterations_per_section</code>, <code>max_time_minutes</code>, and <code>token_budget</code> are constructor parameters, not <code>run()</code> parameters.</p> <h2 id=graphorchestrator>GraphOrchestrator<a class=headerlink href=#graphorchestrator title="Anchor link to this section">&para;</a></h2> <p><strong>Module</strong>: <code>src.orchestrator.graph_orchestrator</code></p> <p><strong>Purpose</strong>: Graph-based execution using Pydantic AI agents as nodes.</p> <h3 id=methods_2>Methods<a class=headerlink href=#methods_2 title="Anchor link to this section">&para;</a></h3> <h4 id=run_2><code>run</code><a class=headerlink href=#run_2 title="Anchor link to this section">&para;</a></h4> <p>Runs graph-based research orchestration.</p> <p><strong>Parameters</strong>: - <code>query</code>: Research query string</p> <p><strong>Yields</strong>: <code>AgentEvent</code> objects during graph execution.</p> <p><strong>Note</strong>: <code>research_mode</code> and <code>use_graph</code> are constructor parameters, not <code>run()</code> parameters.</p> <h2 id=orchestrator-factory>Orchestrator Factory<a class=headerlink href=#orchestrator-factory title="Anchor link to this section">&para;</a></h2> <p><strong>Module</strong>: <code>src.orchestrator_factory</code></p> <p><strong>Purpose</strong>: Factory for creating orchestrators.</p> <h3 id=functions>Functions<a class=headerlink href=#functions title="Anchor link to this section">&para;</a></h3> <h4 id=create_orchestrator><code>create_orchestrator</code><a class=headerlink href=#create_orchestrator title="Anchor link to this section">&para;</a></h4> <p>Creates an orchestrator instance.</p> <p><strong>Parameters</strong>: - <code>search_handler</code>: Search handler protocol implementation (optional, required for simple mode) - <code>judge_handler</code>: Judge handler protocol implementation (optional, required for simple mode) - <code>config</code>: Configuration object (optional) - <code>mode</code>: Orchestrator mode ("simple", "advanced", "magentic", "iterative", "deep", "auto", or None for auto-detect) - <code>oauth_token</code>: Optional OAuth token from HuggingFace login (takes priority over env vars)</p> <p><strong>Returns</strong>: Orchestrator instance.</p> <p><strong>Raises</strong>: - <code>ValueError</code>: If requirements not met</p> <p><strong>Modes</strong>: - <code>"simple"</code>: Legacy orchestrator - <code>"advanced"</code> or <code>"magentic"</code>: Magentic orchestrator (requires OpenAI API key) - <code>None</code>: Auto-detect based on API key availability</p> <h2 id=magenticorchestrator>MagenticOrchestrator<a class=headerlink href=#magenticorchestrator title="Anchor link to this section">&para;</a></h2> <p><strong>Module</strong>: <code>src.orchestrator_magentic</code></p> <p><strong>Purpose</strong>: Multi-agent coordination using Microsoft Agent Framework.</p> <h3 id=methods_3>Methods<a class=headerlink href=#methods_3 title="Anchor link to this section">&para;</a></h3> <h4 id=run_3><code>run</code><a class=headerlink href=#run_3 title="Anchor link to this section">&para;</a></h4> <p>Runs Magentic orchestration.</p> <p><strong>Parameters</strong>: - <code>query</code>: Research query string</p> <p><strong>Yields</strong>: <code>AgentEvent</code> objects converted from Magentic events.</p> <p><strong>Note</strong>: <code>max_rounds</code> and <code>max_stalls</code> are constructor parameters, not <code>run()</code> parameters.</p> <p><strong>Requirements</strong>: - <code>agent-framework-core</code> package - OpenAI API key</p> <h2 id=see-also>See Also<a class=headerlink href=#see-also title="Anchor link to this section">&para;</a></h2> <ul> <li><a href=../../architecture/orchestrators/ >Architecture - Orchestrators</a> - Architecture overview</li> <li><a href=../architecture/graph-orchestration.md>Graph Orchestration</a> - Graph execution details</li> </ul> <aside class=md-source-file> <span class=md-source-file__fact> <span class=md-icon title="Last update"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="December 2, 2025 01:35:56 UTC"><span class=timeago datetime=2025-12-02T01:35:56+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="December 2, 2025 01:35:56 UTC">2025-12-02</span> </span> <span class=md-source-file__fact> <span class=md-icon title=Created> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M14.47 15.08 11 13V7h1.5v5.25l3.08 1.83c-.41.28-.79.62-1.11 1m-1.39 4.84c-.36.05-.71.08-1.08.08-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8c0 .37-.03.72-.08 1.08.69.1 1.33.32 1.92.64.1-.56.16-1.13.16-1.72 0-5.5-4.5-10-10-10S2 6.5 2 12s4.47 10 10 10c.59 0 1.16-.06 1.72-.16-.32-.59-.54-1.23-.64-1.92M18 15v3h-3v2h3v3h2v-3h3v-2h-3v-3z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="November 29, 2025 21:40:26 UTC"><span class=timeago datetime=2025-11-29T21:40:26+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="November 29, 2025 21:40:26 UTC">2025-11-29</span> </span> </aside> </article> </div> <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=GitHub class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://twitter.com/josephpollack target=_blank rel=noopener title=Twitter class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M459.4 151.7c.3 4.5.3 9.1.3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103v-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53C87.4 130.8 165 172.4 252.1 176.9c-1.6-7.8-2.6-15.9-2.6-24C249.5 95.1 296.3 48 354.4 48c30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title="Live Demo" class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> <a href=https://discord.gg/n8ytYeh25n target=_blank rel=noopener title=Discord class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 576 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M492.5 69.8c-.2-.3-.4-.6-.8-.7-38.1-17.5-78.4-30-119.7-37.1-.4-.1-.8 0-1.1.1s-.6.4-.8.8c-5.5 9.9-10.5 20.2-14.9 30.6-44.6-6.8-89.9-6.8-134.4 0-4.5-10.5-9.5-20.7-15.1-30.6-.2-.3-.5-.6-.8-.8s-.7-.2-1.1-.2C162.5 39 122.2 51.5 84.1 69c-.3.1-.6.4-.8.7C7.1 183.5-13.8 294.6-3.6 404.2c0 .3.1.5.2.8s.3.4.5.6c44.4 32.9 94 58 146.8 74.2.4.1.8.1 1.1 0s.7-.4.9-.7c11.3-15.4 21.4-31.8 30-48.8.1-.2.2-.5.2-.8s0-.5-.1-.8-.2-.5-.4-.6-.4-.3-.7-.4c-15.8-6.1-31.2-13.4-45.9-21.9-.3-.2-.5-.4-.7-.6s-.3-.6-.3-.9 0-.6.2-.9.3-.5.6-.7c3.1-2.3 6.2-4.7 9.1-7.1.3-.2.6-.4.9-.4s.7 0 1 .1c96.2 43.9 200.4 43.9 295.5 0 .3-.1.7-.2 1-.2s.7.2.9.4c2.9 2.4 6 4.9 9.1 7.2.2.2.4.4.6.7s.2.6.2.9-.1.6-.3.9-.4.5-.6.6c-14.7 8.6-30 15.9-45.9 21.8-.2.1-.5.2-.7.4s-.3.4-.4.7-.1.5-.1.8.1.5.2.8c8.8 17 18.8 33.3 30 48.8.2.3.6.6.9.7s.8.1 1.1 0c52.9-16.2 102.6-41.3 147.1-74.2.2-.2.4-.4.5-.6s.2-.5.2-.8c12.3-126.8-20.5-236.9-86.9-334.5zm-302 267.7c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.4 59.2-52.8 59.2m195.4 0c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.2 59.2-52.8 59.2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "navigation.indexes", "navigation.instant", "navigation.tracking", "navigation.smooth", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy", "content.tabs.link", "content.tooltips", "toc.integrate"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> <script src=../../js/timeago.min.js></script> <script src=../../js/timeago_mkdocs_material.js></script> </body> </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
site/api/services/index.html CHANGED
@@ -1,30 +1,49 @@
1
- <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DETERMINATOR Team"><link href=https://deepcritical.github.io/GradioDemo/api/services/ rel=canonical><link href=../orchestrators/ rel=prev><link href=../models/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Services API Reference - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#services-api-reference class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Services API Reference </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/CONFIGURATION/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../../architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../../contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Quick Start Guide </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <label class=md-nav__link for=__nav_4 id=__nav_4_label tabindex=0> <span class=md-ellipsis> Configuration </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../configuration/CONFIGURATION/ class=md-nav__link> <span class=md-ellipsis> Configuration Guide </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_6 checked> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=true> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Services API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Services API Reference </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#embeddingservice class=md-nav__link> <span class=md-ellipsis> EmbeddingService </span> </a> <nav class=md-nav aria-label=EmbeddingService> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> <nav class=md-nav aria-label=Methods> <ul class=md-nav__list> <li class=md-nav__item> <a href=#embed class=md-nav__link> <span class=md-ellipsis> embed </span> </a> </li> <li class=md-nav__item> <a href=#embed_batch class=md-nav__link> <span class=md-ellipsis> embed_batch </span> </a> </li> <li class=md-nav__item> <a href=#similarity class=md-nav__link> <span class=md-ellipsis> similarity </span> </a> </li> <li class=md-nav__item> <a href=#find_duplicates class=md-nav__link> <span class=md-ellipsis> find_duplicates </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#factory-function class=md-nav__link> <span class=md-ellipsis> Factory Function </span> </a> <nav class=md-nav aria-label="Factory Function"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#get_embedding_service class=md-nav__link> <span class=md-ellipsis> get_embedding_service </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#llamaindexragservice class=md-nav__link> <span class=md-ellipsis> LlamaIndexRAGService </span> </a> <nav class=md-nav aria-label=LlamaIndexRAGService> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods_1 class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> <nav class=md-nav aria-label=Methods> <ul class=md-nav__list> <li class=md-nav__item> <a href=#ingest_evidence class=md-nav__link> <span class=md-ellipsis> ingest_evidence </span> </a> </li> <li class=md-nav__item> <a href=#retrieve class=md-nav__link> <span class=md-ellipsis> retrieve </span> </a> </li> <li class=md-nav__item> <a href=#query class=md-nav__link> <span class=md-ellipsis> query </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#factory-function_1 class=md-nav__link> <span class=md-ellipsis> Factory Function </span> </a> <nav class=md-nav aria-label="Factory Function"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#get_rag_service class=md-nav__link> <span class=md-ellipsis> get_rag_service </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#statisticalanalyzer class=md-nav__link> <span class=md-ellipsis> StatisticalAnalyzer </span> </a> <nav class=md-nav aria-label=StatisticalAnalyzer> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods_2 class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> <nav class=md-nav aria-label=Methods> <ul class=md-nav__list> <li class=md-nav__item> <a href=#analyze class=md-nav__link> <span class=md-ellipsis> analyze </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <label class=md-nav__link for=__nav_7 id=__nav_7_label tabindex=0> <span class=md-ellipsis> Contributing </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../contributing/ class=md-nav__link> <span class=md-ellipsis> Contributing to DeepCritical </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=sidebar data-md-type=toc> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#embeddingservice class=md-nav__link> <span class=md-ellipsis> EmbeddingService </span> </a> <nav class=md-nav aria-label=EmbeddingService> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> <nav class=md-nav aria-label=Methods> <ul class=md-nav__list> <li class=md-nav__item> <a href=#embed class=md-nav__link> <span class=md-ellipsis> embed </span> </a> </li> <li class=md-nav__item> <a href=#embed_batch class=md-nav__link> <span class=md-ellipsis> embed_batch </span> </a> </li> <li class=md-nav__item> <a href=#similarity class=md-nav__link> <span class=md-ellipsis> similarity </span> </a> </li> <li class=md-nav__item> <a href=#find_duplicates class=md-nav__link> <span class=md-ellipsis> find_duplicates </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#factory-function class=md-nav__link> <span class=md-ellipsis> Factory Function </span> </a> <nav class=md-nav aria-label="Factory Function"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#get_embedding_service class=md-nav__link> <span class=md-ellipsis> get_embedding_service </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#llamaindexragservice class=md-nav__link> <span class=md-ellipsis> LlamaIndexRAGService </span> </a> <nav class=md-nav aria-label=LlamaIndexRAGService> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods_1 class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> <nav class=md-nav aria-label=Methods> <ul class=md-nav__list> <li class=md-nav__item> <a href=#ingest_evidence class=md-nav__link> <span class=md-ellipsis> ingest_evidence </span> </a> </li> <li class=md-nav__item> <a href=#retrieve class=md-nav__link> <span class=md-ellipsis> retrieve </span> </a> </li> <li class=md-nav__item> <a href=#query class=md-nav__link> <span class=md-ellipsis> query </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#factory-function_1 class=md-nav__link> <span class=md-ellipsis> Factory Function </span> </a> <nav class=md-nav aria-label="Factory Function"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#get_rag_service class=md-nav__link> <span class=md-ellipsis> get_rag_service </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#statisticalanalyzer class=md-nav__link> <span class=md-ellipsis> StatisticalAnalyzer </span> </a> <nav class=md-nav aria-label=StatisticalAnalyzer> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods_2 class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> <nav class=md-nav aria-label=Methods> <ul class=md-nav__list> <li class=md-nav__item> <a href=#analyze class=md-nav__link> <span class=md-ellipsis> analyze </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=services-api-reference>Services API Reference<a class=headerlink href=#services-api-reference title="Permanent link">&para;</a></h1> <p>This page documents the API for DeepCritical services.</p> <h2 id=embeddingservice>EmbeddingService<a class=headerlink href=#embeddingservice title="Permanent link">&para;</a></h2> <p><strong>Module</strong>: <code>src.services.embeddings</code></p> <p><strong>Purpose</strong>: Local sentence-transformers for semantic search and deduplication.</p> <h3 id=methods>Methods<a class=headerlink href=#methods title="Permanent link">&para;</a></h3> <h4 id=embed><code>embed</code><a class=headerlink href=#embed title="Permanent link">&para;</a></h4> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=k>async</span> <span class=k>def</span><span class=w> </span><span class=nf>embed</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span> <span class=n>text</span><span class=p>:</span> <span class=nb>str</span><span class=p>)</span> <span class=o>-&gt;</span> <span class=nb>list</span><span class=p>[</span><span class=nb>float</span><span class=p>]</span>
2
- </code></pre></div> <p>Generates embedding for a text string.</p> <p><strong>Parameters</strong>: - <code>text</code>: Text to embed</p> <p><strong>Returns</strong>: Embedding vector as list of floats.</p> <h4 id=embed_batch><code>embed_batch</code><a class=headerlink href=#embed_batch title="Permanent link">&para;</a></h4> <div class=highlight><pre><span></span><code><a id=__codelineno-1-1 name=__codelineno-1-1 href=#__codelineno-1-1></a><span class=k>async</span> <span class=k>def</span><span class=w> </span><span class=nf>embed_batch</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span> <span class=n>texts</span><span class=p>:</span> <span class=nb>list</span><span class=p>[</span><span class=nb>str</span><span class=p>])</span> <span class=o>-&gt;</span> <span class=nb>list</span><span class=p>[</span><span class=nb>list</span><span class=p>[</span><span class=nb>float</span><span class=p>]]</span>
3
- </code></pre></div> <p>Generates embeddings for multiple texts.</p> <p><strong>Parameters</strong>: - <code>texts</code>: List of texts to embed</p> <p><strong>Returns</strong>: List of embedding vectors.</p> <h4 id=similarity><code>similarity</code><a class=headerlink href=#similarity title="Permanent link">&para;</a></h4> <div class=highlight><pre><span></span><code><a id=__codelineno-2-1 name=__codelineno-2-1 href=#__codelineno-2-1></a><span class=k>async</span> <span class=k>def</span><span class=w> </span><span class=nf>similarity</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span> <span class=n>text1</span><span class=p>:</span> <span class=nb>str</span><span class=p>,</span> <span class=n>text2</span><span class=p>:</span> <span class=nb>str</span><span class=p>)</span> <span class=o>-&gt;</span> <span class=nb>float</span>
4
- </code></pre></div> <p>Calculates similarity between two texts.</p> <p><strong>Parameters</strong>: - <code>text1</code>: First text - <code>text2</code>: Second text</p> <p><strong>Returns</strong>: Similarity score (0.0-1.0).</p> <h4 id=find_duplicates><code>find_duplicates</code><a class=headerlink href=#find_duplicates title="Permanent link">&para;</a></h4> <div class=highlight><pre><span></span><code><a id=__codelineno-3-1 name=__codelineno-3-1 href=#__codelineno-3-1></a><span class=k>async</span> <span class=k>def</span><span class=w> </span><span class=nf>find_duplicates</span><span class=p>(</span>
5
- <a id=__codelineno-3-2 name=__codelineno-3-2 href=#__codelineno-3-2></a> <span class=bp>self</span><span class=p>,</span>
6
- <a id=__codelineno-3-3 name=__codelineno-3-3 href=#__codelineno-3-3></a> <span class=n>texts</span><span class=p>:</span> <span class=nb>list</span><span class=p>[</span><span class=nb>str</span><span class=p>],</span>
7
- <a id=__codelineno-3-4 name=__codelineno-3-4 href=#__codelineno-3-4></a> <span class=n>threshold</span><span class=p>:</span> <span class=nb>float</span> <span class=o>=</span> <span class=mf>0.85</span>
8
- <a id=__codelineno-3-5 name=__codelineno-3-5 href=#__codelineno-3-5></a><span class=p>)</span> <span class=o>-&gt;</span> <span class=nb>list</span><span class=p>[</span><span class=nb>tuple</span><span class=p>[</span><span class=nb>int</span><span class=p>,</span> <span class=nb>int</span><span class=p>]]</span>
9
- </code></pre></div> <p>Finds duplicate texts based on similarity threshold.</p> <p><strong>Parameters</strong>: - <code>texts</code>: List of texts to check - <code>threshold</code>: Similarity threshold (default: 0.85)</p> <p><strong>Returns</strong>: List of (index1, index2) tuples for duplicate pairs.</p> <h3 id=factory-function>Factory Function<a class=headerlink href=#factory-function title="Permanent link">&para;</a></h3> <h4 id=get_embedding_service><code>get_embedding_service</code><a class=headerlink href=#get_embedding_service title="Permanent link">&para;</a></h4> <div class=highlight><pre><span></span><code><a id=__codelineno-4-1 name=__codelineno-4-1 href=#__codelineno-4-1></a><span class=nd>@lru_cache</span><span class=p>(</span><span class=n>maxsize</span><span class=o>=</span><span class=mi>1</span><span class=p>)</span>
10
- <a id=__codelineno-4-2 name=__codelineno-4-2 href=#__codelineno-4-2></a><span class=k>def</span><span class=w> </span><span class=nf>get_embedding_service</span><span class=p>()</span> <span class=o>-&gt;</span> <span class=n>EmbeddingService</span>
11
- </code></pre></div> <p>Returns singleton EmbeddingService instance.</p> <h2 id=llamaindexragservice>LlamaIndexRAGService<a class=headerlink href=#llamaindexragservice title="Permanent link">&para;</a></h2> <p><strong>Module</strong>: <code>src.services.rag</code></p> <p><strong>Purpose</strong>: Retrieval-Augmented Generation using LlamaIndex.</p> <h3 id=methods_1>Methods<a class=headerlink href=#methods_1 title="Permanent link">&para;</a></h3> <h4 id=ingest_evidence><code>ingest_evidence</code><a class=headerlink href=#ingest_evidence title="Permanent link">&para;</a></h4> <div class=highlight><pre><span></span><code><a id=__codelineno-5-1 name=__codelineno-5-1 href=#__codelineno-5-1></a><span class=k>async</span> <span class=k>def</span><span class=w> </span><span class=nf>ingest_evidence</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span> <span class=n>evidence</span><span class=p>:</span> <span class=nb>list</span><span class=p>[</span><span class=n>Evidence</span><span class=p>])</span> <span class=o>-&gt;</span> <span class=kc>None</span>
12
- </code></pre></div> <p>Ingests evidence into RAG service.</p> <p><strong>Parameters</strong>: - <code>evidence</code>: List of Evidence objects to ingest</p> <p><strong>Note</strong>: Requires OpenAI API key for embeddings.</p> <h4 id=retrieve><code>retrieve</code><a class=headerlink href=#retrieve title="Permanent link">&para;</a></h4> <div class=highlight><pre><span></span><code><a id=__codelineno-6-1 name=__codelineno-6-1 href=#__codelineno-6-1></a><span class=k>async</span> <span class=k>def</span><span class=w> </span><span class=nf>retrieve</span><span class=p>(</span>
13
- <a id=__codelineno-6-2 name=__codelineno-6-2 href=#__codelineno-6-2></a> <span class=bp>self</span><span class=p>,</span>
14
- <a id=__codelineno-6-3 name=__codelineno-6-3 href=#__codelineno-6-3></a> <span class=n>query</span><span class=p>:</span> <span class=nb>str</span><span class=p>,</span>
15
- <a id=__codelineno-6-4 name=__codelineno-6-4 href=#__codelineno-6-4></a> <span class=n>top_k</span><span class=p>:</span> <span class=nb>int</span> <span class=o>=</span> <span class=mi>5</span>
16
- <a id=__codelineno-6-5 name=__codelineno-6-5 href=#__codelineno-6-5></a><span class=p>)</span> <span class=o>-&gt;</span> <span class=nb>list</span><span class=p>[</span><span class=n>Document</span><span class=p>]</span>
17
- </code></pre></div> <p>Retrieves relevant documents for a query.</p> <p><strong>Parameters</strong>: - <code>query</code>: Search query string - <code>top_k</code>: Number of top results to return (default: 5)</p> <p><strong>Returns</strong>: List of Document objects with metadata.</p> <h4 id=query><code>query</code><a class=headerlink href=#query title="Permanent link">&para;</a></h4> <div class=highlight><pre><span></span><code><a id=__codelineno-7-1 name=__codelineno-7-1 href=#__codelineno-7-1></a><span class=k>async</span> <span class=k>def</span><span class=w> </span><span class=nf>query</span><span class=p>(</span>
18
- <a id=__codelineno-7-2 name=__codelineno-7-2 href=#__codelineno-7-2></a> <span class=bp>self</span><span class=p>,</span>
19
- <a id=__codelineno-7-3 name=__codelineno-7-3 href=#__codelineno-7-3></a> <span class=n>query</span><span class=p>:</span> <span class=nb>str</span><span class=p>,</span>
20
- <a id=__codelineno-7-4 name=__codelineno-7-4 href=#__codelineno-7-4></a> <span class=n>top_k</span><span class=p>:</span> <span class=nb>int</span> <span class=o>=</span> <span class=mi>5</span>
21
- <a id=__codelineno-7-5 name=__codelineno-7-5 href=#__codelineno-7-5></a><span class=p>)</span> <span class=o>-&gt;</span> <span class=nb>str</span>
22
- </code></pre></div> <p>Queries RAG service and returns formatted results.</p> <p><strong>Parameters</strong>: - <code>query</code>: Search query string - <code>top_k</code>: Number of top results to return (default: 5)</p> <p><strong>Returns</strong>: Formatted query results as string.</p> <h3 id=factory-function_1>Factory Function<a class=headerlink href=#factory-function_1 title="Permanent link">&para;</a></h3> <h4 id=get_rag_service><code>get_rag_service</code><a class=headerlink href=#get_rag_service title="Permanent link">&para;</a></h4> <div class=highlight><pre><span></span><code><a id=__codelineno-8-1 name=__codelineno-8-1 href=#__codelineno-8-1></a><span class=nd>@lru_cache</span><span class=p>(</span><span class=n>maxsize</span><span class=o>=</span><span class=mi>1</span><span class=p>)</span>
23
- <a id=__codelineno-8-2 name=__codelineno-8-2 href=#__codelineno-8-2></a><span class=k>def</span><span class=w> </span><span class=nf>get_rag_service</span><span class=p>()</span> <span class=o>-&gt;</span> <span class=n>LlamaIndexRAGService</span> <span class=o>|</span> <span class=kc>None</span>
24
- </code></pre></div> <p>Returns singleton LlamaIndexRAGService instance, or None if OpenAI key not available.</p> <h2 id=statisticalanalyzer>StatisticalAnalyzer<a class=headerlink href=#statisticalanalyzer title="Permanent link">&para;</a></h2> <p><strong>Module</strong>: <code>src.services.statistical_analyzer</code></p> <p><strong>Purpose</strong>: Secure execution of AI-generated statistical code.</p> <h3 id=methods_2>Methods<a class=headerlink href=#methods_2 title="Permanent link">&para;</a></h3> <h4 id=analyze><code>analyze</code><a class=headerlink href=#analyze title="Permanent link">&para;</a></h4> <div class=highlight><pre><span></span><code><a id=__codelineno-9-1 name=__codelineno-9-1 href=#__codelineno-9-1></a><span class=k>async</span> <span class=k>def</span><span class=w> </span><span class=nf>analyze</span><span class=p>(</span>
25
- <a id=__codelineno-9-2 name=__codelineno-9-2 href=#__codelineno-9-2></a> <span class=bp>self</span><span class=p>,</span>
26
- <a id=__codelineno-9-3 name=__codelineno-9-3 href=#__codelineno-9-3></a> <span class=n>hypothesis</span><span class=p>:</span> <span class=nb>str</span><span class=p>,</span>
27
- <a id=__codelineno-9-4 name=__codelineno-9-4 href=#__codelineno-9-4></a> <span class=n>evidence</span><span class=p>:</span> <span class=nb>list</span><span class=p>[</span><span class=n>Evidence</span><span class=p>],</span>
28
- <a id=__codelineno-9-5 name=__codelineno-9-5 href=#__codelineno-9-5></a> <span class=n>data_description</span><span class=p>:</span> <span class=nb>str</span> <span class=o>|</span> <span class=kc>None</span> <span class=o>=</span> <span class=kc>None</span>
29
- <a id=__codelineno-9-6 name=__codelineno-9-6 href=#__codelineno-9-6></a><span class=p>)</span> <span class=o>-&gt;</span> <span class=n>AnalysisResult</span>
30
- </code></pre></div> <p>Analyzes a hypothesis using statistical methods.</p> <p><strong>Parameters</strong>: - <code>hypothesis</code>: Hypothesis to analyze - <code>evidence</code>: List of Evidence objects - <code>data_description</code>: Optional data description</p> <p><strong>Returns</strong>: <code>AnalysisResult</code> with: - <code>verdict</code>: SUPPORTED, REFUTED, or INCONCLUSIVE - <code>code</code>: Generated analysis code - <code>output</code>: Execution output - <code>error</code>: Error message if execution failed</p> <p><strong>Note</strong>: Requires Modal credentials for sandbox execution.</p> <h2 id=see-also>See Also<a class=headerlink href=#see-also title="Permanent link">&para;</a></h2> <ul> <li><a href=../../architecture/services/ >Architecture - Services</a> - Architecture overview</li> <li><a href=../../configuration/ >Configuration</a> - Service configuration</li> </ul> </article> </div> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=github.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title=huggingface.co class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> </body> </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DeepCritical Team"><link href=https://deepcritical.github.io/GradioDemo/api/services/ rel=canonical><link href=../orchestrators/ rel=prev><link href=../models/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Services API Reference - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><link rel=stylesheet href=../../css/timeago.css><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#services-api-reference class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Services API Reference </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../../architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../../contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Single Command Deploy </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <div class="md-nav__link md-nav__container"> <a href=../../configuration/ class="md-nav__link "> <span class=md-ellipsis> Configuration </span> </a> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_6 checked> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=true> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Services API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Services API Reference </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#embeddingservice class=md-nav__link> <span class=md-ellipsis> EmbeddingService </span> </a> <nav class=md-nav aria-label=EmbeddingService> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> </li> <li class=md-nav__item> <a href=#factory-function class=md-nav__link> <span class=md-ellipsis> Factory Function </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#llamaindexragservice class=md-nav__link> <span class=md-ellipsis> LlamaIndexRAGService </span> </a> <nav class=md-nav aria-label=LlamaIndexRAGService> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods_1 class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> </li> <li class=md-nav__item> <a href=#factory-function_1 class=md-nav__link> <span class=md-ellipsis> Factory Function </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#statisticalanalyzer class=md-nav__link> <span class=md-ellipsis> StatisticalAnalyzer </span> </a> <nav class=md-nav aria-label=StatisticalAnalyzer> <ul class=md-nav__list> <li class=md-nav__item> <a href=#methods_2 class=md-nav__link> <span class=md-ellipsis> Methods </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <div class="md-nav__link md-nav__container"> <a href=../../contributing/ class="md-nav__link "> <span class=md-ellipsis> Contributing </span> </a> <label class="md-nav__link " for=__nav_7 id=__nav_7_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=services-api-reference>Services API Reference<a class=headerlink href=#services-api-reference title="Anchor link to this section">&para;</a></h1> <p>This page documents the API for DeepCritical services.</p> <h2 id=embeddingservice>EmbeddingService<a class=headerlink href=#embeddingservice title="Anchor link to this section">&para;</a></h2> <p><strong>Module</strong>: <code>src.services.embeddings</code></p> <p><strong>Purpose</strong>: Local sentence-transformers for semantic search and deduplication.</p> <h3 id=methods>Methods<a class=headerlink href=#methods title="Anchor link to this section">&para;</a></h3> <h4 id=embed><code>embed</code><a class=headerlink href=#embed title="Anchor link to this section">&para;</a></h4> <p>Generates embedding for a text string.</p> <p><strong>Parameters</strong>: - <code>text</code>: Text to embed</p> <p><strong>Returns</strong>: Embedding vector as list of floats.</p> <h4 id=embed_batch><code>embed_batch</code><a class=headerlink href=#embed_batch title="Anchor link to this section">&para;</a></h4> <div class="language-python highlight"><pre><span></span><code><span id=__span-0-1><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=k>async</span> <span class=k>def</span><span class=w> </span><span class=nf>embed_batch</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span> <span class=n>texts</span><span class=p>:</span> <span class=nb>list</span><span class=p>[</span><span class=nb>str</span><span class=p>])</span> <span class=o>-&gt;</span> <span class=nb>list</span><span class=p>[</span><span class=nb>list</span><span class=p>[</span><span class=nb>float</span><span class=p>]]</span>
2
+ </span></code></pre></div> <p>Generates embeddings for multiple texts.</p> <p><strong>Parameters</strong>: - <code>texts</code>: List of texts to embed</p> <p><strong>Returns</strong>: List of embedding vectors.</p> <h4 id=similarity><code>similarity</code><a class=headerlink href=#similarity title="Anchor link to this section">&para;</a></h4> <div class="language-python highlight"><pre><span></span><code><span id=__span-1-1><a id=__codelineno-1-1 name=__codelineno-1-1 href=#__codelineno-1-1></a><span class=k>async</span> <span class=k>def</span><span class=w> </span><span class=nf>similarity</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span> <span class=n>text1</span><span class=p>:</span> <span class=nb>str</span><span class=p>,</span> <span class=n>text2</span><span class=p>:</span> <span class=nb>str</span><span class=p>)</span> <span class=o>-&gt;</span> <span class=nb>float</span>
3
+ </span></code></pre></div> <p>Calculates similarity between two texts.</p> <p><strong>Parameters</strong>: - <code>text1</code>: First text - <code>text2</code>: Second text</p> <p><strong>Returns</strong>: Similarity score (0.0-1.0).</p> <h4 id=find_duplicates><code>find_duplicates</code><a class=headerlink href=#find_duplicates title="Anchor link to this section">&para;</a></h4> <div class="language-python highlight"><pre><span></span><code><span id=__span-2-1><a id=__codelineno-2-1 name=__codelineno-2-1 href=#__codelineno-2-1></a><span class=k>async</span> <span class=k>def</span><span class=w> </span><span class=nf>find_duplicates</span><span class=p>(</span>
4
+ </span><span id=__span-2-2><a id=__codelineno-2-2 name=__codelineno-2-2 href=#__codelineno-2-2></a> <span class=bp>self</span><span class=p>,</span>
5
+ </span><span id=__span-2-3><a id=__codelineno-2-3 name=__codelineno-2-3 href=#__codelineno-2-3></a> <span class=n>texts</span><span class=p>:</span> <span class=nb>list</span><span class=p>[</span><span class=nb>str</span><span class=p>],</span>
6
+ </span><span id=__span-2-4><a id=__codelineno-2-4 name=__codelineno-2-4 href=#__codelineno-2-4></a> <span class=n>threshold</span><span class=p>:</span> <span class=nb>float</span> <span class=o>=</span> <span class=mf>0.85</span>
7
+ </span><span id=__span-2-5><a id=__codelineno-2-5 name=__codelineno-2-5 href=#__codelineno-2-5></a><span class=p>)</span> <span class=o>-&gt;</span> <span class=nb>list</span><span class=p>[</span><span class=nb>tuple</span><span class=p>[</span><span class=nb>int</span><span class=p>,</span> <span class=nb>int</span><span class=p>]]</span>
8
+ </span></code></pre></div> <p>Finds duplicate texts based on similarity threshold.</p> <p><strong>Parameters</strong>: - <code>texts</code>: List of texts to check - <code>threshold</code>: Similarity threshold (default: 0.85)</p> <p><strong>Returns</strong>: List of (index1, index2) tuples for duplicate pairs.</p> <h4 id=add_evidence><code>add_evidence</code><a class=headerlink href=#add_evidence title="Anchor link to this section">&para;</a></h4> <div class="language-python highlight"><pre><span></span><code><span id=__span-3-1><a id=__codelineno-3-1 name=__codelineno-3-1 href=#__codelineno-3-1></a><span class=k>async</span> <span class=k>def</span><span class=w> </span><span class=nf>add_evidence</span><span class=p>(</span>
9
+ </span><span id=__span-3-2><a id=__codelineno-3-2 name=__codelineno-3-2 href=#__codelineno-3-2></a> <span class=bp>self</span><span class=p>,</span>
10
+ </span><span id=__span-3-3><a id=__codelineno-3-3 name=__codelineno-3-3 href=#__codelineno-3-3></a> <span class=n>evidence_id</span><span class=p>:</span> <span class=nb>str</span><span class=p>,</span>
11
+ </span><span id=__span-3-4><a id=__codelineno-3-4 name=__codelineno-3-4 href=#__codelineno-3-4></a> <span class=n>content</span><span class=p>:</span> <span class=nb>str</span><span class=p>,</span>
12
+ </span><span id=__span-3-5><a id=__codelineno-3-5 name=__codelineno-3-5 href=#__codelineno-3-5></a> <span class=n>metadata</span><span class=p>:</span> <span class=nb>dict</span><span class=p>[</span><span class=nb>str</span><span class=p>,</span> <span class=n>Any</span><span class=p>]</span>
13
+ </span><span id=__span-3-6><a id=__codelineno-3-6 name=__codelineno-3-6 href=#__codelineno-3-6></a><span class=p>)</span> <span class=o>-&gt;</span> <span class=kc>None</span>
14
+ </span></code></pre></div> <p>Adds evidence to vector store for semantic search.</p> <p><strong>Parameters</strong>: - <code>evidence_id</code>: Unique identifier for the evidence - <code>content</code>: Evidence text content - <code>metadata</code>: Additional metadata dictionary</p> <h4 id=search_similar><code>search_similar</code><a class=headerlink href=#search_similar title="Anchor link to this section">&para;</a></h4> <div class="language-python highlight"><pre><span></span><code><span id=__span-4-1><a id=__codelineno-4-1 name=__codelineno-4-1 href=#__codelineno-4-1></a><span class=k>async</span> <span class=k>def</span><span class=w> </span><span class=nf>search_similar</span><span class=p>(</span>
15
+ </span><span id=__span-4-2><a id=__codelineno-4-2 name=__codelineno-4-2 href=#__codelineno-4-2></a> <span class=bp>self</span><span class=p>,</span>
16
+ </span><span id=__span-4-3><a id=__codelineno-4-3 name=__codelineno-4-3 href=#__codelineno-4-3></a> <span class=n>query</span><span class=p>:</span> <span class=nb>str</span><span class=p>,</span>
17
+ </span><span id=__span-4-4><a id=__codelineno-4-4 name=__codelineno-4-4 href=#__codelineno-4-4></a> <span class=n>n_results</span><span class=p>:</span> <span class=nb>int</span> <span class=o>=</span> <span class=mi>5</span>
18
+ </span><span id=__span-4-5><a id=__codelineno-4-5 name=__codelineno-4-5 href=#__codelineno-4-5></a><span class=p>)</span> <span class=o>-&gt;</span> <span class=nb>list</span><span class=p>[</span><span class=nb>dict</span><span class=p>[</span><span class=nb>str</span><span class=p>,</span> <span class=n>Any</span><span class=p>]]</span>
19
+ </span></code></pre></div> <p>Finds semantically similar evidence.</p> <p><strong>Parameters</strong>: - <code>query</code>: Search query string - <code>n_results</code>: Number of results to return (default: 5)</p> <p><strong>Returns</strong>: List of dictionaries with <code>id</code>, <code>content</code>, <code>metadata</code>, and <code>distance</code> keys.</p> <h4 id=deduplicate><code>deduplicate</code><a class=headerlink href=#deduplicate title="Anchor link to this section">&para;</a></h4> <div class="language-python highlight"><pre><span></span><code><span id=__span-5-1><a id=__codelineno-5-1 name=__codelineno-5-1 href=#__codelineno-5-1></a><span class=k>async</span> <span class=k>def</span><span class=w> </span><span class=nf>deduplicate</span><span class=p>(</span>
20
+ </span><span id=__span-5-2><a id=__codelineno-5-2 name=__codelineno-5-2 href=#__codelineno-5-2></a> <span class=bp>self</span><span class=p>,</span>
21
+ </span><span id=__span-5-3><a id=__codelineno-5-3 name=__codelineno-5-3 href=#__codelineno-5-3></a> <span class=n>new_evidence</span><span class=p>:</span> <span class=nb>list</span><span class=p>[</span><span class=n>Evidence</span><span class=p>],</span>
22
+ </span><span id=__span-5-4><a id=__codelineno-5-4 name=__codelineno-5-4 href=#__codelineno-5-4></a> <span class=n>threshold</span><span class=p>:</span> <span class=nb>float</span> <span class=o>=</span> <span class=mf>0.9</span>
23
+ </span><span id=__span-5-5><a id=__codelineno-5-5 name=__codelineno-5-5 href=#__codelineno-5-5></a><span class=p>)</span> <span class=o>-&gt;</span> <span class=nb>list</span><span class=p>[</span><span class=n>Evidence</span><span class=p>]</span>
24
+ </span></code></pre></div> <p>Removes semantically duplicate evidence.</p> <p><strong>Parameters</strong>: - <code>new_evidence</code>: List of evidence items to deduplicate - <code>threshold</code>: Similarity threshold (default: 0.9, where 0.9 = 90% similar is duplicate)</p> <p><strong>Returns</strong>: List of unique evidence items (not already in vector store).</p> <h3 id=factory-function>Factory Function<a class=headerlink href=#factory-function title="Anchor link to this section">&para;</a></h3> <h4 id=get_embedding_service><code>get_embedding_service</code><a class=headerlink href=#get_embedding_service title="Anchor link to this section">&para;</a></h4> <div class="language-python highlight"><pre><span></span><code><span id=__span-6-1><a id=__codelineno-6-1 name=__codelineno-6-1 href=#__codelineno-6-1></a><span class=nd>@lru_cache</span><span class=p>(</span><span class=n>maxsize</span><span class=o>=</span><span class=mi>1</span><span class=p>)</span>
25
+ </span><span id=__span-6-2><a id=__codelineno-6-2 name=__codelineno-6-2 href=#__codelineno-6-2></a><span class=k>def</span><span class=w> </span><span class=nf>get_embedding_service</span><span class=p>()</span> <span class=o>-&gt;</span> <span class=n>EmbeddingService</span>
26
+ </span></code></pre></div> <p>Returns singleton EmbeddingService instance.</p> <h2 id=llamaindexragservice>LlamaIndexRAGService<a class=headerlink href=#llamaindexragservice title="Anchor link to this section">&para;</a></h2> <p><strong>Module</strong>: <code>src.services.rag</code></p> <p><strong>Purpose</strong>: Retrieval-Augmented Generation using LlamaIndex.</p> <h3 id=methods_1>Methods<a class=headerlink href=#methods_1 title="Anchor link to this section">&para;</a></h3> <h4 id=ingest_evidence><code>ingest_evidence</code><a class=headerlink href=#ingest_evidence title="Anchor link to this section">&para;</a></h4> <p>Ingests evidence into RAG service.</p> <p><strong>Parameters</strong>: - <code>evidence_list</code>: List of Evidence objects to ingest</p> <p><strong>Note</strong>: Supports multiple embedding providers (OpenAI, local sentence-transformers, Hugging Face).</p> <h4 id=retrieve><code>retrieve</code><a class=headerlink href=#retrieve title="Anchor link to this section">&para;</a></h4> <div class="language-python highlight"><pre><span></span><code><span id=__span-7-1><a id=__codelineno-7-1 name=__codelineno-7-1 href=#__codelineno-7-1></a><span class=k>def</span><span class=w> </span><span class=nf>retrieve</span><span class=p>(</span>
27
+ </span><span id=__span-7-2><a id=__codelineno-7-2 name=__codelineno-7-2 href=#__codelineno-7-2></a> <span class=bp>self</span><span class=p>,</span>
28
+ </span><span id=__span-7-3><a id=__codelineno-7-3 name=__codelineno-7-3 href=#__codelineno-7-3></a> <span class=n>query</span><span class=p>:</span> <span class=nb>str</span><span class=p>,</span>
29
+ </span><span id=__span-7-4><a id=__codelineno-7-4 name=__codelineno-7-4 href=#__codelineno-7-4></a> <span class=n>top_k</span><span class=p>:</span> <span class=nb>int</span> <span class=o>|</span> <span class=kc>None</span> <span class=o>=</span> <span class=kc>None</span>
30
+ </span><span id=__span-7-5><a id=__codelineno-7-5 name=__codelineno-7-5 href=#__codelineno-7-5></a><span class=p>)</span> <span class=o>-&gt;</span> <span class=nb>list</span><span class=p>[</span><span class=nb>dict</span><span class=p>[</span><span class=nb>str</span><span class=p>,</span> <span class=n>Any</span><span class=p>]]</span>
31
+ </span></code></pre></div> <p>Retrieves relevant documents for a query.</p> <p><strong>Parameters</strong>: - <code>query</code>: Search query string - <code>top_k</code>: Number of top results to return (defaults to <code>similarity_top_k</code> from constructor)</p> <p><strong>Returns</strong>: List of dictionaries with <code>text</code>, <code>score</code>, and <code>metadata</code> keys.</p> <h4 id=query><code>query</code><a class=headerlink href=#query title="Anchor link to this section">&para;</a></h4> <div class="language-python highlight"><pre><span></span><code><span id=__span-8-1><a id=__codelineno-8-1 name=__codelineno-8-1 href=#__codelineno-8-1></a><span class=k>def</span><span class=w> </span><span class=nf>query</span><span class=p>(</span>
32
+ </span><span id=__span-8-2><a id=__codelineno-8-2 name=__codelineno-8-2 href=#__codelineno-8-2></a> <span class=bp>self</span><span class=p>,</span>
33
+ </span><span id=__span-8-3><a id=__codelineno-8-3 name=__codelineno-8-3 href=#__codelineno-8-3></a> <span class=n>query_str</span><span class=p>:</span> <span class=nb>str</span><span class=p>,</span>
34
+ </span><span id=__span-8-4><a id=__codelineno-8-4 name=__codelineno-8-4 href=#__codelineno-8-4></a> <span class=n>top_k</span><span class=p>:</span> <span class=nb>int</span> <span class=o>|</span> <span class=kc>None</span> <span class=o>=</span> <span class=kc>None</span>
35
+ </span><span id=__span-8-5><a id=__codelineno-8-5 name=__codelineno-8-5 href=#__codelineno-8-5></a><span class=p>)</span> <span class=o>-&gt;</span> <span class=nb>str</span>
36
+ </span></code></pre></div> <p>Queries RAG service and returns synthesized response.</p> <p><strong>Parameters</strong>: - <code>query_str</code>: Query string - <code>top_k</code>: Number of results to use (defaults to <code>similarity_top_k</code> from constructor)</p> <p><strong>Returns</strong>: Synthesized response string.</p> <p><strong>Raises</strong>: - <code>ConfigurationError</code>: If no LLM API key is available for query synthesis</p> <h4 id=ingest_documents><code>ingest_documents</code><a class=headerlink href=#ingest_documents title="Anchor link to this section">&para;</a></h4> <div class="language-python highlight"><pre><span></span><code><span id=__span-9-1><a id=__codelineno-9-1 name=__codelineno-9-1 href=#__codelineno-9-1></a><span class=k>def</span><span class=w> </span><span class=nf>ingest_documents</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span> <span class=n>documents</span><span class=p>:</span> <span class=nb>list</span><span class=p>[</span><span class=n>Any</span><span class=p>])</span> <span class=o>-&gt;</span> <span class=kc>None</span>
37
+ </span></code></pre></div> <p>Ingests raw LlamaIndex Documents.</p> <p><strong>Parameters</strong>: - <code>documents</code>: List of LlamaIndex Document objects</p> <h4 id=clear_collection><code>clear_collection</code><a class=headerlink href=#clear_collection title="Anchor link to this section">&para;</a></h4> <div class="language-python highlight"><pre><span></span><code><span id=__span-10-1><a id=__codelineno-10-1 name=__codelineno-10-1 href=#__codelineno-10-1></a><span class=k>def</span><span class=w> </span><span class=nf>clear_collection</span><span class=p>(</span><span class=bp>self</span><span class=p>)</span> <span class=o>-&gt;</span> <span class=kc>None</span>
38
+ </span></code></pre></div> <p>Clears all documents from the collection.</p> <h3 id=factory-function_1>Factory Function<a class=headerlink href=#factory-function_1 title="Anchor link to this section">&para;</a></h3> <h4 id=get_rag_service><code>get_rag_service</code><a class=headerlink href=#get_rag_service title="Anchor link to this section">&para;</a></h4> <div class="language-python highlight"><pre><span></span><code><span id=__span-11-1><a id=__codelineno-11-1 name=__codelineno-11-1 href=#__codelineno-11-1></a><span class=k>def</span><span class=w> </span><span class=nf>get_rag_service</span><span class=p>(</span>
39
+ </span><span id=__span-11-2><a id=__codelineno-11-2 name=__codelineno-11-2 href=#__codelineno-11-2></a> <span class=n>collection_name</span><span class=p>:</span> <span class=nb>str</span> <span class=o>=</span> <span class=s2>&quot;deepcritical_evidence&quot;</span><span class=p>,</span>
40
+ </span><span id=__span-11-3><a id=__codelineno-11-3 name=__codelineno-11-3 href=#__codelineno-11-3></a> <span class=n>oauth_token</span><span class=p>:</span> <span class=nb>str</span> <span class=o>|</span> <span class=kc>None</span> <span class=o>=</span> <span class=kc>None</span><span class=p>,</span>
41
+ </span><span id=__span-11-4><a id=__codelineno-11-4 name=__codelineno-11-4 href=#__codelineno-11-4></a> <span class=o>**</span><span class=n>kwargs</span><span class=p>:</span> <span class=n>Any</span>
42
+ </span><span id=__span-11-5><a id=__codelineno-11-5 name=__codelineno-11-5 href=#__codelineno-11-5></a><span class=p>)</span> <span class=o>-&gt;</span> <span class=n>LlamaIndexRAGService</span>
43
+ </span></code></pre></div> <p>Get or create a RAG service instance.</p> <p><strong>Parameters</strong>: - <code>collection_name</code>: Name of the ChromaDB collection (default: "deepcritical_evidence") - <code>oauth_token</code>: Optional OAuth token from HuggingFace login (takes priority over env vars) - <code>**kwargs</code>: Additional arguments for LlamaIndexRAGService (e.g., <code>use_openai_embeddings=False</code>)</p> <p><strong>Returns</strong>: Configured LlamaIndexRAGService instance.</p> <p><strong>Note</strong>: By default, uses local embeddings (sentence-transformers) which require no API keys.</p> <h2 id=statisticalanalyzer>StatisticalAnalyzer<a class=headerlink href=#statisticalanalyzer title="Anchor link to this section">&para;</a></h2> <p><strong>Module</strong>: <code>src.services.statistical_analyzer</code></p> <p><strong>Purpose</strong>: Secure execution of AI-generated statistical code.</p> <h3 id=methods_2>Methods<a class=headerlink href=#methods_2 title="Anchor link to this section">&para;</a></h3> <h4 id=analyze><code>analyze</code><a class=headerlink href=#analyze title="Anchor link to this section">&para;</a></h4> <div class="language-python highlight"><pre><span></span><code><span id=__span-12-1><a id=__codelineno-12-1 name=__codelineno-12-1 href=#__codelineno-12-1></a><span class=k>async</span> <span class=k>def</span><span class=w> </span><span class=nf>analyze</span><span class=p>(</span>
44
+ </span><span id=__span-12-2><a id=__codelineno-12-2 name=__codelineno-12-2 href=#__codelineno-12-2></a> <span class=bp>self</span><span class=p>,</span>
45
+ </span><span id=__span-12-3><a id=__codelineno-12-3 name=__codelineno-12-3 href=#__codelineno-12-3></a> <span class=n>query</span><span class=p>:</span> <span class=nb>str</span><span class=p>,</span>
46
+ </span><span id=__span-12-4><a id=__codelineno-12-4 name=__codelineno-12-4 href=#__codelineno-12-4></a> <span class=n>evidence</span><span class=p>:</span> <span class=nb>list</span><span class=p>[</span><span class=n>Evidence</span><span class=p>],</span>
47
+ </span><span id=__span-12-5><a id=__codelineno-12-5 name=__codelineno-12-5 href=#__codelineno-12-5></a> <span class=n>hypothesis</span><span class=p>:</span> <span class=nb>dict</span><span class=p>[</span><span class=nb>str</span><span class=p>,</span> <span class=n>Any</span><span class=p>]</span> <span class=o>|</span> <span class=kc>None</span> <span class=o>=</span> <span class=kc>None</span>
48
+ </span><span id=__span-12-6><a id=__codelineno-12-6 name=__codelineno-12-6 href=#__codelineno-12-6></a><span class=p>)</span> <span class=o>-&gt;</span> <span class=n>AnalysisResult</span>
49
+ </span></code></pre></div> <p>Analyzes a research question using statistical methods.</p> <p><strong>Parameters</strong>: - <code>query</code>: The research question - <code>evidence</code>: List of Evidence objects to analyze - <code>hypothesis</code>: Optional hypothesis dict with <code>drug</code>, <code>target</code>, <code>pathway</code>, <code>effect</code>, <code>confidence</code> keys</p> <p><strong>Returns</strong>: <code>AnalysisResult</code> with: - <code>verdict</code>: SUPPORTED, REFUTED, or INCONCLUSIVE - <code>confidence</code>: Confidence in verdict (0.0-1.0) - <code>statistical_evidence</code>: Summary of statistical findings - <code>code_generated</code>: Python code that was executed - <code>execution_output</code>: Output from code execution - <code>key_takeaways</code>: Key takeaways from analysis - <code>limitations</code>: List of limitations</p> <p><strong>Note</strong>: Requires Modal credentials for sandbox execution.</p> <h2 id=see-also>See Also<a class=headerlink href=#see-also title="Anchor link to this section">&para;</a></h2> <ul> <li><a href=../../architecture/services/ >Architecture - Services</a> - Architecture overview</li> <li><a href=../../configuration/ >Configuration</a> - Service configuration</li> </ul> <aside class=md-source-file> <span class=md-source-file__fact> <span class=md-icon title="Last update"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="December 2, 2025 01:35:56 UTC"><span class=timeago datetime=2025-12-02T01:35:56+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="December 2, 2025 01:35:56 UTC">2025-12-02</span> </span> <span class=md-source-file__fact> <span class=md-icon title=Created> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M14.47 15.08 11 13V7h1.5v5.25l3.08 1.83c-.41.28-.79.62-1.11 1m-1.39 4.84c-.36.05-.71.08-1.08.08-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8c0 .37-.03.72-.08 1.08.69.1 1.33.32 1.92.64.1-.56.16-1.13.16-1.72 0-5.5-4.5-10-10-10S2 6.5 2 12s4.47 10 10 10c.59 0 1.16-.06 1.72-.16-.32-.59-.54-1.23-.64-1.92M18 15v3h-3v2h3v3h2v-3h3v-2h-3v-3z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="November 29, 2025 21:40:26 UTC"><span class=timeago datetime=2025-11-29T21:40:26+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="November 29, 2025 21:40:26 UTC">2025-11-29</span> </span> </aside> </article> </div> <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=GitHub class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://twitter.com/josephpollack target=_blank rel=noopener title=Twitter class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M459.4 151.7c.3 4.5.3 9.1.3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103v-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53C87.4 130.8 165 172.4 252.1 176.9c-1.6-7.8-2.6-15.9-2.6-24C249.5 95.1 296.3 48 354.4 48c30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title="Live Demo" class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> <a href=https://discord.gg/n8ytYeh25n target=_blank rel=noopener title=Discord class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 576 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M492.5 69.8c-.2-.3-.4-.6-.8-.7-38.1-17.5-78.4-30-119.7-37.1-.4-.1-.8 0-1.1.1s-.6.4-.8.8c-5.5 9.9-10.5 20.2-14.9 30.6-44.6-6.8-89.9-6.8-134.4 0-4.5-10.5-9.5-20.7-15.1-30.6-.2-.3-.5-.6-.8-.8s-.7-.2-1.1-.2C162.5 39 122.2 51.5 84.1 69c-.3.1-.6.4-.8.7C7.1 183.5-13.8 294.6-3.6 404.2c0 .3.1.5.2.8s.3.4.5.6c44.4 32.9 94 58 146.8 74.2.4.1.8.1 1.1 0s.7-.4.9-.7c11.3-15.4 21.4-31.8 30-48.8.1-.2.2-.5.2-.8s0-.5-.1-.8-.2-.5-.4-.6-.4-.3-.7-.4c-15.8-6.1-31.2-13.4-45.9-21.9-.3-.2-.5-.4-.7-.6s-.3-.6-.3-.9 0-.6.2-.9.3-.5.6-.7c3.1-2.3 6.2-4.7 9.1-7.1.3-.2.6-.4.9-.4s.7 0 1 .1c96.2 43.9 200.4 43.9 295.5 0 .3-.1.7-.2 1-.2s.7.2.9.4c2.9 2.4 6 4.9 9.1 7.2.2.2.4.4.6.7s.2.6.2.9-.1.6-.3.9-.4.5-.6.6c-14.7 8.6-30 15.9-45.9 21.8-.2.1-.5.2-.7.4s-.3.4-.4.7-.1.5-.1.8.1.5.2.8c8.8 17 18.8 33.3 30 48.8.2.3.6.6.9.7s.8.1 1.1 0c52.9-16.2 102.6-41.3 147.1-74.2.2-.2.4-.4.5-.6s.2-.5.2-.8c12.3-126.8-20.5-236.9-86.9-334.5zm-302 267.7c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.4 59.2-52.8 59.2m195.4 0c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.2 59.2-52.8 59.2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "navigation.indexes", "navigation.instant", "navigation.tracking", "navigation.smooth", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy", "content.tabs.link", "content.tooltips", "toc.integrate"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> <script src=../../js/timeago.min.js></script> <script src=../../js/timeago_mkdocs_material.js></script> </body> </html>
site/api/tools/index.html CHANGED
The diff for this file is too large to render. See raw diff
 
site/architecture/agents/index.html CHANGED
@@ -1 +1 @@
1
- <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DETERMINATOR Team"><link href=https://deepcritical.github.io/GradioDemo/architecture/agents/ rel=canonical><link href=../workflow-diagrams/ rel=prev><link href=../orchestrators/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Agents - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#agents-architecture class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Agents </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/CONFIGURATION/ class=md-tabs__link> Configuration </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../../contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Quick Start Guide </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <label class=md-nav__link for=__nav_4 id=__nav_4_label tabindex=0> <span class=md-ellipsis> Configuration </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../configuration/CONFIGURATION/ class=md-nav__link> <span class=md-ellipsis> Configuration Guide </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_5 checked> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=true> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Agents </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Agents </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#agent-pattern class=md-nav__link> <span class=md-ellipsis> Agent Pattern </span> </a> </li> <li class=md-nav__item> <a href=#model-initialization class=md-nav__link> <span class=md-ellipsis> Model Initialization </span> </a> </li> <li class=md-nav__item> <a href=#error-handling class=md-nav__link> <span class=md-ellipsis> Error Handling </span> </a> </li> <li class=md-nav__item> <a href=#input-validation class=md-nav__link> <span class=md-ellipsis> Input Validation </span> </a> </li> <li class=md-nav__item> <a href=#output-types class=md-nav__link> <span class=md-ellipsis> Output Types </span> </a> </li> <li class=md-nav__item> <a href=#agent-types class=md-nav__link> <span class=md-ellipsis> Agent Types </span> </a> <nav class=md-nav aria-label="Agent Types"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#knowledge-gap-agent class=md-nav__link> <span class=md-ellipsis> Knowledge Gap Agent </span> </a> </li> <li class=md-nav__item> <a href=#tool-selector-agent class=md-nav__link> <span class=md-ellipsis> Tool Selector Agent </span> </a> </li> <li class=md-nav__item> <a href=#writer-agent class=md-nav__link> <span class=md-ellipsis> Writer Agent </span> </a> </li> <li class=md-nav__item> <a href=#long-writer-agent class=md-nav__link> <span class=md-ellipsis> Long Writer Agent </span> </a> </li> <li class=md-nav__item> <a href=#proofreader-agent class=md-nav__link> <span class=md-ellipsis> Proofreader Agent </span> </a> </li> <li class=md-nav__item> <a href=#thinking-agent class=md-nav__link> <span class=md-ellipsis> Thinking Agent </span> </a> </li> <li class=md-nav__item> <a href=#input-parser-agent class=md-nav__link> <span class=md-ellipsis> Input Parser Agent </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#factory-functions class=md-nav__link> <span class=md-ellipsis> Factory Functions </span> </a> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <label class=md-nav__link for=__nav_7 id=__nav_7_label tabindex=0> <span class=md-ellipsis> Contributing </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../contributing/ class=md-nav__link> <span class=md-ellipsis> Contributing to DeepCritical </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=sidebar data-md-type=toc> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#agent-pattern class=md-nav__link> <span class=md-ellipsis> Agent Pattern </span> </a> </li> <li class=md-nav__item> <a href=#model-initialization class=md-nav__link> <span class=md-ellipsis> Model Initialization </span> </a> </li> <li class=md-nav__item> <a href=#error-handling class=md-nav__link> <span class=md-ellipsis> Error Handling </span> </a> </li> <li class=md-nav__item> <a href=#input-validation class=md-nav__link> <span class=md-ellipsis> Input Validation </span> </a> </li> <li class=md-nav__item> <a href=#output-types class=md-nav__link> <span class=md-ellipsis> Output Types </span> </a> </li> <li class=md-nav__item> <a href=#agent-types class=md-nav__link> <span class=md-ellipsis> Agent Types </span> </a> <nav class=md-nav aria-label="Agent Types"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#knowledge-gap-agent class=md-nav__link> <span class=md-ellipsis> Knowledge Gap Agent </span> </a> </li> <li class=md-nav__item> <a href=#tool-selector-agent class=md-nav__link> <span class=md-ellipsis> Tool Selector Agent </span> </a> </li> <li class=md-nav__item> <a href=#writer-agent class=md-nav__link> <span class=md-ellipsis> Writer Agent </span> </a> </li> <li class=md-nav__item> <a href=#long-writer-agent class=md-nav__link> <span class=md-ellipsis> Long Writer Agent </span> </a> </li> <li class=md-nav__item> <a href=#proofreader-agent class=md-nav__link> <span class=md-ellipsis> Proofreader Agent </span> </a> </li> <li class=md-nav__item> <a href=#thinking-agent class=md-nav__link> <span class=md-ellipsis> Thinking Agent </span> </a> </li> <li class=md-nav__item> <a href=#input-parser-agent class=md-nav__link> <span class=md-ellipsis> Input Parser Agent </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#factory-functions class=md-nav__link> <span class=md-ellipsis> Factory Functions </span> </a> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=agents-architecture>Agents Architecture<a class=headerlink href=#agents-architecture title="Permanent link">&para;</a></h1> <p>DeepCritical uses Pydantic AI agents for all AI-powered operations. All agents follow a consistent pattern and use structured output types.</p> <h2 id=agent-pattern>Agent Pattern<a class=headerlink href=#agent-pattern title="Permanent link">&para;</a></h2> <p>All agents use the Pydantic AI <code>Agent</code> class with the following structure:</p> <ul> <li><strong>System Prompt</strong>: Module-level constant with date injection</li> <li><strong>Agent Class</strong>: <code>__init__(model: Any | None = None)</code></li> <li><strong>Main Method</strong>: Async method (e.g., <code>async def evaluate()</code>, <code>async def write_report()</code>)</li> <li><strong>Factory Function</strong>: <code>def create_agent_name(model: Any | None = None) -&gt; AgentName</code></li> </ul> <h2 id=model-initialization>Model Initialization<a class=headerlink href=#model-initialization title="Permanent link">&para;</a></h2> <p>Agents use <code>get_model()</code> from <code>src/agent_factory/judges.py</code> if no model is provided. This supports:</p> <ul> <li>OpenAI models</li> <li>Anthropic models</li> <li>HuggingFace Inference API models</li> </ul> <p>The model selection is based on the configured <code>LLM_PROVIDER</code> in settings.</p> <h2 id=error-handling>Error Handling<a class=headerlink href=#error-handling title="Permanent link">&para;</a></h2> <p>Agents return fallback values on failure rather than raising exceptions:</p> <ul> <li><code>KnowledgeGapOutput(research_complete=False, outstanding_gaps=[...])</code></li> <li>Empty strings for text outputs</li> <li>Default structured outputs</li> </ul> <p>All errors are logged with context using structlog.</p> <h2 id=input-validation>Input Validation<a class=headerlink href=#input-validation title="Permanent link">&para;</a></h2> <p>All agents validate inputs:</p> <ul> <li>Check that queries/inputs are not empty</li> <li>Truncate very long inputs with warnings</li> <li>Handle None values gracefully</li> </ul> <h2 id=output-types>Output Types<a class=headerlink href=#output-types title="Permanent link">&para;</a></h2> <p>Agents use structured output types from <code>src/utils/models.py</code>:</p> <ul> <li><code>KnowledgeGapOutput</code>: Research completeness evaluation</li> <li><code>AgentSelectionPlan</code>: Tool selection plan</li> <li><code>ReportDraft</code>: Long-form report structure</li> <li><code>ParsedQuery</code>: Query parsing and mode detection</li> </ul> <p>For text output (writer agents), agents return <code>str</code> directly.</p> <h2 id=agent-types>Agent Types<a class=headerlink href=#agent-types title="Permanent link">&para;</a></h2> <h3 id=knowledge-gap-agent>Knowledge Gap Agent<a class=headerlink href=#knowledge-gap-agent title="Permanent link">&para;</a></h3> <p><strong>File</strong>: <code>src/agents/knowledge_gap.py</code></p> <p><strong>Purpose</strong>: Evaluates research state and identifies knowledge gaps.</p> <p><strong>Output</strong>: <code>KnowledgeGapOutput</code> with: - <code>research_complete</code>: Boolean indicating if research is complete - <code>outstanding_gaps</code>: List of remaining knowledge gaps</p> <p><strong>Methods</strong>: - <code>async def evaluate(query, background_context, conversation_history, iteration, time_elapsed_minutes, max_time_minutes) -&gt; KnowledgeGapOutput</code></p> <h3 id=tool-selector-agent>Tool Selector Agent<a class=headerlink href=#tool-selector-agent title="Permanent link">&para;</a></h3> <p><strong>File</strong>: <code>src/agents/tool_selector.py</code></p> <p><strong>Purpose</strong>: Selects appropriate tools for addressing knowledge gaps.</p> <p><strong>Output</strong>: <code>AgentSelectionPlan</code> with list of <code>AgentTask</code> objects.</p> <p><strong>Available Agents</strong>: - <code>WebSearchAgent</code>: General web search for fresh information - <code>SiteCrawlerAgent</code>: Research specific entities/companies - <code>RAGAgent</code>: Semantic search within collected evidence</p> <h3 id=writer-agent>Writer Agent<a class=headerlink href=#writer-agent title="Permanent link">&para;</a></h3> <p><strong>File</strong>: <code>src/agents/writer.py</code></p> <p><strong>Purpose</strong>: Generates final reports from research findings.</p> <p><strong>Output</strong>: Markdown string with numbered citations.</p> <p><strong>Methods</strong>: - <code>async def write_report(query, findings, output_length, output_instructions) -&gt; str</code></p> <p><strong>Features</strong>: - Validates inputs - Truncates very long findings (max 50000 chars) with warning - Retry logic for transient failures (3 retries) - Citation validation before returning</p> <h3 id=long-writer-agent>Long Writer Agent<a class=headerlink href=#long-writer-agent title="Permanent link">&para;</a></h3> <p><strong>File</strong>: <code>src/agents/long_writer.py</code></p> <p><strong>Purpose</strong>: Long-form report generation with section-by-section writing.</p> <p><strong>Input/Output</strong>: Uses <code>ReportDraft</code> models.</p> <p><strong>Methods</strong>: - <code>async def write_next_section(query, draft, section_title, section_content) -&gt; LongWriterOutput</code> - <code>async def write_report(query, report_title, report_draft) -&gt; str</code></p> <p><strong>Features</strong>: - Writes sections iteratively - Aggregates references across sections - Reformats section headings and references - Deduplicates and renumbers references</p> <h3 id=proofreader-agent>Proofreader Agent<a class=headerlink href=#proofreader-agent title="Permanent link">&para;</a></h3> <p><strong>File</strong>: <code>src/agents/proofreader.py</code></p> <p><strong>Purpose</strong>: Proofreads and polishes report drafts.</p> <p><strong>Input</strong>: <code>ReportDraft</code> <strong>Output</strong>: Polished markdown string</p> <p><strong>Methods</strong>: - <code>async def proofread(query, report_title, report_draft) -&gt; str</code></p> <p><strong>Features</strong>: - Removes duplicate content across sections - Adds executive summary if multiple sections - Preserves all references and citations - Improves flow and readability</p> <h3 id=thinking-agent>Thinking Agent<a class=headerlink href=#thinking-agent title="Permanent link">&para;</a></h3> <p><strong>File</strong>: <code>src/agents/thinking.py</code></p> <p><strong>Purpose</strong>: Generates observations from conversation history.</p> <p><strong>Output</strong>: Observation string</p> <p><strong>Methods</strong>: - <code>async def generate_observations(query, background_context, conversation_history) -&gt; str</code></p> <h3 id=input-parser-agent>Input Parser Agent<a class=headerlink href=#input-parser-agent title="Permanent link">&para;</a></h3> <p><strong>File</strong>: <code>src/agents/input_parser.py</code></p> <p><strong>Purpose</strong>: Parses and improves user queries, detects research mode.</p> <p><strong>Output</strong>: <code>ParsedQuery</code> with: - <code>original_query</code>: Original query string - <code>improved_query</code>: Refined query string - <code>research_mode</code>: "iterative" or "deep" - <code>key_entities</code>: List of key entities - <code>research_questions</code>: List of research questions</p> <h2 id=factory-functions>Factory Functions<a class=headerlink href=#factory-functions title="Permanent link">&para;</a></h2> <p>All agents have factory functions in <code>src/agent_factory/agents.py</code>:</p> <p>Factory functions: - Use <code>get_model()</code> if no model provided - Raise <code>ConfigurationError</code> if creation fails - Log agent creation</p> <h2 id=see-also>See Also<a class=headerlink href=#see-also title="Permanent link">&para;</a></h2> <ul> <li><a href=../orchestrators/ >Orchestrators</a> - How agents are orchestrated</li> <li><a href=../../api/agents/ >API Reference - Agents</a> - API documentation</li> <li><a href=../../contributing/code-style/ >Contributing - Code Style</a> - Development guidelines</li> </ul> </article> </div> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=github.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title=huggingface.co class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> </body> </html>
 
1
+ <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DeepCritical Team"><link href=https://deepcritical.github.io/GradioDemo/architecture/agents/ rel=canonical><link href=../workflow-diagrams/ rel=prev><link href=../orchestrators/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Agents - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><link rel=stylesheet href=../../css/timeago.css><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#agents-architecture class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Agents </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/ class=md-tabs__link> Configuration </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../../contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Single Command Deploy </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <div class="md-nav__link md-nav__container"> <a href=../../configuration/ class="md-nav__link "> <span class=md-ellipsis> Configuration </span> </a> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_5 checked> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=true> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Agents </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Agents </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#agent-pattern class=md-nav__link> <span class=md-ellipsis> Agent Pattern </span> </a> <nav class=md-nav aria-label="Agent Pattern"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#pydantic-ai-agents class=md-nav__link> <span class=md-ellipsis> Pydantic AI Agents </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#model-initialization class=md-nav__link> <span class=md-ellipsis> Model Initialization </span> </a> </li> <li class=md-nav__item> <a href=#error-handling class=md-nav__link> <span class=md-ellipsis> Error Handling </span> </a> </li> <li class=md-nav__item> <a href=#input-validation class=md-nav__link> <span class=md-ellipsis> Input Validation </span> </a> </li> <li class=md-nav__item> <a href=#output-types class=md-nav__link> <span class=md-ellipsis> Output Types </span> </a> </li> <li class=md-nav__item> <a href=#agent-types class=md-nav__link> <span class=md-ellipsis> Agent Types </span> </a> <nav class=md-nav aria-label="Agent Types"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#knowledge-gap-agent class=md-nav__link> <span class=md-ellipsis> Knowledge Gap Agent </span> </a> </li> <li class=md-nav__item> <a href=#tool-selector-agent class=md-nav__link> <span class=md-ellipsis> Tool Selector Agent </span> </a> </li> <li class=md-nav__item> <a href=#writer-agent class=md-nav__link> <span class=md-ellipsis> Writer Agent </span> </a> </li> <li class=md-nav__item> <a href=#long-writer-agent class=md-nav__link> <span class=md-ellipsis> Long Writer Agent </span> </a> </li> <li class=md-nav__item> <a href=#proofreader-agent class=md-nav__link> <span class=md-ellipsis> Proofreader Agent </span> </a> </li> <li class=md-nav__item> <a href=#thinking-agent class=md-nav__link> <span class=md-ellipsis> Thinking Agent </span> </a> </li> <li class=md-nav__item> <a href=#input-parser-agent class=md-nav__link> <span class=md-ellipsis> Input Parser Agent </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#magentic-agents class=md-nav__link> <span class=md-ellipsis> Magentic Agents </span> </a> <nav class=md-nav aria-label="Magentic Agents"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#hypothesis-agent class=md-nav__link> <span class=md-ellipsis> Hypothesis Agent </span> </a> </li> <li class=md-nav__item> <a href=#search-agent class=md-nav__link> <span class=md-ellipsis> Search Agent </span> </a> </li> <li class=md-nav__item> <a href=#analysis-agent class=md-nav__link> <span class=md-ellipsis> Analysis Agent </span> </a> </li> <li class=md-nav__item> <a href=#report-agent-magentic class=md-nav__link> <span class=md-ellipsis> Report Agent (Magentic) </span> </a> </li> <li class=md-nav__item> <a href=#judge-agent class=md-nav__link> <span class=md-ellipsis> Judge Agent </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#agent-patterns class=md-nav__link> <span class=md-ellipsis> Agent Patterns </span> </a> <nav class=md-nav aria-label="Agent Patterns"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#1-pydantic-ai-agents-traditional-pattern class=md-nav__link> <span class=md-ellipsis> 1. Pydantic AI Agents (Traditional Pattern) </span> </a> </li> <li class=md-nav__item> <a href=#2-magentic-agents-agent-framework-pattern class=md-nav__link> <span class=md-ellipsis> 2. Magentic Agents (Agent-Framework Pattern) </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#factory-functions class=md-nav__link> <span class=md-ellipsis> Factory Functions </span> </a> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <div class="md-nav__link md-nav__container"> <a href=../../contributing/ class="md-nav__link "> <span class=md-ellipsis> Contributing </span> </a> <label class="md-nav__link " for=__nav_7 id=__nav_7_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=agents-architecture>Agents Architecture<a class=headerlink href=#agents-architecture title="Anchor link to this section">&para;</a></h1> <p>DeepCritical uses Pydantic AI agents for all AI-powered operations. All agents follow a consistent pattern and use structured output types.</p> <h2 id=agent-pattern>Agent Pattern<a class=headerlink href=#agent-pattern title="Anchor link to this section">&para;</a></h2> <h3 id=pydantic-ai-agents>Pydantic AI Agents<a class=headerlink href=#pydantic-ai-agents title="Anchor link to this section">&para;</a></h3> <p>Pydantic AI agents use the <code>Agent</code> class with the following structure:</p> <ul> <li><strong>System Prompt</strong>: Module-level constant with date injection</li> <li><strong>Agent Class</strong>: <code>__init__(model: Any | None = None)</code></li> <li><strong>Main Method</strong>: Async method (e.g., <code>async def evaluate()</code>, <code>async def write_report()</code>)</li> <li><strong>Factory Function</strong>: <code>def create_agent_name(model: Any | None = None, oauth_token: str | None = None) -&gt; AgentName</code></li> </ul> <p><strong>Note</strong>: Factory functions accept an optional <code>oauth_token</code> parameter for HuggingFace authentication, which takes priority over environment variables.</p> <h2 id=model-initialization>Model Initialization<a class=headerlink href=#model-initialization title="Anchor link to this section">&para;</a></h2> <p>Agents use <code>get_model()</code> from <code>src/agent_factory/judges.py</code> if no model is provided. This supports:</p> <ul> <li>OpenAI models</li> <li>Anthropic models</li> <li>HuggingFace Inference API models</li> </ul> <p>The model selection is based on the configured <code>LLM_PROVIDER</code> in settings.</p> <h2 id=error-handling>Error Handling<a class=headerlink href=#error-handling title="Anchor link to this section">&para;</a></h2> <p>Agents return fallback values on failure rather than raising exceptions:</p> <ul> <li><code>KnowledgeGapOutput(research_complete=False, outstanding_gaps=[...])</code></li> <li>Empty strings for text outputs</li> <li>Default structured outputs</li> </ul> <p>All errors are logged with context using structlog.</p> <h2 id=input-validation>Input Validation<a class=headerlink href=#input-validation title="Anchor link to this section">&para;</a></h2> <p>All agents validate inputs:</p> <ul> <li>Check that queries/inputs are not empty</li> <li>Truncate very long inputs with warnings</li> <li>Handle None values gracefully</li> </ul> <h2 id=output-types>Output Types<a class=headerlink href=#output-types title="Anchor link to this section">&para;</a></h2> <p>Agents use structured output types from <code>src/utils/models.py</code>:</p> <ul> <li><code>KnowledgeGapOutput</code>: Research completeness evaluation</li> <li><code>AgentSelectionPlan</code>: Tool selection plan</li> <li><code>ReportDraft</code>: Long-form report structure</li> <li><code>ParsedQuery</code>: Query parsing and mode detection</li> </ul> <p>For text output (writer agents), agents return <code>str</code> directly.</p> <h2 id=agent-types>Agent Types<a class=headerlink href=#agent-types title="Anchor link to this section">&para;</a></h2> <h3 id=knowledge-gap-agent>Knowledge Gap Agent<a class=headerlink href=#knowledge-gap-agent title="Anchor link to this section">&para;</a></h3> <p><strong>File</strong>: <code>src/agents/knowledge_gap.py</code></p> <p><strong>Purpose</strong>: Evaluates research state and identifies knowledge gaps.</p> <p><strong>Output</strong>: <code>KnowledgeGapOutput</code> with: - <code>research_complete</code>: Boolean indicating if research is complete - <code>outstanding_gaps</code>: List of remaining knowledge gaps</p> <p><strong>Methods</strong>: - <code>async def evaluate(query, background_context, conversation_history, iteration, time_elapsed_minutes, max_time_minutes) -&gt; KnowledgeGapOutput</code></p> <h3 id=tool-selector-agent>Tool Selector Agent<a class=headerlink href=#tool-selector-agent title="Anchor link to this section">&para;</a></h3> <p><strong>File</strong>: <code>src/agents/tool_selector.py</code></p> <p><strong>Purpose</strong>: Selects appropriate tools for addressing knowledge gaps.</p> <p><strong>Output</strong>: <code>AgentSelectionPlan</code> with list of <code>AgentTask</code> objects.</p> <p><strong>Available Agents</strong>: - <code>WebSearchAgent</code>: General web search for fresh information - <code>SiteCrawlerAgent</code>: Research specific entities/companies - <code>RAGAgent</code>: Semantic search within collected evidence</p> <h3 id=writer-agent>Writer Agent<a class=headerlink href=#writer-agent title="Anchor link to this section">&para;</a></h3> <p><strong>File</strong>: <code>src/agents/writer.py</code></p> <p><strong>Purpose</strong>: Generates final reports from research findings.</p> <p><strong>Output</strong>: Markdown string with numbered citations.</p> <p><strong>Methods</strong>: - <code>async def write_report(query, findings, output_length, output_instructions) -&gt; str</code></p> <p><strong>Features</strong>: - Validates inputs - Truncates very long findings (max 50000 chars) with warning - Retry logic for transient failures (3 retries) - Citation validation before returning</p> <h3 id=long-writer-agent>Long Writer Agent<a class=headerlink href=#long-writer-agent title="Anchor link to this section">&para;</a></h3> <p><strong>File</strong>: <code>src/agents/long_writer.py</code></p> <p><strong>Purpose</strong>: Long-form report generation with section-by-section writing.</p> <p><strong>Input/Output</strong>: Uses <code>ReportDraft</code> models.</p> <p><strong>Methods</strong>: - <code>async def write_next_section(query, draft, section_title, section_content) -&gt; LongWriterOutput</code> - <code>async def write_report(query, report_title, report_draft) -&gt; str</code></p> <p><strong>Features</strong>: - Writes sections iteratively - Aggregates references across sections - Reformats section headings and references - Deduplicates and renumbers references</p> <h3 id=proofreader-agent>Proofreader Agent<a class=headerlink href=#proofreader-agent title="Anchor link to this section">&para;</a></h3> <p><strong>File</strong>: <code>src/agents/proofreader.py</code></p> <p><strong>Purpose</strong>: Proofreads and polishes report drafts.</p> <p><strong>Input</strong>: <code>ReportDraft</code> <strong>Output</strong>: Polished markdown string</p> <p><strong>Methods</strong>: - <code>async def proofread(query, report_title, report_draft) -&gt; str</code></p> <p><strong>Features</strong>: - Removes duplicate content across sections - Adds executive summary if multiple sections - Preserves all references and citations - Improves flow and readability</p> <h3 id=thinking-agent>Thinking Agent<a class=headerlink href=#thinking-agent title="Anchor link to this section">&para;</a></h3> <p><strong>File</strong>: <code>src/agents/thinking.py</code></p> <p><strong>Purpose</strong>: Generates observations from conversation history.</p> <p><strong>Output</strong>: Observation string</p> <p><strong>Methods</strong>: - <code>async def generate_observations(query, background_context, conversation_history) -&gt; str</code></p> <h3 id=input-parser-agent>Input Parser Agent<a class=headerlink href=#input-parser-agent title="Anchor link to this section">&para;</a></h3> <p><strong>File</strong>: <code>src/agents/input_parser.py</code></p> <p><strong>Purpose</strong>: Parses and improves user queries, detects research mode.</p> <p><strong>Output</strong>: <code>ParsedQuery</code> with: - <code>original_query</code>: Original query string - <code>improved_query</code>: Refined query string - <code>research_mode</code>: "iterative" or "deep" - <code>key_entities</code>: List of key entities - <code>research_questions</code>: List of research questions</p> <h2 id=magentic-agents>Magentic Agents<a class=headerlink href=#magentic-agents title="Anchor link to this section">&para;</a></h2> <p>The following agents use the <code>BaseAgent</code> pattern from <code>agent-framework</code> and are used exclusively with <code>MagenticOrchestrator</code>:</p> <h3 id=hypothesis-agent>Hypothesis Agent<a class=headerlink href=#hypothesis-agent title="Anchor link to this section">&para;</a></h3> <p><strong>File</strong>: <code>src/agents/hypothesis_agent.py</code></p> <p><strong>Purpose</strong>: Generates mechanistic hypotheses based on evidence.</p> <p><strong>Pattern</strong>: <code>BaseAgent</code> from <code>agent-framework</code></p> <p><strong>Methods</strong>: - <code>async def run(messages, thread, **kwargs) -&gt; AgentRunResponse</code></p> <p><strong>Features</strong>: - Uses internal Pydantic AI <code>Agent</code> with <code>HypothesisAssessment</code> output type - Accesses shared <code>evidence_store</code> for evidence - Uses embedding service for diverse evidence selection (MMR algorithm) - Stores hypotheses in shared context</p> <h3 id=search-agent>Search Agent<a class=headerlink href=#search-agent title="Anchor link to this section">&para;</a></h3> <p><strong>File</strong>: <code>src/agents/search_agent.py</code></p> <p><strong>Purpose</strong>: Wraps <code>SearchHandler</code> as an agent for Magentic orchestrator.</p> <p><strong>Pattern</strong>: <code>BaseAgent</code> from <code>agent-framework</code></p> <p><strong>Methods</strong>: - <code>async def run(messages, thread, **kwargs) -&gt; AgentRunResponse</code></p> <p><strong>Features</strong>: - Executes searches via <code>SearchHandlerProtocol</code> - Deduplicates evidence using embedding service - Searches for semantically related evidence - Updates shared evidence store</p> <h3 id=analysis-agent>Analysis Agent<a class=headerlink href=#analysis-agent title="Anchor link to this section">&para;</a></h3> <p><strong>File</strong>: <code>src/agents/analysis_agent.py</code></p> <p><strong>Purpose</strong>: Performs statistical analysis using Modal sandbox.</p> <p><strong>Pattern</strong>: <code>BaseAgent</code> from <code>agent-framework</code></p> <p><strong>Methods</strong>: - <code>async def run(messages, thread, **kwargs) -&gt; AgentRunResponse</code></p> <p><strong>Features</strong>: - Wraps <code>StatisticalAnalyzer</code> service - Analyzes evidence and hypotheses - Returns verdict (SUPPORTED/REFUTED/INCONCLUSIVE) - Stores analysis results in shared context</p> <h3 id=report-agent-magentic>Report Agent (Magentic)<a class=headerlink href=#report-agent-magentic title="Anchor link to this section">&para;</a></h3> <p><strong>File</strong>: <code>src/agents/report_agent.py</code></p> <p><strong>Purpose</strong>: Generates structured scientific reports from evidence and hypotheses.</p> <p><strong>Pattern</strong>: <code>BaseAgent</code> from <code>agent-framework</code></p> <p><strong>Methods</strong>: - <code>async def run(messages, thread, **kwargs) -&gt; AgentRunResponse</code></p> <p><strong>Features</strong>: - Uses internal Pydantic AI <code>Agent</code> with <code>ResearchReport</code> output type - Accesses shared evidence store and hypotheses - Validates citations before returning - Formats report as markdown</p> <h3 id=judge-agent>Judge Agent<a class=headerlink href=#judge-agent title="Anchor link to this section">&para;</a></h3> <p><strong>File</strong>: <code>src/agents/judge_agent.py</code></p> <p><strong>Purpose</strong>: Evaluates evidence quality and determines if sufficient for synthesis.</p> <p><strong>Pattern</strong>: <code>BaseAgent</code> from <code>agent-framework</code></p> <p><strong>Methods</strong>: - <code>async def run(messages, thread, **kwargs) -&gt; AgentRunResponse</code> - <code>async def run_stream(messages, thread, **kwargs) -&gt; AsyncIterable[AgentRunResponseUpdate]</code></p> <p><strong>Features</strong>: - Wraps <code>JudgeHandlerProtocol</code> - Accesses shared evidence store - Returns <code>JudgeAssessment</code> with sufficient flag, confidence, and recommendation</p> <h2 id=agent-patterns>Agent Patterns<a class=headerlink href=#agent-patterns title="Anchor link to this section">&para;</a></h2> <p>DeepCritical uses two distinct agent patterns:</p> <h3 id=1-pydantic-ai-agents-traditional-pattern>1. Pydantic AI Agents (Traditional Pattern)<a class=headerlink href=#1-pydantic-ai-agents-traditional-pattern title="Anchor link to this section">&para;</a></h3> <p>These agents use the Pydantic AI <code>Agent</code> class directly and are used in iterative and deep research flows:</p> <ul> <li><strong>Pattern</strong>: <code>Agent(model, output_type, system_prompt)</code></li> <li><strong>Initialization</strong>: <code>__init__(model: Any | None = None)</code></li> <li><strong>Methods</strong>: Agent-specific async methods (e.g., <code>async def evaluate()</code>, <code>async def write_report()</code>)</li> <li><strong>Examples</strong>: <code>KnowledgeGapAgent</code>, <code>ToolSelectorAgent</code>, <code>WriterAgent</code>, <code>LongWriterAgent</code>, <code>ProofreaderAgent</code>, <code>ThinkingAgent</code>, <code>InputParserAgent</code></li> </ul> <h3 id=2-magentic-agents-agent-framework-pattern>2. Magentic Agents (Agent-Framework Pattern)<a class=headerlink href=#2-magentic-agents-agent-framework-pattern title="Anchor link to this section">&para;</a></h3> <p>These agents use the <code>BaseAgent</code> class from <code>agent-framework</code> and are used in Magentic orchestrator:</p> <ul> <li><strong>Pattern</strong>: <code>BaseAgent</code> from <code>agent-framework</code> with <code>async def run()</code> method</li> <li><strong>Initialization</strong>: <code>__init__(evidence_store, embedding_service, ...)</code></li> <li><strong>Methods</strong>: <code>async def run(messages, thread, **kwargs) -&gt; AgentRunResponse</code></li> <li><strong>Examples</strong>: <code>HypothesisAgent</code>, <code>SearchAgent</code>, <code>AnalysisAgent</code>, <code>ReportAgent</code>, <code>JudgeAgent</code></li> </ul> <p><strong>Note</strong>: Magentic agents are used exclusively with the <code>MagenticOrchestrator</code> and follow the agent-framework protocol for multi-agent coordination.</p> <h2 id=factory-functions>Factory Functions<a class=headerlink href=#factory-functions title="Anchor link to this section">&para;</a></h2> <p>All agents have factory functions in <code>src/agent_factory/agents.py</code>:</p> <p>Factory functions: - Use <code>get_model()</code> if no model provided - Accept <code>oauth_token</code> parameter for HuggingFace authentication - Raise <code>ConfigurationError</code> if creation fails - Log agent creation</p> <h2 id=see-also>See Also<a class=headerlink href=#see-also title="Anchor link to this section">&para;</a></h2> <ul> <li><a href=../orchestrators/ >Orchestrators</a> - How agents are orchestrated</li> <li><a href=../../api/agents/ >API Reference - Agents</a> - API documentation</li> <li><a href=../../contributing/code-style/ >Contributing - Code Style</a> - Development guidelines</li> </ul> <aside class=md-source-file> <span class=md-source-file__fact> <span class=md-icon title="Last update"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="December 2, 2025 01:35:56 UTC"><span class=timeago datetime=2025-12-02T01:35:56+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="December 2, 2025 01:35:56 UTC">2025-12-02</span> </span> <span class=md-source-file__fact> <span class=md-icon title=Created> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M14.47 15.08 11 13V7h1.5v5.25l3.08 1.83c-.41.28-.79.62-1.11 1m-1.39 4.84c-.36.05-.71.08-1.08.08-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8c0 .37-.03.72-.08 1.08.69.1 1.33.32 1.92.64.1-.56.16-1.13.16-1.72 0-5.5-4.5-10-10-10S2 6.5 2 12s4.47 10 10 10c.59 0 1.16-.06 1.72-.16-.32-.59-.54-1.23-.64-1.92M18 15v3h-3v2h3v3h2v-3h3v-2h-3v-3z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="November 29, 2025 21:40:26 UTC"><span class=timeago datetime=2025-11-29T21:40:26+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="November 29, 2025 21:40:26 UTC">2025-11-29</span> </span> </aside> </article> </div> <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=GitHub class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://twitter.com/josephpollack target=_blank rel=noopener title=Twitter class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M459.4 151.7c.3 4.5.3 9.1.3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103v-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53C87.4 130.8 165 172.4 252.1 176.9c-1.6-7.8-2.6-15.9-2.6-24C249.5 95.1 296.3 48 354.4 48c30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title="Live Demo" class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> <a href=https://discord.gg/n8ytYeh25n target=_blank rel=noopener title=Discord class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 576 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M492.5 69.8c-.2-.3-.4-.6-.8-.7-38.1-17.5-78.4-30-119.7-37.1-.4-.1-.8 0-1.1.1s-.6.4-.8.8c-5.5 9.9-10.5 20.2-14.9 30.6-44.6-6.8-89.9-6.8-134.4 0-4.5-10.5-9.5-20.7-15.1-30.6-.2-.3-.5-.6-.8-.8s-.7-.2-1.1-.2C162.5 39 122.2 51.5 84.1 69c-.3.1-.6.4-.8.7C7.1 183.5-13.8 294.6-3.6 404.2c0 .3.1.5.2.8s.3.4.5.6c44.4 32.9 94 58 146.8 74.2.4.1.8.1 1.1 0s.7-.4.9-.7c11.3-15.4 21.4-31.8 30-48.8.1-.2.2-.5.2-.8s0-.5-.1-.8-.2-.5-.4-.6-.4-.3-.7-.4c-15.8-6.1-31.2-13.4-45.9-21.9-.3-.2-.5-.4-.7-.6s-.3-.6-.3-.9 0-.6.2-.9.3-.5.6-.7c3.1-2.3 6.2-4.7 9.1-7.1.3-.2.6-.4.9-.4s.7 0 1 .1c96.2 43.9 200.4 43.9 295.5 0 .3-.1.7-.2 1-.2s.7.2.9.4c2.9 2.4 6 4.9 9.1 7.2.2.2.4.4.6.7s.2.6.2.9-.1.6-.3.9-.4.5-.6.6c-14.7 8.6-30 15.9-45.9 21.8-.2.1-.5.2-.7.4s-.3.4-.4.7-.1.5-.1.8.1.5.2.8c8.8 17 18.8 33.3 30 48.8.2.3.6.6.9.7s.8.1 1.1 0c52.9-16.2 102.6-41.3 147.1-74.2.2-.2.4-.4.5-.6s.2-.5.2-.8c12.3-126.8-20.5-236.9-86.9-334.5zm-302 267.7c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.4 59.2-52.8 59.2m195.4 0c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.2 59.2-52.8 59.2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "navigation.indexes", "navigation.instant", "navigation.tracking", "navigation.smooth", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy", "content.tabs.link", "content.tooltips", "toc.integrate"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> <script src=../../js/timeago.min.js></script> <script src=../../js/timeago_mkdocs_material.js></script> </body> </html>
site/architecture/graph-orchestration/index.html DELETED
@@ -1,9 +0,0 @@
1
- <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DETERMINATOR Team"><link href=https://deepcritical.github.io/GradioDemo/architecture/graph-orchestration/ rel=canonical><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Graph Orchestration Architecture - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#graph-orchestration-architecture class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Graph Orchestration Architecture </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/CONFIGURATION/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../../contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Quick Start Guide </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <label class=md-nav__link for=__nav_4 id=__nav_4_label tabindex=0> <span class=md-ellipsis> Configuration </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../configuration/CONFIGURATION/ class=md-nav__link> <span class=md-ellipsis> Configuration Guide </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <label class=md-nav__link for=__nav_7 id=__nav_7_label tabindex=0> <span class=md-ellipsis> Contributing </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../contributing/ class=md-nav__link> <span class=md-ellipsis> Contributing to DeepCritical </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=sidebar data-md-type=toc> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#overview class=md-nav__link> <span class=md-ellipsis> Overview </span> </a> </li> <li class=md-nav__item> <a href=#graph-structure class=md-nav__link> <span class=md-ellipsis> Graph Structure </span> </a> <nav class=md-nav aria-label="Graph Structure"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#nodes class=md-nav__link> <span class=md-ellipsis> Nodes </span> </a> </li> <li class=md-nav__item> <a href=#edges class=md-nav__link> <span class=md-ellipsis> Edges </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#graph-patterns class=md-nav__link> <span class=md-ellipsis> Graph Patterns </span> </a> <nav class=md-nav aria-label="Graph Patterns"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#iterative-research-graph class=md-nav__link> <span class=md-ellipsis> Iterative Research Graph </span> </a> </li> <li class=md-nav__item> <a href=#deep-research-graph class=md-nav__link> <span class=md-ellipsis> Deep Research Graph </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#state-management class=md-nav__link> <span class=md-ellipsis> State Management </span> </a> </li> <li class=md-nav__item> <a href=#execution-flow class=md-nav__link> <span class=md-ellipsis> Execution Flow </span> </a> </li> <li class=md-nav__item> <a href=#conditional-routing class=md-nav__link> <span class=md-ellipsis> Conditional Routing </span> </a> </li> <li class=md-nav__item> <a href=#parallel-execution class=md-nav__link> <span class=md-ellipsis> Parallel Execution </span> </a> </li> <li class=md-nav__item> <a href=#budget-enforcement class=md-nav__link> <span class=md-ellipsis> Budget Enforcement </span> </a> </li> <li class=md-nav__item> <a href=#error-handling class=md-nav__link> <span class=md-ellipsis> Error Handling </span> </a> </li> <li class=md-nav__item> <a href=#backward-compatibility class=md-nav__link> <span class=md-ellipsis> Backward Compatibility </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=graph-orchestration-architecture>Graph Orchestration Architecture<a class=headerlink href=#graph-orchestration-architecture title="Permanent link">&para;</a></h1> <h2 id=overview>Overview<a class=headerlink href=#overview title="Permanent link">&para;</a></h2> <p>Phase 4 implements a graph-based orchestration system for research workflows using Pydantic AI agents as nodes. This enables better parallel execution, conditional routing, and state management compared to simple agent chains.</p> <h2 id=graph-structure>Graph Structure<a class=headerlink href=#graph-structure title="Permanent link">&para;</a></h2> <h3 id=nodes>Nodes<a class=headerlink href=#nodes title="Permanent link">&para;</a></h3> <p>Graph nodes represent different stages in the research workflow:</p> <ol> <li><strong>Agent Nodes</strong>: Execute Pydantic AI agents</li> <li>Input: Prompt/query</li> <li>Output: Structured or unstructured response</li> <li> <p>Examples: <code>KnowledgeGapAgent</code>, <code>ToolSelectorAgent</code>, <code>ThinkingAgent</code></p> </li> <li> <p><strong>State Nodes</strong>: Update or read workflow state</p> </li> <li>Input: Current state</li> <li>Output: Updated state</li> <li> <p>Examples: Update evidence, update conversation history</p> </li> <li> <p><strong>Decision Nodes</strong>: Make routing decisions based on conditions</p> </li> <li>Input: Current state/results</li> <li>Output: Next node ID</li> <li> <p>Examples: Continue research vs. complete research</p> </li> <li> <p><strong>Parallel Nodes</strong>: Execute multiple nodes concurrently</p> </li> <li>Input: List of node IDs</li> <li>Output: Aggregated results</li> <li>Examples: Parallel iterative research loops</li> </ol> <h3 id=edges>Edges<a class=headerlink href=#edges title="Permanent link">&para;</a></h3> <p>Edges define transitions between nodes:</p> <ol> <li><strong>Sequential Edges</strong>: Always traversed (no condition)</li> <li>From: Source node</li> <li>To: Target node</li> <li> <p>Condition: None (always True)</p> </li> <li> <p><strong>Conditional Edges</strong>: Traversed based on condition</p> </li> <li>From: Source node</li> <li>To: Target node</li> <li>Condition: Callable that returns bool</li> <li> <p>Example: If research complete → go to writer, else → continue loop</p> </li> <li> <p><strong>Parallel Edges</strong>: Used for parallel execution branches</p> </li> <li>From: Parallel node</li> <li>To: Multiple target nodes</li> <li>Execution: All targets run concurrently</li> </ol> <h2 id=graph-patterns>Graph Patterns<a class=headerlink href=#graph-patterns title="Permanent link">&para;</a></h2> <h3 id=iterative-research-graph>Iterative Research Graph<a class=headerlink href=#iterative-research-graph title="Permanent link">&para;</a></h3> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a>[Input] → [Thinking] → [Knowledge Gap] → [Decision: Complete?]
2
- <a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a> ↓ No ↓ Yes
3
- <a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a> [Tool Selector] [Writer]
4
- <a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a> ↓
5
- <a id=__codelineno-0-5 name=__codelineno-0-5 href=#__codelineno-0-5></a> [Execute Tools] → [Loop Back]
6
- </code></pre></div> <h3 id=deep-research-graph>Deep Research Graph<a class=headerlink href=#deep-research-graph title="Permanent link">&para;</a></h3> <div class=highlight><pre><span></span><code><a id=__codelineno-1-1 name=__codelineno-1-1 href=#__codelineno-1-1></a>[Input] → [Planner] → [Parallel Iterative Loops] → [Synthesizer]
7
- <a id=__codelineno-1-2 name=__codelineno-1-2 href=#__codelineno-1-2></a> ↓ ↓ ↓
8
- <a id=__codelineno-1-3 name=__codelineno-1-3 href=#__codelineno-1-3></a> [Loop1] [Loop2] [Loop3]
9
- </code></pre></div> <h2 id=state-management>State Management<a class=headerlink href=#state-management title="Permanent link">&para;</a></h2> <p>State is managed via <code>WorkflowState</code> using <code>ContextVar</code> for thread-safe isolation:</p> <ul> <li><strong>Evidence</strong>: Collected evidence from searches</li> <li><strong>Conversation</strong>: Iteration history (gaps, tool calls, findings, thoughts)</li> <li><strong>Embedding Service</strong>: For semantic search</li> </ul> <p>State transitions occur at state nodes, which update the global workflow state.</p> <h2 id=execution-flow>Execution Flow<a class=headerlink href=#execution-flow title="Permanent link">&para;</a></h2> <ol> <li><strong>Graph Construction</strong>: Build graph from nodes and edges</li> <li><strong>Graph Validation</strong>: Ensure graph is valid (no cycles, all nodes reachable)</li> <li><strong>Graph Execution</strong>: Traverse graph from entry node</li> <li><strong>Node Execution</strong>: Execute each node based on type</li> <li><strong>Edge Evaluation</strong>: Determine next node(s) based on edges</li> <li><strong>Parallel Execution</strong>: Use <code>asyncio.gather()</code> for parallel nodes</li> <li><strong>State Updates</strong>: Update state at state nodes</li> <li><strong>Event Streaming</strong>: Yield events during execution for UI</li> </ol> <h2 id=conditional-routing>Conditional Routing<a class=headerlink href=#conditional-routing title="Permanent link">&para;</a></h2> <p>Decision nodes evaluate conditions and return next node IDs:</p> <ul> <li><strong>Knowledge Gap Decision</strong>: If <code>research_complete</code> → writer, else → tool selector</li> <li><strong>Budget Decision</strong>: If budget exceeded → exit, else → continue</li> <li><strong>Iteration Decision</strong>: If max iterations → exit, else → continue</li> </ul> <h2 id=parallel-execution>Parallel Execution<a class=headerlink href=#parallel-execution title="Permanent link">&para;</a></h2> <p>Parallel nodes execute multiple nodes concurrently:</p> <ul> <li>Each parallel branch runs independently</li> <li>Results are aggregated after all branches complete</li> <li>State is synchronized after parallel execution</li> <li>Errors in one branch don't stop other branches</li> </ul> <h2 id=budget-enforcement>Budget Enforcement<a class=headerlink href=#budget-enforcement title="Permanent link">&para;</a></h2> <p>Budget constraints are enforced at decision nodes:</p> <ul> <li><strong>Token Budget</strong>: Track LLM token usage</li> <li><strong>Time Budget</strong>: Track elapsed time</li> <li><strong>Iteration Budget</strong>: Track iteration count</li> </ul> <p>If any budget is exceeded, execution routes to exit node.</p> <h2 id=error-handling>Error Handling<a class=headerlink href=#error-handling title="Permanent link">&para;</a></h2> <p>Errors are handled at multiple levels:</p> <ol> <li><strong>Node Level</strong>: Catch errors in individual node execution</li> <li><strong>Graph Level</strong>: Handle errors during graph traversal</li> <li><strong>State Level</strong>: Rollback state changes on error</li> </ol> <p>Errors are logged and yield error events for UI.</p> <h2 id=backward-compatibility>Backward Compatibility<a class=headerlink href=#backward-compatibility title="Permanent link">&para;</a></h2> <p>Graph execution is optional via feature flag:</p> <ul> <li><code>USE_GRAPH_EXECUTION=true</code>: Use graph-based execution</li> <li><code>USE_GRAPH_EXECUTION=false</code>: Use agent chain execution (existing)</li> </ul> <p>This allows gradual migration and fallback if needed.</p> </article> </div> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=github.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title=huggingface.co class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> </body> </html>
 
 
 
 
 
 
 
 
 
 
site/architecture/graph_orchestration/index.html CHANGED
@@ -1,12 +1,12 @@
1
- <!DOCTYPE html><html class=no-js lang=en> <head><meta charset=utf-8><meta content="width=device-width,initial-scale=1" name=viewport><meta content="Generalist Deep Research Agent that Stops at Nothing" name=description><meta content="The DETERMINATOR Team" name=author><link href=https://deepcritical.github.io/GradioDemo/architecture/graph_orchestration/ rel=canonical><link href=../../configuration/CONFIGURATION/ rel=prev><link href=../workflow-diagrams/ rel=next><link href=../../assets/images/favicon.png rel=icon><meta content="mkdocs-1.6.1, mkdocs-material-9.7.0" name=generator><title>Graph Orchestration - The DETERMINATOR</title><link href=../../assets/stylesheets/main.618322db.min.css rel=stylesheet><link href=../../assets/stylesheets/palette.ab4e12ef.min.css rel=stylesheet><link crossorigin href=https://fonts.gstatic.com rel=preconnect><link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback" rel=stylesheet><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body data-md-color-accent=red data-md-color-primary=orange data-md-color-scheme=default dir=ltr> <input autocomplete=off class=md-toggle data-md-toggle=drawer id=__drawer type=checkbox> <input autocomplete=off class=md-toggle data-md-toggle=search id=__search type=checkbox> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a class=md-skip href=#graph-orchestration-architecture> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav aria-label=Header class="md-header__inner md-grid"> <a aria-label="The DETERMINATOR" class="md-header__button md-logo" data-md-component=logo href=../.. title="The DETERMINATOR"> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"></path></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"></path></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Graph Orchestration </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input aria-label="Switch to dark mode" class=md-option data-md-color-accent=red data-md-color-media data-md-color-primary=orange data-md-color-scheme=default id=__palette_0 name=__palette type=radio> <label class="md-header__button md-icon" for=__palette_1 hidden title="Switch to dark mode"> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"></path></svg> </label> <input aria-label="Switch to light mode" class=md-option data-md-color-accent=red data-md-color-media data-md-color-primary=orange data-md-color-scheme=slate id=__palette_1 name=__palette type=radio> <label class="md-header__button md-icon" for=__palette_0 hidden title="Switch to light mode"> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"></path></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"></path></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input aria-label=Search autocapitalize=off autocomplete=off autocorrect=off class=md-search__input data-md-component=search-query name=query placeholder=Search required spellcheck=false type=text> <label class="md-search__icon md-icon" for=__search> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"></path></svg> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"></path></svg> </label> <nav aria-label=Search class=md-search__options> <button aria-label=Clear class="md-search__icon md-icon" tabindex=-1 title=Clear type=reset> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap data-md-scrollfix tabindex=0> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a class=md-source data-md-component=source href=https://github.com/DeepCritical/GradioDemo title="Go to repository"> <div class="md-source__icon md-icon"> <svg viewbox="0 0 512 512" xmlns=http://www.w3.org/2000/svg><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"></path></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav aria-label=Tabs class=md-tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a class=md-tabs__link href=../..> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/CONFIGURATION/ class=md-tabs__link> Configuration </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=./ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../../contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav aria-label=Navigation class="md-nav md-nav--primary md-nav--lifted" data-md-level=0> <label class=md-nav__title for=__drawer> <a aria-label="The DETERMINATOR" class="md-nav__button md-logo" data-md-component=logo href=../.. title="The DETERMINATOR"> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"></path></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a class=md-source data-md-component=source href=https://github.com/DeepCritical/GradioDemo title="Go to repository"> <div class="md-source__icon md-icon"> <svg viewbox="0 0 512 512" xmlns=http://www.w3.org/2000/svg><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"></path></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a class=md-nav__link href=../..> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" id=__nav_2 type=checkbox> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav aria-expanded=false aria-labelledby=__nav_2_label class=md-nav data-md-level=1> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" id=__nav_3 type=checkbox> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav aria-expanded=false aria-labelledby=__nav_3_label class=md-nav data-md-level=1> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Quick Start Guide </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" id=__nav_4 type=checkbox> <label class=md-nav__link for=__nav_4 id=__nav_4_label tabindex=0> <span class=md-ellipsis> Configuration </span> <span class="md-nav__icon md-icon"></span> </label> <nav aria-expanded=false aria-labelledby=__nav_4_label class=md-nav data-md-level=1> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../configuration/CONFIGURATION/ class=md-nav__link> <span class=md-ellipsis> Configuration Guide </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input checked class="md-nav__toggle md-toggle" id=__nav_5 type=checkbox> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav aria-expanded=true aria-labelledby=__nav_5_label class=md-nav data-md-level=1> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" id=__toc type=checkbox> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Graph Orchestration </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Graph Orchestration </span> </a> <nav aria-label="Table of contents" class="md-nav md-nav--secondary"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a class=md-nav__link href=#graph-patterns> <span class=md-ellipsis> Graph Patterns </span> </a> <nav aria-label="Graph Patterns" class=md-nav> <ul class=md-nav__list> <li class=md-nav__item> <a class=md-nav__link href=#iterative-research-graph> <span class=md-ellipsis> Iterative Research Graph </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#deep-research-graph> <span class=md-ellipsis> Deep Research Graph </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#deep-research> <span class=md-ellipsis> Deep Research </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#iterative-research> <span class=md-ellipsis> Iterative Research </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a class=md-nav__link href=#graph-structure> <span class=md-ellipsis> Graph Structure </span> </a> <nav aria-label="Graph Structure" class=md-nav> <ul class=md-nav__list> <li class=md-nav__item> <a class=md-nav__link href=#nodes> <span class=md-ellipsis> Nodes </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#edges> <span class=md-ellipsis> Edges </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a class=md-nav__link href=#state-management> <span class=md-ellipsis> State Management </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#execution-flow> <span class=md-ellipsis> Execution Flow </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#conditional-routing> <span class=md-ellipsis> Conditional Routing </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#parallel-execution> <span class=md-ellipsis> Parallel Execution </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#budget-enforcement> <span class=md-ellipsis> Budget Enforcement </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#error-handling> <span class=md-ellipsis> Error Handling </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#backward-compatibility> <span class=md-ellipsis> Backward Compatibility </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#see-also> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" id=__nav_6 type=checkbox> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav aria-expanded=false aria-labelledby=__nav_6_label class=md-nav data-md-level=1> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" id=__nav_7 type=checkbox> <label class=md-nav__link for=__nav_7 id=__nav_7_label tabindex=0> <span class=md-ellipsis> Contributing </span> <span class="md-nav__icon md-icon"></span> </label> <nav aria-expanded=false aria-labelledby=__nav_7_label class=md-nav data-md-level=1> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../contributing/ class=md-nav__link> <span class=md-ellipsis> Contributing to DeepCritical </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=sidebar data-md-type=toc> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav aria-label="Table of contents" class="md-nav md-nav--secondary"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a class=md-nav__link href=#graph-patterns> <span class=md-ellipsis> Graph Patterns </span> </a> <nav aria-label="Graph Patterns" class=md-nav> <ul class=md-nav__list> <li class=md-nav__item> <a class=md-nav__link href=#iterative-research-graph> <span class=md-ellipsis> Iterative Research Graph </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#deep-research-graph> <span class=md-ellipsis> Deep Research Graph </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#deep-research> <span class=md-ellipsis> Deep Research </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#iterative-research> <span class=md-ellipsis> Iterative Research </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a class=md-nav__link href=#graph-structure> <span class=md-ellipsis> Graph Structure </span> </a> <nav aria-label="Graph Structure" class=md-nav> <ul class=md-nav__list> <li class=md-nav__item> <a class=md-nav__link href=#nodes> <span class=md-ellipsis> Nodes </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#edges> <span class=md-ellipsis> Edges </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a class=md-nav__link href=#state-management> <span class=md-ellipsis> State Management </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#execution-flow> <span class=md-ellipsis> Execution Flow </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#conditional-routing> <span class=md-ellipsis> Conditional Routing </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#parallel-execution> <span class=md-ellipsis> Parallel Execution </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#budget-enforcement> <span class=md-ellipsis> Budget Enforcement </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#error-handling> <span class=md-ellipsis> Error Handling </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#backward-compatibility> <span class=md-ellipsis> Backward Compatibility </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#see-also> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=graph-orchestration-architecture>Graph Orchestration Architecture<a class=headerlink href=#graph-orchestration-architecture title="Permanent link">¶</a></h1> <h2 id=graph-patterns>Graph Patterns<a class=headerlink href=#graph-patterns title="Permanent link">¶</a></h2> <h3 id=iterative-research-graph>Iterative Research Graph<a class=headerlink href=#iterative-research-graph title="Permanent link">¶</a></h3> <div class=highlight><pre><span></span><code><a href=#__codelineno-0-1 id=__codelineno-0-1 name=__codelineno-0-1></a>[Input] → [Thinking] → [Knowledge Gap] → [Decision: Complete?]
2
- <a href=#__codelineno-0-2 id=__codelineno-0-2 name=__codelineno-0-2></a> ↓ No ↓ Yes
3
- <a href=#__codelineno-0-3 id=__codelineno-0-3 name=__codelineno-0-3></a> [Tool Selector] [Writer]
4
- <a href=#__codelineno-0-4 id=__codelineno-0-4 name=__codelineno-0-4></a> ↓
5
- <a href=#__codelineno-0-5 id=__codelineno-0-5 name=__codelineno-0-5></a> [Execute Tools] → [Loop Back]
6
- </code></pre></div> <h3 id=deep-research-graph>Deep Research Graph<a class=headerlink href=#deep-research-graph title="Permanent link">¶</a></h3> <div class=highlight><pre><span></span><code><a href=#__codelineno-1-1 id=__codelineno-1-1 name=__codelineno-1-1></a>[Input] → [Planner] → [Parallel Iterative Loops] → [Synthesizer]
7
- <a href=#__codelineno-1-2 id=__codelineno-1-2 name=__codelineno-1-2></a> ↓ ↓ ↓
8
- <a href=#__codelineno-1-3 id=__codelineno-1-3 name=__codelineno-1-3></a> [Loop1] [Loop2] [Loop3]
9
- </code></pre></div> <h3 id=deep-research>Deep Research<a class=headerlink href=#deep-research title="Permanent link">¶</a></h3> <pre class=mermaid><code>
10
  sequenceDiagram
11
  actor User
12
  participant GraphOrchestrator
@@ -41,7 +41,7 @@ sequenceDiagram
41
  end
42
 
43
  GraphOrchestrator-&gt;&gt;User: AsyncGenerator[AgentEvent]
44
- </code></pre> <h3 id=iterative-research>Iterative Research<a class=headerlink href=#iterative-research title="Permanent link">¶</a></h3> <pre class=mermaid><code>sequenceDiagram
45
  participant IterativeFlow
46
  participant ThinkingAgent
47
  participant KnowledgeGapAgent
@@ -72,4 +72,4 @@ sequenceDiagram
72
  IterativeFlow-&gt;&gt;JudgeHandler: assess_evidence()
73
  JudgeHandler--&gt;&gt;IterativeFlow: should_continue
74
  end
75
- end</code></pre> <h2 id=graph-structure>Graph Structure<a class=headerlink href=#graph-structure title="Permanent link">¶</a></h2> <h3 id=nodes>Nodes<a class=headerlink href=#nodes title="Permanent link">¶</a></h3> <p>Graph nodes represent different stages in the research workflow:</p> <ol> <li><strong>Agent Nodes</strong>: Execute Pydantic AI agents</li> <li>Input: Prompt/query</li> <li>Output: Structured or unstructured response</li> <li> <p>Examples: <code>KnowledgeGapAgent</code>, <code>ToolSelectorAgent</code>, <code>ThinkingAgent</code></p> </li> <li> <p><strong>State Nodes</strong>: Update or read workflow state</p> </li> <li>Input: Current state</li> <li>Output: Updated state</li> <li> <p>Examples: Update evidence, update conversation history</p> </li> <li> <p><strong>Decision Nodes</strong>: Make routing decisions based on conditions</p> </li> <li>Input: Current state/results</li> <li>Output: Next node ID</li> <li> <p>Examples: Continue research vs. complete research</p> </li> <li> <p><strong>Parallel Nodes</strong>: Execute multiple nodes concurrently</p> </li> <li>Input: List of node IDs</li> <li>Output: Aggregated results</li> <li>Examples: Parallel iterative research loops</li> </ol> <h3 id=edges>Edges<a class=headerlink href=#edges title="Permanent link">¶</a></h3> <p>Edges define transitions between nodes:</p> <ol> <li><strong>Sequential Edges</strong>: Always traversed (no condition)</li> <li>From: Source node</li> <li>To: Target node</li> <li> <p>Condition: None (always True)</p> </li> <li> <p><strong>Conditional Edges</strong>: Traversed based on condition</p> </li> <li>From: Source node</li> <li>To: Target node</li> <li>Condition: Callable that returns bool</li> <li> <p>Example: If research complete → go to writer, else → continue loop</p> </li> <li> <p><strong>Parallel Edges</strong>: Used for parallel execution branches</p> </li> <li>From: Parallel node</li> <li>To: Multiple target nodes</li> <li>Execution: All targets run concurrently</li> </ol> <h2 id=state-management>State Management<a class=headerlink href=#state-management title="Permanent link">¶</a></h2> <p>State is managed via <code>WorkflowState</code> using <code>ContextVar</code> for thread-safe isolation:</p> <ul> <li><strong>Evidence</strong>: Collected evidence from searches</li> <li><strong>Conversation</strong>: Iteration history (gaps, tool calls, findings, thoughts)</li> <li><strong>Embedding Service</strong>: For semantic search</li> </ul> <p>State transitions occur at state nodes, which update the global workflow state.</p> <h2 id=execution-flow>Execution Flow<a class=headerlink href=#execution-flow title="Permanent link">¶</a></h2> <ol> <li><strong>Graph Construction</strong>: Build graph from nodes and edges</li> <li><strong>Graph Validation</strong>: Ensure graph is valid (no cycles, all nodes reachable)</li> <li><strong>Graph Execution</strong>: Traverse graph from entry node</li> <li><strong>Node Execution</strong>: Execute each node based on type</li> <li><strong>Edge Evaluation</strong>: Determine next node(s) based on edges</li> <li><strong>Parallel Execution</strong>: Use <code>asyncio.gather()</code> for parallel nodes</li> <li><strong>State Updates</strong>: Update state at state nodes</li> <li><strong>Event Streaming</strong>: Yield events during execution for UI</li> </ol> <h2 id=conditional-routing>Conditional Routing<a class=headerlink href=#conditional-routing title="Permanent link">¶</a></h2> <p>Decision nodes evaluate conditions and return next node IDs:</p> <ul> <li><strong>Knowledge Gap Decision</strong>: If <code>research_complete</code> → writer, else → tool selector</li> <li><strong>Budget Decision</strong>: If budget exceeded → exit, else → continue</li> <li><strong>Iteration Decision</strong>: If max iterations → exit, else → continue</li> </ul> <h2 id=parallel-execution>Parallel Execution<a class=headerlink href=#parallel-execution title="Permanent link">¶</a></h2> <p>Parallel nodes execute multiple nodes concurrently:</p> <ul> <li>Each parallel branch runs independently</li> <li>Results are aggregated after all branches complete</li> <li>State is synchronized after parallel execution</li> <li>Errors in one branch don't stop other branches</li> </ul> <h2 id=budget-enforcement>Budget Enforcement<a class=headerlink href=#budget-enforcement title="Permanent link">¶</a></h2> <p>Budget constraints are enforced at decision nodes:</p> <ul> <li><strong>Token Budget</strong>: Track LLM token usage</li> <li><strong>Time Budget</strong>: Track elapsed time</li> <li><strong>Iteration Budget</strong>: Track iteration count</li> </ul> <p>If any budget is exceeded, execution routes to exit node.</p> <h2 id=error-handling>Error Handling<a class=headerlink href=#error-handling title="Permanent link">¶</a></h2> <p>Errors are handled at multiple levels:</p> <ol> <li><strong>Node Level</strong>: Catch errors in individual node execution</li> <li><strong>Graph Level</strong>: Handle errors during graph traversal</li> <li><strong>State Level</strong>: Rollback state changes on error</li> </ol> <p>Errors are logged and yield error events for UI.</p> <h2 id=backward-compatibility>Backward Compatibility<a class=headerlink href=#backward-compatibility title="Permanent link">¶</a></h2> <p>Graph execution is optional via feature flag:</p> <ul> <li><code>USE_GRAPH_EXECUTION=true</code>: Use graph-based execution</li> <li><code>USE_GRAPH_EXECUTION=false</code>: Use agent chain execution (existing)</li> </ul> <p>This allows gradual migration and fallback if needed.</p> <h2 id=see-also>See Also<a class=headerlink href=#see-also title="Permanent link">¶</a></h2> <ul> <li><a href=../orchestrators/ >Orchestrators</a> - Overview of all orchestrator patterns</li> <li><a href=../workflows/ >Workflows</a> - Workflow diagrams and patterns</li> <li><a href=../workflow-diagrams/ >Workflow Diagrams</a> - Detailed workflow diagrams</li> <li><a href=../../api/orchestrators/ >API Reference - Orchestrators</a> - API documentation</li> </ul> </article> </div> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button class="md-top md-icon" data-md-component=top hidden type=button> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"></path></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright © 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ rel=noopener target=_blank> Material for MkDocs </a> </div> <div class=md-social> <a class=md-social__link href=https://github.com/DeepCritical/GradioDemo rel=noopener target=_blank title=github.com> <svg viewbox="0 0 512 512" xmlns=http://www.w3.org/2000/svg><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"></path></svg> </a> <a class=md-social__link href=https://huggingface.co/spaces/DataQuests/DeepCritical rel=noopener target=_blank title=huggingface.co> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"></path></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> </body> </html>
 
1
+ <!DOCTYPE html><html class=no-js lang=en> <head><meta charset=utf-8><meta content="width=device-width,initial-scale=1" name=viewport><meta content="Generalist Deep Research Agent that Stops at Nothing" name=description><meta content="The DeepCritical Team" name=author><link href=https://deepcritical.github.io/GradioDemo/architecture/graph_orchestration/ rel=canonical><link href=../../configuration/ rel=prev><link href=../workflow-diagrams/ rel=next><link href=../../assets/images/favicon.png rel=icon><meta content="mkdocs-1.6.1, mkdocs-material-9.7.0" name=generator><title>Graph Orchestration - The DETERMINATOR</title><link href=../../assets/stylesheets/main.618322db.min.css rel=stylesheet><link href=../../assets/stylesheets/palette.ab4e12ef.min.css rel=stylesheet><link crossorigin href=https://fonts.gstatic.com rel=preconnect><link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback" rel=stylesheet><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><link href=../../css/timeago.css rel=stylesheet><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body data-md-color-accent=red data-md-color-primary=orange data-md-color-scheme=default dir=ltr> <input autocomplete=off class=md-toggle data-md-toggle=drawer id=__drawer type=checkbox> <input autocomplete=off class=md-toggle data-md-toggle=search id=__search type=checkbox> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a class=md-skip href=#graph-orchestration-architecture> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav aria-label=Header class="md-header__inner md-grid"> <a aria-label="The DETERMINATOR" class="md-header__button md-logo" data-md-component=logo href=../.. title="The DETERMINATOR"> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"></path></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"></path></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Graph Orchestration </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input aria-label="Switch to dark mode" class=md-option data-md-color-accent=red data-md-color-media data-md-color-primary=orange data-md-color-scheme=default id=__palette_0 name=__palette type=radio> <label class="md-header__button md-icon" for=__palette_1 hidden title="Switch to dark mode"> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"></path></svg> </label> <input aria-label="Switch to light mode" class=md-option data-md-color-accent=red data-md-color-media data-md-color-primary=orange data-md-color-scheme=slate id=__palette_1 name=__palette type=radio> <label class="md-header__button md-icon" for=__palette_0 hidden title="Switch to light mode"> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"></path></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"></path></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input aria-label=Search autocapitalize=off autocomplete=off autocorrect=off class=md-search__input data-md-component=search-query name=query placeholder=Search required spellcheck=false type=text> <label class="md-search__icon md-icon" for=__search> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"></path></svg> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"></path></svg> </label> <nav aria-label=Search class=md-search__options> <button aria-label=Clear class="md-search__icon md-icon" tabindex=-1 title=Clear type=reset> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap data-md-scrollfix tabindex=0> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a class=md-source data-md-component=source href=https://github.com/DeepCritical/GradioDemo title="Go to repository"> <div class="md-source__icon md-icon"> <svg viewbox="0 0 512 512" xmlns=http://www.w3.org/2000/svg><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"></path></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav aria-label=Tabs class=md-tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a class=md-tabs__link href=../..> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/ class=md-tabs__link> Configuration </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=./ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../../contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav aria-label=Navigation class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" data-md-level=0> <label class=md-nav__title for=__drawer> <a aria-label="The DETERMINATOR" class="md-nav__button md-logo" data-md-component=logo href=../.. title="The DETERMINATOR"> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"></path></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a class=md-source data-md-component=source href=https://github.com/DeepCritical/GradioDemo title="Go to repository"> <div class="md-source__icon md-icon"> <svg viewbox="0 0 512 512" xmlns=http://www.w3.org/2000/svg><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"></path></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a class=md-nav__link href=../..> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" id=__nav_2 type=checkbox> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav aria-expanded=false aria-labelledby=__nav_2_label class=md-nav data-md-level=1> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" id=__nav_3 type=checkbox> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav aria-expanded=false aria-labelledby=__nav_3_label class=md-nav data-md-level=1> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Single Command Deploy </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" id=__nav_4 type=checkbox> <div class="md-nav__link md-nav__container"> <a href=../../configuration/ class=md-nav__link> <span class=md-ellipsis> Configuration </span> </a> </div> <nav aria-expanded=false aria-labelledby=__nav_4_label class=md-nav data-md-level=1> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input checked class="md-nav__toggle md-toggle" id=__nav_5 type=checkbox> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav aria-expanded=true aria-labelledby=__nav_5_label class=md-nav data-md-level=1> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" id=__toc type=checkbox> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Graph Orchestration </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Graph Orchestration </span> </a> <nav aria-label="Table of contents" class="md-nav md-nav--secondary"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a class=md-nav__link href=#overview> <span class=md-ellipsis> Overview </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#graph-patterns> <span class=md-ellipsis> Graph Patterns </span> </a> <nav aria-label="Graph Patterns" class=md-nav> <ul class=md-nav__list> <li class=md-nav__item> <a class=md-nav__link href=#iterative-research-graph> <span class=md-ellipsis> Iterative Research Graph </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#deep-research-graph> <span class=md-ellipsis> Deep Research Graph </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#deep-research> <span class=md-ellipsis> Deep Research </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#iterative-research> <span class=md-ellipsis> Iterative Research </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a class=md-nav__link href=#graph-structure> <span class=md-ellipsis> Graph Structure </span> </a> <nav aria-label="Graph Structure" class=md-nav> <ul class=md-nav__list> <li class=md-nav__item> <a class=md-nav__link href=#nodes> <span class=md-ellipsis> Nodes </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#edges> <span class=md-ellipsis> Edges </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a class=md-nav__link href=#state-management> <span class=md-ellipsis> State Management </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#execution-flow> <span class=md-ellipsis> Execution Flow </span> </a> <nav aria-label="Execution Flow" class=md-nav> <ul class=md-nav__list> <li class=md-nav__item> <a class=md-nav__link href=#graphexecutioncontext> <span class=md-ellipsis> GraphExecutionContext </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a class=md-nav__link href=#conditional-routing> <span class=md-ellipsis> Conditional Routing </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#parallel-execution> <span class=md-ellipsis> Parallel Execution </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#budget-enforcement> <span class=md-ellipsis> Budget Enforcement </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#error-handling> <span class=md-ellipsis> Error Handling </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#backward-compatibility> <span class=md-ellipsis> Backward Compatibility </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#see-also> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" id=__nav_6 type=checkbox> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav aria-expanded=false aria-labelledby=__nav_6_label class=md-nav data-md-level=1> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" id=__nav_7 type=checkbox> <div class="md-nav__link md-nav__container"> <a href=../../contributing/ class=md-nav__link> <span class=md-ellipsis> Contributing </span> </a> <label class=md-nav__link for=__nav_7 id=__nav_7_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav aria-expanded=false aria-labelledby=__nav_7_label class=md-nav data-md-level=1> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=graph-orchestration-architecture>Graph Orchestration Architecture<a class=headerlink href=#graph-orchestration-architecture title="Anchor link to this section">¶</a></h1> <h2 id=overview>Overview<a class=headerlink href=#overview title="Anchor link to this section">¶</a></h2> <p>DeepCritical implements a graph-based orchestration system for research workflows using Pydantic AI agents as nodes. This enables better parallel execution, conditional routing, and state management compared to simple agent chains.</p> <h2 id=graph-patterns>Graph Patterns<a class=headerlink href=#graph-patterns title="Anchor link to this section">¶</a></h2> <h3 id=iterative-research-graph>Iterative Research Graph<a class=headerlink href=#iterative-research-graph title="Anchor link to this section">¶</a></h3> <p>The iterative research graph follows this pattern:</p> <div class="language-text highlight"><pre><span></span><code><span id=__span-0-1><a href=#__codelineno-0-1 id=__codelineno-0-1 name=__codelineno-0-1></a>[Input] → [Thinking] → [Knowledge Gap] → [Decision: Complete?]
2
+ </span><span id=__span-0-2><a href=#__codelineno-0-2 id=__codelineno-0-2 name=__codelineno-0-2></a> ↓ No ↓ Yes
3
+ </span><span id=__span-0-3><a href=#__codelineno-0-3 id=__codelineno-0-3 name=__codelineno-0-3></a> [Tool Selector] [Writer]
4
+ </span><span id=__span-0-4><a href=#__codelineno-0-4 id=__codelineno-0-4 name=__codelineno-0-4></a> ↓
5
+ </span><span id=__span-0-5><a href=#__codelineno-0-5 id=__codelineno-0-5 name=__codelineno-0-5></a> [Execute Tools] → [Loop Back]
6
+ </span></code></pre></div> <p><strong>Node IDs</strong>: <code>thinking</code> → <code>knowledge_gap</code> → <code>continue_decision</code> → <code>tool_selector</code>/<code>writer</code> → <code>execute_tools</code> → (loop back to <code>thinking</code>)</p> <p><strong>Special Node Handling</strong>: - <code>execute_tools</code>: State node that uses <code>search_handler</code> to execute searches and add evidence to workflow state - <code>continue_decision</code>: Decision node that routes based on <code>research_complete</code> flag from <code>KnowledgeGapOutput</code></p> <h3 id=deep-research-graph>Deep Research Graph<a class=headerlink href=#deep-research-graph title="Anchor link to this section">¶</a></h3> <p>The deep research graph follows this pattern:</p> <div class="language-text highlight"><pre><span></span><code><span id=__span-1-1><a href=#__codelineno-1-1 id=__codelineno-1-1 name=__codelineno-1-1></a>[Input] → [Planner] → [Store Plan] → [Parallel Loops] → [Collect Drafts] → [Synthesizer]
7
+ </span><span id=__span-1-2><a href=#__codelineno-1-2 id=__codelineno-1-2 name=__codelineno-1-2></a> ↓ ↓ ↓
8
+ </span><span id=__span-1-3><a href=#__codelineno-1-3 id=__codelineno-1-3 name=__codelineno-1-3></a> [Loop1] [Loop2] [Loop3]
9
+ </span></code></pre></div> <p><strong>Node IDs</strong>: <code>planner</code> → <code>store_plan</code> → <code>parallel_loops</code> → <code>collect_drafts</code> → <code>synthesizer</code></p> <p><strong>Special Node Handling</strong>: - <code>planner</code>: Agent node that creates <code>ReportPlan</code> with report outline - <code>store_plan</code>: State node that stores <code>ReportPlan</code> in context for parallel loops - <code>parallel_loops</code>: Parallel node that executes <code>IterativeResearchFlow</code> instances for each section - <code>collect_drafts</code>: State node that collects section drafts from parallel loops - <code>synthesizer</code>: Agent node that calls <code>LongWriterAgent.write_report()</code> directly with <code>ReportDraft</code></p> <h3 id=deep-research>Deep Research<a class=headerlink href=#deep-research title="Anchor link to this section">¶</a></h3> <pre class=mermaid><code>
10
  sequenceDiagram
11
  actor User
12
  participant GraphOrchestrator
 
41
  end
42
 
43
  GraphOrchestrator-&gt;&gt;User: AsyncGenerator[AgentEvent]
44
+ </code></pre> <h3 id=iterative-research>Iterative Research<a class=headerlink href=#iterative-research title="Anchor link to this section">¶</a></h3> <pre class=mermaid><code>sequenceDiagram
45
  participant IterativeFlow
46
  participant ThinkingAgent
47
  participant KnowledgeGapAgent
 
72
  IterativeFlow-&gt;&gt;JudgeHandler: assess_evidence()
73
  JudgeHandler--&gt;&gt;IterativeFlow: should_continue
74
  end
75
+ end</code></pre> <h2 id=graph-structure>Graph Structure<a class=headerlink href=#graph-structure title="Anchor link to this section">¶</a></h2> <h3 id=nodes>Nodes<a class=headerlink href=#nodes title="Anchor link to this section">¶</a></h3> <p>Graph nodes represent different stages in the research workflow:</p> <ol> <li><strong>Agent Nodes</strong>: Execute Pydantic AI agents</li> <li>Input: Prompt/query</li> <li>Output: Structured or unstructured response</li> <li> <p>Examples: <code>KnowledgeGapAgent</code>, <code>ToolSelectorAgent</code>, <code>ThinkingAgent</code></p> </li> <li> <p><strong>State Nodes</strong>: Update or read workflow state</p> </li> <li>Input: Current state</li> <li>Output: Updated state</li> <li> <p>Examples: Update evidence, update conversation history</p> </li> <li> <p><strong>Decision Nodes</strong>: Make routing decisions based on conditions</p> </li> <li>Input: Current state/results</li> <li>Output: Next node ID</li> <li> <p>Examples: Continue research vs. complete research</p> </li> <li> <p><strong>Parallel Nodes</strong>: Execute multiple nodes concurrently</p> </li> <li>Input: List of node IDs</li> <li>Output: Aggregated results</li> <li>Examples: Parallel iterative research loops</li> </ol> <h3 id=edges>Edges<a class=headerlink href=#edges title="Anchor link to this section">¶</a></h3> <p>Edges define transitions between nodes:</p> <ol> <li><strong>Sequential Edges</strong>: Always traversed (no condition)</li> <li>From: Source node</li> <li>To: Target node</li> <li> <p>Condition: None (always True)</p> </li> <li> <p><strong>Conditional Edges</strong>: Traversed based on condition</p> </li> <li>From: Source node</li> <li>To: Target node</li> <li>Condition: Callable that returns bool</li> <li> <p>Example: If research complete → go to writer, else → continue loop</p> </li> <li> <p><strong>Parallel Edges</strong>: Used for parallel execution branches</p> </li> <li>From: Parallel node</li> <li>To: Multiple target nodes</li> <li>Execution: All targets run concurrently</li> </ol> <h2 id=state-management>State Management<a class=headerlink href=#state-management title="Anchor link to this section">¶</a></h2> <p>State is managed via <code>WorkflowState</code> using <code>ContextVar</code> for thread-safe isolation:</p> <ul> <li><strong>Evidence</strong>: Collected evidence from searches</li> <li><strong>Conversation</strong>: Iteration history (gaps, tool calls, findings, thoughts)</li> <li><strong>Embedding Service</strong>: For semantic search</li> </ul> <p>State transitions occur at state nodes, which update the global workflow state.</p> <h2 id=execution-flow>Execution Flow<a class=headerlink href=#execution-flow title="Anchor link to this section">¶</a></h2> <ol> <li><strong>Graph Construction</strong>: Build graph from nodes and edges using <code>create_iterative_graph()</code> or <code>create_deep_graph()</code></li> <li><strong>Graph Validation</strong>: Ensure graph is valid (no cycles, all nodes reachable) via <code>ResearchGraph.validate_structure()</code></li> <li><strong>Graph Execution</strong>: Traverse graph from entry node using <code>GraphOrchestrator._execute_graph()</code></li> <li><strong>Node Execution</strong>: Execute each node based on type:</li> <li><strong>Agent Nodes</strong>: Call <code>agent.run()</code> with transformed input</li> <li><strong>State Nodes</strong>: Update workflow state via <code>state_updater</code> function</li> <li><strong>Decision Nodes</strong>: Evaluate <code>decision_function</code> to get next node ID</li> <li><strong>Parallel Nodes</strong>: Execute all parallel nodes concurrently via <code>asyncio.gather()</code></li> <li><strong>Edge Evaluation</strong>: Determine next node(s) based on edges and conditions</li> <li><strong>Parallel Execution</strong>: Use <code>asyncio.gather()</code> for parallel nodes</li> <li><strong>State Updates</strong>: Update state at state nodes via <code>GraphExecutionContext.update_state()</code></li> <li><strong>Event Streaming</strong>: Yield <code>AgentEvent</code> objects during execution for UI</li> </ol> <h3 id=graphexecutioncontext>GraphExecutionContext<a class=headerlink href=#graphexecutioncontext title="Anchor link to this section">¶</a></h3> <p>The <code>GraphExecutionContext</code> class manages execution state during graph traversal:</p> <ul> <li><strong>State</strong>: Current <code>WorkflowState</code> instance</li> <li><strong>Budget Tracker</strong>: <code>BudgetTracker</code> instance for budget enforcement</li> <li><strong>Node Results</strong>: Dictionary storing results from each node execution</li> <li><strong>Visited Nodes</strong>: Set of node IDs that have been executed</li> <li><strong>Current Node</strong>: ID of the node currently being executed</li> </ul> <p>Methods: - <code>set_node_result(node_id, result)</code>: Store result from node execution - <code>get_node_result(node_id)</code>: Retrieve stored result - <code>has_visited(node_id)</code>: Check if node was visited - <code>mark_visited(node_id)</code>: Mark node as visited - <code>update_state(updater, data)</code>: Update workflow state</p> <h2 id=conditional-routing>Conditional Routing<a class=headerlink href=#conditional-routing title="Anchor link to this section">¶</a></h2> <p>Decision nodes evaluate conditions and return next node IDs:</p> <ul> <li><strong>Knowledge Gap Decision</strong>: If <code>research_complete</code> → writer, else → tool selector</li> <li><strong>Budget Decision</strong>: If budget exceeded → exit, else → continue</li> <li><strong>Iteration Decision</strong>: If max iterations → exit, else → continue</li> </ul> <h2 id=parallel-execution>Parallel Execution<a class=headerlink href=#parallel-execution title="Anchor link to this section">¶</a></h2> <p>Parallel nodes execute multiple nodes concurrently:</p> <ul> <li>Each parallel branch runs independently</li> <li>Results are aggregated after all branches complete</li> <li>State is synchronized after parallel execution</li> <li>Errors in one branch don't stop other branches</li> </ul> <h2 id=budget-enforcement>Budget Enforcement<a class=headerlink href=#budget-enforcement title="Anchor link to this section">¶</a></h2> <p>Budget constraints are enforced at decision nodes:</p> <ul> <li><strong>Token Budget</strong>: Track LLM token usage</li> <li><strong>Time Budget</strong>: Track elapsed time</li> <li><strong>Iteration Budget</strong>: Track iteration count</li> </ul> <p>If any budget is exceeded, execution routes to exit node.</p> <h2 id=error-handling>Error Handling<a class=headerlink href=#error-handling title="Anchor link to this section">¶</a></h2> <p>Errors are handled at multiple levels:</p> <ol> <li><strong>Node Level</strong>: Catch errors in individual node execution</li> <li><strong>Graph Level</strong>: Handle errors during graph traversal</li> <li><strong>State Level</strong>: Rollback state changes on error</li> </ol> <p>Errors are logged and yield error events for UI.</p> <h2 id=backward-compatibility>Backward Compatibility<a class=headerlink href=#backward-compatibility title="Anchor link to this section">¶</a></h2> <p>Graph execution is optional via feature flag:</p> <ul> <li><code>USE_GRAPH_EXECUTION=true</code>: Use graph-based execution</li> <li><code>USE_GRAPH_EXECUTION=false</code>: Use agent chain execution (existing)</li> </ul> <p>This allows gradual migration and fallback if needed.</p> <h2 id=see-also>See Also<a class=headerlink href=#see-also title="Anchor link to this section">¶</a></h2> <ul> <li><a href=../orchestrators/ >Orchestrators</a> - Overview of all orchestrator patterns</li> <li><a href=../workflow-diagrams/ >Workflow Diagrams</a> - Detailed workflow diagrams</li> <li><a href=../../api/orchestrators/ >API Reference - Orchestrators</a> - API documentation</li> </ul> <aside class=md-source-file> <span class=md-source-file__fact> <span class=md-icon title="Last update"> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"></path></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="December 2, 2025 01:35:56 UTC"><span class=timeago datetime=2025-12-02T01:35:56+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="December 2, 2025 01:35:56 UTC">2025-12-02</span> </span> <span class=md-source-file__fact> <span class=md-icon title=Created> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M14.47 15.08 11 13V7h1.5v5.25l3.08 1.83c-.41.28-.79.62-1.11 1m-1.39 4.84c-.36.05-.71.08-1.08.08-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8c0 .37-.03.72-.08 1.08.69.1 1.33.32 1.92.64.1-.56.16-1.13.16-1.72 0-5.5-4.5-10-10-10S2 6.5 2 12s4.47 10 10 10c.59 0 1.16-.06 1.72-.16-.32-.59-.54-1.23-.64-1.92M18 15v3h-3v2h3v3h2v-3h3v-2h-3v-3z"></path></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="November 29, 2025 21:33:25 UTC"><span class=timeago datetime=2025-11-29T21:33:25+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="November 29, 2025 21:33:25 UTC">2025-11-29</span> </span> </aside> </article> </div> <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button class="md-top md-icon" data-md-component=top hidden type=button> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"></path></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright © 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ rel=noopener target=_blank> Material for MkDocs </a> </div> <div class=md-social> <a class=md-social__link href=https://github.com/DeepCritical/GradioDemo rel=noopener target=_blank title=GitHub> <svg viewbox="0 0 512 512" xmlns=http://www.w3.org/2000/svg><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"></path></svg> </a> <a class=md-social__link href=https://twitter.com/josephpollack rel=noopener target=_blank title=Twitter> <svg viewbox="0 0 512 512" xmlns=http://www.w3.org/2000/svg><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M459.4 151.7c.3 4.5.3 9.1.3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103v-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53C87.4 130.8 165 172.4 252.1 176.9c-1.6-7.8-2.6-15.9-2.6-24C249.5 95.1 296.3 48 354.4 48c30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3"></path></svg> </a> <a class=md-social__link href=https://huggingface.co/spaces/DataQuests/DeepCritical rel=noopener target=_blank title="Live Demo"> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"></path></svg> </a> <a class=md-social__link href=https://discord.gg/n8ytYeh25n rel=noopener target=_blank title=Discord> <svg viewbox="0 0 576 512" xmlns=http://www.w3.org/2000/svg><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M492.5 69.8c-.2-.3-.4-.6-.8-.7-38.1-17.5-78.4-30-119.7-37.1-.4-.1-.8 0-1.1.1s-.6.4-.8.8c-5.5 9.9-10.5 20.2-14.9 30.6-44.6-6.8-89.9-6.8-134.4 0-4.5-10.5-9.5-20.7-15.1-30.6-.2-.3-.5-.6-.8-.8s-.7-.2-1.1-.2C162.5 39 122.2 51.5 84.1 69c-.3.1-.6.4-.8.7C7.1 183.5-13.8 294.6-3.6 404.2c0 .3.1.5.2.8s.3.4.5.6c44.4 32.9 94 58 146.8 74.2.4.1.8.1 1.1 0s.7-.4.9-.7c11.3-15.4 21.4-31.8 30-48.8.1-.2.2-.5.2-.8s0-.5-.1-.8-.2-.5-.4-.6-.4-.3-.7-.4c-15.8-6.1-31.2-13.4-45.9-21.9-.3-.2-.5-.4-.7-.6s-.3-.6-.3-.9 0-.6.2-.9.3-.5.6-.7c3.1-2.3 6.2-4.7 9.1-7.1.3-.2.6-.4.9-.4s.7 0 1 .1c96.2 43.9 200.4 43.9 295.5 0 .3-.1.7-.2 1-.2s.7.2.9.4c2.9 2.4 6 4.9 9.1 7.2.2.2.4.4.6.7s.2.6.2.9-.1.6-.3.9-.4.5-.6.6c-14.7 8.6-30 15.9-45.9 21.8-.2.1-.5.2-.7.4s-.3.4-.4.7-.1.5-.1.8.1.5.2.8c8.8 17 18.8 33.3 30 48.8.2.3.6.6.9.7s.8.1 1.1 0c52.9-16.2 102.6-41.3 147.1-74.2.2-.2.4-.4.5-.6s.2-.5.2-.8c12.3-126.8-20.5-236.9-86.9-334.5zm-302 267.7c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.4 59.2-52.8 59.2m195.4 0c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.2 59.2-52.8 59.2"></path></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "navigation.indexes", "navigation.instant", "navigation.tracking", "navigation.smooth", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy", "content.tabs.link", "content.tooltips", "toc.integrate"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> <script src=../../js/timeago.min.js></script> <script src=../../js/timeago_mkdocs_material.js></script> </body> </html>
site/architecture/middleware/index.html CHANGED
@@ -1,20 +1,40 @@
1
- <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DETERMINATOR Team"><link href=https://deepcritical.github.io/GradioDemo/architecture/middleware/ rel=canonical><link href=../tools/ rel=prev><link href=../services/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Middleware - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#middleware-architecture class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Middleware </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/CONFIGURATION/ class=md-tabs__link> Configuration </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../../contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Quick Start Guide </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <label class=md-nav__link for=__nav_4 id=__nav_4_label tabindex=0> <span class=md-ellipsis> Configuration </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../configuration/CONFIGURATION/ class=md-nav__link> <span class=md-ellipsis> Configuration Guide </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_5 checked> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=true> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Middleware </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Middleware </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#state-management class=md-nav__link> <span class=md-ellipsis> State Management </span> </a> <nav class=md-nav aria-label="State Management"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#workflowstate class=md-nav__link> <span class=md-ellipsis> WorkflowState </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#workflow-manager class=md-nav__link> <span class=md-ellipsis> Workflow Manager </span> </a> </li> <li class=md-nav__item> <a href=#budget-tracker class=md-nav__link> <span class=md-ellipsis> Budget Tracker </span> </a> </li> <li class=md-nav__item> <a href=#models class=md-nav__link> <span class=md-ellipsis> Models </span> </a> </li> <li class=md-nav__item> <a href=#thread-safety class=md-nav__link> <span class=md-ellipsis> Thread Safety </span> </a> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <label class=md-nav__link for=__nav_7 id=__nav_7_label tabindex=0> <span class=md-ellipsis> Contributing </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../contributing/ class=md-nav__link> <span class=md-ellipsis> Contributing to DeepCritical </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=sidebar data-md-type=toc> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#state-management class=md-nav__link> <span class=md-ellipsis> State Management </span> </a> <nav class=md-nav aria-label="State Management"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#workflowstate class=md-nav__link> <span class=md-ellipsis> WorkflowState </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#workflow-manager class=md-nav__link> <span class=md-ellipsis> Workflow Manager </span> </a> </li> <li class=md-nav__item> <a href=#budget-tracker class=md-nav__link> <span class=md-ellipsis> Budget Tracker </span> </a> </li> <li class=md-nav__item> <a href=#models class=md-nav__link> <span class=md-ellipsis> Models </span> </a> </li> <li class=md-nav__item> <a href=#thread-safety class=md-nav__link> <span class=md-ellipsis> Thread Safety </span> </a> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=middleware-architecture>Middleware Architecture<a class=headerlink href=#middleware-architecture title="Permanent link">&para;</a></h1> <p>DeepCritical uses middleware for state management, budget tracking, and workflow coordination.</p> <h2 id=state-management>State Management<a class=headerlink href=#state-management title="Permanent link">&para;</a></h2> <h3 id=workflowstate>WorkflowState<a class=headerlink href=#workflowstate title="Permanent link">&para;</a></h3> <p><strong>File</strong>: <code>src/middleware/state_machine.py</code></p> <p><strong>Purpose</strong>: Thread-safe state management for research workflows</p> <p><strong>Implementation</strong>: Uses <code>ContextVar</code> for thread-safe isolation</p> <p><strong>State Components</strong>: - <code>evidence: list[Evidence]</code>: Collected evidence from searches - <code>conversation: Conversation</code>: Iteration history (gaps, tool calls, findings, thoughts) - <code>embedding_service: Any</code>: Embedding service for semantic search</p> <p><strong>Methods</strong>: - <code>add_evidence(evidence: Evidence)</code>: Adds evidence with URL-based deduplication - <code>async search_related(query: str, top_k: int = 5) -&gt; list[Evidence]</code>: Semantic search</p> <p><strong>Initialization</strong>:</p> <p><strong>Access</strong>:</p> <h2 id=workflow-manager>Workflow Manager<a class=headerlink href=#workflow-manager title="Permanent link">&para;</a></h2> <p><strong>File</strong>: <code>src/middleware/workflow_manager.py</code></p> <p><strong>Purpose</strong>: Coordinates parallel research loops</p> <p><strong>Methods</strong>: - <code>add_loop(loop: ResearchLoop)</code>: Add a research loop to manage - <code>async run_loops_parallel() -&gt; list[ResearchLoop]</code>: Run all loops in parallel - <code>update_loop_status(loop_id: str, status: str)</code>: Update loop status - <code>sync_loop_evidence_to_state()</code>: Synchronize evidence from loops to global state</p> <p><strong>Features</strong>: - Uses <code>asyncio.gather()</code> for parallel execution - Handles errors per loop (doesn't fail all if one fails) - Tracks loop status: <code>pending</code>, <code>running</code>, <code>completed</code>, <code>failed</code>, <code>cancelled</code> - Evidence deduplication across parallel loops</p> <p><strong>Usage</strong>: <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=kn>from</span><span class=w> </span><span class=nn>src.middleware.workflow_manager</span><span class=w> </span><span class=kn>import</span> <span class=n>WorkflowManager</span>
2
- <a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a>
3
- <a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a><span class=n>manager</span> <span class=o>=</span> <span class=n>WorkflowManager</span><span class=p>()</span>
4
- <a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a><span class=n>manager</span><span class=o>.</span><span class=n>add_loop</span><span class=p>(</span><span class=n>loop1</span><span class=p>)</span>
5
- <a id=__codelineno-0-5 name=__codelineno-0-5 href=#__codelineno-0-5></a><span class=n>manager</span><span class=o>.</span><span class=n>add_loop</span><span class=p>(</span><span class=n>loop2</span><span class=p>)</span>
6
- <a id=__codelineno-0-6 name=__codelineno-0-6 href=#__codelineno-0-6></a><span class=n>completed_loops</span> <span class=o>=</span> <span class=k>await</span> <span class=n>manager</span><span class=o>.</span><span class=n>run_loops_parallel</span><span class=p>()</span>
7
- </code></pre></div></p> <h2 id=budget-tracker>Budget Tracker<a class=headerlink href=#budget-tracker title="Permanent link">&para;</a></h2> <p><strong>File</strong>: <code>src/middleware/budget_tracker.py</code></p> <p><strong>Purpose</strong>: Tracks and enforces resource limits</p> <p><strong>Budget Components</strong>: - <strong>Tokens</strong>: LLM token usage - <strong>Time</strong>: Elapsed time in seconds - <strong>Iterations</strong>: Number of iterations</p> <p><strong>Methods</strong>: - <code>create_budget(token_limit, time_limit_seconds, iterations_limit) -&gt; BudgetStatus</code> - <code>add_tokens(tokens: int)</code>: Add token usage - <code>start_timer()</code>: Start time tracking - <code>update_timer()</code>: Update elapsed time - <code>increment_iteration()</code>: Increment iteration count - <code>check_budget() -&gt; BudgetStatus</code>: Check current budget status - <code>can_continue() -&gt; bool</code>: Check if research can continue</p> <p><strong>Token Estimation</strong>: - <code>estimate_tokens(text: str) -&gt; int</code>: ~4 chars per token - <code>estimate_llm_call_tokens(prompt: str, response: str) -&gt; int</code>: Estimate LLM call tokens</p> <p><strong>Usage</strong>: <div class=highlight><pre><span></span><code><a id=__codelineno-1-1 name=__codelineno-1-1 href=#__codelineno-1-1></a><span class=kn>from</span><span class=w> </span><span class=nn>src.middleware.budget_tracker</span><span class=w> </span><span class=kn>import</span> <span class=n>BudgetTracker</span>
8
- <a id=__codelineno-1-2 name=__codelineno-1-2 href=#__codelineno-1-2></a>
9
- <a id=__codelineno-1-3 name=__codelineno-1-3 href=#__codelineno-1-3></a><span class=n>tracker</span> <span class=o>=</span> <span class=n>BudgetTracker</span><span class=p>()</span>
10
- <a id=__codelineno-1-4 name=__codelineno-1-4 href=#__codelineno-1-4></a><span class=n>budget</span> <span class=o>=</span> <span class=n>tracker</span><span class=o>.</span><span class=n>create_budget</span><span class=p>(</span>
11
- <a id=__codelineno-1-5 name=__codelineno-1-5 href=#__codelineno-1-5></a> <span class=n>token_limit</span><span class=o>=</span><span class=mi>100000</span><span class=p>,</span>
12
- <a id=__codelineno-1-6 name=__codelineno-1-6 href=#__codelineno-1-6></a> <span class=n>time_limit_seconds</span><span class=o>=</span><span class=mi>600</span><span class=p>,</span>
13
- <a id=__codelineno-1-7 name=__codelineno-1-7 href=#__codelineno-1-7></a> <span class=n>iterations_limit</span><span class=o>=</span><span class=mi>10</span>
14
- <a id=__codelineno-1-8 name=__codelineno-1-8 href=#__codelineno-1-8></a><span class=p>)</span>
15
- <a id=__codelineno-1-9 name=__codelineno-1-9 href=#__codelineno-1-9></a><span class=n>tracker</span><span class=o>.</span><span class=n>start_timer</span><span class=p>()</span>
16
- <a id=__codelineno-1-10 name=__codelineno-1-10 href=#__codelineno-1-10></a><span class=c1># ... research operations ...</span>
17
- <a id=__codelineno-1-11 name=__codelineno-1-11 href=#__codelineno-1-11></a><span class=k>if</span> <span class=ow>not</span> <span class=n>tracker</span><span class=o>.</span><span class=n>can_continue</span><span class=p>():</span>
18
- <a id=__codelineno-1-12 name=__codelineno-1-12 href=#__codelineno-1-12></a> <span class=c1># Budget exceeded, stop research</span>
19
- <a id=__codelineno-1-13 name=__codelineno-1-13 href=#__codelineno-1-13></a> <span class=k>pass</span>
20
- </code></pre></div></p> <h2 id=models>Models<a class=headerlink href=#models title="Permanent link">&para;</a></h2> <p>All middleware models are defined in <code>src/utils/models.py</code>:</p> <ul> <li><code>IterationData</code>: Data for a single iteration</li> <li><code>Conversation</code>: Conversation history with iterations</li> <li><code>ResearchLoop</code>: Research loop state and configuration</li> <li><code>BudgetStatus</code>: Current budget status</li> </ul> <h2 id=thread-safety>Thread Safety<a class=headerlink href=#thread-safety title="Permanent link">&para;</a></h2> <p>All middleware components use <code>ContextVar</code> for thread-safe isolation:</p> <ul> <li>Each request/thread has its own workflow state</li> <li>No global mutable state</li> <li>Safe for concurrent requests</li> </ul> <h2 id=see-also>See Also<a class=headerlink href=#see-also title="Permanent link">&para;</a></h2> <ul> <li><a href=../orchestrators/ >Orchestrators</a> - How middleware is used in orchestration</li> <li><a href=../../api/orchestrators/ >API Reference - Orchestrators</a> - API documentation</li> <li><a href=../../contributing/code-style/ >Contributing - Code Style</a> - Development guidelines</li> </ul> </article> </div> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=github.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title=huggingface.co class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> </body> </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DeepCritical Team"><link href=https://deepcritical.github.io/GradioDemo/architecture/middleware/ rel=canonical><link href=../tools/ rel=prev><link href=../services/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Middleware - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><link rel=stylesheet href=../../css/timeago.css><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#middleware-architecture class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Middleware </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/ class=md-tabs__link> Configuration </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../../contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Single Command Deploy </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <div class="md-nav__link md-nav__container"> <a href=../../configuration/ class="md-nav__link "> <span class=md-ellipsis> Configuration </span> </a> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_5 checked> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=true> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Middleware </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Middleware </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#state-management class=md-nav__link> <span class=md-ellipsis> State Management </span> </a> <nav class=md-nav aria-label="State Management"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#workflowstate class=md-nav__link> <span class=md-ellipsis> WorkflowState </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#workflow-manager class=md-nav__link> <span class=md-ellipsis> Workflow Manager </span> </a> </li> <li class=md-nav__item> <a href=#budget-tracker class=md-nav__link> <span class=md-ellipsis> Budget Tracker </span> </a> </li> <li class=md-nav__item> <a href=#models class=md-nav__link> <span class=md-ellipsis> Models </span> </a> </li> <li class=md-nav__item> <a href=#thread-safety class=md-nav__link> <span class=md-ellipsis> Thread Safety </span> </a> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <div class="md-nav__link md-nav__container"> <a href=../../contributing/ class="md-nav__link "> <span class=md-ellipsis> Contributing </span> </a> <label class="md-nav__link " for=__nav_7 id=__nav_7_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=middleware-architecture>Middleware Architecture<a class=headerlink href=#middleware-architecture title="Anchor link to this section">&para;</a></h1> <p>DeepCritical uses middleware for state management, budget tracking, and workflow coordination.</p> <h2 id=state-management>State Management<a class=headerlink href=#state-management title="Anchor link to this section">&para;</a></h2> <h3 id=workflowstate>WorkflowState<a class=headerlink href=#workflowstate title="Anchor link to this section">&para;</a></h3> <p><strong>File</strong>: <code>src/middleware/state_machine.py</code></p> <p><strong>Purpose</strong>: Thread-safe state management for research workflows</p> <p><strong>Implementation</strong>: Uses <code>ContextVar</code> for thread-safe isolation</p> <p><strong>State Components</strong>: - <code>evidence: list[Evidence]</code>: Collected evidence from searches - <code>conversation: Conversation</code>: Iteration history (gaps, tool calls, findings, thoughts) - <code>embedding_service: Any</code>: Embedding service for semantic search</p> <p><strong>Methods</strong>: - <code>add_evidence(new_evidence: list[Evidence]) -&gt; int</code>: Adds evidence with URL-based deduplication. Returns the number of new items added (excluding duplicates). - <code>async search_related(query: str, n_results: int = 5) -&gt; list[Evidence]</code>: Semantic search for related evidence using embedding service</p> <p><strong>Initialization</strong>:</p> <p><strong>Access</strong>:</p> <h2 id=workflow-manager>Workflow Manager<a class=headerlink href=#workflow-manager title="Anchor link to this section">&para;</a></h2> <p><strong>File</strong>: <code>src/middleware/workflow_manager.py</code></p> <p><strong>Purpose</strong>: Coordinates parallel research loops</p> <p><strong>Methods</strong>: - <code>async add_loop(loop_id: str, query: str) -&gt; ResearchLoop</code>: Add a new research loop to manage - <code>async run_loops_parallel(loop_configs: list[dict], loop_func: Callable, judge_handler: Any | None = None, budget_tracker: Any | None = None) -&gt; list[Any]</code>: Run multiple research loops in parallel. Takes configuration dicts and a loop function. - <code>async update_loop_status(loop_id: str, status: LoopStatus, error: str | None = None)</code>: Update loop status - <code>async sync_loop_evidence_to_state(loop_id: str)</code>: Synchronize evidence from a specific loop to global state</p> <p><strong>Features</strong>: - Uses <code>asyncio.gather()</code> for parallel execution - Handles errors per loop (doesn't fail all if one fails) - Tracks loop status: <code>pending</code>, <code>running</code>, <code>completed</code>, <code>failed</code>, <code>cancelled</code> - Evidence deduplication across parallel loops</p> <p><strong>Usage</strong>: <div class="language-python highlight"><pre><span></span><code><span id=__span-0-1><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=kn>from</span><span class=w> </span><span class=nn>src.middleware.workflow_manager</span><span class=w> </span><span class=kn>import</span> <span class=n>WorkflowManager</span>
2
+ </span><span id=__span-0-2><a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a>
3
+ </span><span id=__span-0-3><a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a><span class=n>manager</span> <span class=o>=</span> <span class=n>WorkflowManager</span><span class=p>()</span>
4
+ </span><span id=__span-0-4><a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a><span class=k>await</span> <span class=n>manager</span><span class=o>.</span><span class=n>add_loop</span><span class=p>(</span><span class=s2>&quot;loop1&quot;</span><span class=p>,</span> <span class=s2>&quot;Research query 1&quot;</span><span class=p>)</span>
5
+ </span><span id=__span-0-5><a id=__codelineno-0-5 name=__codelineno-0-5 href=#__codelineno-0-5></a><span class=k>await</span> <span class=n>manager</span><span class=o>.</span><span class=n>add_loop</span><span class=p>(</span><span class=s2>&quot;loop2&quot;</span><span class=p>,</span> <span class=s2>&quot;Research query 2&quot;</span><span class=p>)</span>
6
+ </span><span id=__span-0-6><a id=__codelineno-0-6 name=__codelineno-0-6 href=#__codelineno-0-6></a>
7
+ </span><span id=__span-0-7><a id=__codelineno-0-7 name=__codelineno-0-7 href=#__codelineno-0-7></a><span class=k>async</span> <span class=k>def</span><span class=w> </span><span class=nf>run_research</span><span class=p>(</span><span class=n>config</span><span class=p>:</span> <span class=nb>dict</span><span class=p>)</span> <span class=o>-&gt;</span> <span class=nb>str</span><span class=p>:</span>
8
+ </span><span id=__span-0-8><a id=__codelineno-0-8 name=__codelineno-0-8 href=#__codelineno-0-8></a> <span class=n>loop_id</span> <span class=o>=</span> <span class=n>config</span><span class=p>[</span><span class=s2>&quot;loop_id&quot;</span><span class=p>]</span>
9
+ </span><span id=__span-0-9><a id=__codelineno-0-9 name=__codelineno-0-9 href=#__codelineno-0-9></a> <span class=n>query</span> <span class=o>=</span> <span class=n>config</span><span class=p>[</span><span class=s2>&quot;query&quot;</span><span class=p>]</span>
10
+ </span><span id=__span-0-10><a id=__codelineno-0-10 name=__codelineno-0-10 href=#__codelineno-0-10></a> <span class=c1># ... research logic ...</span>
11
+ </span><span id=__span-0-11><a id=__codelineno-0-11 name=__codelineno-0-11 href=#__codelineno-0-11></a> <span class=k>return</span> <span class=s2>&quot;report&quot;</span>
12
+ </span><span id=__span-0-12><a id=__codelineno-0-12 name=__codelineno-0-12 href=#__codelineno-0-12></a>
13
+ </span><span id=__span-0-13><a id=__codelineno-0-13 name=__codelineno-0-13 href=#__codelineno-0-13></a><span class=n>results</span> <span class=o>=</span> <span class=k>await</span> <span class=n>manager</span><span class=o>.</span><span class=n>run_loops_parallel</span><span class=p>(</span>
14
+ </span><span id=__span-0-14><a id=__codelineno-0-14 name=__codelineno-0-14 href=#__codelineno-0-14></a> <span class=n>loop_configs</span><span class=o>=</span><span class=p>[</span>
15
+ </span><span id=__span-0-15><a id=__codelineno-0-15 name=__codelineno-0-15 href=#__codelineno-0-15></a> <span class=p>{</span><span class=s2>&quot;loop_id&quot;</span><span class=p>:</span> <span class=s2>&quot;loop1&quot;</span><span class=p>,</span> <span class=s2>&quot;query&quot;</span><span class=p>:</span> <span class=s2>&quot;Research query 1&quot;</span><span class=p>},</span>
16
+ </span><span id=__span-0-16><a id=__codelineno-0-16 name=__codelineno-0-16 href=#__codelineno-0-16></a> <span class=p>{</span><span class=s2>&quot;loop_id&quot;</span><span class=p>:</span> <span class=s2>&quot;loop2&quot;</span><span class=p>,</span> <span class=s2>&quot;query&quot;</span><span class=p>:</span> <span class=s2>&quot;Research query 2&quot;</span><span class=p>},</span>
17
+ </span><span id=__span-0-17><a id=__codelineno-0-17 name=__codelineno-0-17 href=#__codelineno-0-17></a> <span class=p>],</span>
18
+ </span><span id=__span-0-18><a id=__codelineno-0-18 name=__codelineno-0-18 href=#__codelineno-0-18></a> <span class=n>loop_func</span><span class=o>=</span><span class=n>run_research</span><span class=p>,</span>
19
+ </span><span id=__span-0-19><a id=__codelineno-0-19 name=__codelineno-0-19 href=#__codelineno-0-19></a><span class=p>)</span>
20
+ </span></code></pre></div></p> <h2 id=budget-tracker>Budget Tracker<a class=headerlink href=#budget-tracker title="Anchor link to this section">&para;</a></h2> <p><strong>File</strong>: <code>src/middleware/budget_tracker.py</code></p> <p><strong>Purpose</strong>: Tracks and enforces resource limits</p> <p><strong>Budget Components</strong>: - <strong>Tokens</strong>: LLM token usage - <strong>Time</strong>: Elapsed time in seconds - <strong>Iterations</strong>: Number of iterations</p> <p><strong>Methods</strong>: - <code>create_budget(loop_id: str, tokens_limit: int = 100000, time_limit_seconds: float = 600.0, iterations_limit: int = 10) -&gt; BudgetStatus</code>: Create a budget for a specific loop - <code>add_tokens(loop_id: str, tokens: int)</code>: Add token usage to a loop's budget - <code>start_timer(loop_id: str)</code>: Start time tracking for a loop - <code>update_timer(loop_id: str)</code>: Update elapsed time for a loop - <code>increment_iteration(loop_id: str)</code>: Increment iteration count for a loop - <code>check_budget(loop_id: str) -&gt; tuple[bool, str]</code>: Check if a loop's budget has been exceeded. Returns (exceeded: bool, reason: str) - <code>can_continue(loop_id: str) -&gt; bool</code>: Check if a loop can continue based on budget</p> <p><strong>Token Estimation</strong>: - <code>estimate_tokens(text: str) -&gt; int</code>: ~4 chars per token - <code>estimate_llm_call_tokens(prompt: str, response: str) -&gt; int</code>: Estimate LLM call tokens</p> <p><strong>Usage</strong>: <div class="language-python highlight"><pre><span></span><code><span id=__span-1-1><a id=__codelineno-1-1 name=__codelineno-1-1 href=#__codelineno-1-1></a><span class=kn>from</span><span class=w> </span><span class=nn>src.middleware.budget_tracker</span><span class=w> </span><span class=kn>import</span> <span class=n>BudgetTracker</span>
21
+ </span><span id=__span-1-2><a id=__codelineno-1-2 name=__codelineno-1-2 href=#__codelineno-1-2></a>
22
+ </span><span id=__span-1-3><a id=__codelineno-1-3 name=__codelineno-1-3 href=#__codelineno-1-3></a><span class=n>tracker</span> <span class=o>=</span> <span class=n>BudgetTracker</span><span class=p>()</span>
23
+ </span><span id=__span-1-4><a id=__codelineno-1-4 name=__codelineno-1-4 href=#__codelineno-1-4></a><span class=n>budget</span> <span class=o>=</span> <span class=n>tracker</span><span class=o>.</span><span class=n>create_budget</span><span class=p>(</span>
24
+ </span><span id=__span-1-5><a id=__codelineno-1-5 name=__codelineno-1-5 href=#__codelineno-1-5></a> <span class=n>loop_id</span><span class=o>=</span><span class=s2>&quot;research_loop&quot;</span><span class=p>,</span>
25
+ </span><span id=__span-1-6><a id=__codelineno-1-6 name=__codelineno-1-6 href=#__codelineno-1-6></a> <span class=n>tokens_limit</span><span class=o>=</span><span class=mi>100000</span><span class=p>,</span>
26
+ </span><span id=__span-1-7><a id=__codelineno-1-7 name=__codelineno-1-7 href=#__codelineno-1-7></a> <span class=n>time_limit_seconds</span><span class=o>=</span><span class=mi>600</span><span class=p>,</span>
27
+ </span><span id=__span-1-8><a id=__codelineno-1-8 name=__codelineno-1-8 href=#__codelineno-1-8></a> <span class=n>iterations_limit</span><span class=o>=</span><span class=mi>10</span>
28
+ </span><span id=__span-1-9><a id=__codelineno-1-9 name=__codelineno-1-9 href=#__codelineno-1-9></a><span class=p>)</span>
29
+ </span><span id=__span-1-10><a id=__codelineno-1-10 name=__codelineno-1-10 href=#__codelineno-1-10></a><span class=n>tracker</span><span class=o>.</span><span class=n>start_timer</span><span class=p>(</span><span class=s2>&quot;research_loop&quot;</span><span class=p>)</span>
30
+ </span><span id=__span-1-11><a id=__codelineno-1-11 name=__codelineno-1-11 href=#__codelineno-1-11></a><span class=c1># ... research operations ...</span>
31
+ </span><span id=__span-1-12><a id=__codelineno-1-12 name=__codelineno-1-12 href=#__codelineno-1-12></a><span class=n>tracker</span><span class=o>.</span><span class=n>add_tokens</span><span class=p>(</span><span class=s2>&quot;research_loop&quot;</span><span class=p>,</span> <span class=mi>5000</span><span class=p>)</span>
32
+ </span><span id=__span-1-13><a id=__codelineno-1-13 name=__codelineno-1-13 href=#__codelineno-1-13></a><span class=n>tracker</span><span class=o>.</span><span class=n>update_timer</span><span class=p>(</span><span class=s2>&quot;research_loop&quot;</span><span class=p>)</span>
33
+ </span><span id=__span-1-14><a id=__codelineno-1-14 name=__codelineno-1-14 href=#__codelineno-1-14></a><span class=n>exceeded</span><span class=p>,</span> <span class=n>reason</span> <span class=o>=</span> <span class=n>tracker</span><span class=o>.</span><span class=n>check_budget</span><span class=p>(</span><span class=s2>&quot;research_loop&quot;</span><span class=p>)</span>
34
+ </span><span id=__span-1-15><a id=__codelineno-1-15 name=__codelineno-1-15 href=#__codelineno-1-15></a><span class=k>if</span> <span class=n>exceeded</span><span class=p>:</span>
35
+ </span><span id=__span-1-16><a id=__codelineno-1-16 name=__codelineno-1-16 href=#__codelineno-1-16></a> <span class=c1># Budget exceeded, stop research</span>
36
+ </span><span id=__span-1-17><a id=__codelineno-1-17 name=__codelineno-1-17 href=#__codelineno-1-17></a> <span class=k>pass</span>
37
+ </span><span id=__span-1-18><a id=__codelineno-1-18 name=__codelineno-1-18 href=#__codelineno-1-18></a><span class=k>if</span> <span class=ow>not</span> <span class=n>tracker</span><span class=o>.</span><span class=n>can_continue</span><span class=p>(</span><span class=s2>&quot;research_loop&quot;</span><span class=p>):</span>
38
+ </span><span id=__span-1-19><a id=__codelineno-1-19 name=__codelineno-1-19 href=#__codelineno-1-19></a> <span class=c1># Budget exceeded, stop research</span>
39
+ </span><span id=__span-1-20><a id=__codelineno-1-20 name=__codelineno-1-20 href=#__codelineno-1-20></a> <span class=k>pass</span>
40
+ </span></code></pre></div></p> <h2 id=models>Models<a class=headerlink href=#models title="Anchor link to this section">&para;</a></h2> <p>All middleware models are defined in <code>src/utils/models.py</code>:</p> <ul> <li><code>IterationData</code>: Data for a single iteration</li> <li><code>Conversation</code>: Conversation history with iterations</li> <li><code>ResearchLoop</code>: Research loop state and configuration</li> <li><code>BudgetStatus</code>: Current budget status</li> </ul> <h2 id=thread-safety>Thread Safety<a class=headerlink href=#thread-safety title="Anchor link to this section">&para;</a></h2> <p>All middleware components use <code>ContextVar</code> for thread-safe isolation:</p> <ul> <li>Each request/thread has its own workflow state</li> <li>No global mutable state</li> <li>Safe for concurrent requests</li> </ul> <h2 id=see-also>See Also<a class=headerlink href=#see-also title="Anchor link to this section">&para;</a></h2> <ul> <li><a href=../orchestrators/ >Orchestrators</a> - How middleware is used in orchestration</li> <li><a href=../../api/orchestrators/ >API Reference - Orchestrators</a> - API documentation</li> <li><a href=../../contributing/code-style/ >Contributing - Code Style</a> - Development guidelines</li> </ul> <aside class=md-source-file> <span class=md-source-file__fact> <span class=md-icon title="Last update"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="December 2, 2025 01:35:56 UTC"><span class=timeago datetime=2025-12-02T01:35:56+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="December 2, 2025 01:35:56 UTC">2025-12-02</span> </span> <span class=md-source-file__fact> <span class=md-icon title=Created> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M14.47 15.08 11 13V7h1.5v5.25l3.08 1.83c-.41.28-.79.62-1.11 1m-1.39 4.84c-.36.05-.71.08-1.08.08-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8c0 .37-.03.72-.08 1.08.69.1 1.33.32 1.92.64.1-.56.16-1.13.16-1.72 0-5.5-4.5-10-10-10S2 6.5 2 12s4.47 10 10 10c.59 0 1.16-.06 1.72-.16-.32-.59-.54-1.23-.64-1.92M18 15v3h-3v2h3v3h2v-3h3v-2h-3v-3z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="November 29, 2025 21:40:26 UTC"><span class=timeago datetime=2025-11-29T21:40:26+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="November 29, 2025 21:40:26 UTC">2025-11-29</span> </span> </aside> </article> </div> <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=GitHub class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://twitter.com/josephpollack target=_blank rel=noopener title=Twitter class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M459.4 151.7c.3 4.5.3 9.1.3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103v-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53C87.4 130.8 165 172.4 252.1 176.9c-1.6-7.8-2.6-15.9-2.6-24C249.5 95.1 296.3 48 354.4 48c30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title="Live Demo" class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> <a href=https://discord.gg/n8ytYeh25n target=_blank rel=noopener title=Discord class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 576 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M492.5 69.8c-.2-.3-.4-.6-.8-.7-38.1-17.5-78.4-30-119.7-37.1-.4-.1-.8 0-1.1.1s-.6.4-.8.8c-5.5 9.9-10.5 20.2-14.9 30.6-44.6-6.8-89.9-6.8-134.4 0-4.5-10.5-9.5-20.7-15.1-30.6-.2-.3-.5-.6-.8-.8s-.7-.2-1.1-.2C162.5 39 122.2 51.5 84.1 69c-.3.1-.6.4-.8.7C7.1 183.5-13.8 294.6-3.6 404.2c0 .3.1.5.2.8s.3.4.5.6c44.4 32.9 94 58 146.8 74.2.4.1.8.1 1.1 0s.7-.4.9-.7c11.3-15.4 21.4-31.8 30-48.8.1-.2.2-.5.2-.8s0-.5-.1-.8-.2-.5-.4-.6-.4-.3-.7-.4c-15.8-6.1-31.2-13.4-45.9-21.9-.3-.2-.5-.4-.7-.6s-.3-.6-.3-.9 0-.6.2-.9.3-.5.6-.7c3.1-2.3 6.2-4.7 9.1-7.1.3-.2.6-.4.9-.4s.7 0 1 .1c96.2 43.9 200.4 43.9 295.5 0 .3-.1.7-.2 1-.2s.7.2.9.4c2.9 2.4 6 4.9 9.1 7.2.2.2.4.4.6.7s.2.6.2.9-.1.6-.3.9-.4.5-.6.6c-14.7 8.6-30 15.9-45.9 21.8-.2.1-.5.2-.7.4s-.3.4-.4.7-.1.5-.1.8.1.5.2.8c8.8 17 18.8 33.3 30 48.8.2.3.6.6.9.7s.8.1 1.1 0c52.9-16.2 102.6-41.3 147.1-74.2.2-.2.4-.4.5-.6s.2-.5.2-.8c12.3-126.8-20.5-236.9-86.9-334.5zm-302 267.7c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.4 59.2-52.8 59.2m195.4 0c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.2 59.2-52.8 59.2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "navigation.indexes", "navigation.instant", "navigation.tracking", "navigation.smooth", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy", "content.tabs.link", "content.tooltips", "toc.integrate"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> <script src=../../js/timeago.min.js></script> <script src=../../js/timeago_mkdocs_material.js></script> </body> </html>
site/architecture/orchestrators/index.html CHANGED
@@ -1 +1 @@
1
- <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DETERMINATOR Team"><link href=https://deepcritical.github.io/GradioDemo/architecture/orchestrators/ rel=canonical><link href=../agents/ rel=prev><link href=../tools/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Orchestrators - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#orchestrators-architecture class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Orchestrators </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/CONFIGURATION/ class=md-tabs__link> Configuration </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../../contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Quick Start Guide </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <label class=md-nav__link for=__nav_4 id=__nav_4_label tabindex=0> <span class=md-ellipsis> Configuration </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../configuration/CONFIGURATION/ class=md-nav__link> <span class=md-ellipsis> Configuration Guide </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_5 checked> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=true> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Orchestrators </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Orchestrators </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#research-flows class=md-nav__link> <span class=md-ellipsis> Research Flows </span> </a> <nav class=md-nav aria-label="Research Flows"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#iterativeresearchflow class=md-nav__link> <span class=md-ellipsis> IterativeResearchFlow </span> </a> </li> <li class=md-nav__item> <a href=#deepresearchflow class=md-nav__link> <span class=md-ellipsis> DeepResearchFlow </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#graph-orchestrator class=md-nav__link> <span class=md-ellipsis> Graph Orchestrator </span> </a> </li> <li class=md-nav__item> <a href=#orchestrator-factory class=md-nav__link> <span class=md-ellipsis> Orchestrator Factory </span> </a> </li> <li class=md-nav__item> <a href=#magentic-orchestrator class=md-nav__link> <span class=md-ellipsis> Magentic Orchestrator </span> </a> </li> <li class=md-nav__item> <a href=#hierarchical-orchestrator class=md-nav__link> <span class=md-ellipsis> Hierarchical Orchestrator </span> </a> </li> <li class=md-nav__item> <a href=#legacy-simple-mode class=md-nav__link> <span class=md-ellipsis> Legacy Simple Mode </span> </a> </li> <li class=md-nav__item> <a href=#state-initialization class=md-nav__link> <span class=md-ellipsis> State Initialization </span> </a> </li> <li class=md-nav__item> <a href=#event-streaming class=md-nav__link> <span class=md-ellipsis> Event Streaming </span> </a> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <label class=md-nav__link for=__nav_7 id=__nav_7_label tabindex=0> <span class=md-ellipsis> Contributing </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../contributing/ class=md-nav__link> <span class=md-ellipsis> Contributing to DeepCritical </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=sidebar data-md-type=toc> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#research-flows class=md-nav__link> <span class=md-ellipsis> Research Flows </span> </a> <nav class=md-nav aria-label="Research Flows"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#iterativeresearchflow class=md-nav__link> <span class=md-ellipsis> IterativeResearchFlow </span> </a> </li> <li class=md-nav__item> <a href=#deepresearchflow class=md-nav__link> <span class=md-ellipsis> DeepResearchFlow </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#graph-orchestrator class=md-nav__link> <span class=md-ellipsis> Graph Orchestrator </span> </a> </li> <li class=md-nav__item> <a href=#orchestrator-factory class=md-nav__link> <span class=md-ellipsis> Orchestrator Factory </span> </a> </li> <li class=md-nav__item> <a href=#magentic-orchestrator class=md-nav__link> <span class=md-ellipsis> Magentic Orchestrator </span> </a> </li> <li class=md-nav__item> <a href=#hierarchical-orchestrator class=md-nav__link> <span class=md-ellipsis> Hierarchical Orchestrator </span> </a> </li> <li class=md-nav__item> <a href=#legacy-simple-mode class=md-nav__link> <span class=md-ellipsis> Legacy Simple Mode </span> </a> </li> <li class=md-nav__item> <a href=#state-initialization class=md-nav__link> <span class=md-ellipsis> State Initialization </span> </a> </li> <li class=md-nav__item> <a href=#event-streaming class=md-nav__link> <span class=md-ellipsis> Event Streaming </span> </a> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=orchestrators-architecture>Orchestrators Architecture<a class=headerlink href=#orchestrators-architecture title="Permanent link">&para;</a></h1> <p>DeepCritical supports multiple orchestration patterns for research workflows.</p> <h2 id=research-flows>Research Flows<a class=headerlink href=#research-flows title="Permanent link">&para;</a></h2> <h3 id=iterativeresearchflow>IterativeResearchFlow<a class=headerlink href=#iterativeresearchflow title="Permanent link">&para;</a></h3> <p><strong>File</strong>: <code>src/orchestrator/research_flow.py</code></p> <p><strong>Pattern</strong>: Generate observations → Evaluate gaps → Select tools → Execute → Judge → Continue/Complete</p> <p><strong>Agents Used</strong>: - <code>KnowledgeGapAgent</code>: Evaluates research completeness - <code>ToolSelectorAgent</code>: Selects tools for addressing gaps - <code>ThinkingAgent</code>: Generates observations - <code>WriterAgent</code>: Creates final report - <code>JudgeHandler</code>: Assesses evidence sufficiency</p> <p><strong>Features</strong>: - Tracks iterations, time, budget - Supports graph execution (<code>use_graph=True</code>) and agent chains (<code>use_graph=False</code>) - Iterates until research complete or constraints met</p> <p><strong>Usage</strong>:</p> <h3 id=deepresearchflow>DeepResearchFlow<a class=headerlink href=#deepresearchflow title="Permanent link">&para;</a></h3> <p><strong>File</strong>: <code>src/orchestrator/research_flow.py</code></p> <p><strong>Pattern</strong>: Planner → Parallel iterative loops per section → Synthesizer</p> <p><strong>Agents Used</strong>: - <code>PlannerAgent</code>: Breaks query into report sections - <code>IterativeResearchFlow</code>: Per-section research (parallel) - <code>LongWriterAgent</code> or <code>ProofreaderAgent</code>: Final synthesis</p> <p><strong>Features</strong>: - Uses <code>WorkflowManager</code> for parallel execution - Budget tracking per section and globally - State synchronization across parallel loops - Supports graph execution and agent chains</p> <p><strong>Usage</strong>:</p> <h2 id=graph-orchestrator>Graph Orchestrator<a class=headerlink href=#graph-orchestrator title="Permanent link">&para;</a></h2> <p><strong>File</strong>: <code>src/orchestrator/graph_orchestrator.py</code></p> <p><strong>Purpose</strong>: Graph-based execution using Pydantic AI agents as nodes</p> <p><strong>Features</strong>: - Uses Pydantic AI Graphs (when available) or agent chains (fallback) - Routes based on research mode (iterative/deep/auto) - Streams <code>AgentEvent</code> objects for UI</p> <p><strong>Node Types</strong>: - <strong>Agent Nodes</strong>: Execute Pydantic AI agents - <strong>State Nodes</strong>: Update or read workflow state - <strong>Decision Nodes</strong>: Make routing decisions - <strong>Parallel Nodes</strong>: Execute multiple nodes concurrently</p> <p><strong>Edge Types</strong>: - <strong>Sequential Edges</strong>: Always traversed - <strong>Conditional Edges</strong>: Traversed based on condition - <strong>Parallel Edges</strong>: Used for parallel execution branches</p> <h2 id=orchestrator-factory>Orchestrator Factory<a class=headerlink href=#orchestrator-factory title="Permanent link">&para;</a></h2> <p><strong>File</strong>: <code>src/orchestrator_factory.py</code></p> <p><strong>Purpose</strong>: Factory for creating orchestrators</p> <p><strong>Modes</strong>: - <strong>Simple</strong>: Legacy orchestrator (backward compatible) - <strong>Advanced</strong>: Magentic orchestrator (requires OpenAI API key) - <strong>Auto-detect</strong>: Chooses based on API key availability</p> <p><strong>Usage</strong>:</p> <h2 id=magentic-orchestrator>Magentic Orchestrator<a class=headerlink href=#magentic-orchestrator title="Permanent link">&para;</a></h2> <p><strong>File</strong>: <code>src/orchestrator_magentic.py</code></p> <p><strong>Purpose</strong>: Multi-agent coordination using Microsoft Agent Framework</p> <p><strong>Features</strong>: - Uses <code>agent-framework-core</code> - ChatAgent pattern with internal LLMs per agent - <code>MagenticBuilder</code> with participants: searcher, hypothesizer, judge, reporter - Manager orchestrates agents via <code>OpenAIChatClient</code> - Requires OpenAI API key (function calling support) - Event-driven: converts Magentic events to <code>AgentEvent</code> for UI streaming</p> <p><strong>Requirements</strong>: - <code>agent-framework-core</code> package - OpenAI API key</p> <h2 id=hierarchical-orchestrator>Hierarchical Orchestrator<a class=headerlink href=#hierarchical-orchestrator title="Permanent link">&para;</a></h2> <p><strong>File</strong>: <code>src/orchestrator_hierarchical.py</code></p> <p><strong>Purpose</strong>: Hierarchical orchestrator using middleware and sub-teams</p> <p><strong>Features</strong>: - Uses <code>SubIterationMiddleware</code> with <code>ResearchTeam</code> and <code>LLMSubIterationJudge</code> - Adapts Magentic ChatAgent to <code>SubIterationTeam</code> protocol - Event-driven via <code>asyncio.Queue</code> for coordination - Supports sub-iteration patterns for complex research tasks</p> <h2 id=legacy-simple-mode>Legacy Simple Mode<a class=headerlink href=#legacy-simple-mode title="Permanent link">&para;</a></h2> <p><strong>File</strong>: <code>src/legacy_orchestrator.py</code></p> <p><strong>Purpose</strong>: Linear search-judge-synthesize loop</p> <p><strong>Features</strong>: - Uses <code>SearchHandlerProtocol</code> and <code>JudgeHandlerProtocol</code> - Generator-based design yielding <code>AgentEvent</code> objects - Backward compatibility for simple use cases</p> <h2 id=state-initialization>State Initialization<a class=headerlink href=#state-initialization title="Permanent link">&para;</a></h2> <p>All orchestrators must initialize workflow state:</p> <h2 id=event-streaming>Event Streaming<a class=headerlink href=#event-streaming title="Permanent link">&para;</a></h2> <p>All orchestrators yield <code>AgentEvent</code> objects:</p> <p><strong>Event Types</strong>: - <code>started</code>: Research started - <code>search_complete</code>: Search completed - <code>judge_complete</code>: Evidence evaluation completed - <code>hypothesizing</code>: Generating hypotheses - <code>synthesizing</code>: Synthesizing results - <code>complete</code>: Research completed - <code>error</code>: Error occurred</p> <p><strong>Event Structure</strong>:</p> <h2 id=see-also>See Also<a class=headerlink href=#see-also title="Permanent link">&para;</a></h2> <ul> <li><a href=../graph-orchestration/ >Graph Orchestration</a> - Graph-based execution details</li> <li><a href=../graph_orchestration/ >Graph Orchestration (Detailed)</a> - Detailed graph architecture</li> <li><a href=../workflows/ >Workflows</a> - Workflow diagrams and patterns</li> <li><a href=../workflow-diagrams/ >Workflow Diagrams</a> - Detailed workflow diagrams</li> <li><a href=../../api/orchestrators/ >API Reference - Orchestrators</a> - API documentation</li> </ul> </article> </div> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=github.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title=huggingface.co class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> </body> </html>
 
1
+ <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DeepCritical Team"><link href=https://deepcritical.github.io/GradioDemo/architecture/orchestrators/ rel=canonical><link href=../agents/ rel=prev><link href=../tools/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Orchestrators - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><link rel=stylesheet href=../../css/timeago.css><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#orchestrators-architecture class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Orchestrators </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/ class=md-tabs__link> Configuration </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../../contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Single Command Deploy </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <div class="md-nav__link md-nav__container"> <a href=../../configuration/ class="md-nav__link "> <span class=md-ellipsis> Configuration </span> </a> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_5 checked> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=true> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Orchestrators </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Orchestrators </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#research-flows class=md-nav__link> <span class=md-ellipsis> Research Flows </span> </a> <nav class=md-nav aria-label="Research Flows"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#iterativeresearchflow class=md-nav__link> <span class=md-ellipsis> IterativeResearchFlow </span> </a> </li> <li class=md-nav__item> <a href=#deepresearchflow class=md-nav__link> <span class=md-ellipsis> DeepResearchFlow </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#graph-orchestrator class=md-nav__link> <span class=md-ellipsis> Graph Orchestrator </span> </a> </li> <li class=md-nav__item> <a href=#orchestrator-factory class=md-nav__link> <span class=md-ellipsis> Orchestrator Factory </span> </a> </li> <li class=md-nav__item> <a href=#magentic-orchestrator class=md-nav__link> <span class=md-ellipsis> Magentic Orchestrator </span> </a> </li> <li class=md-nav__item> <a href=#hierarchical-orchestrator class=md-nav__link> <span class=md-ellipsis> Hierarchical Orchestrator </span> </a> </li> <li class=md-nav__item> <a href=#legacy-simple-mode class=md-nav__link> <span class=md-ellipsis> Legacy Simple Mode </span> </a> </li> <li class=md-nav__item> <a href=#state-initialization class=md-nav__link> <span class=md-ellipsis> State Initialization </span> </a> </li> <li class=md-nav__item> <a href=#event-streaming class=md-nav__link> <span class=md-ellipsis> Event Streaming </span> </a> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <div class="md-nav__link md-nav__container"> <a href=../../contributing/ class="md-nav__link "> <span class=md-ellipsis> Contributing </span> </a> <label class="md-nav__link " for=__nav_7 id=__nav_7_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=orchestrators-architecture>Orchestrators Architecture<a class=headerlink href=#orchestrators-architecture title="Anchor link to this section">&para;</a></h1> <p>DeepCritical supports multiple orchestration patterns for research workflows.</p> <h2 id=research-flows>Research Flows<a class=headerlink href=#research-flows title="Anchor link to this section">&para;</a></h2> <h3 id=iterativeresearchflow>IterativeResearchFlow<a class=headerlink href=#iterativeresearchflow title="Anchor link to this section">&para;</a></h3> <p><strong>File</strong>: <code>src/orchestrator/research_flow.py</code></p> <p><strong>Pattern</strong>: Generate observations → Evaluate gaps → Select tools → Execute → Judge → Continue/Complete</p> <p><strong>Agents Used</strong>: - <code>KnowledgeGapAgent</code>: Evaluates research completeness - <code>ToolSelectorAgent</code>: Selects tools for addressing gaps - <code>ThinkingAgent</code>: Generates observations - <code>WriterAgent</code>: Creates final report - <code>JudgeHandler</code>: Assesses evidence sufficiency</p> <p><strong>Features</strong>: - Tracks iterations, time, budget - Supports graph execution (<code>use_graph=True</code>) and agent chains (<code>use_graph=False</code>) - Iterates until research complete or constraints met</p> <p><strong>Usage</strong>:</p> <h3 id=deepresearchflow>DeepResearchFlow<a class=headerlink href=#deepresearchflow title="Anchor link to this section">&para;</a></h3> <p><strong>File</strong>: <code>src/orchestrator/research_flow.py</code></p> <p><strong>Pattern</strong>: Planner → Parallel iterative loops per section → Synthesizer</p> <p><strong>Agents Used</strong>: - <code>PlannerAgent</code>: Breaks query into report sections - <code>IterativeResearchFlow</code>: Per-section research (parallel) - <code>LongWriterAgent</code> or <code>ProofreaderAgent</code>: Final synthesis</p> <p><strong>Features</strong>: - Uses <code>WorkflowManager</code> for parallel execution - Budget tracking per section and globally - State synchronization across parallel loops - Supports graph execution and agent chains</p> <p><strong>Usage</strong>:</p> <h2 id=graph-orchestrator>Graph Orchestrator<a class=headerlink href=#graph-orchestrator title="Anchor link to this section">&para;</a></h2> <p><strong>File</strong>: <code>src/orchestrator/graph_orchestrator.py</code></p> <p><strong>Purpose</strong>: Graph-based execution using Pydantic AI agents as nodes</p> <p><strong>Features</strong>: - Uses graph execution (<code>use_graph=True</code>) or agent chains (<code>use_graph=False</code>) as fallback - Routes based on research mode (iterative/deep/auto) - Streams <code>AgentEvent</code> objects for UI - Uses <code>GraphExecutionContext</code> to manage execution state</p> <p><strong>Node Types</strong>: - <strong>Agent Nodes</strong>: Execute Pydantic AI agents - <strong>State Nodes</strong>: Update or read workflow state - <strong>Decision Nodes</strong>: Make routing decisions - <strong>Parallel Nodes</strong>: Execute multiple nodes concurrently</p> <p><strong>Edge Types</strong>: - <strong>Sequential Edges</strong>: Always traversed - <strong>Conditional Edges</strong>: Traversed based on condition - <strong>Parallel Edges</strong>: Used for parallel execution branches</p> <p><strong>Special Node Handling</strong>:</p> <p>The <code>GraphOrchestrator</code> has special handling for certain nodes:</p> <ul> <li><strong><code>execute_tools</code> node</strong>: State node that uses <code>search_handler</code> to execute searches and add evidence to workflow state</li> <li><strong><code>parallel_loops</code> node</strong>: Parallel node that executes <code>IterativeResearchFlow</code> instances for each section in deep research mode</li> <li><strong><code>synthesizer</code> node</strong>: Agent node that calls <code>LongWriterAgent.write_report()</code> directly with <code>ReportDraft</code> instead of using <code>agent.run()</code></li> <li><strong><code>writer</code> node</strong>: Agent node that calls <code>WriterAgent.write_report()</code> directly with findings instead of using <code>agent.run()</code></li> </ul> <p><strong>GraphExecutionContext</strong>:</p> <p>The orchestrator uses <code>GraphExecutionContext</code> to manage execution state: - Tracks current node, visited nodes, and node results - Manages workflow state and budget tracker - Provides methods to store and retrieve node execution results</p> <h2 id=orchestrator-factory>Orchestrator Factory<a class=headerlink href=#orchestrator-factory title="Anchor link to this section">&para;</a></h2> <p><strong>File</strong>: <code>src/orchestrator_factory.py</code></p> <p><strong>Purpose</strong>: Factory for creating orchestrators</p> <p><strong>Modes</strong>: - <strong>Simple</strong>: Legacy orchestrator (backward compatible) - <strong>Advanced</strong>: Magentic orchestrator (requires OpenAI API key) - <strong>Auto-detect</strong>: Chooses based on API key availability</p> <p><strong>Usage</strong>:</p> <h2 id=magentic-orchestrator>Magentic Orchestrator<a class=headerlink href=#magentic-orchestrator title="Anchor link to this section">&para;</a></h2> <p><strong>File</strong>: <code>src/orchestrator_magentic.py</code></p> <p><strong>Purpose</strong>: Multi-agent coordination using Microsoft Agent Framework</p> <p><strong>Features</strong>: - Uses <code>agent-framework-core</code> - ChatAgent pattern with internal LLMs per agent - <code>MagenticBuilder</code> with participants: - <code>searcher</code>: SearchAgent (wraps SearchHandler) - <code>hypothesizer</code>: HypothesisAgent (generates hypotheses) - <code>judge</code>: JudgeAgent (evaluates evidence) - <code>reporter</code>: ReportAgent (generates final report) - Manager orchestrates agents via chat client (OpenAI or HuggingFace) - Event-driven: converts Magentic events to <code>AgentEvent</code> for UI streaming via <code>_process_event()</code> method - Supports max rounds, stall detection, and reset handling</p> <p><strong>Event Processing</strong>:</p> <p>The orchestrator processes Magentic events and converts them to <code>AgentEvent</code>: - <code>MagenticOrchestratorMessageEvent</code> → <code>AgentEvent</code> with type based on message content - <code>MagenticAgentMessageEvent</code> → <code>AgentEvent</code> with type based on agent name - <code>MagenticAgentDeltaEvent</code> → <code>AgentEvent</code> for streaming updates - <code>MagenticFinalResultEvent</code> → <code>AgentEvent</code> with type "complete"</p> <p><strong>Requirements</strong>: - <code>agent-framework-core</code> package - OpenAI API key or HuggingFace authentication</p> <h2 id=hierarchical-orchestrator>Hierarchical Orchestrator<a class=headerlink href=#hierarchical-orchestrator title="Anchor link to this section">&para;</a></h2> <p><strong>File</strong>: <code>src/orchestrator_hierarchical.py</code></p> <p><strong>Purpose</strong>: Hierarchical orchestrator using middleware and sub-teams</p> <p><strong>Features</strong>: - Uses <code>SubIterationMiddleware</code> with <code>ResearchTeam</code> and <code>LLMSubIterationJudge</code> - Adapts Magentic ChatAgent to <code>SubIterationTeam</code> protocol - Event-driven via <code>asyncio.Queue</code> for coordination - Supports sub-iteration patterns for complex research tasks</p> <h2 id=legacy-simple-mode>Legacy Simple Mode<a class=headerlink href=#legacy-simple-mode title="Anchor link to this section">&para;</a></h2> <p><strong>File</strong>: <code>src/legacy_orchestrator.py</code></p> <p><strong>Purpose</strong>: Linear search-judge-synthesize loop</p> <p><strong>Features</strong>: - Uses <code>SearchHandlerProtocol</code> and <code>JudgeHandlerProtocol</code> - Generator-based design yielding <code>AgentEvent</code> objects - Backward compatibility for simple use cases</p> <h2 id=state-initialization>State Initialization<a class=headerlink href=#state-initialization title="Anchor link to this section">&para;</a></h2> <p>All orchestrators must initialize workflow state:</p> <h2 id=event-streaming>Event Streaming<a class=headerlink href=#event-streaming title="Anchor link to this section">&para;</a></h2> <p>All orchestrators yield <code>AgentEvent</code> objects:</p> <p><strong>Event Types</strong>: - <code>started</code>: Research started - <code>searching</code>: Search in progress - <code>search_complete</code>: Search completed - <code>judging</code>: Evidence evaluation in progress - <code>judge_complete</code>: Evidence evaluation completed - <code>looping</code>: Iteration in progress - <code>hypothesizing</code>: Generating hypotheses - <code>analyzing</code>: Statistical analysis in progress - <code>analysis_complete</code>: Statistical analysis completed - <code>synthesizing</code>: Synthesizing results - <code>complete</code>: Research completed - <code>error</code>: Error occurred - <code>streaming</code>: Streaming update (delta events)</p> <p><strong>Event Structure</strong>:</p> <h2 id=see-also>See Also<a class=headerlink href=#see-also title="Anchor link to this section">&para;</a></h2> <ul> <li><a href=../graph_orchestration/ >Graph Orchestration</a> - Graph-based execution details</li> <li><a href=../workflow-diagrams/ >Workflow Diagrams</a> - Detailed workflow diagrams</li> <li><a href=../../api/orchestrators/ >API Reference - Orchestrators</a> - API documentation</li> </ul> <aside class=md-source-file> <span class=md-source-file__fact> <span class=md-icon title="Last update"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="December 2, 2025 01:35:56 UTC"><span class=timeago datetime=2025-12-02T01:35:56+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="December 2, 2025 01:35:56 UTC">2025-12-02</span> </span> <span class=md-source-file__fact> <span class=md-icon title=Created> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M14.47 15.08 11 13V7h1.5v5.25l3.08 1.83c-.41.28-.79.62-1.11 1m-1.39 4.84c-.36.05-.71.08-1.08.08-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8c0 .37-.03.72-.08 1.08.69.1 1.33.32 1.92.64.1-.56.16-1.13.16-1.72 0-5.5-4.5-10-10-10S2 6.5 2 12s4.47 10 10 10c.59 0 1.16-.06 1.72-.16-.32-.59-.54-1.23-.64-1.92M18 15v3h-3v2h3v3h2v-3h3v-2h-3v-3z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="November 29, 2025 22:24:36 UTC"><span class=timeago datetime=2025-11-29T22:24:36+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="November 29, 2025 22:24:36 UTC">2025-11-29</span> </span> </aside> </article> </div> <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=GitHub class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://twitter.com/josephpollack target=_blank rel=noopener title=Twitter class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M459.4 151.7c.3 4.5.3 9.1.3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103v-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53C87.4 130.8 165 172.4 252.1 176.9c-1.6-7.8-2.6-15.9-2.6-24C249.5 95.1 296.3 48 354.4 48c30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title="Live Demo" class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> <a href=https://discord.gg/n8ytYeh25n target=_blank rel=noopener title=Discord class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 576 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M492.5 69.8c-.2-.3-.4-.6-.8-.7-38.1-17.5-78.4-30-119.7-37.1-.4-.1-.8 0-1.1.1s-.6.4-.8.8c-5.5 9.9-10.5 20.2-14.9 30.6-44.6-6.8-89.9-6.8-134.4 0-4.5-10.5-9.5-20.7-15.1-30.6-.2-.3-.5-.6-.8-.8s-.7-.2-1.1-.2C162.5 39 122.2 51.5 84.1 69c-.3.1-.6.4-.8.7C7.1 183.5-13.8 294.6-3.6 404.2c0 .3.1.5.2.8s.3.4.5.6c44.4 32.9 94 58 146.8 74.2.4.1.8.1 1.1 0s.7-.4.9-.7c11.3-15.4 21.4-31.8 30-48.8.1-.2.2-.5.2-.8s0-.5-.1-.8-.2-.5-.4-.6-.4-.3-.7-.4c-15.8-6.1-31.2-13.4-45.9-21.9-.3-.2-.5-.4-.7-.6s-.3-.6-.3-.9 0-.6.2-.9.3-.5.6-.7c3.1-2.3 6.2-4.7 9.1-7.1.3-.2.6-.4.9-.4s.7 0 1 .1c96.2 43.9 200.4 43.9 295.5 0 .3-.1.7-.2 1-.2s.7.2.9.4c2.9 2.4 6 4.9 9.1 7.2.2.2.4.4.6.7s.2.6.2.9-.1.6-.3.9-.4.5-.6.6c-14.7 8.6-30 15.9-45.9 21.8-.2.1-.5.2-.7.4s-.3.4-.4.7-.1.5-.1.8.1.5.2.8c8.8 17 18.8 33.3 30 48.8.2.3.6.6.9.7s.8.1 1.1 0c52.9-16.2 102.6-41.3 147.1-74.2.2-.2.4-.4.5-.6s.2-.5.2-.8c12.3-126.8-20.5-236.9-86.9-334.5zm-302 267.7c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.4 59.2-52.8 59.2m195.4 0c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.2 59.2-52.8 59.2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "navigation.indexes", "navigation.instant", "navigation.tracking", "navigation.smooth", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy", "content.tabs.link", "content.tooltips", "toc.integrate"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> <script src=../../js/timeago.min.js></script> <script src=../../js/timeago_mkdocs_material.js></script> </body> </html>
site/architecture/services/index.html CHANGED
@@ -1,29 +1,30 @@
1
- <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DETERMINATOR Team"><link href=https://deepcritical.github.io/GradioDemo/architecture/services/ rel=canonical><link href=../middleware/ rel=prev><link href=../../api/agents/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Services - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#services-architecture class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Services </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/CONFIGURATION/ class=md-tabs__link> Configuration </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../../contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Quick Start Guide </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <label class=md-nav__link for=__nav_4 id=__nav_4_label tabindex=0> <span class=md-ellipsis> Configuration </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../configuration/CONFIGURATION/ class=md-nav__link> <span class=md-ellipsis> Configuration Guide </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_5 checked> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=true> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Services </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Services </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#embedding-service class=md-nav__link> <span class=md-ellipsis> Embedding Service </span> </a> </li> <li class=md-nav__item> <a href=#llamaindex-rag-service class=md-nav__link> <span class=md-ellipsis> LlamaIndex RAG Service </span> </a> </li> <li class=md-nav__item> <a href=#statistical-analyzer class=md-nav__link> <span class=md-ellipsis> Statistical Analyzer </span> </a> </li> <li class=md-nav__item> <a href=#singleton-pattern class=md-nav__link> <span class=md-ellipsis> Singleton Pattern </span> </a> </li> <li class=md-nav__item> <a href=#service-availability class=md-nav__link> <span class=md-ellipsis> Service Availability </span> </a> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <label class=md-nav__link for=__nav_7 id=__nav_7_label tabindex=0> <span class=md-ellipsis> Contributing </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../contributing/ class=md-nav__link> <span class=md-ellipsis> Contributing to DeepCritical </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=sidebar data-md-type=toc> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#embedding-service class=md-nav__link> <span class=md-ellipsis> Embedding Service </span> </a> </li> <li class=md-nav__item> <a href=#llamaindex-rag-service class=md-nav__link> <span class=md-ellipsis> LlamaIndex RAG Service </span> </a> </li> <li class=md-nav__item> <a href=#statistical-analyzer class=md-nav__link> <span class=md-ellipsis> Statistical Analyzer </span> </a> </li> <li class=md-nav__item> <a href=#singleton-pattern class=md-nav__link> <span class=md-ellipsis> Singleton Pattern </span> </a> </li> <li class=md-nav__item> <a href=#service-availability class=md-nav__link> <span class=md-ellipsis> Service Availability </span> </a> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=services-architecture>Services Architecture<a class=headerlink href=#services-architecture title="Permanent link">&para;</a></h1> <p>DeepCritical provides several services for embeddings, RAG, and statistical analysis.</p> <h2 id=embedding-service>Embedding Service<a class=headerlink href=#embedding-service title="Permanent link">&para;</a></h2> <p><strong>File</strong>: <code>src/services/embeddings.py</code></p> <p><strong>Purpose</strong>: Local sentence-transformers for semantic search and deduplication</p> <p><strong>Features</strong>: - <strong>No API Key Required</strong>: Uses local sentence-transformers models - <strong>Async-Safe</strong>: All operations use <code>run_in_executor()</code> to avoid blocking - <strong>ChromaDB Storage</strong>: Vector storage for embeddings - <strong>Deduplication</strong>: 0.85 similarity threshold (85% similarity = duplicate)</p> <p><strong>Model</strong>: Configurable via <code>settings.local_embedding_model</code> (default: <code>all-MiniLM-L6-v2</code>)</p> <p><strong>Methods</strong>: - <code>async def embed(text: str) -&gt; list[float]</code>: Generate embeddings - <code>async def embed_batch(texts: list[str]) -&gt; list[list[float]]</code>: Batch embedding - <code>async def similarity(text1: str, text2: str) -&gt; float</code>: Calculate similarity - <code>async def find_duplicates(texts: list[str], threshold: float = 0.85) -&gt; list[tuple[int, int]]</code>: Find duplicates</p> <p><strong>Usage</strong>: <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=kn>from</span><span class=w> </span><span class=nn>src.services.embeddings</span><span class=w> </span><span class=kn>import</span> <span class=n>get_embedding_service</span>
2
- <a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a>
3
- <a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a><span class=n>service</span> <span class=o>=</span> <span class=n>get_embedding_service</span><span class=p>()</span>
4
- <a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a><span class=n>embedding</span> <span class=o>=</span> <span class=k>await</span> <span class=n>service</span><span class=o>.</span><span class=n>embed</span><span class=p>(</span><span class=s2>&quot;text to embed&quot;</span><span class=p>)</span>
5
- </code></pre></div></p> <h2 id=llamaindex-rag-service>LlamaIndex RAG Service<a class=headerlink href=#llamaindex-rag-service title="Permanent link">&para;</a></h2> <p><strong>File</strong>: <code>src/services/rag.py</code></p> <p><strong>Purpose</strong>: Retrieval-Augmented Generation using LlamaIndex</p> <p><strong>Features</strong>: - <strong>OpenAI Embeddings</strong>: Requires <code>OPENAI_API_KEY</code> - <strong>ChromaDB Storage</strong>: Vector database for document storage - <strong>Metadata Preservation</strong>: Preserves source, title, URL, date, authors - <strong>Lazy Initialization</strong>: Graceful fallback if OpenAI key not available</p> <p><strong>Methods</strong>: - <code>async def ingest_evidence(evidence: list[Evidence]) -&gt; None</code>: Ingest evidence into RAG - <code>async def retrieve(query: str, top_k: int = 5) -&gt; list[Document]</code>: Retrieve relevant documents - <code>async def query(query: str, top_k: int = 5) -&gt; str</code>: Query with RAG</p> <p><strong>Usage</strong>: <div class=highlight><pre><span></span><code><a id=__codelineno-1-1 name=__codelineno-1-1 href=#__codelineno-1-1></a><span class=kn>from</span><span class=w> </span><span class=nn>src.services.rag</span><span class=w> </span><span class=kn>import</span> <span class=n>get_rag_service</span>
6
- <a id=__codelineno-1-2 name=__codelineno-1-2 href=#__codelineno-1-2></a>
7
- <a id=__codelineno-1-3 name=__codelineno-1-3 href=#__codelineno-1-3></a><span class=n>service</span> <span class=o>=</span> <span class=n>get_rag_service</span><span class=p>()</span>
8
- <a id=__codelineno-1-4 name=__codelineno-1-4 href=#__codelineno-1-4></a><span class=k>if</span> <span class=n>service</span><span class=p>:</span>
9
- <a id=__codelineno-1-5 name=__codelineno-1-5 href=#__codelineno-1-5></a> <span class=n>documents</span> <span class=o>=</span> <span class=k>await</span> <span class=n>service</span><span class=o>.</span><span class=n>retrieve</span><span class=p>(</span><span class=s2>&quot;query&quot;</span><span class=p>,</span> <span class=n>top_k</span><span class=o>=</span><span class=mi>5</span><span class=p>)</span>
10
- </code></pre></div></p> <h2 id=statistical-analyzer>Statistical Analyzer<a class=headerlink href=#statistical-analyzer title="Permanent link">&para;</a></h2> <p><strong>File</strong>: <code>src/services/statistical_analyzer.py</code></p> <p><strong>Purpose</strong>: Secure execution of AI-generated statistical code</p> <p><strong>Features</strong>: - <strong>Modal Sandbox</strong>: Secure, isolated execution environment - <strong>Code Generation</strong>: Generates Python code via LLM - <strong>Library Pinning</strong>: Version-pinned libraries in <code>SANDBOX_LIBRARIES</code> - <strong>Network Isolation</strong>: <code>block_network=True</code> by default</p> <p><strong>Libraries Available</strong>: - pandas, numpy, scipy - matplotlib, scikit-learn - statsmodels</p> <p><strong>Output</strong>: <code>AnalysisResult</code> with: - <code>verdict</code>: SUPPORTED, REFUTED, or INCONCLUSIVE - <code>code</code>: Generated analysis code - <code>output</code>: Execution output - <code>error</code>: Error message if execution failed</p> <p><strong>Usage</strong>: <div class=highlight><pre><span></span><code><a id=__codelineno-2-1 name=__codelineno-2-1 href=#__codelineno-2-1></a><span class=kn>from</span><span class=w> </span><span class=nn>src.services.statistical_analyzer</span><span class=w> </span><span class=kn>import</span> <span class=n>StatisticalAnalyzer</span>
11
- <a id=__codelineno-2-2 name=__codelineno-2-2 href=#__codelineno-2-2></a>
12
- <a id=__codelineno-2-3 name=__codelineno-2-3 href=#__codelineno-2-3></a><span class=n>analyzer</span> <span class=o>=</span> <span class=n>StatisticalAnalyzer</span><span class=p>()</span>
13
- <a id=__codelineno-2-4 name=__codelineno-2-4 href=#__codelineno-2-4></a><span class=n>result</span> <span class=o>=</span> <span class=k>await</span> <span class=n>analyzer</span><span class=o>.</span><span class=n>analyze</span><span class=p>(</span>
14
- <a id=__codelineno-2-5 name=__codelineno-2-5 href=#__codelineno-2-5></a> <span class=n>hypothesis</span><span class=o>=</span><span class=s2>&quot;Metformin reduces cancer risk&quot;</span><span class=p>,</span>
15
- <a id=__codelineno-2-6 name=__codelineno-2-6 href=#__codelineno-2-6></a> <span class=n>evidence</span><span class=o>=</span><span class=n>evidence_list</span>
16
- <a id=__codelineno-2-7 name=__codelineno-2-7 href=#__codelineno-2-7></a><span class=p>)</span>
17
- </code></pre></div></p> <h2 id=singleton-pattern>Singleton Pattern<a class=headerlink href=#singleton-pattern title="Permanent link">&para;</a></h2> <p>All services use the singleton pattern with <code>@lru_cache(maxsize=1)</code>:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-3-1 name=__codelineno-3-1 href=#__codelineno-3-1></a><span class=nd>@lru_cache</span><span class=p>(</span><span class=n>maxsize</span><span class=o>=</span><span class=mi>1</span><span class=p>)</span>
18
- <a id=__codelineno-3-2 name=__codelineno-3-2 href=#__codelineno-3-2></a><span class=k>def</span><span class=w> </span><span class=nf>get_embedding_service</span><span class=p>()</span> <span class=o>-&gt;</span> <span class=n>EmbeddingService</span><span class=p>:</span>
19
- <a id=__codelineno-3-3 name=__codelineno-3-3 href=#__codelineno-3-3></a> <span class=k>return</span> <span class=n>EmbeddingService</span><span class=p>()</span>
20
- </code></pre></div> <p>This ensures: - Single instance per process - Lazy initialization - No dependencies required at import time</p> <h2 id=service-availability>Service Availability<a class=headerlink href=#service-availability title="Permanent link">&para;</a></h2> <p>Services check availability before use:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-4-1 name=__codelineno-4-1 href=#__codelineno-4-1></a><span class=kn>from</span><span class=w> </span><span class=nn>src.utils.config</span><span class=w> </span><span class=kn>import</span> <span class=n>settings</span>
21
- <a id=__codelineno-4-2 name=__codelineno-4-2 href=#__codelineno-4-2></a>
22
- <a id=__codelineno-4-3 name=__codelineno-4-3 href=#__codelineno-4-3></a><span class=k>if</span> <span class=n>settings</span><span class=o>.</span><span class=n>modal_available</span><span class=p>:</span>
23
- <a id=__codelineno-4-4 name=__codelineno-4-4 href=#__codelineno-4-4></a> <span class=c1># Use Modal sandbox</span>
24
- <a id=__codelineno-4-5 name=__codelineno-4-5 href=#__codelineno-4-5></a> <span class=k>pass</span>
25
- <a id=__codelineno-4-6 name=__codelineno-4-6 href=#__codelineno-4-6></a>
26
- <a id=__codelineno-4-7 name=__codelineno-4-7 href=#__codelineno-4-7></a><span class=k>if</span> <span class=n>settings</span><span class=o>.</span><span class=n>has_openai_key</span><span class=p>:</span>
27
- <a id=__codelineno-4-8 name=__codelineno-4-8 href=#__codelineno-4-8></a> <span class=c1># Use OpenAI embeddings for RAG</span>
28
- <a id=__codelineno-4-9 name=__codelineno-4-9 href=#__codelineno-4-9></a> <span class=k>pass</span>
29
- </code></pre></div> <h2 id=see-also>See Also<a class=headerlink href=#see-also title="Permanent link">&para;</a></h2> <ul> <li><a href=../tools/ >Tools</a> - How services are used by search tools</li> <li><a href=../../api/services/ >API Reference - Services</a> - API documentation</li> <li><a href=../../configuration/ >Configuration</a> - Service configuration</li> </ul> </article> </div> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=github.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title=huggingface.co class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> </body> </html>
 
 
1
+ <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DeepCritical Team"><link href=https://deepcritical.github.io/GradioDemo/architecture/services/ rel=canonical><link href=../middleware/ rel=prev><link href=../../api/agents/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Services - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><link rel=stylesheet href=../../css/timeago.css><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#services-architecture class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Services </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/ class=md-tabs__link> Configuration </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../../contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Single Command Deploy </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <div class="md-nav__link md-nav__container"> <a href=../../configuration/ class="md-nav__link "> <span class=md-ellipsis> Configuration </span> </a> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_5 checked> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=true> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Services </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Services </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#embedding-service class=md-nav__link> <span class=md-ellipsis> Embedding Service </span> </a> </li> <li class=md-nav__item> <a href=#llamaindex-rag-service class=md-nav__link> <span class=md-ellipsis> LlamaIndex RAG Service </span> </a> </li> <li class=md-nav__item> <a href=#statistical-analyzer class=md-nav__link> <span class=md-ellipsis> Statistical Analyzer </span> </a> </li> <li class=md-nav__item> <a href=#singleton-pattern class=md-nav__link> <span class=md-ellipsis> Singleton Pattern </span> </a> </li> <li class=md-nav__item> <a href=#service-availability class=md-nav__link> <span class=md-ellipsis> Service Availability </span> </a> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <div class="md-nav__link md-nav__container"> <a href=../../contributing/ class="md-nav__link "> <span class=md-ellipsis> Contributing </span> </a> <label class="md-nav__link " for=__nav_7 id=__nav_7_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=services-architecture>Services Architecture<a class=headerlink href=#services-architecture title="Anchor link to this section">&para;</a></h1> <p>DeepCritical provides several services for embeddings, RAG, and statistical analysis.</p> <h2 id=embedding-service>Embedding Service<a class=headerlink href=#embedding-service title="Anchor link to this section">&para;</a></h2> <p><strong>File</strong>: <code>src/services/embeddings.py</code></p> <p><strong>Purpose</strong>: Local sentence-transformers for semantic search and deduplication</p> <p><strong>Features</strong>: - <strong>No API Key Required</strong>: Uses local sentence-transformers models - <strong>Async-Safe</strong>: All operations use <code>run_in_executor()</code> to avoid blocking the event loop - <strong>ChromaDB Storage</strong>: In-memory vector storage for embeddings - <strong>Deduplication</strong>: 0.9 similarity threshold by default (90% similarity = duplicate, configurable)</p> <p><strong>Model</strong>: Configurable via <code>settings.local_embedding_model</code> (default: <code>all-MiniLM-L6-v2</code>)</p> <p><strong>Methods</strong>: - <code>async def embed(text: str) -&gt; list[float]</code>: Generate embeddings (async-safe via <code>run_in_executor()</code>) - <code>async def embed_batch(texts: list[str]) -&gt; list[list[float]]</code>: Batch embedding (more efficient) - <code>async def add_evidence(evidence_id: str, content: str, metadata: dict[str, Any]) -&gt; None</code>: Add evidence to vector store - <code>async def search_similar(query: str, n_results: int = 5) -&gt; list[dict[str, Any]]</code>: Find semantically similar evidence - <code>async def deduplicate(new_evidence: list[Evidence], threshold: float = 0.9) -&gt; list[Evidence]</code>: Remove semantically duplicate evidence</p> <p><strong>Usage</strong>: <div class="language-python highlight"><pre><span></span><code><span id=__span-0-1><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=kn>from</span><span class=w> </span><span class=nn>src.services.embeddings</span><span class=w> </span><span class=kn>import</span> <span class=n>get_embedding_service</span>
2
+ </span><span id=__span-0-2><a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a>
3
+ </span><span id=__span-0-3><a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a><span class=n>service</span> <span class=o>=</span> <span class=n>get_embedding_service</span><span class=p>()</span>
4
+ </span><span id=__span-0-4><a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a><span class=n>embedding</span> <span class=o>=</span> <span class=k>await</span> <span class=n>service</span><span class=o>.</span><span class=n>embed</span><span class=p>(</span><span class=s2>&quot;text to embed&quot;</span><span class=p>)</span>
5
+ </span></code></pre></div></p> <h2 id=llamaindex-rag-service>LlamaIndex RAG Service<a class=headerlink href=#llamaindex-rag-service title="Anchor link to this section">&para;</a></h2> <p><strong>File</strong>: <code>src/services/llamaindex_rag.py</code></p> <p><strong>Purpose</strong>: Retrieval-Augmented Generation using LlamaIndex</p> <p><strong>Features</strong>: - <strong>Multiple Embedding Providers</strong>: OpenAI embeddings (requires <code>OPENAI_API_KEY</code>) or local sentence-transformers (no API key) - <strong>Multiple LLM Providers</strong>: HuggingFace LLM (preferred) or OpenAI LLM (fallback) for query synthesis - <strong>ChromaDB Storage</strong>: Vector database for document storage (supports in-memory mode) - <strong>Metadata Preservation</strong>: Preserves source, title, URL, date, authors - <strong>Lazy Initialization</strong>: Graceful fallback if dependencies not available</p> <p><strong>Initialization Parameters</strong>: - <code>use_openai_embeddings: bool | None</code>: Force OpenAI embeddings (None = auto-detect) - <code>use_in_memory: bool</code>: Use in-memory ChromaDB client (useful for tests) - <code>oauth_token: str | None</code>: Optional OAuth token from HuggingFace login (takes priority over env vars)</p> <p><strong>Methods</strong>: - <code>async def ingest_evidence(evidence: list[Evidence]) -&gt; None</code>: Ingest evidence into RAG - <code>async def retrieve(query: str, top_k: int = 5) -&gt; list[Document]</code>: Retrieve relevant documents - <code>async def query(query: str, top_k: int = 5) -&gt; str</code>: Query with RAG</p> <p><strong>Usage</strong>: <div class="language-python highlight"><pre><span></span><code><span id=__span-1-1><a id=__codelineno-1-1 name=__codelineno-1-1 href=#__codelineno-1-1></a><span class=kn>from</span><span class=w> </span><span class=nn>src.services.llamaindex_rag</span><span class=w> </span><span class=kn>import</span> <span class=n>get_rag_service</span>
6
+ </span><span id=__span-1-2><a id=__codelineno-1-2 name=__codelineno-1-2 href=#__codelineno-1-2></a>
7
+ </span><span id=__span-1-3><a id=__codelineno-1-3 name=__codelineno-1-3 href=#__codelineno-1-3></a><span class=n>service</span> <span class=o>=</span> <span class=n>get_rag_service</span><span class=p>(</span>
8
+ </span><span id=__span-1-4><a id=__codelineno-1-4 name=__codelineno-1-4 href=#__codelineno-1-4></a> <span class=n>use_openai_embeddings</span><span class=o>=</span><span class=kc>False</span><span class=p>,</span> <span class=c1># Use local embeddings</span>
9
+ </span><span id=__span-1-5><a id=__codelineno-1-5 name=__codelineno-1-5 href=#__codelineno-1-5></a> <span class=n>use_in_memory</span><span class=o>=</span><span class=kc>True</span><span class=p>,</span> <span class=c1># Use in-memory ChromaDB</span>
10
+ </span><span id=__span-1-6><a id=__codelineno-1-6 name=__codelineno-1-6 href=#__codelineno-1-6></a> <span class=n>oauth_token</span><span class=o>=</span><span class=n>token</span> <span class=c1># Optional HuggingFace token</span>
11
+ </span><span id=__span-1-7><a id=__codelineno-1-7 name=__codelineno-1-7 href=#__codelineno-1-7></a><span class=p>)</span>
12
+ </span><span id=__span-1-8><a id=__codelineno-1-8 name=__codelineno-1-8 href=#__codelineno-1-8></a><span class=k>if</span> <span class=n>service</span><span class=p>:</span>
13
+ </span><span id=__span-1-9><a id=__codelineno-1-9 name=__codelineno-1-9 href=#__codelineno-1-9></a> <span class=n>documents</span> <span class=o>=</span> <span class=k>await</span> <span class=n>service</span><span class=o>.</span><span class=n>retrieve</span><span class=p>(</span><span class=s2>&quot;query&quot;</span><span class=p>,</span> <span class=n>top_k</span><span class=o>=</span><span class=mi>5</span><span class=p>)</span>
14
+ </span></code></pre></div></p> <h2 id=statistical-analyzer>Statistical Analyzer<a class=headerlink href=#statistical-analyzer title="Anchor link to this section">&para;</a></h2> <p><strong>File</strong>: <code>src/services/statistical_analyzer.py</code></p> <p><strong>Purpose</strong>: Secure execution of AI-generated statistical code</p> <p><strong>Features</strong>: - <strong>Modal Sandbox</strong>: Secure, isolated execution environment - <strong>Code Generation</strong>: Generates Python code via LLM - <strong>Library Pinning</strong>: Version-pinned libraries in <code>SANDBOX_LIBRARIES</code> - <strong>Network Isolation</strong>: <code>block_network=True</code> by default</p> <p><strong>Libraries Available</strong>: - pandas, numpy, scipy - matplotlib, scikit-learn - statsmodels</p> <p><strong>Output</strong>: <code>AnalysisResult</code> with: - <code>verdict</code>: SUPPORTED, REFUTED, or INCONCLUSIVE - <code>code</code>: Generated analysis code - <code>output</code>: Execution output - <code>error</code>: Error message if execution failed</p> <p><strong>Usage</strong>: <div class="language-python highlight"><pre><span></span><code><span id=__span-2-1><a id=__codelineno-2-1 name=__codelineno-2-1 href=#__codelineno-2-1></a><span class=kn>from</span><span class=w> </span><span class=nn>src.services.statistical_analyzer</span><span class=w> </span><span class=kn>import</span> <span class=n>StatisticalAnalyzer</span>
15
+ </span><span id=__span-2-2><a id=__codelineno-2-2 name=__codelineno-2-2 href=#__codelineno-2-2></a>
16
+ </span><span id=__span-2-3><a id=__codelineno-2-3 name=__codelineno-2-3 href=#__codelineno-2-3></a><span class=n>analyzer</span> <span class=o>=</span> <span class=n>StatisticalAnalyzer</span><span class=p>()</span>
17
+ </span><span id=__span-2-4><a id=__codelineno-2-4 name=__codelineno-2-4 href=#__codelineno-2-4></a><span class=n>result</span> <span class=o>=</span> <span class=k>await</span> <span class=n>analyzer</span><span class=o>.</span><span class=n>analyze</span><span class=p>(</span>
18
+ </span><span id=__span-2-5><a id=__codelineno-2-5 name=__codelineno-2-5 href=#__codelineno-2-5></a> <span class=n>hypothesis</span><span class=o>=</span><span class=s2>&quot;Metformin reduces cancer risk&quot;</span><span class=p>,</span>
19
+ </span><span id=__span-2-6><a id=__codelineno-2-6 name=__codelineno-2-6 href=#__codelineno-2-6></a> <span class=n>evidence</span><span class=o>=</span><span class=n>evidence_list</span>
20
+ </span><span id=__span-2-7><a id=__codelineno-2-7 name=__codelineno-2-7 href=#__codelineno-2-7></a><span class=p>)</span>
21
+ </span></code></pre></div></p> <h2 id=singleton-pattern>Singleton Pattern<a class=headerlink href=#singleton-pattern title="Anchor link to this section">&para;</a></h2> <p>Services use singleton patterns for lazy initialization:</p> <p><strong>EmbeddingService</strong>: Uses a global variable pattern:</p> <p><strong>LlamaIndexRAGService</strong>: Direct instantiation (no caching):</p> <p>This ensures: - Single instance per process - Lazy initialization - No dependencies required at import time</p> <h2 id=service-availability>Service Availability<a class=headerlink href=#service-availability title="Anchor link to this section">&para;</a></h2> <p>Services check availability before use:</p> <div class="language-python highlight"><pre><span></span><code><span id=__span-3-1><a id=__codelineno-3-1 name=__codelineno-3-1 href=#__codelineno-3-1></a><span class=kn>from</span><span class=w> </span><span class=nn>src.utils.config</span><span class=w> </span><span class=kn>import</span> <span class=n>settings</span>
22
+ </span><span id=__span-3-2><a id=__codelineno-3-2 name=__codelineno-3-2 href=#__codelineno-3-2></a>
23
+ </span><span id=__span-3-3><a id=__codelineno-3-3 name=__codelineno-3-3 href=#__codelineno-3-3></a><span class=k>if</span> <span class=n>settings</span><span class=o>.</span><span class=n>modal_available</span><span class=p>:</span>
24
+ </span><span id=__span-3-4><a id=__codelineno-3-4 name=__codelineno-3-4 href=#__codelineno-3-4></a> <span class=c1># Use Modal sandbox</span>
25
+ </span><span id=__span-3-5><a id=__codelineno-3-5 name=__codelineno-3-5 href=#__codelineno-3-5></a> <span class=k>pass</span>
26
+ </span><span id=__span-3-6><a id=__codelineno-3-6 name=__codelineno-3-6 href=#__codelineno-3-6></a>
27
+ </span><span id=__span-3-7><a id=__codelineno-3-7 name=__codelineno-3-7 href=#__codelineno-3-7></a><span class=k>if</span> <span class=n>settings</span><span class=o>.</span><span class=n>has_openai_key</span><span class=p>:</span>
28
+ </span><span id=__span-3-8><a id=__codelineno-3-8 name=__codelineno-3-8 href=#__codelineno-3-8></a> <span class=c1># Use OpenAI embeddings for RAG</span>
29
+ </span><span id=__span-3-9><a id=__codelineno-3-9 name=__codelineno-3-9 href=#__codelineno-3-9></a> <span class=k>pass</span>
30
+ </span></code></pre></div> <h2 id=see-also>See Also<a class=headerlink href=#see-also title="Anchor link to this section">&para;</a></h2> <ul> <li><a href=../tools/ >Tools</a> - How services are used by search tools</li> <li><a href=../../api/services/ >API Reference - Services</a> - API documentation</li> <li><a href=../../configuration/ >Configuration</a> - Service configuration</li> </ul> <aside class=md-source-file> <span class=md-source-file__fact> <span class=md-icon title="Last update"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="December 2, 2025 01:35:56 UTC"><span class=timeago datetime=2025-12-02T01:35:56+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="December 2, 2025 01:35:56 UTC">2025-12-02</span> </span> <span class=md-source-file__fact> <span class=md-icon title=Created> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M14.47 15.08 11 13V7h1.5v5.25l3.08 1.83c-.41.28-.79.62-1.11 1m-1.39 4.84c-.36.05-.71.08-1.08.08-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8c0 .37-.03.72-.08 1.08.69.1 1.33.32 1.92.64.1-.56.16-1.13.16-1.72 0-5.5-4.5-10-10-10S2 6.5 2 12s4.47 10 10 10c.59 0 1.16-.06 1.72-.16-.32-.59-.54-1.23-.64-1.92M18 15v3h-3v2h3v3h2v-3h3v-2h-3v-3z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="November 29, 2025 21:40:26 UTC"><span class=timeago datetime=2025-11-29T21:40:26+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="November 29, 2025 21:40:26 UTC">2025-11-29</span> </span> </aside> </article> </div> <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=GitHub class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://twitter.com/josephpollack target=_blank rel=noopener title=Twitter class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M459.4 151.7c.3 4.5.3 9.1.3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103v-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53C87.4 130.8 165 172.4 252.1 176.9c-1.6-7.8-2.6-15.9-2.6-24C249.5 95.1 296.3 48 354.4 48c30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title="Live Demo" class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> <a href=https://discord.gg/n8ytYeh25n target=_blank rel=noopener title=Discord class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 576 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M492.5 69.8c-.2-.3-.4-.6-.8-.7-38.1-17.5-78.4-30-119.7-37.1-.4-.1-.8 0-1.1.1s-.6.4-.8.8c-5.5 9.9-10.5 20.2-14.9 30.6-44.6-6.8-89.9-6.8-134.4 0-4.5-10.5-9.5-20.7-15.1-30.6-.2-.3-.5-.6-.8-.8s-.7-.2-1.1-.2C162.5 39 122.2 51.5 84.1 69c-.3.1-.6.4-.8.7C7.1 183.5-13.8 294.6-3.6 404.2c0 .3.1.5.2.8s.3.4.5.6c44.4 32.9 94 58 146.8 74.2.4.1.8.1 1.1 0s.7-.4.9-.7c11.3-15.4 21.4-31.8 30-48.8.1-.2.2-.5.2-.8s0-.5-.1-.8-.2-.5-.4-.6-.4-.3-.7-.4c-15.8-6.1-31.2-13.4-45.9-21.9-.3-.2-.5-.4-.7-.6s-.3-.6-.3-.9 0-.6.2-.9.3-.5.6-.7c3.1-2.3 6.2-4.7 9.1-7.1.3-.2.6-.4.9-.4s.7 0 1 .1c96.2 43.9 200.4 43.9 295.5 0 .3-.1.7-.2 1-.2s.7.2.9.4c2.9 2.4 6 4.9 9.1 7.2.2.2.4.4.6.7s.2.6.2.9-.1.6-.3.9-.4.5-.6.6c-14.7 8.6-30 15.9-45.9 21.8-.2.1-.5.2-.7.4s-.3.4-.4.7-.1.5-.1.8.1.5.2.8c8.8 17 18.8 33.3 30 48.8.2.3.6.6.9.7s.8.1 1.1 0c52.9-16.2 102.6-41.3 147.1-74.2.2-.2.4-.4.5-.6s.2-.5.2-.8c12.3-126.8-20.5-236.9-86.9-334.5zm-302 267.7c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.4 59.2-52.8 59.2m195.4 0c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.2 59.2-52.8 59.2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "navigation.indexes", "navigation.instant", "navigation.tracking", "navigation.smooth", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy", "content.tabs.link", "content.tooltips", "toc.integrate"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> <script src=../../js/timeago.min.js></script> <script src=../../js/timeago_mkdocs_material.js></script> </body> </html>
site/architecture/tools/index.html CHANGED
@@ -1,18 +1,19 @@
1
- <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DETERMINATOR Team"><link href=https://deepcritical.github.io/GradioDemo/architecture/tools/ rel=canonical><link href=../orchestrators/ rel=prev><link href=../middleware/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Tools - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#tools-architecture class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Tools </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/CONFIGURATION/ class=md-tabs__link> Configuration </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../../contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Quick Start Guide </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <label class=md-nav__link for=__nav_4 id=__nav_4_label tabindex=0> <span class=md-ellipsis> Configuration </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../configuration/CONFIGURATION/ class=md-nav__link> <span class=md-ellipsis> Configuration Guide </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_5 checked> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=true> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Tools </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Tools </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#searchtool-protocol class=md-nav__link> <span class=md-ellipsis> SearchTool Protocol </span> </a> </li> <li class=md-nav__item> <a href=#rate-limiting class=md-nav__link> <span class=md-ellipsis> Rate Limiting </span> </a> </li> <li class=md-nav__item> <a href=#error-handling class=md-nav__link> <span class=md-ellipsis> Error Handling </span> </a> </li> <li class=md-nav__item> <a href=#query-preprocessing class=md-nav__link> <span class=md-ellipsis> Query Preprocessing </span> </a> </li> <li class=md-nav__item> <a href=#evidence-conversion class=md-nav__link> <span class=md-ellipsis> Evidence Conversion </span> </a> </li> <li class=md-nav__item> <a href=#tool-implementations class=md-nav__link> <span class=md-ellipsis> Tool Implementations </span> </a> <nav class=md-nav aria-label="Tool Implementations"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#pubmed-tool class=md-nav__link> <span class=md-ellipsis> PubMed Tool </span> </a> </li> <li class=md-nav__item> <a href=#clinicaltrials-tool class=md-nav__link> <span class=md-ellipsis> ClinicalTrials Tool </span> </a> </li> <li class=md-nav__item> <a href=#europe-pmc-tool class=md-nav__link> <span class=md-ellipsis> Europe PMC Tool </span> </a> </li> <li class=md-nav__item> <a href=#rag-tool class=md-nav__link> <span class=md-ellipsis> RAG Tool </span> </a> </li> <li class=md-nav__item> <a href=#search-handler class=md-nav__link> <span class=md-ellipsis> Search Handler </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#tool-registration class=md-nav__link> <span class=md-ellipsis> Tool Registration </span> </a> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <label class=md-nav__link for=__nav_7 id=__nav_7_label tabindex=0> <span class=md-ellipsis> Contributing </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../contributing/ class=md-nav__link> <span class=md-ellipsis> Contributing to DeepCritical </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=sidebar data-md-type=toc> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#searchtool-protocol class=md-nav__link> <span class=md-ellipsis> SearchTool Protocol </span> </a> </li> <li class=md-nav__item> <a href=#rate-limiting class=md-nav__link> <span class=md-ellipsis> Rate Limiting </span> </a> </li> <li class=md-nav__item> <a href=#error-handling class=md-nav__link> <span class=md-ellipsis> Error Handling </span> </a> </li> <li class=md-nav__item> <a href=#query-preprocessing class=md-nav__link> <span class=md-ellipsis> Query Preprocessing </span> </a> </li> <li class=md-nav__item> <a href=#evidence-conversion class=md-nav__link> <span class=md-ellipsis> Evidence Conversion </span> </a> </li> <li class=md-nav__item> <a href=#tool-implementations class=md-nav__link> <span class=md-ellipsis> Tool Implementations </span> </a> <nav class=md-nav aria-label="Tool Implementations"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#pubmed-tool class=md-nav__link> <span class=md-ellipsis> PubMed Tool </span> </a> </li> <li class=md-nav__item> <a href=#clinicaltrials-tool class=md-nav__link> <span class=md-ellipsis> ClinicalTrials Tool </span> </a> </li> <li class=md-nav__item> <a href=#europe-pmc-tool class=md-nav__link> <span class=md-ellipsis> Europe PMC Tool </span> </a> </li> <li class=md-nav__item> <a href=#rag-tool class=md-nav__link> <span class=md-ellipsis> RAG Tool </span> </a> </li> <li class=md-nav__item> <a href=#search-handler class=md-nav__link> <span class=md-ellipsis> Search Handler </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#tool-registration class=md-nav__link> <span class=md-ellipsis> Tool Registration </span> </a> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=tools-architecture>Tools Architecture<a class=headerlink href=#tools-architecture title="Permanent link">&para;</a></h1> <p>DeepCritical implements a protocol-based search tool system for retrieving evidence from multiple sources.</p> <h2 id=searchtool-protocol>SearchTool Protocol<a class=headerlink href=#searchtool-protocol title="Permanent link">&para;</a></h2> <p>All tools implement the <code>SearchTool</code> protocol from <code>src/tools/base.py</code>:</p> <h2 id=rate-limiting>Rate Limiting<a class=headerlink href=#rate-limiting title="Permanent link">&para;</a></h2> <p>All tools use the <code>@retry</code> decorator from tenacity:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=nd>@retry</span><span class=p>(</span>
2
- <a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a> <span class=n>stop</span><span class=o>=</span><span class=n>stop_after_attempt</span><span class=p>(</span><span class=mi>3</span><span class=p>),</span>
3
- <a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a> <span class=n>wait</span><span class=o>=</span><span class=n>wait_exponential</span><span class=p>(</span><span class=o>...</span><span class=p>)</span>
4
- <a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a><span class=p>)</span>
5
- <a id=__codelineno-0-5 name=__codelineno-0-5 href=#__codelineno-0-5></a><span class=k>async</span> <span class=k>def</span><span class=w> </span><span class=nf>search</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span> <span class=n>query</span><span class=p>:</span> <span class=nb>str</span><span class=p>,</span> <span class=n>max_results</span><span class=p>:</span> <span class=nb>int</span> <span class=o>=</span> <span class=mi>10</span><span class=p>)</span> <span class=o>-&gt;</span> <span class=nb>list</span><span class=p>[</span><span class=n>Evidence</span><span class=p>]:</span>
6
- <a id=__codelineno-0-6 name=__codelineno-0-6 href=#__codelineno-0-6></a> <span class=c1># Implementation</span>
7
- </code></pre></div> <p>Tools with API rate limits implement <code>_rate_limit()</code> method and use shared rate limiters from <code>src/tools/rate_limiter.py</code>.</p> <h2 id=error-handling>Error Handling<a class=headerlink href=#error-handling title="Permanent link">&para;</a></h2> <p>Tools raise custom exceptions:</p> <ul> <li><code>SearchError</code>: General search failures</li> <li><code>RateLimitError</code>: Rate limit exceeded</li> </ul> <p>Tools handle HTTP errors (429, 500, timeout) and return empty lists on non-critical errors (with warning logs).</p> <h2 id=query-preprocessing>Query Preprocessing<a class=headerlink href=#query-preprocessing title="Permanent link">&para;</a></h2> <p>Tools use <code>preprocess_query()</code> from <code>src/tools/query_utils.py</code> to:</p> <ul> <li>Remove noise from queries</li> <li>Expand synonyms</li> <li>Normalize query format</li> </ul> <h2 id=evidence-conversion>Evidence Conversion<a class=headerlink href=#evidence-conversion title="Permanent link">&para;</a></h2> <p>All tools convert API responses to <code>Evidence</code> objects with:</p> <ul> <li><code>Citation</code>: Title, URL, date, authors</li> <li><code>content</code>: Evidence text</li> <li><code>relevance_score</code>: 0.0-1.0 relevance score</li> <li><code>metadata</code>: Additional metadata</li> </ul> <p>Missing fields are handled gracefully with defaults.</p> <h2 id=tool-implementations>Tool Implementations<a class=headerlink href=#tool-implementations title="Permanent link">&para;</a></h2> <h3 id=pubmed-tool>PubMed Tool<a class=headerlink href=#pubmed-tool title="Permanent link">&para;</a></h3> <p><strong>File</strong>: <code>src/tools/pubmed.py</code></p> <p><strong>API</strong>: NCBI E-utilities (ESearch → EFetch)</p> <p><strong>Rate Limiting</strong>: - 0.34s between requests (3 req/sec without API key) - 0.1s between requests (10 req/sec with NCBI API key)</p> <p><strong>Features</strong>: - XML parsing with <code>xmltodict</code> - Handles single vs. multiple articles - Query preprocessing - Evidence conversion with metadata extraction</p> <h3 id=clinicaltrials-tool>ClinicalTrials Tool<a class=headerlink href=#clinicaltrials-tool title="Permanent link">&para;</a></h3> <p><strong>File</strong>: <code>src/tools/clinicaltrials.py</code></p> <p><strong>API</strong>: ClinicalTrials.gov API v2</p> <p><strong>Important</strong>: Uses <code>requests</code> library (NOT httpx) because WAF blocks httpx TLS fingerprint.</p> <p><strong>Execution</strong>: Runs in thread pool: <code>await asyncio.to_thread(requests.get, ...)</code></p> <p><strong>Filtering</strong>: - Only interventional studies - Status: <code>COMPLETED</code>, <code>ACTIVE_NOT_RECRUITING</code>, <code>RECRUITING</code>, <code>ENROLLING_BY_INVITATION</code></p> <p><strong>Features</strong>: - Parses nested JSON structure - Extracts trial metadata - Evidence conversion</p> <h3 id=europe-pmc-tool>Europe PMC Tool<a class=headerlink href=#europe-pmc-tool title="Permanent link">&para;</a></h3> <p><strong>File</strong>: <code>src/tools/europepmc.py</code></p> <p><strong>API</strong>: Europe PMC REST API</p> <p><strong>Features</strong>: - Handles preprint markers: <code>[PREPRINT - Not peer-reviewed]</code> - Builds URLs from DOI or PMID - Checks <code>pubTypeList</code> for preprint detection - Includes both preprints and peer-reviewed articles</p> <h3 id=rag-tool>RAG Tool<a class=headerlink href=#rag-tool title="Permanent link">&para;</a></h3> <p><strong>File</strong>: <code>src/tools/rag_tool.py</code></p> <p><strong>Purpose</strong>: Semantic search within collected evidence</p> <p><strong>Implementation</strong>: Wraps <code>LlamaIndexRAGService</code></p> <p><strong>Features</strong>: - Returns Evidence from RAG results - Handles evidence ingestion - Semantic similarity search - Metadata preservation</p> <h3 id=search-handler>Search Handler<a class=headerlink href=#search-handler title="Permanent link">&para;</a></h3> <p><strong>File</strong>: <code>src/tools/search_handler.py</code></p> <p><strong>Purpose</strong>: Orchestrates parallel searches across multiple tools</p> <p><strong>Features</strong>: - Uses <code>asyncio.gather()</code> with <code>return_exceptions=True</code> - Aggregates results into <code>SearchResult</code> - Handles tool failures gracefully - Deduplicates results by URL</p> <h2 id=tool-registration>Tool Registration<a class=headerlink href=#tool-registration title="Permanent link">&para;</a></h2> <p>Tools are registered in the search handler:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-1-1 name=__codelineno-1-1 href=#__codelineno-1-1></a><span class=kn>from</span><span class=w> </span><span class=nn>src.tools.pubmed</span><span class=w> </span><span class=kn>import</span> <span class=n>PubMedTool</span>
8
- <a id=__codelineno-1-2 name=__codelineno-1-2 href=#__codelineno-1-2></a><span class=kn>from</span><span class=w> </span><span class=nn>src.tools.clinicaltrials</span><span class=w> </span><span class=kn>import</span> <span class=n>ClinicalTrialsTool</span>
9
- <a id=__codelineno-1-3 name=__codelineno-1-3 href=#__codelineno-1-3></a><span class=kn>from</span><span class=w> </span><span class=nn>src.tools.europepmc</span><span class=w> </span><span class=kn>import</span> <span class=n>EuropePMCTool</span>
10
- <a id=__codelineno-1-4 name=__codelineno-1-4 href=#__codelineno-1-4></a>
11
- <a id=__codelineno-1-5 name=__codelineno-1-5 href=#__codelineno-1-5></a><span class=n>search_handler</span> <span class=o>=</span> <span class=n>SearchHandler</span><span class=p>(</span>
12
- <a id=__codelineno-1-6 name=__codelineno-1-6 href=#__codelineno-1-6></a> <span class=n>tools</span><span class=o>=</span><span class=p>[</span>
13
- <a id=__codelineno-1-7 name=__codelineno-1-7 href=#__codelineno-1-7></a> <span class=n>PubMedTool</span><span class=p>(),</span>
14
- <a id=__codelineno-1-8 name=__codelineno-1-8 href=#__codelineno-1-8></a> <span class=n>ClinicalTrialsTool</span><span class=p>(),</span>
15
- <a id=__codelineno-1-9 name=__codelineno-1-9 href=#__codelineno-1-9></a> <span class=n>EuropePMCTool</span><span class=p>(),</span>
16
- <a id=__codelineno-1-10 name=__codelineno-1-10 href=#__codelineno-1-10></a> <span class=p>]</span>
17
- <a id=__codelineno-1-11 name=__codelineno-1-11 href=#__codelineno-1-11></a><span class=p>)</span>
18
- </code></pre></div> <h2 id=see-also>See Also<a class=headerlink href=#see-also title="Permanent link">&para;</a></h2> <ul> <li><a href=../services/ >Services</a> - RAG and embedding services</li> <li><a href=../../api/tools/ >API Reference - Tools</a> - API documentation</li> <li><a href=../../contributing/implementation-patterns/ >Contributing - Implementation Patterns</a> - Development guidelines</li> </ul> </article> </div> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=github.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title=huggingface.co class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> </body> </html>
 
 
1
+ <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DeepCritical Team"><link href=https://deepcritical.github.io/GradioDemo/architecture/tools/ rel=canonical><link href=../orchestrators/ rel=prev><link href=../middleware/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Tools - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><link rel=stylesheet href=../../css/timeago.css><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#tools-architecture class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Tools </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/ class=md-tabs__link> Configuration </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../../contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Single Command Deploy </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <div class="md-nav__link md-nav__container"> <a href=../../configuration/ class="md-nav__link "> <span class=md-ellipsis> Configuration </span> </a> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_5 checked> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=true> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Tools </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Tools </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#searchtool-protocol class=md-nav__link> <span class=md-ellipsis> SearchTool Protocol </span> </a> </li> <li class=md-nav__item> <a href=#rate-limiting class=md-nav__link> <span class=md-ellipsis> Rate Limiting </span> </a> </li> <li class=md-nav__item> <a href=#error-handling class=md-nav__link> <span class=md-ellipsis> Error Handling </span> </a> </li> <li class=md-nav__item> <a href=#query-preprocessing class=md-nav__link> <span class=md-ellipsis> Query Preprocessing </span> </a> </li> <li class=md-nav__item> <a href=#evidence-conversion class=md-nav__link> <span class=md-ellipsis> Evidence Conversion </span> </a> </li> <li class=md-nav__item> <a href=#tool-implementations class=md-nav__link> <span class=md-ellipsis> Tool Implementations </span> </a> <nav class=md-nav aria-label="Tool Implementations"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#pubmed-tool class=md-nav__link> <span class=md-ellipsis> PubMed Tool </span> </a> </li> <li class=md-nav__item> <a href=#clinicaltrials-tool class=md-nav__link> <span class=md-ellipsis> ClinicalTrials Tool </span> </a> </li> <li class=md-nav__item> <a href=#europe-pmc-tool class=md-nav__link> <span class=md-ellipsis> Europe PMC Tool </span> </a> </li> <li class=md-nav__item> <a href=#rag-tool class=md-nav__link> <span class=md-ellipsis> RAG Tool </span> </a> </li> <li class=md-nav__item> <a href=#search-handler class=md-nav__link> <span class=md-ellipsis> Search Handler </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#tool-registration class=md-nav__link> <span class=md-ellipsis> Tool Registration </span> </a> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <div class="md-nav__link md-nav__container"> <a href=../../contributing/ class="md-nav__link "> <span class=md-ellipsis> Contributing </span> </a> <label class="md-nav__link " for=__nav_7 id=__nav_7_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=tools-architecture>Tools Architecture<a class=headerlink href=#tools-architecture title="Anchor link to this section">&para;</a></h1> <p>DeepCritical implements a protocol-based search tool system for retrieving evidence from multiple sources.</p> <h2 id=searchtool-protocol>SearchTool Protocol<a class=headerlink href=#searchtool-protocol title="Anchor link to this section">&para;</a></h2> <p>All tools implement the <code>SearchTool</code> protocol from <code>src/tools/base.py</code>:</p> <h2 id=rate-limiting>Rate Limiting<a class=headerlink href=#rate-limiting title="Anchor link to this section">&para;</a></h2> <p>All tools use the <code>@retry</code> decorator from tenacity:</p> <p>Tools with API rate limits implement <code>_rate_limit()</code> method and use shared rate limiters from <code>src/tools/rate_limiter.py</code>.</p> <h2 id=error-handling>Error Handling<a class=headerlink href=#error-handling title="Anchor link to this section">&para;</a></h2> <p>Tools raise custom exceptions:</p> <ul> <li><code>SearchError</code>: General search failures</li> <li><code>RateLimitError</code>: Rate limit exceeded</li> </ul> <p>Tools handle HTTP errors (429, 500, timeout) and return empty lists on non-critical errors (with warning logs).</p> <h2 id=query-preprocessing>Query Preprocessing<a class=headerlink href=#query-preprocessing title="Anchor link to this section">&para;</a></h2> <p>Tools use <code>preprocess_query()</code> from <code>src/tools/query_utils.py</code> to:</p> <ul> <li>Remove noise from queries</li> <li>Expand synonyms</li> <li>Normalize query format</li> </ul> <h2 id=evidence-conversion>Evidence Conversion<a class=headerlink href=#evidence-conversion title="Anchor link to this section">&para;</a></h2> <p>All tools convert API responses to <code>Evidence</code> objects with:</p> <ul> <li><code>Citation</code>: Title, URL, date, authors</li> <li><code>content</code>: Evidence text</li> <li><code>relevance_score</code>: 0.0-1.0 relevance score</li> <li><code>metadata</code>: Additional metadata</li> </ul> <p>Missing fields are handled gracefully with defaults.</p> <h2 id=tool-implementations>Tool Implementations<a class=headerlink href=#tool-implementations title="Anchor link to this section">&para;</a></h2> <h3 id=pubmed-tool>PubMed Tool<a class=headerlink href=#pubmed-tool title="Anchor link to this section">&para;</a></h3> <p><strong>File</strong>: <code>src/tools/pubmed.py</code></p> <p><strong>API</strong>: NCBI E-utilities (ESearch → EFetch)</p> <p><strong>Rate Limiting</strong>: - 0.34s between requests (3 req/sec without API key) - 0.1s between requests (10 req/sec with NCBI API key)</p> <p><strong>Features</strong>: - XML parsing with <code>xmltodict</code> - Handles single vs. multiple articles - Query preprocessing - Evidence conversion with metadata extraction</p> <h3 id=clinicaltrials-tool>ClinicalTrials Tool<a class=headerlink href=#clinicaltrials-tool title="Anchor link to this section">&para;</a></h3> <p><strong>File</strong>: <code>src/tools/clinicaltrials.py</code></p> <p><strong>API</strong>: ClinicalTrials.gov API v2</p> <p><strong>Important</strong>: Uses <code>requests</code> library (NOT httpx) because WAF blocks httpx TLS fingerprint.</p> <p><strong>Execution</strong>: Runs in thread pool: <code>await asyncio.to_thread(requests.get, ...)</code></p> <p><strong>Filtering</strong>: - Only interventional studies - Status: <code>COMPLETED</code>, <code>ACTIVE_NOT_RECRUITING</code>, <code>RECRUITING</code>, <code>ENROLLING_BY_INVITATION</code></p> <p><strong>Features</strong>: - Parses nested JSON structure - Extracts trial metadata - Evidence conversion</p> <h3 id=europe-pmc-tool>Europe PMC Tool<a class=headerlink href=#europe-pmc-tool title="Anchor link to this section">&para;</a></h3> <p><strong>File</strong>: <code>src/tools/europepmc.py</code></p> <p><strong>API</strong>: Europe PMC REST API</p> <p><strong>Features</strong>: - Handles preprint markers: <code>[PREPRINT - Not peer-reviewed]</code> - Builds URLs from DOI or PMID - Checks <code>pubTypeList</code> for preprint detection - Includes both preprints and peer-reviewed articles</p> <h3 id=rag-tool>RAG Tool<a class=headerlink href=#rag-tool title="Anchor link to this section">&para;</a></h3> <p><strong>File</strong>: <code>src/tools/rag_tool.py</code></p> <p><strong>Purpose</strong>: Semantic search within collected evidence</p> <p><strong>Implementation</strong>: Wraps <code>LlamaIndexRAGService</code></p> <p><strong>Features</strong>: - Returns Evidence from RAG results - Handles evidence ingestion - Semantic similarity search - Metadata preservation</p> <h3 id=search-handler>Search Handler<a class=headerlink href=#search-handler title="Anchor link to this section">&para;</a></h3> <p><strong>File</strong>: <code>src/tools/search_handler.py</code></p> <p><strong>Purpose</strong>: Orchestrates parallel searches across multiple tools</p> <p><strong>Initialization Parameters</strong>: - <code>tools: list[SearchTool]</code>: List of search tools to use - <code>timeout: float = 30.0</code>: Timeout for each search in seconds - <code>include_rag: bool = False</code>: Whether to include RAG tool in searches - <code>auto_ingest_to_rag: bool = True</code>: Whether to automatically ingest results into RAG - <code>oauth_token: str | None = None</code>: Optional OAuth token from HuggingFace login (for RAG LLM)</p> <p><strong>Methods</strong>: - <code>async def execute(query: str, max_results_per_tool: int = 10) -&gt; SearchResult</code>: Execute search across all tools in parallel</p> <p><strong>Features</strong>: - Uses <code>asyncio.gather()</code> with <code>return_exceptions=True</code> for parallel execution - Aggregates results into <code>SearchResult</code> with evidence and metadata - Handles tool failures gracefully (continues with other tools) - Deduplicates results by URL - Automatically ingests results into RAG if <code>auto_ingest_to_rag=True</code> - Can add RAG tool dynamically via <code>add_rag_tool()</code> method</p> <h2 id=tool-registration>Tool Registration<a class=headerlink href=#tool-registration title="Anchor link to this section">&para;</a></h2> <p>Tools are registered in the search handler:</p> <div class="language-python highlight"><pre><span></span><code><span id=__span-0-1><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=kn>from</span><span class=w> </span><span class=nn>src.tools.pubmed</span><span class=w> </span><span class=kn>import</span> <span class=n>PubMedTool</span>
2
+ </span><span id=__span-0-2><a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a><span class=kn>from</span><span class=w> </span><span class=nn>src.tools.clinicaltrials</span><span class=w> </span><span class=kn>import</span> <span class=n>ClinicalTrialsTool</span>
3
+ </span><span id=__span-0-3><a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a><span class=kn>from</span><span class=w> </span><span class=nn>src.tools.europepmc</span><span class=w> </span><span class=kn>import</span> <span class=n>EuropePMCTool</span>
4
+ </span><span id=__span-0-4><a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a><span class=kn>from</span><span class=w> </span><span class=nn>src.tools.search_handler</span><span class=w> </span><span class=kn>import</span> <span class=n>SearchHandler</span>
5
+ </span><span id=__span-0-5><a id=__codelineno-0-5 name=__codelineno-0-5 href=#__codelineno-0-5></a>
6
+ </span><span id=__span-0-6><a id=__codelineno-0-6 name=__codelineno-0-6 href=#__codelineno-0-6></a><span class=n>search_handler</span> <span class=o>=</span> <span class=n>SearchHandler</span><span class=p>(</span>
7
+ </span><span id=__span-0-7><a id=__codelineno-0-7 name=__codelineno-0-7 href=#__codelineno-0-7></a> <span class=n>tools</span><span class=o>=</span><span class=p>[</span>
8
+ </span><span id=__span-0-8><a id=__codelineno-0-8 name=__codelineno-0-8 href=#__codelineno-0-8></a> <span class=n>PubMedTool</span><span class=p>(),</span>
9
+ </span><span id=__span-0-9><a id=__codelineno-0-9 name=__codelineno-0-9 href=#__codelineno-0-9></a> <span class=n>ClinicalTrialsTool</span><span class=p>(),</span>
10
+ </span><span id=__span-0-10><a id=__codelineno-0-10 name=__codelineno-0-10 href=#__codelineno-0-10></a> <span class=n>EuropePMCTool</span><span class=p>(),</span>
11
+ </span><span id=__span-0-11><a id=__codelineno-0-11 name=__codelineno-0-11 href=#__codelineno-0-11></a> <span class=p>],</span>
12
+ </span><span id=__span-0-12><a id=__codelineno-0-12 name=__codelineno-0-12 href=#__codelineno-0-12></a> <span class=n>include_rag</span><span class=o>=</span><span class=kc>True</span><span class=p>,</span> <span class=c1># Include RAG tool for semantic search</span>
13
+ </span><span id=__span-0-13><a id=__codelineno-0-13 name=__codelineno-0-13 href=#__codelineno-0-13></a> <span class=n>auto_ingest_to_rag</span><span class=o>=</span><span class=kc>True</span><span class=p>,</span> <span class=c1># Automatically ingest results into RAG</span>
14
+ </span><span id=__span-0-14><a id=__codelineno-0-14 name=__codelineno-0-14 href=#__codelineno-0-14></a> <span class=n>oauth_token</span><span class=o>=</span><span class=n>token</span> <span class=c1># Optional HuggingFace token for RAG LLM</span>
15
+ </span><span id=__span-0-15><a id=__codelineno-0-15 name=__codelineno-0-15 href=#__codelineno-0-15></a><span class=p>)</span>
16
+ </span><span id=__span-0-16><a id=__codelineno-0-16 name=__codelineno-0-16 href=#__codelineno-0-16></a>
17
+ </span><span id=__span-0-17><a id=__codelineno-0-17 name=__codelineno-0-17 href=#__codelineno-0-17></a><span class=c1># Execute search</span>
18
+ </span><span id=__span-0-18><a id=__codelineno-0-18 name=__codelineno-0-18 href=#__codelineno-0-18></a><span class=n>result</span> <span class=o>=</span> <span class=k>await</span> <span class=n>search_handler</span><span class=o>.</span><span class=n>execute</span><span class=p>(</span><span class=s2>&quot;query&quot;</span><span class=p>,</span> <span class=n>max_results_per_tool</span><span class=o>=</span><span class=mi>10</span><span class=p>)</span>
19
+ </span></code></pre></div> <h2 id=see-also>See Also<a class=headerlink href=#see-also title="Anchor link to this section">&para;</a></h2> <ul> <li><a href=../services/ >Services</a> - RAG and embedding services</li> <li><a href=../../api/tools/ >API Reference - Tools</a> - API documentation</li> <li><a href=../../contributing/implementation-patterns/ >Contributing - Implementation Patterns</a> - Development guidelines</li> </ul> <aside class=md-source-file> <span class=md-source-file__fact> <span class=md-icon title="Last update"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="December 2, 2025 01:35:56 UTC"><span class=timeago datetime=2025-12-02T01:35:56+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="December 2, 2025 01:35:56 UTC">2025-12-02</span> </span> <span class=md-source-file__fact> <span class=md-icon title=Created> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M14.47 15.08 11 13V7h1.5v5.25l3.08 1.83c-.41.28-.79.62-1.11 1m-1.39 4.84c-.36.05-.71.08-1.08.08-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8c0 .37-.03.72-.08 1.08.69.1 1.33.32 1.92.64.1-.56.16-1.13.16-1.72 0-5.5-4.5-10-10-10S2 6.5 2 12s4.47 10 10 10c.59 0 1.16-.06 1.72-.16-.32-.59-.54-1.23-.64-1.92M18 15v3h-3v2h3v3h2v-3h3v-2h-3v-3z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="November 29, 2025 21:40:26 UTC"><span class=timeago datetime=2025-11-29T21:40:26+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="November 29, 2025 21:40:26 UTC">2025-11-29</span> </span> </aside> </article> </div> <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=GitHub class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://twitter.com/josephpollack target=_blank rel=noopener title=Twitter class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M459.4 151.7c.3 4.5.3 9.1.3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103v-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53C87.4 130.8 165 172.4 252.1 176.9c-1.6-7.8-2.6-15.9-2.6-24C249.5 95.1 296.3 48 354.4 48c30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title="Live Demo" class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> <a href=https://discord.gg/n8ytYeh25n target=_blank rel=noopener title=Discord class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 576 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M492.5 69.8c-.2-.3-.4-.6-.8-.7-38.1-17.5-78.4-30-119.7-37.1-.4-.1-.8 0-1.1.1s-.6.4-.8.8c-5.5 9.9-10.5 20.2-14.9 30.6-44.6-6.8-89.9-6.8-134.4 0-4.5-10.5-9.5-20.7-15.1-30.6-.2-.3-.5-.6-.8-.8s-.7-.2-1.1-.2C162.5 39 122.2 51.5 84.1 69c-.3.1-.6.4-.8.7C7.1 183.5-13.8 294.6-3.6 404.2c0 .3.1.5.2.8s.3.4.5.6c44.4 32.9 94 58 146.8 74.2.4.1.8.1 1.1 0s.7-.4.9-.7c11.3-15.4 21.4-31.8 30-48.8.1-.2.2-.5.2-.8s0-.5-.1-.8-.2-.5-.4-.6-.4-.3-.7-.4c-15.8-6.1-31.2-13.4-45.9-21.9-.3-.2-.5-.4-.7-.6s-.3-.6-.3-.9 0-.6.2-.9.3-.5.6-.7c3.1-2.3 6.2-4.7 9.1-7.1.3-.2.6-.4.9-.4s.7 0 1 .1c96.2 43.9 200.4 43.9 295.5 0 .3-.1.7-.2 1-.2s.7.2.9.4c2.9 2.4 6 4.9 9.1 7.2.2.2.4.4.6.7s.2.6.2.9-.1.6-.3.9-.4.5-.6.6c-14.7 8.6-30 15.9-45.9 21.8-.2.1-.5.2-.7.4s-.3.4-.4.7-.1.5-.1.8.1.5.2.8c8.8 17 18.8 33.3 30 48.8.2.3.6.6.9.7s.8.1 1.1 0c52.9-16.2 102.6-41.3 147.1-74.2.2-.2.4-.4.5-.6s.2-.5.2-.8c12.3-126.8-20.5-236.9-86.9-334.5zm-302 267.7c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.4 59.2-52.8 59.2m195.4 0c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.2 59.2-52.8 59.2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "navigation.indexes", "navigation.instant", "navigation.tracking", "navigation.smooth", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy", "content.tabs.link", "content.tooltips", "toc.integrate"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> <script src=../../js/timeago.min.js></script> <script src=../../js/timeago_mkdocs_material.js></script> </body> </html>
site/architecture/workflow-diagrams/index.html CHANGED
@@ -1,4 +1,4 @@
1
- <!DOCTYPE html><html class=no-js lang=en> <head><meta charset=utf-8><meta content="width=device-width,initial-scale=1" name=viewport><meta content="Generalist Deep Research Agent that Stops at Nothing" name=description><meta content="The DETERMINATOR Team" name=author><link href=https://deepcritical.github.io/GradioDemo/architecture/workflow-diagrams/ rel=canonical><link href=../graph_orchestration/ rel=prev><link href=../agents/ rel=next><link href=../../assets/images/favicon.png rel=icon><meta content="mkdocs-1.6.1, mkdocs-material-9.7.0" name=generator><title>Workflow Diagrams - The DETERMINATOR</title><link href=../../assets/stylesheets/main.618322db.min.css rel=stylesheet><link href=../../assets/stylesheets/palette.ab4e12ef.min.css rel=stylesheet><link crossorigin href=https://fonts.gstatic.com rel=preconnect><link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback" rel=stylesheet><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body data-md-color-accent=red data-md-color-primary=orange data-md-color-scheme=default dir=ltr> <input autocomplete=off class=md-toggle data-md-toggle=drawer id=__drawer type=checkbox> <input autocomplete=off class=md-toggle data-md-toggle=search id=__search type=checkbox> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a class=md-skip href=#deepcritical-workflow-simplified-magentic-architecture> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav aria-label=Header class="md-header__inner md-grid"> <a aria-label="The DETERMINATOR" class="md-header__button md-logo" data-md-component=logo href=../.. title="The DETERMINATOR"> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"></path></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"></path></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Workflow Diagrams </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input aria-label="Switch to dark mode" class=md-option data-md-color-accent=red data-md-color-media data-md-color-primary=orange data-md-color-scheme=default id=__palette_0 name=__palette type=radio> <label class="md-header__button md-icon" for=__palette_1 hidden title="Switch to dark mode"> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"></path></svg> </label> <input aria-label="Switch to light mode" class=md-option data-md-color-accent=red data-md-color-media data-md-color-primary=orange data-md-color-scheme=slate id=__palette_1 name=__palette type=radio> <label class="md-header__button md-icon" for=__palette_0 hidden title="Switch to light mode"> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"></path></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"></path></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input aria-label=Search autocapitalize=off autocomplete=off autocorrect=off class=md-search__input data-md-component=search-query name=query placeholder=Search required spellcheck=false type=text> <label class="md-search__icon md-icon" for=__search> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"></path></svg> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"></path></svg> </label> <nav aria-label=Search class=md-search__options> <button aria-label=Clear class="md-search__icon md-icon" tabindex=-1 title=Clear type=reset> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap data-md-scrollfix tabindex=0> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a class=md-source data-md-component=source href=https://github.com/DeepCritical/GradioDemo title="Go to repository"> <div class="md-source__icon md-icon"> <svg viewbox="0 0 512 512" xmlns=http://www.w3.org/2000/svg><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"></path></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav aria-label=Tabs class=md-tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a class=md-tabs__link href=../..> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/CONFIGURATION/ class=md-tabs__link> Configuration </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../../contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav aria-label=Navigation class="md-nav md-nav--primary md-nav--lifted" data-md-level=0> <label class=md-nav__title for=__drawer> <a aria-label="The DETERMINATOR" class="md-nav__button md-logo" data-md-component=logo href=../.. title="The DETERMINATOR"> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"></path></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a class=md-source data-md-component=source href=https://github.com/DeepCritical/GradioDemo title="Go to repository"> <div class="md-source__icon md-icon"> <svg viewbox="0 0 512 512" xmlns=http://www.w3.org/2000/svg><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"></path></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a class=md-nav__link href=../..> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" id=__nav_2 type=checkbox> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav aria-expanded=false aria-labelledby=__nav_2_label class=md-nav data-md-level=1> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" id=__nav_3 type=checkbox> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav aria-expanded=false aria-labelledby=__nav_3_label class=md-nav data-md-level=1> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Quick Start Guide </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" id=__nav_4 type=checkbox> <label class=md-nav__link for=__nav_4 id=__nav_4_label tabindex=0> <span class=md-ellipsis> Configuration </span> <span class="md-nav__icon md-icon"></span> </label> <nav aria-expanded=false aria-labelledby=__nav_4_label class=md-nav data-md-level=1> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../configuration/CONFIGURATION/ class=md-nav__link> <span class=md-ellipsis> Configuration Guide </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input checked class="md-nav__toggle md-toggle" id=__nav_5 type=checkbox> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav aria-expanded=true aria-labelledby=__nav_5_label class=md-nav data-md-level=1> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" id=__toc type=checkbox> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Workflow Diagrams </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Workflow Diagrams </span> </a> <nav aria-label="Table of contents" class="md-nav md-nav--secondary"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a class=md-nav__link href=#1-high-level-magentic-workflow> <span class=md-ellipsis> 1. High-Level Magentic Workflow </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#2-magentic-manager-the-6-phase-cycle> <span class=md-ellipsis> 2. Magentic Manager: The 6-Phase Cycle </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#3-simplified-agent-architecture> <span class=md-ellipsis> 3. Simplified Agent Architecture </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#4-dynamic-workflow-example> <span class=md-ellipsis> 4. Dynamic Workflow Example </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#5-manager-decision-logic> <span class=md-ellipsis> 5. Manager Decision Logic </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#6-hypothesis-agent-workflow> <span class=md-ellipsis> 6. Hypothesis Agent Workflow </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#7-search-agent-workflow> <span class=md-ellipsis> 7. Search Agent Workflow </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#8-analysis-agent-workflow> <span class=md-ellipsis> 8. Analysis Agent Workflow </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#9-report-agent-workflow> <span class=md-ellipsis> 9. Report Agent Workflow </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#10-data-flow-event-streaming> <span class=md-ellipsis> 10. Data Flow &amp; Event Streaming </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#11-mcp-tool-architecture> <span class=md-ellipsis> 11. MCP Tool Architecture </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#12-progress-tracking-stall-detection> <span class=md-ellipsis> 12. Progress Tracking &amp; Stall Detection </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#13-gradio-ui-integration> <span class=md-ellipsis> 13. Gradio UI Integration </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#14-complete-system-context> <span class=md-ellipsis> 14. Complete System Context </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#15-workflow-timeline-simplified> <span class=md-ellipsis> 15. Workflow Timeline (Simplified) </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#key-differences-from-original-design> <span class=md-ellipsis> Key Differences from Original Design </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#simplified-design-principles> <span class=md-ellipsis> Simplified Design Principles </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#legend> <span class=md-ellipsis> Legend </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#implementation-highlights> <span class=md-ellipsis> Implementation Highlights </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#see-also> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" id=__nav_6 type=checkbox> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav aria-expanded=false aria-labelledby=__nav_6_label class=md-nav data-md-level=1> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" id=__nav_7 type=checkbox> <label class=md-nav__link for=__nav_7 id=__nav_7_label tabindex=0> <span class=md-ellipsis> Contributing </span> <span class="md-nav__icon md-icon"></span> </label> <nav aria-expanded=false aria-labelledby=__nav_7_label class=md-nav data-md-level=1> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../contributing/ class=md-nav__link> <span class=md-ellipsis> Contributing to DeepCritical </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=sidebar data-md-type=toc> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav aria-label="Table of contents" class="md-nav md-nav--secondary"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a class=md-nav__link href=#1-high-level-magentic-workflow> <span class=md-ellipsis> 1. High-Level Magentic Workflow </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#2-magentic-manager-the-6-phase-cycle> <span class=md-ellipsis> 2. Magentic Manager: The 6-Phase Cycle </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#3-simplified-agent-architecture> <span class=md-ellipsis> 3. Simplified Agent Architecture </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#4-dynamic-workflow-example> <span class=md-ellipsis> 4. Dynamic Workflow Example </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#5-manager-decision-logic> <span class=md-ellipsis> 5. Manager Decision Logic </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#6-hypothesis-agent-workflow> <span class=md-ellipsis> 6. Hypothesis Agent Workflow </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#7-search-agent-workflow> <span class=md-ellipsis> 7. Search Agent Workflow </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#8-analysis-agent-workflow> <span class=md-ellipsis> 8. Analysis Agent Workflow </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#9-report-agent-workflow> <span class=md-ellipsis> 9. Report Agent Workflow </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#10-data-flow-event-streaming> <span class=md-ellipsis> 10. Data Flow &amp; Event Streaming </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#11-mcp-tool-architecture> <span class=md-ellipsis> 11. MCP Tool Architecture </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#12-progress-tracking-stall-detection> <span class=md-ellipsis> 12. Progress Tracking &amp; Stall Detection </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#13-gradio-ui-integration> <span class=md-ellipsis> 13. Gradio UI Integration </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#14-complete-system-context> <span class=md-ellipsis> 14. Complete System Context </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#15-workflow-timeline-simplified> <span class=md-ellipsis> 15. Workflow Timeline (Simplified) </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#key-differences-from-original-design> <span class=md-ellipsis> Key Differences from Original Design </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#simplified-design-principles> <span class=md-ellipsis> Simplified Design Principles </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#legend> <span class=md-ellipsis> Legend </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#implementation-highlights> <span class=md-ellipsis> Implementation Highlights </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#see-also> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=deepcritical-workflow-simplified-magentic-architecture>DeepCritical Workflow - Simplified Magentic Architecture<a class=headerlink href=#deepcritical-workflow-simplified-magentic-architecture title="Permanent link">¶</a></h1> <blockquote> <p><strong>Architecture Pattern</strong>: Microsoft Magentic Orchestration <strong>Design Philosophy</strong>: Simple, dynamic, manager-driven coordination <strong>Key Innovation</strong>: Intelligent manager replaces rigid sequential phases</p> </blockquote> <hr> <h2 id=1-high-level-magentic-workflow>1. High-Level Magentic Workflow<a class=headerlink href=#1-high-level-magentic-workflow title="Permanent link">¶</a></h2> <pre class=mermaid><code>flowchart TD
2
  Start([User Query]) --&gt; Manager[Magentic Manager&lt;br/&gt;Plan • Select • Assess • Adapt]
3
 
4
  Manager --&gt;|Plans| Task1[Task Decomposition]
@@ -31,7 +31,7 @@
31
  style ReportAgent fill:#fff4e6
32
  style Decision fill:#ffd6d6
33
  style Synthesis fill:#d4edda
34
- style Output fill:#e1f5e1</code></pre> <h2 id=2-magentic-manager-the-6-phase-cycle>2. Magentic Manager: The 6-Phase Cycle<a class=headerlink href=#2-magentic-manager-the-6-phase-cycle title="Permanent link">¶</a></h2> <pre class=mermaid><code>flowchart LR
35
  P1[1. Planning&lt;br/&gt;Analyze task&lt;br/&gt;Create strategy] --&gt; P2[2. Agent Selection&lt;br/&gt;Pick best agent&lt;br/&gt;for subtask]
36
  P2 --&gt; P3[3. Execution&lt;br/&gt;Run selected&lt;br/&gt;agent with tools]
37
  P3 --&gt; P4[4. Assessment&lt;br/&gt;Evaluate quality&lt;br/&gt;Check progress]
@@ -47,7 +47,7 @@
47
  style P4 fill:#ffd6d6
48
  style P5 fill:#fff3cd
49
  style P6 fill:#d4edda
50
- style Done fill:#e1f5e1</code></pre> <h2 id=3-simplified-agent-architecture>3. Simplified Agent Architecture<a class=headerlink href=#3-simplified-agent-architecture title="Permanent link">¶</a></h2> <pre class=mermaid><code>graph TB
51
  subgraph "Orchestration Layer"
52
  Manager[Magentic Manager&lt;br/&gt;• Plans workflow&lt;br/&gt;• Selects agents&lt;br/&gt;• Assesses quality&lt;br/&gt;• Adapts strategy]
53
  SharedContext[(Shared Context&lt;br/&gt;• Hypotheses&lt;br/&gt;• Search Results&lt;br/&gt;• Analysis&lt;br/&gt;• Progress)]
@@ -93,7 +93,7 @@
93
  style WebSearch fill:#e6f3ff
94
  style CodeExec fill:#e6f3ff
95
  style RAG fill:#e6f3ff
96
- style Viz fill:#e6f3ff</code></pre> <h2 id=4-dynamic-workflow-example>4. Dynamic Workflow Example<a class=headerlink href=#4-dynamic-workflow-example title="Permanent link">¶</a></h2> <pre class=mermaid><code>sequenceDiagram
97
  participant User
98
  participant Manager
99
  participant HypAgent
@@ -129,7 +129,7 @@
129
  ReportAgent--&gt;&gt;Manager: Returns formatted report
130
  Note over Manager: SYNTHESIZE: Combine all results
131
 
132
- Manager-&gt;&gt;User: Final Research Report</code></pre> <h2 id=5-manager-decision-logic>5. Manager Decision Logic<a class=headerlink href=#5-manager-decision-logic title="Permanent link">¶</a></h2> <pre class=mermaid><code>flowchart TD
133
  Start([Manager Receives Task]) --&gt; Plan[Create Initial Plan]
134
 
135
  Plan --&gt; Select[Select Agent for Next Subtask]
@@ -164,7 +164,7 @@
164
  style Q3 fill:#ffe6e6
165
  style Q4 fill:#ffe6e6
166
  style Synth fill:#d4edda
167
- style Done fill:#e1f5e1</code></pre> <h2 id=6-hypothesis-agent-workflow>6. Hypothesis Agent Workflow<a class=headerlink href=#6-hypothesis-agent-workflow title="Permanent link">¶</a></h2> <pre class=mermaid><code>flowchart LR
168
  Input[Research Query] --&gt; Domain[Identify Domain&lt;br/&gt;&amp; Key Concepts]
169
  Domain --&gt; Context[Retrieve Background&lt;br/&gt;Knowledge]
170
  Context --&gt; Generate[Generate 3-5&lt;br/&gt;Initial Hypotheses]
@@ -176,7 +176,7 @@
176
 
177
  style Input fill:#e1f5e1
178
  style Output fill:#fff4e6
179
- style Struct fill:#e6f3ff</code></pre> <h2 id=7-search-agent-workflow>7. Search Agent Workflow<a class=headerlink href=#7-search-agent-workflow title="Permanent link">¶</a></h2> <pre class=mermaid><code>flowchart TD
180
  Input[Hypotheses] --&gt; Strategy[Formulate Search&lt;br/&gt;Strategy per Hypothesis]
181
 
182
  Strategy --&gt; Multi[Multi-Source Search]
@@ -199,7 +199,7 @@
199
  style Input fill:#fff4e6
200
  style Multi fill:#ffe6e6
201
  style Vector fill:#ffe6f0
202
- style Output fill:#e6f3ff</code></pre> <h2 id=8-analysis-agent-workflow>8. Analysis Agent Workflow<a class=headerlink href=#8-analysis-agent-workflow title="Permanent link">¶</a></h2> <pre class=mermaid><code>flowchart TD
203
  Input1[Hypotheses] --&gt; Extract
204
  Input2[Search Results] --&gt; Extract[Extract Evidence&lt;br/&gt;per Hypothesis]
205
 
@@ -224,7 +224,7 @@
224
  style Input1 fill:#fff4e6
225
  style Input2 fill:#e6f3ff
226
  style Execute fill:#ffe6e6
227
- style Output fill:#e6ffe6</code></pre> <h2 id=9-report-agent-workflow>9. Report Agent Workflow<a class=headerlink href=#9-report-agent-workflow title="Permanent link">¶</a></h2> <pre class=mermaid><code>flowchart TD
228
  Input1[Query] --&gt; Assemble
229
  Input2[Hypotheses] --&gt; Assemble
230
  Input3[Search Results] --&gt; Assemble
@@ -264,7 +264,7 @@
264
  style Input2 fill:#fff4e6
265
  style Input3 fill:#e6f3ff
266
  style Input4 fill:#e6ffe6
267
- style Output fill:#d4edda</code></pre> <h2 id=10-data-flow-event-streaming>10. Data Flow &amp; Event Streaming<a class=headerlink href=#10-data-flow-event-streaming title="Permanent link">¶</a></h2> <pre class=mermaid><code>flowchart TD
268
  User[👤 User] --&gt;|Research Query| UI[Gradio UI]
269
  UI --&gt;|Submit| Manager[Magentic Manager]
270
 
@@ -303,7 +303,7 @@
303
  style Context fill:#ffe6f0
304
  style VectorDB fill:#ffe6f0
305
  style WebSearch fill:#f0f0f0
306
- style CodeExec fill:#f0f0f0</code></pre> <h2 id=11-mcp-tool-architecture>11. MCP Tool Architecture<a class=headerlink href=#11-mcp-tool-architecture title="Permanent link">¶</a></h2> <pre class=mermaid><code>graph TB
307
  subgraph "Agent Layer"
308
  Manager[Magentic Manager]
309
  HypAgent[Hypothesis Agent]
@@ -351,7 +351,7 @@
351
  style Server1 fill:#e6f3ff
352
  style Server2 fill:#e6f3ff
353
  style Server3 fill:#e6f3ff
354
- style Server4 fill:#e6f3ff</code></pre> <h2 id=12-progress-tracking-stall-detection>12. Progress Tracking &amp; Stall Detection<a class=headerlink href=#12-progress-tracking-stall-detection title="Permanent link">¶</a></h2> <pre class=mermaid><code>stateDiagram-v2
355
  [*] --&gt; Initialization: User Query
356
 
357
  Initialization --&gt; Planning: Manager starts
@@ -391,7 +391,7 @@
391
  Stall = no new progress
392
  after agent execution
393
  Triggers plan reset
394
- end note</code></pre> <h2 id=13-gradio-ui-integration>13. Gradio UI Integration<a class=headerlink href=#13-gradio-ui-integration title="Permanent link">¶</a></h2> <pre class=mermaid><code>graph TD
395
  App[Gradio App&lt;br/&gt;DeepCritical Research Agent]
396
 
397
  App --&gt; Input[Input Section]
@@ -424,7 +424,7 @@
424
  style Input fill:#fff4e6
425
  style Status fill:#e6f3ff
426
  style Output fill:#e6ffe6
427
- style Workflow fill:#ffe6e6</code></pre> <h2 id=14-complete-system-context>14. Complete System Context<a class=headerlink href=#14-complete-system-context title="Permanent link">¶</a></h2> <pre class=mermaid><code>graph LR
428
  User[👤 Researcher&lt;br/&gt;Asks research questions] --&gt;|Submits query| DC[DeepCritical&lt;br/&gt;Magentic Workflow]
429
 
430
  DC --&gt;|Literature search| PubMed[PubMed API&lt;br/&gt;Medical papers]
@@ -453,7 +453,7 @@
453
  style Claude fill:#ffd6d6
454
  style Modal fill:#f0f0f0
455
  style Chroma fill:#ffe6f0
456
- style HF fill:#d4edda</code></pre> <h2 id=15-workflow-timeline-simplified>15. Workflow Timeline (Simplified)<a class=headerlink href=#15-workflow-timeline-simplified title="Permanent link">¶</a></h2> <pre class=mermaid><code>gantt
457
  title DeepCritical Magentic Workflow - Typical Execution
458
  dateFormat mm:ss
459
  axisFormat %M:%S
@@ -485,19 +485,4 @@
485
  Formatting :r3, after r2, 10s
486
 
487
  section Manager Synthesis
488
- Final synthesis :f1, after r3, 10s</code></pre> <hr> <h2 id=key-differences-from-original-design>Key Differences from Original Design<a class=headerlink href=#key-differences-from-original-design title="Permanent link">¶</a></h2> <table> <thead> <tr> <th>Aspect</th> <th>Original (Judge-in-Loop)</th> <th>New (Magentic)</th> </tr> </thead> <tbody> <tr> <td><strong>Control Flow</strong></td> <td>Fixed sequential phases</td> <td>Dynamic agent selection</td> </tr> <tr> <td><strong>Quality Control</strong></td> <td>Separate Judge Agent</td> <td>Manager assessment built-in</td> </tr> <tr> <td><strong>Retry Logic</strong></td> <td>Phase-level with feedback</td> <td>Agent-level with adaptation</td> </tr> <tr> <td><strong>Flexibility</strong></td> <td>Rigid 4-phase pipeline</td> <td>Adaptive workflow</td> </tr> <tr> <td><strong>Complexity</strong></td> <td>5 agents (including Judge)</td> <td>4 agents (no Judge)</td> </tr> <tr> <td><strong>Progress Tracking</strong></td> <td>Manual state management</td> <td>Built-in round/stall detection</td> </tr> <tr> <td><strong>Agent Coordination</strong></td> <td>Sequential handoff</td> <td>Manager-driven dynamic selection</td> </tr> <tr> <td><strong>Error Recovery</strong></td> <td>Retry same phase</td> <td>Try different agent or replan</td> </tr> </tbody> </table> <hr> <h2 id=simplified-design-principles>Simplified Design Principles<a class=headerlink href=#simplified-design-principles title="Permanent link">¶</a></h2> <ol> <li><strong>Manager is Intelligent</strong>: LLM-powered manager handles planning, selection, and quality assessment</li> <li><strong>No Separate Judge</strong>: Manager's assessment phase replaces dedicated Judge Agent</li> <li><strong>Dynamic Workflow</strong>: Agents can be called multiple times in any order based on need</li> <li><strong>Built-in Safety</strong>: max_round_count (15) and max_stall_count (3) prevent infinite loops</li> <li><strong>Event-Driven UI</strong>: Real-time streaming updates to Gradio interface</li> <li><strong>MCP-Powered Tools</strong>: All external capabilities via Model Context Protocol</li> <li><strong>Shared Context</strong>: Centralized state accessible to all agents</li> <li><strong>Progress Awareness</strong>: Manager tracks what's been done and what's needed</li> </ol> <hr> <h2 id=legend>Legend<a class=headerlink href=#legend title="Permanent link">¶</a></h2> <ul> <li>🔴 <strong>Red/Pink</strong>: Manager, orchestration, decision-making</li> <li>🟡 <strong>Yellow/Orange</strong>: Specialist agents, processing</li> <li>🔵 <strong>Blue</strong>: Data, tools, MCP services</li> <li>🟣 <strong>Purple/Pink</strong>: Storage, databases, state</li> <li>🟢 <strong>Green</strong>: User interactions, final outputs</li> <li>⚪ <strong>Gray</strong>: External services, APIs</li> </ul> <hr> <h2 id=implementation-highlights>Implementation Highlights<a class=headerlink href=#implementation-highlights title="Permanent link">¶</a></h2> <p><strong>Simple 4-Agent Setup:</strong> <div class=highlight><pre><span></span><code><a href=#__codelineno-0-1 id=__codelineno-0-1 name=__codelineno-0-1></a><span class=n>workflow</span> <span class=o>=</span> <span class=p>(</span>
489
- <a href=#__codelineno-0-2 id=__codelineno-0-2 name=__codelineno-0-2></a> <span class=n>MagenticBuilder</span><span class=p>()</span>
490
- <a href=#__codelineno-0-3 id=__codelineno-0-3 name=__codelineno-0-3></a> <span class=o>.</span><span class=n>participants</span><span class=p>(</span>
491
- <a href=#__codelineno-0-4 id=__codelineno-0-4 name=__codelineno-0-4></a> <span class=n>hypothesis</span><span class=o>=</span><span class=n>HypothesisAgent</span><span class=p>(</span><span class=n>tools</span><span class=o>=</span><span class=p>[</span><span class=n>background_tool</span><span class=p>]),</span>
492
- <a href=#__codelineno-0-5 id=__codelineno-0-5 name=__codelineno-0-5></a> <span class=n>search</span><span class=o>=</span><span class=n>SearchAgent</span><span class=p>(</span><span class=n>tools</span><span class=o>=</span><span class=p>[</span><span class=n>web_search</span><span class=p>,</span> <span class=n>rag_tool</span><span class=p>]),</span>
493
- <a href=#__codelineno-0-6 id=__codelineno-0-6 name=__codelineno-0-6></a> <span class=n>analysis</span><span class=o>=</span><span class=n>AnalysisAgent</span><span class=p>(</span><span class=n>tools</span><span class=o>=</span><span class=p>[</span><span class=n>code_execution</span><span class=p>]),</span>
494
- <a href=#__codelineno-0-7 id=__codelineno-0-7 name=__codelineno-0-7></a> <span class=n>report</span><span class=o>=</span><span class=n>ReportAgent</span><span class=p>(</span><span class=n>tools</span><span class=o>=</span><span class=p>[</span><span class=n>code_execution</span><span class=p>,</span> <span class=n>visualization</span><span class=p>])</span>
495
- <a href=#__codelineno-0-8 id=__codelineno-0-8 name=__codelineno-0-8></a> <span class=p>)</span>
496
- <a href=#__codelineno-0-9 id=__codelineno-0-9 name=__codelineno-0-9></a> <span class=o>.</span><span class=n>with_standard_manager</span><span class=p>(</span>
497
- <a href=#__codelineno-0-10 id=__codelineno-0-10 name=__codelineno-0-10></a> <span class=n>chat_client</span><span class=o>=</span><span class=n>AnthropicClient</span><span class=p>(</span><span class=n>model</span><span class=o>=</span><span class=s2>"claude-sonnet-4"</span><span class=p>),</span>
498
- <a href=#__codelineno-0-11 id=__codelineno-0-11 name=__codelineno-0-11></a> <span class=n>max_round_count</span><span class=o>=</span><span class=mi>15</span><span class=p>,</span> <span class=c1># Prevent infinite loops</span>
499
- <a href=#__codelineno-0-12 id=__codelineno-0-12 name=__codelineno-0-12></a> <span class=n>max_stall_count</span><span class=o>=</span><span class=mi>3</span> <span class=c1># Detect stuck workflows</span>
500
- <a href=#__codelineno-0-13 id=__codelineno-0-13 name=__codelineno-0-13></a> <span class=p>)</span>
501
- <a href=#__codelineno-0-14 id=__codelineno-0-14 name=__codelineno-0-14></a> <span class=o>.</span><span class=n>build</span><span class=p>()</span>
502
- <a href=#__codelineno-0-15 id=__codelineno-0-15 name=__codelineno-0-15></a><span class=p>)</span>
503
- </code></pre></div></p> <p><strong>Manager handles quality assessment in its instructions:</strong> - Checks hypothesis quality (testable, novel, clear) - Validates search results (relevant, authoritative, recent) - Assesses analysis soundness (methodology, evidence, conclusions) - Ensures report completeness (all sections, proper citations)</p> <p>No separate Judge Agent needed - manager does it all!</p> <hr> <p><strong>Document Version</strong>: 2.0 (Magentic Simplified) <strong>Last Updated</strong>: 2025-11-24 <strong>Architecture</strong>: Microsoft Magentic Orchestration Pattern <strong>Agents</strong>: 4 (Hypothesis, Search, Analysis, Report) + 1 Manager <strong>License</strong>: MIT</p> <h2 id=see-also>See Also<a class=headerlink href=#see-also title="Permanent link">¶</a></h2> <ul> <li><a href=../orchestrators/ >Orchestrators</a> - Overview of all orchestrator patterns</li> <li><a href=../graph-orchestration/ >Graph Orchestration</a> - Graph-based execution overview</li> <li><a href=../graph_orchestration/ >Graph Orchestration (Detailed)</a> - Detailed graph architecture</li> <li><a href=../workflows/ >Workflows</a> - Workflow patterns summary</li> <li><a href=../../api/orchestrators/ >API Reference - Orchestrators</a> - API documentation</li> </ul> </article> </div> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button class="md-top md-icon" data-md-component=top hidden type=button> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"></path></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright © 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ rel=noopener target=_blank> Material for MkDocs </a> </div> <div class=md-social> <a class=md-social__link href=https://github.com/DeepCritical/GradioDemo rel=noopener target=_blank title=github.com> <svg viewbox="0 0 512 512" xmlns=http://www.w3.org/2000/svg><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"></path></svg> </a> <a class=md-social__link href=https://huggingface.co/spaces/DataQuests/DeepCritical rel=noopener target=_blank title=huggingface.co> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"></path></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> </body> </html>
 
1
+ <!DOCTYPE html><html class=no-js lang=en> <head><meta charset=utf-8><meta content="width=device-width,initial-scale=1" name=viewport><meta content="Generalist Deep Research Agent that Stops at Nothing" name=description><meta content="The DeepCritical Team" name=author><link href=https://deepcritical.github.io/GradioDemo/architecture/workflow-diagrams/ rel=canonical><link href=../graph_orchestration/ rel=prev><link href=../agents/ rel=next><link href=../../assets/images/favicon.png rel=icon><meta content="mkdocs-1.6.1, mkdocs-material-9.7.0" name=generator><title>Workflow Diagrams - The DETERMINATOR</title><link href=../../assets/stylesheets/main.618322db.min.css rel=stylesheet><link href=../../assets/stylesheets/palette.ab4e12ef.min.css rel=stylesheet><link crossorigin href=https://fonts.gstatic.com rel=preconnect><link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback" rel=stylesheet><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><link href=../../css/timeago.css rel=stylesheet><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body data-md-color-accent=red data-md-color-primary=orange data-md-color-scheme=default dir=ltr> <input autocomplete=off class=md-toggle data-md-toggle=drawer id=__drawer type=checkbox> <input autocomplete=off class=md-toggle data-md-toggle=search id=__search type=checkbox> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a class=md-skip href=#deepcritical-workflow---simplified-magentic-architecture> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav aria-label=Header class="md-header__inner md-grid"> <a aria-label="The DETERMINATOR" class="md-header__button md-logo" data-md-component=logo href=../.. title="The DETERMINATOR"> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"></path></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"></path></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Workflow Diagrams </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input aria-label="Switch to dark mode" class=md-option data-md-color-accent=red data-md-color-media data-md-color-primary=orange data-md-color-scheme=default id=__palette_0 name=__palette type=radio> <label class="md-header__button md-icon" for=__palette_1 hidden title="Switch to dark mode"> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"></path></svg> </label> <input aria-label="Switch to light mode" class=md-option data-md-color-accent=red data-md-color-media data-md-color-primary=orange data-md-color-scheme=slate id=__palette_1 name=__palette type=radio> <label class="md-header__button md-icon" for=__palette_0 hidden title="Switch to light mode"> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"></path></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"></path></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input aria-label=Search autocapitalize=off autocomplete=off autocorrect=off class=md-search__input data-md-component=search-query name=query placeholder=Search required spellcheck=false type=text> <label class="md-search__icon md-icon" for=__search> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"></path></svg> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"></path></svg> </label> <nav aria-label=Search class=md-search__options> <button aria-label=Clear class="md-search__icon md-icon" tabindex=-1 title=Clear type=reset> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap data-md-scrollfix tabindex=0> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a class=md-source data-md-component=source href=https://github.com/DeepCritical/GradioDemo title="Go to repository"> <div class="md-source__icon md-icon"> <svg viewbox="0 0 512 512" xmlns=http://www.w3.org/2000/svg><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"></path></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav aria-label=Tabs class=md-tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a class=md-tabs__link href=../..> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/ class=md-tabs__link> Configuration </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../../contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav aria-label=Navigation class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" data-md-level=0> <label class=md-nav__title for=__drawer> <a aria-label="The DETERMINATOR" class="md-nav__button md-logo" data-md-component=logo href=../.. title="The DETERMINATOR"> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"></path></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a class=md-source data-md-component=source href=https://github.com/DeepCritical/GradioDemo title="Go to repository"> <div class="md-source__icon md-icon"> <svg viewbox="0 0 512 512" xmlns=http://www.w3.org/2000/svg><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"></path></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a class=md-nav__link href=../..> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" id=__nav_2 type=checkbox> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav aria-expanded=false aria-labelledby=__nav_2_label class=md-nav data-md-level=1> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" id=__nav_3 type=checkbox> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav aria-expanded=false aria-labelledby=__nav_3_label class=md-nav data-md-level=1> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Single Command Deploy </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" id=__nav_4 type=checkbox> <div class="md-nav__link md-nav__container"> <a href=../../configuration/ class=md-nav__link> <span class=md-ellipsis> Configuration </span> </a> </div> <nav aria-expanded=false aria-labelledby=__nav_4_label class=md-nav data-md-level=1> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input checked class="md-nav__toggle md-toggle" id=__nav_5 type=checkbox> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav aria-expanded=true aria-labelledby=__nav_5_label class=md-nav data-md-level=1> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" id=__toc type=checkbox> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Workflow Diagrams </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Workflow Diagrams </span> </a> <nav aria-label="Table of contents" class="md-nav md-nav--secondary"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a class=md-nav__link href=#1-high-level-magentic-workflow> <span class=md-ellipsis> 1. High-Level Magentic Workflow </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#2-magentic-manager-the-6-phase-cycle> <span class=md-ellipsis> 2. Magentic Manager: The 6-Phase Cycle </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#3-simplified-agent-architecture> <span class=md-ellipsis> 3. Simplified Agent Architecture </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#4-dynamic-workflow-example> <span class=md-ellipsis> 4. Dynamic Workflow Example </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#5-manager-decision-logic> <span class=md-ellipsis> 5. Manager Decision Logic </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#6-hypothesis-agent-workflow> <span class=md-ellipsis> 6. Hypothesis Agent Workflow </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#7-search-agent-workflow> <span class=md-ellipsis> 7. Search Agent Workflow </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#8-analysis-agent-workflow> <span class=md-ellipsis> 8. Analysis Agent Workflow </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#9-report-agent-workflow> <span class=md-ellipsis> 9. Report Agent Workflow </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#10-data-flow--event-streaming> <span class=md-ellipsis> 10. Data Flow &amp; Event Streaming </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#11-mcp-tool-architecture> <span class=md-ellipsis> 11. MCP Tool Architecture </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#12-progress-tracking--stall-detection> <span class=md-ellipsis> 12. Progress Tracking &amp; Stall Detection </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#13-gradio-ui-integration> <span class=md-ellipsis> 13. Gradio UI Integration </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#14-complete-system-context> <span class=md-ellipsis> 14. Complete System Context </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#15-workflow-timeline-simplified> <span class=md-ellipsis> 15. Workflow Timeline (Simplified) </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#key-differences-from-original-design> <span class=md-ellipsis> Key Differences from Original Design </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#simplified-design-principles> <span class=md-ellipsis> Simplified Design Principles </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#legend> <span class=md-ellipsis> Legend </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#implementation-highlights> <span class=md-ellipsis> Implementation Highlights </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#see-also> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" id=__nav_6 type=checkbox> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav aria-expanded=false aria-labelledby=__nav_6_label class=md-nav data-md-level=1> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" id=__nav_7 type=checkbox> <div class="md-nav__link md-nav__container"> <a href=../../contributing/ class=md-nav__link> <span class=md-ellipsis> Contributing </span> </a> <label class=md-nav__link for=__nav_7 id=__nav_7_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav aria-expanded=false aria-labelledby=__nav_7_label class=md-nav data-md-level=1> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=deepcritical-workflow---simplified-magentic-architecture>DeepCritical Workflow - Simplified Magentic Architecture<a class=headerlink href=#deepcritical-workflow---simplified-magentic-architecture title="Anchor link to this section">¶</a></h1> <blockquote> <p><strong>Architecture Pattern</strong>: Microsoft Magentic Orchestration <strong>Design Philosophy</strong>: Simple, dynamic, manager-driven coordination <strong>Key Innovation</strong>: Intelligent manager replaces rigid sequential phases</p> </blockquote> <hr> <h2 id=1-high-level-magentic-workflow>1. High-Level Magentic Workflow<a class=headerlink href=#1-high-level-magentic-workflow title="Anchor link to this section">¶</a></h2> <pre class=mermaid><code>flowchart TD
2
  Start([User Query]) --&gt; Manager[Magentic Manager&lt;br/&gt;Plan • Select • Assess • Adapt]
3
 
4
  Manager --&gt;|Plans| Task1[Task Decomposition]
 
31
  style ReportAgent fill:#fff4e6
32
  style Decision fill:#ffd6d6
33
  style Synthesis fill:#d4edda
34
+ style Output fill:#e1f5e1</code></pre> <h2 id=2-magentic-manager-the-6-phase-cycle>2. Magentic Manager: The 6-Phase Cycle<a class=headerlink href=#2-magentic-manager-the-6-phase-cycle title="Anchor link to this section">¶</a></h2> <pre class=mermaid><code>flowchart LR
35
  P1[1. Planning&lt;br/&gt;Analyze task&lt;br/&gt;Create strategy] --&gt; P2[2. Agent Selection&lt;br/&gt;Pick best agent&lt;br/&gt;for subtask]
36
  P2 --&gt; P3[3. Execution&lt;br/&gt;Run selected&lt;br/&gt;agent with tools]
37
  P3 --&gt; P4[4. Assessment&lt;br/&gt;Evaluate quality&lt;br/&gt;Check progress]
 
47
  style P4 fill:#ffd6d6
48
  style P5 fill:#fff3cd
49
  style P6 fill:#d4edda
50
+ style Done fill:#e1f5e1</code></pre> <h2 id=3-simplified-agent-architecture>3. Simplified Agent Architecture<a class=headerlink href=#3-simplified-agent-architecture title="Anchor link to this section">¶</a></h2> <pre class=mermaid><code>graph TB
51
  subgraph "Orchestration Layer"
52
  Manager[Magentic Manager&lt;br/&gt;• Plans workflow&lt;br/&gt;• Selects agents&lt;br/&gt;• Assesses quality&lt;br/&gt;• Adapts strategy]
53
  SharedContext[(Shared Context&lt;br/&gt;• Hypotheses&lt;br/&gt;• Search Results&lt;br/&gt;• Analysis&lt;br/&gt;• Progress)]
 
93
  style WebSearch fill:#e6f3ff
94
  style CodeExec fill:#e6f3ff
95
  style RAG fill:#e6f3ff
96
+ style Viz fill:#e6f3ff</code></pre> <h2 id=4-dynamic-workflow-example>4. Dynamic Workflow Example<a class=headerlink href=#4-dynamic-workflow-example title="Anchor link to this section">¶</a></h2> <pre class=mermaid><code>sequenceDiagram
97
  participant User
98
  participant Manager
99
  participant HypAgent
 
129
  ReportAgent--&gt;&gt;Manager: Returns formatted report
130
  Note over Manager: SYNTHESIZE: Combine all results
131
 
132
+ Manager-&gt;&gt;User: Final Research Report</code></pre> <h2 id=5-manager-decision-logic>5. Manager Decision Logic<a class=headerlink href=#5-manager-decision-logic title="Anchor link to this section">¶</a></h2> <pre class=mermaid><code>flowchart TD
133
  Start([Manager Receives Task]) --&gt; Plan[Create Initial Plan]
134
 
135
  Plan --&gt; Select[Select Agent for Next Subtask]
 
164
  style Q3 fill:#ffe6e6
165
  style Q4 fill:#ffe6e6
166
  style Synth fill:#d4edda
167
+ style Done fill:#e1f5e1</code></pre> <h2 id=6-hypothesis-agent-workflow>6. Hypothesis Agent Workflow<a class=headerlink href=#6-hypothesis-agent-workflow title="Anchor link to this section">¶</a></h2> <pre class=mermaid><code>flowchart LR
168
  Input[Research Query] --&gt; Domain[Identify Domain&lt;br/&gt;&amp; Key Concepts]
169
  Domain --&gt; Context[Retrieve Background&lt;br/&gt;Knowledge]
170
  Context --&gt; Generate[Generate 3-5&lt;br/&gt;Initial Hypotheses]
 
176
 
177
  style Input fill:#e1f5e1
178
  style Output fill:#fff4e6
179
+ style Struct fill:#e6f3ff</code></pre> <h2 id=7-search-agent-workflow>7. Search Agent Workflow<a class=headerlink href=#7-search-agent-workflow title="Anchor link to this section">¶</a></h2> <pre class=mermaid><code>flowchart TD
180
  Input[Hypotheses] --&gt; Strategy[Formulate Search&lt;br/&gt;Strategy per Hypothesis]
181
 
182
  Strategy --&gt; Multi[Multi-Source Search]
 
199
  style Input fill:#fff4e6
200
  style Multi fill:#ffe6e6
201
  style Vector fill:#ffe6f0
202
+ style Output fill:#e6f3ff</code></pre> <h2 id=8-analysis-agent-workflow>8. Analysis Agent Workflow<a class=headerlink href=#8-analysis-agent-workflow title="Anchor link to this section">¶</a></h2> <pre class=mermaid><code>flowchart TD
203
  Input1[Hypotheses] --&gt; Extract
204
  Input2[Search Results] --&gt; Extract[Extract Evidence&lt;br/&gt;per Hypothesis]
205
 
 
224
  style Input1 fill:#fff4e6
225
  style Input2 fill:#e6f3ff
226
  style Execute fill:#ffe6e6
227
+ style Output fill:#e6ffe6</code></pre> <h2 id=9-report-agent-workflow>9. Report Agent Workflow<a class=headerlink href=#9-report-agent-workflow title="Anchor link to this section">¶</a></h2> <pre class=mermaid><code>flowchart TD
228
  Input1[Query] --&gt; Assemble
229
  Input2[Hypotheses] --&gt; Assemble
230
  Input3[Search Results] --&gt; Assemble
 
264
  style Input2 fill:#fff4e6
265
  style Input3 fill:#e6f3ff
266
  style Input4 fill:#e6ffe6
267
+ style Output fill:#d4edda</code></pre> <h2 id=10-data-flow--event-streaming>10. Data Flow &amp; Event Streaming<a class=headerlink href=#10-data-flow--event-streaming title="Anchor link to this section">¶</a></h2> <pre class=mermaid><code>flowchart TD
268
  User[👤 User] --&gt;|Research Query| UI[Gradio UI]
269
  UI --&gt;|Submit| Manager[Magentic Manager]
270
 
 
303
  style Context fill:#ffe6f0
304
  style VectorDB fill:#ffe6f0
305
  style WebSearch fill:#f0f0f0
306
+ style CodeExec fill:#f0f0f0</code></pre> <h2 id=11-mcp-tool-architecture>11. MCP Tool Architecture<a class=headerlink href=#11-mcp-tool-architecture title="Anchor link to this section">¶</a></h2> <pre class=mermaid><code>graph TB
307
  subgraph "Agent Layer"
308
  Manager[Magentic Manager]
309
  HypAgent[Hypothesis Agent]
 
351
  style Server1 fill:#e6f3ff
352
  style Server2 fill:#e6f3ff
353
  style Server3 fill:#e6f3ff
354
+ style Server4 fill:#e6f3ff</code></pre> <h2 id=12-progress-tracking--stall-detection>12. Progress Tracking &amp; Stall Detection<a class=headerlink href=#12-progress-tracking--stall-detection title="Anchor link to this section">¶</a></h2> <pre class=mermaid><code>stateDiagram-v2
355
  [*] --&gt; Initialization: User Query
356
 
357
  Initialization --&gt; Planning: Manager starts
 
391
  Stall = no new progress
392
  after agent execution
393
  Triggers plan reset
394
+ end note</code></pre> <h2 id=13-gradio-ui-integration>13. Gradio UI Integration<a class=headerlink href=#13-gradio-ui-integration title="Anchor link to this section">¶</a></h2> <pre class=mermaid><code>graph TD
395
  App[Gradio App&lt;br/&gt;DeepCritical Research Agent]
396
 
397
  App --&gt; Input[Input Section]
 
424
  style Input fill:#fff4e6
425
  style Status fill:#e6f3ff
426
  style Output fill:#e6ffe6
427
+ style Workflow fill:#ffe6e6</code></pre> <h2 id=14-complete-system-context>14. Complete System Context<a class=headerlink href=#14-complete-system-context title="Anchor link to this section">¶</a></h2> <pre class=mermaid><code>graph LR
428
  User[👤 Researcher&lt;br/&gt;Asks research questions] --&gt;|Submits query| DC[DeepCritical&lt;br/&gt;Magentic Workflow]
429
 
430
  DC --&gt;|Literature search| PubMed[PubMed API&lt;br/&gt;Medical papers]
 
453
  style Claude fill:#ffd6d6
454
  style Modal fill:#f0f0f0
455
  style Chroma fill:#ffe6f0
456
+ style HF fill:#d4edda</code></pre> <h2 id=15-workflow-timeline-simplified>15. Workflow Timeline (Simplified)<a class=headerlink href=#15-workflow-timeline-simplified title="Anchor link to this section">¶</a></h2> <pre class=mermaid><code>gantt
457
  title DeepCritical Magentic Workflow - Typical Execution
458
  dateFormat mm:ss
459
  axisFormat %M:%S
 
485
  Formatting :r3, after r2, 10s
486
 
487
  section Manager Synthesis
488
+ Final synthesis :f1, after r3, 10s</code></pre> <hr> <h2 id=key-differences-from-original-design>Key Differences from Original Design<a class=headerlink href=#key-differences-from-original-design title="Anchor link to this section">¶</a></h2> <table> <thead> <tr> <th>Aspect</th> <th>Original (Judge-in-Loop)</th> <th>New (Magentic)</th> </tr> </thead> <tbody> <tr> <td><strong>Control Flow</strong></td> <td>Fixed sequential phases</td> <td>Dynamic agent selection</td> </tr> <tr> <td><strong>Quality Control</strong></td> <td>Separate Judge Agent</td> <td>Manager assessment built-in</td> </tr> <tr> <td><strong>Retry Logic</strong></td> <td>Phase-level with feedback</td> <td>Agent-level with adaptation</td> </tr> <tr> <td><strong>Flexibility</strong></td> <td>Rigid 4-phase pipeline</td> <td>Adaptive workflow</td> </tr> <tr> <td><strong>Complexity</strong></td> <td>5 agents (including Judge)</td> <td>4 agents (no Judge)</td> </tr> <tr> <td><strong>Progress Tracking</strong></td> <td>Manual state management</td> <td>Built-in round/stall detection</td> </tr> <tr> <td><strong>Agent Coordination</strong></td> <td>Sequential handoff</td> <td>Manager-driven dynamic selection</td> </tr> <tr> <td><strong>Error Recovery</strong></td> <td>Retry same phase</td> <td>Try different agent or replan</td> </tr> </tbody> </table> <hr> <h2 id=simplified-design-principles>Simplified Design Principles<a class=headerlink href=#simplified-design-principles title="Anchor link to this section">¶</a></h2> <ol> <li><strong>Manager is Intelligent</strong>: LLM-powered manager handles planning, selection, and quality assessment</li> <li><strong>No Separate Judge</strong>: Manager's assessment phase replaces dedicated Judge Agent</li> <li><strong>Dynamic Workflow</strong>: Agents can be called multiple times in any order based on need</li> <li><strong>Built-in Safety</strong>: max_round_count (15) and max_stall_count (3) prevent infinite loops</li> <li><strong>Event-Driven UI</strong>: Real-time streaming updates to Gradio interface</li> <li><strong>MCP-Powered Tools</strong>: All external capabilities via Model Context Protocol</li> <li><strong>Shared Context</strong>: Centralized state accessible to all agents</li> <li><strong>Progress Awareness</strong>: Manager tracks what's been done and what's needed</li> </ol> <hr> <h2 id=legend>Legend<a class=headerlink href=#legend title="Anchor link to this section">¶</a></h2> <ul> <li>🔴 <strong>Red/Pink</strong>: Manager, orchestration, decision-making</li> <li>🟡 <strong>Yellow/Orange</strong>: Specialist agents, processing</li> <li>🔵 <strong>Blue</strong>: Data, tools, MCP services</li> <li>🟣 <strong>Purple/Pink</strong>: Storage, databases, state</li> <li>🟢 <strong>Green</strong>: User interactions, final outputs</li> <li>⚪ <strong>Gray</strong>: External services, APIs</li> </ul> <hr> <h2 id=implementation-highlights>Implementation Highlights<a class=headerlink href=#implementation-highlights title="Anchor link to this section">¶</a></h2> <p><strong>Simple 4-Agent Setup:</strong></p> <p><strong>Manager handles quality assessment in its instructions:</strong> - Checks hypothesis quality (testable, novel, clear) - Validates search results (relevant, authoritative, recent) - Assesses analysis soundness (methodology, evidence, conclusions) - Ensures report completeness (all sections, proper citations)</p> <p>No separate Judge Agent needed - manager does it all!</p> <hr> <p><strong>Document Version</strong>: 2.0 (Magentic Simplified) <strong>Last Updated</strong>: 2025-11-24 <strong>Architecture</strong>: Microsoft Magentic Orchestration Pattern <strong>Agents</strong>: 4 (Hypothesis, Search, Analysis, Report) + 1 Manager <strong>License</strong>: MIT</p> <h2 id=see-also>See Also<a class=headerlink href=#see-also title="Anchor link to this section">¶</a></h2> <ul> <li><a href=../orchestrators/ >Orchestrators</a> - Overview of all orchestrator patterns</li> <li><a href=../graph_orchestration/ >Graph Orchestration</a> - Graph-based execution overview</li> <li><a href=../../api/orchestrators/ >API Reference - Orchestrators</a> - API documentation</li> </ul> <aside class=md-source-file> <span class=md-source-file__fact> <span class=md-icon title="Last update"> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"></path></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="December 2, 2025 01:35:56 UTC"><span class=timeago datetime=2025-12-02T01:35:56+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="December 2, 2025 01:35:56 UTC">2025-12-02</span> </span> <span class=md-source-file__fact> <span class=md-icon title=Created> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M14.47 15.08 11 13V7h1.5v5.25l3.08 1.83c-.41.28-.79.62-1.11 1m-1.39 4.84c-.36.05-.71.08-1.08.08-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8c0 .37-.03.72-.08 1.08.69.1 1.33.32 1.92.64.1-.56.16-1.13.16-1.72 0-5.5-4.5-10-10-10S2 6.5 2 12s4.47 10 10 10c.59 0 1.16-.06 1.72-.16-.32-.59-.54-1.23-.64-1.92M18 15v3h-3v2h3v3h2v-3h3v-2h-3v-3z"></path></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="November 29, 2025 21:33:25 UTC"><span class=timeago datetime=2025-11-29T21:33:25+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="November 29, 2025 21:33:25 UTC">2025-11-29</span> </span> </aside> </article> </div> <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button class="md-top md-icon" data-md-component=top hidden type=button> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"></path></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright © 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ rel=noopener target=_blank> Material for MkDocs </a> </div> <div class=md-social> <a class=md-social__link href=https://github.com/DeepCritical/GradioDemo rel=noopener target=_blank title=GitHub> <svg viewbox="0 0 512 512" xmlns=http://www.w3.org/2000/svg><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"></path></svg> </a> <a class=md-social__link href=https://twitter.com/josephpollack rel=noopener target=_blank title=Twitter> <svg viewbox="0 0 512 512" xmlns=http://www.w3.org/2000/svg><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M459.4 151.7c.3 4.5.3 9.1.3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103v-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53C87.4 130.8 165 172.4 252.1 176.9c-1.6-7.8-2.6-15.9-2.6-24C249.5 95.1 296.3 48 354.4 48c30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3"></path></svg> </a> <a class=md-social__link href=https://huggingface.co/spaces/DataQuests/DeepCritical rel=noopener target=_blank title="Live Demo"> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"></path></svg> </a> <a class=md-social__link href=https://discord.gg/n8ytYeh25n rel=noopener target=_blank title=Discord> <svg viewbox="0 0 576 512" xmlns=http://www.w3.org/2000/svg><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M492.5 69.8c-.2-.3-.4-.6-.8-.7-38.1-17.5-78.4-30-119.7-37.1-.4-.1-.8 0-1.1.1s-.6.4-.8.8c-5.5 9.9-10.5 20.2-14.9 30.6-44.6-6.8-89.9-6.8-134.4 0-4.5-10.5-9.5-20.7-15.1-30.6-.2-.3-.5-.6-.8-.8s-.7-.2-1.1-.2C162.5 39 122.2 51.5 84.1 69c-.3.1-.6.4-.8.7C7.1 183.5-13.8 294.6-3.6 404.2c0 .3.1.5.2.8s.3.4.5.6c44.4 32.9 94 58 146.8 74.2.4.1.8.1 1.1 0s.7-.4.9-.7c11.3-15.4 21.4-31.8 30-48.8.1-.2.2-.5.2-.8s0-.5-.1-.8-.2-.5-.4-.6-.4-.3-.7-.4c-15.8-6.1-31.2-13.4-45.9-21.9-.3-.2-.5-.4-.7-.6s-.3-.6-.3-.9 0-.6.2-.9.3-.5.6-.7c3.1-2.3 6.2-4.7 9.1-7.1.3-.2.6-.4.9-.4s.7 0 1 .1c96.2 43.9 200.4 43.9 295.5 0 .3-.1.7-.2 1-.2s.7.2.9.4c2.9 2.4 6 4.9 9.1 7.2.2.2.4.4.6.7s.2.6.2.9-.1.6-.3.9-.4.5-.6.6c-14.7 8.6-30 15.9-45.9 21.8-.2.1-.5.2-.7.4s-.3.4-.4.7-.1.5-.1.8.1.5.2.8c8.8 17 18.8 33.3 30 48.8.2.3.6.6.9.7s.8.1 1.1 0c52.9-16.2 102.6-41.3 147.1-74.2.2-.2.4-.4.5-.6s.2-.5.2-.8c12.3-126.8-20.5-236.9-86.9-334.5zm-302 267.7c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.4 59.2-52.8 59.2m195.4 0c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.2 59.2-52.8 59.2"></path></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "navigation.indexes", "navigation.instant", "navigation.tracking", "navigation.smooth", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy", "content.tabs.link", "content.tooltips", "toc.integrate"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> <script src=../../js/timeago.min.js></script> <script src=../../js/timeago_mkdocs_material.js></script> </body> </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
site/architecture/workflows/index.html DELETED
@@ -1,503 +0,0 @@
1
- <!DOCTYPE html><html class=no-js lang=en> <head><meta charset=utf-8><meta content="width=device-width,initial-scale=1" name=viewport><meta content="Generalist Deep Research Agent that Stops at Nothing" name=description><meta content="The DETERMINATOR Team" name=author><link href=https://deepcritical.github.io/GradioDemo/architecture/workflows/ rel=canonical><link href=../../assets/images/favicon.png rel=icon><meta content="mkdocs-1.6.1, mkdocs-material-9.7.0" name=generator><title>DeepCritical Workflow - Simplified Magentic Architecture - The DETERMINATOR</title><link href=../../assets/stylesheets/main.618322db.min.css rel=stylesheet><link href=../../assets/stylesheets/palette.ab4e12ef.min.css rel=stylesheet><link crossorigin href=https://fonts.gstatic.com rel=preconnect><link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback" rel=stylesheet><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body data-md-color-accent=red data-md-color-primary=orange data-md-color-scheme=default dir=ltr> <input autocomplete=off class=md-toggle data-md-toggle=drawer id=__drawer type=checkbox> <input autocomplete=off class=md-toggle data-md-toggle=search id=__search type=checkbox> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a class=md-skip href=#deepcritical-workflow-simplified-magentic-architecture> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav aria-label=Header class="md-header__inner md-grid"> <a aria-label="The DETERMINATOR" class="md-header__button md-logo" data-md-component=logo href=../.. title="The DETERMINATOR"> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"></path></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"></path></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> DeepCritical Workflow - Simplified Magentic Architecture </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input aria-label="Switch to dark mode" class=md-option data-md-color-accent=red data-md-color-media data-md-color-primary=orange data-md-color-scheme=default id=__palette_0 name=__palette type=radio> <label class="md-header__button md-icon" for=__palette_1 hidden title="Switch to dark mode"> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"></path></svg> </label> <input aria-label="Switch to light mode" class=md-option data-md-color-accent=red data-md-color-media data-md-color-primary=orange data-md-color-scheme=slate id=__palette_1 name=__palette type=radio> <label class="md-header__button md-icon" for=__palette_0 hidden title="Switch to light mode"> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"></path></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"></path></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input aria-label=Search autocapitalize=off autocomplete=off autocorrect=off class=md-search__input data-md-component=search-query name=query placeholder=Search required spellcheck=false type=text> <label class="md-search__icon md-icon" for=__search> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"></path></svg> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"></path></svg> </label> <nav aria-label=Search class=md-search__options> <button aria-label=Clear class="md-search__icon md-icon" tabindex=-1 title=Clear type=reset> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap data-md-scrollfix tabindex=0> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a class=md-source data-md-component=source href=https://github.com/DeepCritical/GradioDemo title="Go to repository"> <div class="md-source__icon md-icon"> <svg viewbox="0 0 512 512" xmlns=http://www.w3.org/2000/svg><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"></path></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav aria-label=Tabs class=md-tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a class=md-tabs__link href=../..> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/CONFIGURATION/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../../contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav aria-label=Navigation class="md-nav md-nav--primary md-nav--lifted" data-md-level=0> <label class=md-nav__title for=__drawer> <a aria-label="The DETERMINATOR" class="md-nav__button md-logo" data-md-component=logo href=../.. title="The DETERMINATOR"> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"></path></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a class=md-source data-md-component=source href=https://github.com/DeepCritical/GradioDemo title="Go to repository"> <div class="md-source__icon md-icon"> <svg viewbox="0 0 512 512" xmlns=http://www.w3.org/2000/svg><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"></path></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a class=md-nav__link href=../..> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" id=__nav_2 type=checkbox> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav aria-expanded=false aria-labelledby=__nav_2_label class=md-nav data-md-level=1> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" id=__nav_3 type=checkbox> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav aria-expanded=false aria-labelledby=__nav_3_label class=md-nav data-md-level=1> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Quick Start Guide </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" id=__nav_4 type=checkbox> <label class=md-nav__link for=__nav_4 id=__nav_4_label tabindex=0> <span class=md-ellipsis> Configuration </span> <span class="md-nav__icon md-icon"></span> </label> <nav aria-expanded=false aria-labelledby=__nav_4_label class=md-nav data-md-level=1> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../configuration/CONFIGURATION/ class=md-nav__link> <span class=md-ellipsis> Configuration Guide </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" id=__nav_5 type=checkbox> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav aria-expanded=false aria-labelledby=__nav_5_label class=md-nav data-md-level=1> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" id=__nav_6 type=checkbox> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav aria-expanded=false aria-labelledby=__nav_6_label class=md-nav data-md-level=1> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" id=__nav_7 type=checkbox> <label class=md-nav__link for=__nav_7 id=__nav_7_label tabindex=0> <span class=md-ellipsis> Contributing </span> <span class="md-nav__icon md-icon"></span> </label> <nav aria-expanded=false aria-labelledby=__nav_7_label class=md-nav data-md-level=1> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../contributing/ class=md-nav__link> <span class=md-ellipsis> Contributing to DeepCritical </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=sidebar data-md-type=toc> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav aria-label="Table of contents" class="md-nav md-nav--secondary"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a class=md-nav__link href=#1-high-level-magentic-workflow> <span class=md-ellipsis> 1. High-Level Magentic Workflow </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#2-magentic-manager-the-6-phase-cycle> <span class=md-ellipsis> 2. Magentic Manager: The 6-Phase Cycle </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#3-simplified-agent-architecture> <span class=md-ellipsis> 3. Simplified Agent Architecture </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#4-dynamic-workflow-example> <span class=md-ellipsis> 4. Dynamic Workflow Example </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#5-manager-decision-logic> <span class=md-ellipsis> 5. Manager Decision Logic </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#6-hypothesis-agent-workflow> <span class=md-ellipsis> 6. Hypothesis Agent Workflow </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#7-search-agent-workflow> <span class=md-ellipsis> 7. Search Agent Workflow </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#8-analysis-agent-workflow> <span class=md-ellipsis> 8. Analysis Agent Workflow </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#9-report-agent-workflow> <span class=md-ellipsis> 9. Report Agent Workflow </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#10-data-flow-event-streaming> <span class=md-ellipsis> 10. Data Flow &amp; Event Streaming </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#11-mcp-tool-architecture> <span class=md-ellipsis> 11. MCP Tool Architecture </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#12-progress-tracking-stall-detection> <span class=md-ellipsis> 12. Progress Tracking &amp; Stall Detection </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#13-gradio-ui-integration> <span class=md-ellipsis> 13. Gradio UI Integration </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#14-complete-system-context> <span class=md-ellipsis> 14. Complete System Context </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#15-workflow-timeline-simplified> <span class=md-ellipsis> 15. Workflow Timeline (Simplified) </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#key-differences-from-original-design> <span class=md-ellipsis> Key Differences from Original Design </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#simplified-design-principles> <span class=md-ellipsis> Simplified Design Principles </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#legend> <span class=md-ellipsis> Legend </span> </a> </li> <li class=md-nav__item> <a class=md-nav__link href=#implementation-highlights> <span class=md-ellipsis> Implementation Highlights </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=deepcritical-workflow-simplified-magentic-architecture>DeepCritical Workflow - Simplified Magentic Architecture<a class=headerlink href=#deepcritical-workflow-simplified-magentic-architecture title="Permanent link">¶</a></h1> <blockquote> <p><strong>Architecture Pattern</strong>: Microsoft Magentic Orchestration <strong>Design Philosophy</strong>: Simple, dynamic, manager-driven coordination <strong>Key Innovation</strong>: Intelligent manager replaces rigid sequential phases</p> </blockquote> <hr> <h2 id=1-high-level-magentic-workflow>1. High-Level Magentic Workflow<a class=headerlink href=#1-high-level-magentic-workflow title="Permanent link">¶</a></h2> <pre class=mermaid><code>flowchart TD
2
- Start([User Query]) --&gt; Manager[Magentic Manager&lt;br/&gt;Plan • Select • Assess • Adapt]
3
-
4
- Manager --&gt;|Plans| Task1[Task Decomposition]
5
- Task1 --&gt; Manager
6
-
7
- Manager --&gt;|Selects &amp; Executes| HypAgent[Hypothesis Agent]
8
- Manager --&gt;|Selects &amp; Executes| SearchAgent[Search Agent]
9
- Manager --&gt;|Selects &amp; Executes| AnalysisAgent[Analysis Agent]
10
- Manager --&gt;|Selects &amp; Executes| ReportAgent[Report Agent]
11
-
12
- HypAgent --&gt;|Results| Manager
13
- SearchAgent --&gt;|Results| Manager
14
- AnalysisAgent --&gt;|Results| Manager
15
- ReportAgent --&gt;|Results| Manager
16
-
17
- Manager --&gt;|Assesses Quality| Decision{Good Enough?}
18
- Decision --&gt;|No - Refine| Manager
19
- Decision --&gt;|No - Different Agent| Manager
20
- Decision --&gt;|No - Stalled| Replan[Reset Plan]
21
- Replan --&gt; Manager
22
-
23
- Decision --&gt;|Yes| Synthesis[Synthesize Final Result]
24
- Synthesis --&gt; Output([Research Report])
25
-
26
- style Start fill:#e1f5e1
27
- style Manager fill:#ffe6e6
28
- style HypAgent fill:#fff4e6
29
- style SearchAgent fill:#fff4e6
30
- style AnalysisAgent fill:#fff4e6
31
- style ReportAgent fill:#fff4e6
32
- style Decision fill:#ffd6d6
33
- style Synthesis fill:#d4edda
34
- style Output fill:#e1f5e1</code></pre> <h2 id=2-magentic-manager-the-6-phase-cycle>2. Magentic Manager: The 6-Phase Cycle<a class=headerlink href=#2-magentic-manager-the-6-phase-cycle title="Permanent link">¶</a></h2> <pre class=mermaid><code>flowchart LR
35
- P1[1. Planning&lt;br/&gt;Analyze task&lt;br/&gt;Create strategy] --&gt; P2[2. Agent Selection&lt;br/&gt;Pick best agent&lt;br/&gt;for subtask]
36
- P2 --&gt; P3[3. Execution&lt;br/&gt;Run selected&lt;br/&gt;agent with tools]
37
- P3 --&gt; P4[4. Assessment&lt;br/&gt;Evaluate quality&lt;br/&gt;Check progress]
38
- P4 --&gt; Decision{Quality OK?&lt;br/&gt;Progress made?}
39
- Decision --&gt;|Yes| P6[6. Synthesis&lt;br/&gt;Combine results&lt;br/&gt;Generate report]
40
- Decision --&gt;|No| P5[5. Iteration&lt;br/&gt;Adjust plan&lt;br/&gt;Try again]
41
- P5 --&gt; P2
42
- P6 --&gt; Done([Complete])
43
-
44
- style P1 fill:#fff4e6
45
- style P2 fill:#ffe6e6
46
- style P3 fill:#e6f3ff
47
- style P4 fill:#ffd6d6
48
- style P5 fill:#fff3cd
49
- style P6 fill:#d4edda
50
- style Done fill:#e1f5e1</code></pre> <h2 id=3-simplified-agent-architecture>3. Simplified Agent Architecture<a class=headerlink href=#3-simplified-agent-architecture title="Permanent link">¶</a></h2> <pre class=mermaid><code>graph TB
51
- subgraph "Orchestration Layer"
52
- Manager[Magentic Manager&lt;br/&gt;• Plans workflow&lt;br/&gt;• Selects agents&lt;br/&gt;• Assesses quality&lt;br/&gt;• Adapts strategy]
53
- SharedContext[(Shared Context&lt;br/&gt;• Hypotheses&lt;br/&gt;• Search Results&lt;br/&gt;• Analysis&lt;br/&gt;• Progress)]
54
- Manager &lt;--&gt; SharedContext
55
- end
56
-
57
- subgraph "Specialist Agents"
58
- HypAgent[Hypothesis Agent&lt;br/&gt;• Domain understanding&lt;br/&gt;• Hypothesis generation&lt;br/&gt;• Testability refinement]
59
- SearchAgent[Search Agent&lt;br/&gt;• Multi-source search&lt;br/&gt;• RAG retrieval&lt;br/&gt;• Result ranking]
60
- AnalysisAgent[Analysis Agent&lt;br/&gt;• Evidence extraction&lt;br/&gt;• Statistical analysis&lt;br/&gt;• Code execution]
61
- ReportAgent[Report Agent&lt;br/&gt;• Report assembly&lt;br/&gt;• Visualization&lt;br/&gt;• Citation formatting]
62
- end
63
-
64
- subgraph "MCP Tools"
65
- WebSearch[Web Search&lt;br/&gt;PubMed • arXiv • bioRxiv]
66
- CodeExec[Code Execution&lt;br/&gt;Sandboxed Python]
67
- RAG[RAG Retrieval&lt;br/&gt;Vector DB • Embeddings]
68
- Viz[Visualization&lt;br/&gt;Charts • Graphs]
69
- end
70
-
71
- Manager --&gt;|Selects &amp; Directs| HypAgent
72
- Manager --&gt;|Selects &amp; Directs| SearchAgent
73
- Manager --&gt;|Selects &amp; Directs| AnalysisAgent
74
- Manager --&gt;|Selects &amp; Directs| ReportAgent
75
-
76
- HypAgent --&gt; SharedContext
77
- SearchAgent --&gt; SharedContext
78
- AnalysisAgent --&gt; SharedContext
79
- ReportAgent --&gt; SharedContext
80
-
81
- SearchAgent --&gt; WebSearch
82
- SearchAgent --&gt; RAG
83
- AnalysisAgent --&gt; CodeExec
84
- ReportAgent --&gt; CodeExec
85
- ReportAgent --&gt; Viz
86
-
87
- style Manager fill:#ffe6e6
88
- style SharedContext fill:#ffe6f0
89
- style HypAgent fill:#fff4e6
90
- style SearchAgent fill:#fff4e6
91
- style AnalysisAgent fill:#fff4e6
92
- style ReportAgent fill:#fff4e6
93
- style WebSearch fill:#e6f3ff
94
- style CodeExec fill:#e6f3ff
95
- style RAG fill:#e6f3ff
96
- style Viz fill:#e6f3ff</code></pre> <h2 id=4-dynamic-workflow-example>4. Dynamic Workflow Example<a class=headerlink href=#4-dynamic-workflow-example title="Permanent link">¶</a></h2> <pre class=mermaid><code>sequenceDiagram
97
- participant User
98
- participant Manager
99
- participant HypAgent
100
- participant SearchAgent
101
- participant AnalysisAgent
102
- participant ReportAgent
103
-
104
- User-&gt;&gt;Manager: "Research protein folding in Alzheimer's"
105
-
106
- Note over Manager: PLAN: Generate hypotheses → Search → Analyze → Report
107
-
108
- Manager-&gt;&gt;HypAgent: Generate 3 hypotheses
109
- HypAgent--&gt;&gt;Manager: Returns 3 hypotheses
110
- Note over Manager: ASSESS: Good quality, proceed
111
-
112
- Manager-&gt;&gt;SearchAgent: Search literature for hypothesis 1
113
- SearchAgent--&gt;&gt;Manager: Returns 15 papers
114
- Note over Manager: ASSESS: Good results, continue
115
-
116
- Manager-&gt;&gt;SearchAgent: Search for hypothesis 2
117
- SearchAgent--&gt;&gt;Manager: Only 2 papers found
118
- Note over Manager: ASSESS: Insufficient, refine search
119
-
120
- Manager-&gt;&gt;SearchAgent: Refined query for hypothesis 2
121
- SearchAgent--&gt;&gt;Manager: Returns 12 papers
122
- Note over Manager: ASSESS: Better, proceed
123
-
124
- Manager-&gt;&gt;AnalysisAgent: Analyze evidence for all hypotheses
125
- AnalysisAgent--&gt;&gt;Manager: Returns analysis with code
126
- Note over Manager: ASSESS: Complete, generate report
127
-
128
- Manager-&gt;&gt;ReportAgent: Create comprehensive report
129
- ReportAgent--&gt;&gt;Manager: Returns formatted report
130
- Note over Manager: SYNTHESIZE: Combine all results
131
-
132
- Manager-&gt;&gt;User: Final Research Report</code></pre> <h2 id=5-manager-decision-logic>5. Manager Decision Logic<a class=headerlink href=#5-manager-decision-logic title="Permanent link">¶</a></h2> <pre class=mermaid><code>flowchart TD
133
- Start([Manager Receives Task]) --&gt; Plan[Create Initial Plan]
134
-
135
- Plan --&gt; Select[Select Agent for Next Subtask]
136
- Select --&gt; Execute[Execute Agent]
137
- Execute --&gt; Collect[Collect Results]
138
-
139
- Collect --&gt; Assess[Assess Quality &amp; Progress]
140
-
141
- Assess --&gt; Q1{Quality Sufficient?}
142
- Q1 --&gt;|No| Q2{Same Agent Can Fix?}
143
- Q2 --&gt;|Yes| Feedback[Provide Specific Feedback]
144
- Feedback --&gt; Execute
145
- Q2 --&gt;|No| Different[Try Different Agent]
146
- Different --&gt; Select
147
-
148
- Q1 --&gt;|Yes| Q3{Task Complete?}
149
- Q3 --&gt;|No| Q4{Making Progress?}
150
- Q4 --&gt;|Yes| Select
151
- Q4 --&gt;|No - Stalled| Replan[Reset Plan &amp; Approach]
152
- Replan --&gt; Plan
153
-
154
- Q3 --&gt;|Yes| Synth[Synthesize Final Result]
155
- Synth --&gt; Done([Return Report])
156
-
157
- style Start fill:#e1f5e1
158
- style Plan fill:#fff4e6
159
- style Select fill:#ffe6e6
160
- style Execute fill:#e6f3ff
161
- style Assess fill:#ffd6d6
162
- style Q1 fill:#ffe6e6
163
- style Q2 fill:#ffe6e6
164
- style Q3 fill:#ffe6e6
165
- style Q4 fill:#ffe6e6
166
- style Synth fill:#d4edda
167
- style Done fill:#e1f5e1</code></pre> <h2 id=6-hypothesis-agent-workflow>6. Hypothesis Agent Workflow<a class=headerlink href=#6-hypothesis-agent-workflow title="Permanent link">¶</a></h2> <pre class=mermaid><code>flowchart LR
168
- Input[Research Query] --&gt; Domain[Identify Domain&lt;br/&gt;&amp; Key Concepts]
169
- Domain --&gt; Context[Retrieve Background&lt;br/&gt;Knowledge]
170
- Context --&gt; Generate[Generate 3-5&lt;br/&gt;Initial Hypotheses]
171
- Generate --&gt; Refine[Refine for&lt;br/&gt;Testability]
172
- Refine --&gt; Rank[Rank by&lt;br/&gt;Quality Score]
173
- Rank --&gt; Output[Return Top&lt;br/&gt;Hypotheses]
174
-
175
- Output --&gt; Struct[Hypothesis Structure:&lt;br/&gt;• Statement&lt;br/&gt;• Rationale&lt;br/&gt;• Testability Score&lt;br/&gt;• Data Requirements&lt;br/&gt;• Expected Outcomes]
176
-
177
- style Input fill:#e1f5e1
178
- style Output fill:#fff4e6
179
- style Struct fill:#e6f3ff</code></pre> <h2 id=7-search-agent-workflow>7. Search Agent Workflow<a class=headerlink href=#7-search-agent-workflow title="Permanent link">¶</a></h2> <pre class=mermaid><code>flowchart TD
180
- Input[Hypotheses] --&gt; Strategy[Formulate Search&lt;br/&gt;Strategy per Hypothesis]
181
-
182
- Strategy --&gt; Multi[Multi-Source Search]
183
-
184
- Multi --&gt; PubMed[PubMed Search&lt;br/&gt;via MCP]
185
- Multi --&gt; ArXiv[arXiv Search&lt;br/&gt;via MCP]
186
- Multi --&gt; BioRxiv[bioRxiv Search&lt;br/&gt;via MCP]
187
-
188
- PubMed --&gt; Aggregate[Aggregate Results]
189
- ArXiv --&gt; Aggregate
190
- BioRxiv --&gt; Aggregate
191
-
192
- Aggregate --&gt; Filter[Filter &amp; Rank&lt;br/&gt;by Relevance]
193
- Filter --&gt; Dedup[Deduplicate&lt;br/&gt;Cross-Reference]
194
- Dedup --&gt; Embed[Embed Documents&lt;br/&gt;via MCP]
195
- Embed --&gt; Vector[(Vector DB)]
196
- Vector --&gt; RAGRetrieval[RAG Retrieval&lt;br/&gt;Top-K per Hypothesis]
197
- RAGRetrieval --&gt; Output[Return Contextualized&lt;br/&gt;Search Results]
198
-
199
- style Input fill:#fff4e6
200
- style Multi fill:#ffe6e6
201
- style Vector fill:#ffe6f0
202
- style Output fill:#e6f3ff</code></pre> <h2 id=8-analysis-agent-workflow>8. Analysis Agent Workflow<a class=headerlink href=#8-analysis-agent-workflow title="Permanent link">¶</a></h2> <pre class=mermaid><code>flowchart TD
203
- Input1[Hypotheses] --&gt; Extract
204
- Input2[Search Results] --&gt; Extract[Extract Evidence&lt;br/&gt;per Hypothesis]
205
-
206
- Extract --&gt; Methods[Determine Analysis&lt;br/&gt;Methods Needed]
207
-
208
- Methods --&gt; Branch{Requires&lt;br/&gt;Computation?}
209
- Branch --&gt;|Yes| GenCode[Generate Python&lt;br/&gt;Analysis Code]
210
- Branch --&gt;|No| Qual[Qualitative&lt;br/&gt;Synthesis]
211
-
212
- GenCode --&gt; Execute[Execute Code&lt;br/&gt;via MCP Sandbox]
213
- Execute --&gt; Interpret1[Interpret&lt;br/&gt;Results]
214
- Qual --&gt; Interpret2[Interpret&lt;br/&gt;Findings]
215
-
216
- Interpret1 --&gt; Synthesize[Synthesize Evidence&lt;br/&gt;Across Sources]
217
- Interpret2 --&gt; Synthesize
218
-
219
- Synthesize --&gt; Verdict[Determine Verdict&lt;br/&gt;per Hypothesis]
220
- Verdict --&gt; Support[• Supported&lt;br/&gt;• Refuted&lt;br/&gt;• Inconclusive]
221
- Support --&gt; Gaps[Identify Knowledge&lt;br/&gt;Gaps &amp; Limitations]
222
- Gaps --&gt; Output[Return Analysis&lt;br/&gt;Report]
223
-
224
- style Input1 fill:#fff4e6
225
- style Input2 fill:#e6f3ff
226
- style Execute fill:#ffe6e6
227
- style Output fill:#e6ffe6</code></pre> <h2 id=9-report-agent-workflow>9. Report Agent Workflow<a class=headerlink href=#9-report-agent-workflow title="Permanent link">¶</a></h2> <pre class=mermaid><code>flowchart TD
228
- Input1[Query] --&gt; Assemble
229
- Input2[Hypotheses] --&gt; Assemble
230
- Input3[Search Results] --&gt; Assemble
231
- Input4[Analysis] --&gt; Assemble[Assemble Report&lt;br/&gt;Sections]
232
-
233
- Assemble --&gt; Exec[Executive Summary]
234
- Assemble --&gt; Intro[Introduction]
235
- Assemble --&gt; Methods[Methods]
236
- Assemble --&gt; Results[Results per&lt;br/&gt;Hypothesis]
237
- Assemble --&gt; Discussion[Discussion]
238
- Assemble --&gt; Future[Future Directions]
239
- Assemble --&gt; Refs[References]
240
-
241
- Results --&gt; VizCheck{Needs&lt;br/&gt;Visualization?}
242
- VizCheck --&gt;|Yes| GenViz[Generate Viz Code]
243
- GenViz --&gt; ExecViz[Execute via MCP&lt;br/&gt;Create Charts]
244
- ExecViz --&gt; Combine
245
- VizCheck --&gt;|No| Combine[Combine All&lt;br/&gt;Sections]
246
-
247
- Exec --&gt; Combine
248
- Intro --&gt; Combine
249
- Methods --&gt; Combine
250
- Discussion --&gt; Combine
251
- Future --&gt; Combine
252
- Refs --&gt; Combine
253
-
254
- Combine --&gt; Format[Format Output]
255
- Format --&gt; MD[Markdown]
256
- Format --&gt; PDF[PDF]
257
- Format --&gt; JSON[JSON]
258
-
259
- MD --&gt; Output[Return Final&lt;br/&gt;Report]
260
- PDF --&gt; Output
261
- JSON --&gt; Output
262
-
263
- style Input1 fill:#e1f5e1
264
- style Input2 fill:#fff4e6
265
- style Input3 fill:#e6f3ff
266
- style Input4 fill:#e6ffe6
267
- style Output fill:#d4edda</code></pre> <h2 id=10-data-flow-event-streaming>10. Data Flow &amp; Event Streaming<a class=headerlink href=#10-data-flow-event-streaming title="Permanent link">¶</a></h2> <pre class=mermaid><code>flowchart TD
268
- User[👤 User] --&gt;|Research Query| UI[Gradio UI]
269
- UI --&gt;|Submit| Manager[Magentic Manager]
270
-
271
- Manager --&gt;|Event: Planning| UI
272
- Manager --&gt;|Select Agent| HypAgent[Hypothesis Agent]
273
- HypAgent --&gt;|Event: Delta/Message| UI
274
- HypAgent --&gt;|Hypotheses| Context[(Shared Context)]
275
-
276
- Context --&gt;|Retrieved by| Manager
277
- Manager --&gt;|Select Agent| SearchAgent[Search Agent]
278
- SearchAgent --&gt;|MCP Request| WebSearch[Web Search Tool]
279
- WebSearch --&gt;|Results| SearchAgent
280
- SearchAgent --&gt;|Event: Delta/Message| UI
281
- SearchAgent --&gt;|Documents| Context
282
- SearchAgent --&gt;|Embeddings| VectorDB[(Vector DB)]
283
-
284
- Context --&gt;|Retrieved by| Manager
285
- Manager --&gt;|Select Agent| AnalysisAgent[Analysis Agent]
286
- AnalysisAgent --&gt;|MCP Request| CodeExec[Code Execution Tool]
287
- CodeExec --&gt;|Results| AnalysisAgent
288
- AnalysisAgent --&gt;|Event: Delta/Message| UI
289
- AnalysisAgent --&gt;|Analysis| Context
290
-
291
- Context --&gt;|Retrieved by| Manager
292
- Manager --&gt;|Select Agent| ReportAgent[Report Agent]
293
- ReportAgent --&gt;|MCP Request| CodeExec
294
- ReportAgent --&gt;|Event: Delta/Message| UI
295
- ReportAgent --&gt;|Report| Context
296
-
297
- Manager --&gt;|Event: Final Result| UI
298
- UI --&gt;|Display| User
299
-
300
- style User fill:#e1f5e1
301
- style UI fill:#e6f3ff
302
- style Manager fill:#ffe6e6
303
- style Context fill:#ffe6f0
304
- style VectorDB fill:#ffe6f0
305
- style WebSearch fill:#f0f0f0
306
- style CodeExec fill:#f0f0f0</code></pre> <h2 id=11-mcp-tool-architecture>11. MCP Tool Architecture<a class=headerlink href=#11-mcp-tool-architecture title="Permanent link">¶</a></h2> <pre class=mermaid><code>graph TB
307
- subgraph "Agent Layer"
308
- Manager[Magentic Manager]
309
- HypAgent[Hypothesis Agent]
310
- SearchAgent[Search Agent]
311
- AnalysisAgent[Analysis Agent]
312
- ReportAgent[Report Agent]
313
- end
314
-
315
- subgraph "MCP Protocol Layer"
316
- Registry[MCP Tool Registry&lt;br/&gt;• Discovers tools&lt;br/&gt;• Routes requests&lt;br/&gt;• Manages connections]
317
- end
318
-
319
- subgraph "MCP Servers"
320
- Server1[Web Search Server&lt;br/&gt;localhost:8001&lt;br/&gt;• PubMed&lt;br/&gt;• arXiv&lt;br/&gt;• bioRxiv]
321
- Server2[Code Execution Server&lt;br/&gt;localhost:8002&lt;br/&gt;• Sandboxed Python&lt;br/&gt;• Package management]
322
- Server3[RAG Server&lt;br/&gt;localhost:8003&lt;br/&gt;• Vector embeddings&lt;br/&gt;• Similarity search]
323
- Server4[Visualization Server&lt;br/&gt;localhost:8004&lt;br/&gt;• Chart generation&lt;br/&gt;• Plot rendering]
324
- end
325
-
326
- subgraph "External Services"
327
- PubMed[PubMed API]
328
- ArXiv[arXiv API]
329
- BioRxiv[bioRxiv API]
330
- Modal[Modal Sandbox]
331
- ChromaDB[(ChromaDB)]
332
- end
333
-
334
- SearchAgent --&gt;|Request| Registry
335
- AnalysisAgent --&gt;|Request| Registry
336
- ReportAgent --&gt;|Request| Registry
337
-
338
- Registry --&gt; Server1
339
- Registry --&gt; Server2
340
- Registry --&gt; Server3
341
- Registry --&gt; Server4
342
-
343
- Server1 --&gt; PubMed
344
- Server1 --&gt; ArXiv
345
- Server1 --&gt; BioRxiv
346
- Server2 --&gt; Modal
347
- Server3 --&gt; ChromaDB
348
-
349
- style Manager fill:#ffe6e6
350
- style Registry fill:#fff4e6
351
- style Server1 fill:#e6f3ff
352
- style Server2 fill:#e6f3ff
353
- style Server3 fill:#e6f3ff
354
- style Server4 fill:#e6f3ff</code></pre> <h2 id=12-progress-tracking-stall-detection>12. Progress Tracking &amp; Stall Detection<a class=headerlink href=#12-progress-tracking-stall-detection title="Permanent link">¶</a></h2> <pre class=mermaid><code>stateDiagram-v2
355
- [*] --&gt; Initialization: User Query
356
-
357
- Initialization --&gt; Planning: Manager starts
358
-
359
- Planning --&gt; AgentExecution: Select agent
360
-
361
- AgentExecution --&gt; Assessment: Collect results
362
-
363
- Assessment --&gt; QualityCheck: Evaluate output
364
-
365
- QualityCheck --&gt; AgentExecution: Poor quality&lt;br/&gt;(retry &lt; max_rounds)
366
- QualityCheck --&gt; Planning: Poor quality&lt;br/&gt;(try different agent)
367
- QualityCheck --&gt; NextAgent: Good quality&lt;br/&gt;(task incomplete)
368
- QualityCheck --&gt; Synthesis: Good quality&lt;br/&gt;(task complete)
369
-
370
- NextAgent --&gt; AgentExecution: Select next agent
371
-
372
- state StallDetection &lt;&lt;choice&gt;&gt;
373
- Assessment --&gt; StallDetection: Check progress
374
- StallDetection --&gt; Planning: No progress&lt;br/&gt;(stall count &lt; max)
375
- StallDetection --&gt; ErrorRecovery: No progress&lt;br/&gt;(max stalls reached)
376
-
377
- ErrorRecovery --&gt; PartialReport: Generate partial results
378
- PartialReport --&gt; [*]
379
-
380
- Synthesis --&gt; FinalReport: Combine all outputs
381
- FinalReport --&gt; [*]
382
-
383
- note right of QualityCheck
384
- Manager assesses:
385
- • Output completeness
386
- • Quality metrics
387
- • Progress made
388
- end note
389
-
390
- note right of StallDetection
391
- Stall = no new progress
392
- after agent execution
393
- Triggers plan reset
394
- end note</code></pre> <h2 id=13-gradio-ui-integration>13. Gradio UI Integration<a class=headerlink href=#13-gradio-ui-integration title="Permanent link">¶</a></h2> <pre class=mermaid><code>graph TD
395
- App[Gradio App&lt;br/&gt;DeepCritical Research Agent]
396
-
397
- App --&gt; Input[Input Section]
398
- App --&gt; Status[Status Section]
399
- App --&gt; Output[Output Section]
400
-
401
- Input --&gt; Query[Research Question&lt;br/&gt;Text Area]
402
- Input --&gt; Controls[Controls]
403
- Controls --&gt; MaxHyp[Max Hypotheses: 1-10]
404
- Controls --&gt; MaxRounds[Max Rounds: 5-20]
405
- Controls --&gt; Submit[Start Research Button]
406
-
407
- Status --&gt; Log[Real-time Event Log&lt;br/&gt;• Manager planning&lt;br/&gt;• Agent selection&lt;br/&gt;• Execution updates&lt;br/&gt;• Quality assessment]
408
- Status --&gt; Progress[Progress Tracker&lt;br/&gt;• Current agent&lt;br/&gt;• Round count&lt;br/&gt;• Stall count]
409
-
410
- Output --&gt; Tabs[Tabbed Results]
411
- Tabs --&gt; Tab1[Hypotheses Tab&lt;br/&gt;Generated hypotheses with scores]
412
- Tabs --&gt; Tab2[Search Results Tab&lt;br/&gt;Papers &amp; sources found]
413
- Tabs --&gt; Tab3[Analysis Tab&lt;br/&gt;Evidence &amp; verdicts]
414
- Tabs --&gt; Tab4[Report Tab&lt;br/&gt;Final research report]
415
- Tab4 --&gt; Download[Download Report&lt;br/&gt;MD / PDF / JSON]
416
-
417
- Submit -.-&gt;|Triggers| Workflow[Magentic Workflow]
418
- Workflow -.-&gt;|MagenticOrchestratorMessageEvent| Log
419
- Workflow -.-&gt;|MagenticAgentDeltaEvent| Log
420
- Workflow -.-&gt;|MagenticAgentMessageEvent| Log
421
- Workflow -.-&gt;|MagenticFinalResultEvent| Tab4
422
-
423
- style App fill:#e1f5e1
424
- style Input fill:#fff4e6
425
- style Status fill:#e6f3ff
426
- style Output fill:#e6ffe6
427
- style Workflow fill:#ffe6e6</code></pre> <h2 id=14-complete-system-context>14. Complete System Context<a class=headerlink href=#14-complete-system-context title="Permanent link">¶</a></h2> <pre class=mermaid><code>graph LR
428
- User[👤 Researcher&lt;br/&gt;Asks research questions] --&gt;|Submits query| DC[DeepCritical&lt;br/&gt;Magentic Workflow]
429
-
430
- DC --&gt;|Literature search| PubMed[PubMed API&lt;br/&gt;Medical papers]
431
- DC --&gt;|Preprint search| ArXiv[arXiv API&lt;br/&gt;Scientific preprints]
432
- DC --&gt;|Biology search| BioRxiv[bioRxiv API&lt;br/&gt;Biology preprints]
433
- DC --&gt;|Agent reasoning| Claude[Claude API&lt;br/&gt;Sonnet 4 / Opus]
434
- DC --&gt;|Code execution| Modal[Modal Sandbox&lt;br/&gt;Safe Python env]
435
- DC --&gt;|Vector storage| Chroma[ChromaDB&lt;br/&gt;Embeddings &amp; RAG]
436
-
437
- DC --&gt;|Deployed on| HF[HuggingFace Spaces&lt;br/&gt;Gradio 6.0]
438
-
439
- PubMed --&gt;|Results| DC
440
- ArXiv --&gt;|Results| DC
441
- BioRxiv --&gt;|Results| DC
442
- Claude --&gt;|Responses| DC
443
- Modal --&gt;|Output| DC
444
- Chroma --&gt;|Context| DC
445
-
446
- DC --&gt;|Research report| User
447
-
448
- style User fill:#e1f5e1
449
- style DC fill:#ffe6e6
450
- style PubMed fill:#e6f3ff
451
- style ArXiv fill:#e6f3ff
452
- style BioRxiv fill:#e6f3ff
453
- style Claude fill:#ffd6d6
454
- style Modal fill:#f0f0f0
455
- style Chroma fill:#ffe6f0
456
- style HF fill:#d4edda</code></pre> <h2 id=15-workflow-timeline-simplified>15. Workflow Timeline (Simplified)<a class=headerlink href=#15-workflow-timeline-simplified title="Permanent link">¶</a></h2> <pre class=mermaid><code>gantt
457
- title DeepCritical Magentic Workflow - Typical Execution
458
- dateFormat mm:ss
459
- axisFormat %M:%S
460
-
461
- section Manager Planning
462
- Initial planning :p1, 00:00, 10s
463
-
464
- section Hypothesis Agent
465
- Generate hypotheses :h1, after p1, 30s
466
- Manager assessment :h2, after h1, 5s
467
-
468
- section Search Agent
469
- Search hypothesis 1 :s1, after h2, 20s
470
- Search hypothesis 2 :s2, after s1, 20s
471
- Search hypothesis 3 :s3, after s2, 20s
472
- RAG processing :s4, after s3, 15s
473
- Manager assessment :s5, after s4, 5s
474
-
475
- section Analysis Agent
476
- Evidence extraction :a1, after s5, 15s
477
- Code generation :a2, after a1, 20s
478
- Code execution :a3, after a2, 25s
479
- Synthesis :a4, after a3, 20s
480
- Manager assessment :a5, after a4, 5s
481
-
482
- section Report Agent
483
- Report assembly :r1, after a5, 30s
484
- Visualization :r2, after r1, 15s
485
- Formatting :r3, after r2, 10s
486
-
487
- section Manager Synthesis
488
- Final synthesis :f1, after r3, 10s</code></pre> <hr> <h2 id=key-differences-from-original-design>Key Differences from Original Design<a class=headerlink href=#key-differences-from-original-design title="Permanent link">¶</a></h2> <table> <thead> <tr> <th>Aspect</th> <th>Original (Judge-in-Loop)</th> <th>New (Magentic)</th> </tr> </thead> <tbody> <tr> <td><strong>Control Flow</strong></td> <td>Fixed sequential phases</td> <td>Dynamic agent selection</td> </tr> <tr> <td><strong>Quality Control</strong></td> <td>Separate Judge Agent</td> <td>Manager assessment built-in</td> </tr> <tr> <td><strong>Retry Logic</strong></td> <td>Phase-level with feedback</td> <td>Agent-level with adaptation</td> </tr> <tr> <td><strong>Flexibility</strong></td> <td>Rigid 4-phase pipeline</td> <td>Adaptive workflow</td> </tr> <tr> <td><strong>Complexity</strong></td> <td>5 agents (including Judge)</td> <td>4 agents (no Judge)</td> </tr> <tr> <td><strong>Progress Tracking</strong></td> <td>Manual state management</td> <td>Built-in round/stall detection</td> </tr> <tr> <td><strong>Agent Coordination</strong></td> <td>Sequential handoff</td> <td>Manager-driven dynamic selection</td> </tr> <tr> <td><strong>Error Recovery</strong></td> <td>Retry same phase</td> <td>Try different agent or replan</td> </tr> </tbody> </table> <hr> <h2 id=simplified-design-principles>Simplified Design Principles<a class=headerlink href=#simplified-design-principles title="Permanent link">¶</a></h2> <ol> <li><strong>Manager is Intelligent</strong>: LLM-powered manager handles planning, selection, and quality assessment</li> <li><strong>No Separate Judge</strong>: Manager's assessment phase replaces dedicated Judge Agent</li> <li><strong>Dynamic Workflow</strong>: Agents can be called multiple times in any order based on need</li> <li><strong>Built-in Safety</strong>: max_round_count (15) and max_stall_count (3) prevent infinite loops</li> <li><strong>Event-Driven UI</strong>: Real-time streaming updates to Gradio interface</li> <li><strong>MCP-Powered Tools</strong>: All external capabilities via Model Context Protocol</li> <li><strong>Shared Context</strong>: Centralized state accessible to all agents</li> <li><strong>Progress Awareness</strong>: Manager tracks what's been done and what's needed</li> </ol> <hr> <h2 id=legend>Legend<a class=headerlink href=#legend title="Permanent link">¶</a></h2> <ul> <li>🔴 <strong>Red/Pink</strong>: Manager, orchestration, decision-making</li> <li>🟡 <strong>Yellow/Orange</strong>: Specialist agents, processing</li> <li>🔵 <strong>Blue</strong>: Data, tools, MCP services</li> <li>🟣 <strong>Purple/Pink</strong>: Storage, databases, state</li> <li>🟢 <strong>Green</strong>: User interactions, final outputs</li> <li>⚪ <strong>Gray</strong>: External services, APIs</li> </ul> <hr> <h2 id=implementation-highlights>Implementation Highlights<a class=headerlink href=#implementation-highlights title="Permanent link">¶</a></h2> <p><strong>Simple 4-Agent Setup:</strong> <div class=highlight><pre><span></span><code><a href=#__codelineno-0-1 id=__codelineno-0-1 name=__codelineno-0-1></a><span class=n>workflow</span> <span class=o>=</span> <span class=p>(</span>
489
- <a href=#__codelineno-0-2 id=__codelineno-0-2 name=__codelineno-0-2></a> <span class=n>MagenticBuilder</span><span class=p>()</span>
490
- <a href=#__codelineno-0-3 id=__codelineno-0-3 name=__codelineno-0-3></a> <span class=o>.</span><span class=n>participants</span><span class=p>(</span>
491
- <a href=#__codelineno-0-4 id=__codelineno-0-4 name=__codelineno-0-4></a> <span class=n>hypothesis</span><span class=o>=</span><span class=n>HypothesisAgent</span><span class=p>(</span><span class=n>tools</span><span class=o>=</span><span class=p>[</span><span class=n>background_tool</span><span class=p>]),</span>
492
- <a href=#__codelineno-0-5 id=__codelineno-0-5 name=__codelineno-0-5></a> <span class=n>search</span><span class=o>=</span><span class=n>SearchAgent</span><span class=p>(</span><span class=n>tools</span><span class=o>=</span><span class=p>[</span><span class=n>web_search</span><span class=p>,</span> <span class=n>rag_tool</span><span class=p>]),</span>
493
- <a href=#__codelineno-0-6 id=__codelineno-0-6 name=__codelineno-0-6></a> <span class=n>analysis</span><span class=o>=</span><span class=n>AnalysisAgent</span><span class=p>(</span><span class=n>tools</span><span class=o>=</span><span class=p>[</span><span class=n>code_execution</span><span class=p>]),</span>
494
- <a href=#__codelineno-0-7 id=__codelineno-0-7 name=__codelineno-0-7></a> <span class=n>report</span><span class=o>=</span><span class=n>ReportAgent</span><span class=p>(</span><span class=n>tools</span><span class=o>=</span><span class=p>[</span><span class=n>code_execution</span><span class=p>,</span> <span class=n>visualization</span><span class=p>])</span>
495
- <a href=#__codelineno-0-8 id=__codelineno-0-8 name=__codelineno-0-8></a> <span class=p>)</span>
496
- <a href=#__codelineno-0-9 id=__codelineno-0-9 name=__codelineno-0-9></a> <span class=o>.</span><span class=n>with_standard_manager</span><span class=p>(</span>
497
- <a href=#__codelineno-0-10 id=__codelineno-0-10 name=__codelineno-0-10></a> <span class=n>chat_client</span><span class=o>=</span><span class=n>AnthropicClient</span><span class=p>(</span><span class=n>model</span><span class=o>=</span><span class=s2>"claude-sonnet-4"</span><span class=p>),</span>
498
- <a href=#__codelineno-0-11 id=__codelineno-0-11 name=__codelineno-0-11></a> <span class=n>max_round_count</span><span class=o>=</span><span class=mi>15</span><span class=p>,</span> <span class=c1># Prevent infinite loops</span>
499
- <a href=#__codelineno-0-12 id=__codelineno-0-12 name=__codelineno-0-12></a> <span class=n>max_stall_count</span><span class=o>=</span><span class=mi>3</span> <span class=c1># Detect stuck workflows</span>
500
- <a href=#__codelineno-0-13 id=__codelineno-0-13 name=__codelineno-0-13></a> <span class=p>)</span>
501
- <a href=#__codelineno-0-14 id=__codelineno-0-14 name=__codelineno-0-14></a> <span class=o>.</span><span class=n>build</span><span class=p>()</span>
502
- <a href=#__codelineno-0-15 id=__codelineno-0-15 name=__codelineno-0-15></a><span class=p>)</span>
503
- </code></pre></div></p> <p><strong>Manager handles quality assessment in its instructions:</strong> - Checks hypothesis quality (testable, novel, clear) - Validates search results (relevant, authoritative, recent) - Assesses analysis soundness (methodology, evidence, conclusions) - Ensures report completeness (all sections, proper citations)</p> <p>No separate Judge Agent needed - manager does it all!</p> <hr> <p><strong>Document Version</strong>: 2.0 (Magentic Simplified) <strong>Last Updated</strong>: 2025-11-24 <strong>Architecture</strong>: Microsoft Magentic Orchestration Pattern <strong>Agents</strong>: 4 (Hypothesis, Search, Analysis, Report) + 1 Manager <strong>License</strong>: MIT</p> </article> </div> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button class="md-top md-icon" data-md-component=top hidden type=button> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"></path></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright © 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ rel=noopener target=_blank> Material for MkDocs </a> </div> <div class=md-social> <a class=md-social__link href=https://github.com/DeepCritical/GradioDemo rel=noopener target=_blank title=github.com> <svg viewbox="0 0 512 512" xmlns=http://www.w3.org/2000/svg><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"></path></svg> </a> <a class=md-social__link href=https://huggingface.co/spaces/DataQuests/DeepCritical rel=noopener target=_blank title=huggingface.co> <svg viewbox="0 0 24 24" xmlns=http://www.w3.org/2000/svg><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"></path></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> </body> </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
site/configuration/CONFIGURATION/index.html DELETED
@@ -1,130 +0,0 @@
1
- <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DETERMINATOR Team"><link href=https://deepcritical.github.io/GradioDemo/configuration/CONFIGURATION/ rel=canonical><link href=../../getting-started/examples/ rel=prev><link href=../../architecture/graph_orchestration/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Configuration Guide - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#configuration-guide class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Configuration Guide </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=./ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../../architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../../contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Quick Start Guide </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_4 checked> <label class=md-nav__link for=__nav_4 id=__nav_4_label tabindex> <span class=md-ellipsis> Configuration </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=true> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Configuration Guide </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Configuration Guide </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#overview class=md-nav__link> <span class=md-ellipsis> Overview </span> </a> </li> <li class=md-nav__item> <a href=#quick-start class=md-nav__link> <span class=md-ellipsis> Quick Start </span> </a> </li> <li class=md-nav__item> <a href=#configuration-system-architecture class=md-nav__link> <span class=md-ellipsis> Configuration System Architecture </span> </a> <nav class=md-nav aria-label="Configuration System Architecture"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#settings-class class=md-nav__link> <span class=md-ellipsis> Settings Class </span> </a> </li> <li class=md-nav__item> <a href=#singleton-instance class=md-nav__link> <span class=md-ellipsis> Singleton Instance </span> </a> </li> <li class=md-nav__item> <a href=#usage-pattern class=md-nav__link> <span class=md-ellipsis> Usage Pattern </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#required-configuration class=md-nav__link> <span class=md-ellipsis> Required Configuration </span> </a> <nav class=md-nav aria-label="Required Configuration"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#llm-provider class=md-nav__link> <span class=md-ellipsis> LLM Provider </span> </a> <nav class=md-nav aria-label="LLM Provider"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#openai-configuration class=md-nav__link> <span class=md-ellipsis> OpenAI Configuration </span> </a> </li> <li class=md-nav__item> <a href=#anthropic-configuration class=md-nav__link> <span class=md-ellipsis> Anthropic Configuration </span> </a> </li> <li class=md-nav__item> <a href=#huggingface-configuration class=md-nav__link> <span class=md-ellipsis> HuggingFace Configuration </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#optional-configuration class=md-nav__link> <span class=md-ellipsis> Optional Configuration </span> </a> <nav class=md-nav aria-label="Optional Configuration"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#embedding-configuration class=md-nav__link> <span class=md-ellipsis> Embedding Configuration </span> </a> </li> <li class=md-nav__item> <a href=#web-search-configuration class=md-nav__link> <span class=md-ellipsis> Web Search Configuration </span> </a> </li> <li class=md-nav__item> <a href=#pubmed-configuration class=md-nav__link> <span class=md-ellipsis> PubMed Configuration </span> </a> </li> <li class=md-nav__item> <a href=#agent-configuration class=md-nav__link> <span class=md-ellipsis> Agent Configuration </span> </a> </li> <li class=md-nav__item> <a href=#budget-rate-limiting-configuration class=md-nav__link> <span class=md-ellipsis> Budget &amp; Rate Limiting Configuration </span> </a> </li> <li class=md-nav__item> <a href=#rag-service-configuration class=md-nav__link> <span class=md-ellipsis> RAG Service Configuration </span> </a> </li> <li class=md-nav__item> <a href=#chromadb-configuration class=md-nav__link> <span class=md-ellipsis> ChromaDB Configuration </span> </a> </li> <li class=md-nav__item> <a href=#external-services class=md-nav__link> <span class=md-ellipsis> External Services </span> </a> <nav class=md-nav aria-label="External Services"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#modal-configuration class=md-nav__link> <span class=md-ellipsis> Modal Configuration </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#logging-configuration class=md-nav__link> <span class=md-ellipsis> Logging Configuration </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#configuration-properties class=md-nav__link> <span class=md-ellipsis> Configuration Properties </span> </a> <nav class=md-nav aria-label="Configuration Properties"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#api-key-availability class=md-nav__link> <span class=md-ellipsis> API Key Availability </span> </a> </li> <li class=md-nav__item> <a href=#service-availability class=md-nav__link> <span class=md-ellipsis> Service Availability </span> </a> </li> <li class=md-nav__item> <a href=#api-key-retrieval class=md-nav__link> <span class=md-ellipsis> API Key Retrieval </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#configuration-usage-in-codebase class=md-nav__link> <span class=md-ellipsis> Configuration Usage in Codebase </span> </a> <nav class=md-nav aria-label="Configuration Usage in Codebase"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#llm-factory class=md-nav__link> <span class=md-ellipsis> LLM Factory </span> </a> </li> <li class=md-nav__item> <a href=#embedding-service class=md-nav__link> <span class=md-ellipsis> Embedding Service </span> </a> </li> <li class=md-nav__item> <a href=#orchestrator-factory class=md-nav__link> <span class=md-ellipsis> Orchestrator Factory </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#environment-variables-reference class=md-nav__link> <span class=md-ellipsis> Environment Variables Reference </span> </a> <nav class=md-nav aria-label="Environment Variables Reference"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#required-at-least-one-llm class=md-nav__link> <span class=md-ellipsis> Required (at least one LLM) </span> </a> <nav class=md-nav aria-label="Required (at least one LLM)"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#llm-configuration-variables class=md-nav__link> <span class=md-ellipsis> LLM Configuration Variables </span> </a> </li> <li class=md-nav__item> <a href=#embedding-configuration-variables class=md-nav__link> <span class=md-ellipsis> Embedding Configuration Variables </span> </a> </li> <li class=md-nav__item> <a href=#web-search-configuration-variables class=md-nav__link> <span class=md-ellipsis> Web Search Configuration Variables </span> </a> </li> <li class=md-nav__item> <a href=#pubmed-configuration-variables class=md-nav__link> <span class=md-ellipsis> PubMed Configuration Variables </span> </a> </li> <li class=md-nav__item> <a href=#agent-configuration-variables class=md-nav__link> <span class=md-ellipsis> Agent Configuration Variables </span> </a> </li> <li class=md-nav__item> <a href=#budget-configuration-variables class=md-nav__link> <span class=md-ellipsis> Budget Configuration Variables </span> </a> </li> <li class=md-nav__item> <a href=#rag-configuration-variables class=md-nav__link> <span class=md-ellipsis> RAG Configuration Variables </span> </a> </li> <li class=md-nav__item> <a href=#chromadb-configuration-variables class=md-nav__link> <span class=md-ellipsis> ChromaDB Configuration Variables </span> </a> </li> <li class=md-nav__item> <a href=#external-services-variables class=md-nav__link> <span class=md-ellipsis> External Services Variables </span> </a> </li> <li class=md-nav__item> <a href=#logging-configuration-variables class=md-nav__link> <span class=md-ellipsis> Logging Configuration Variables </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#validation class=md-nav__link> <span class=md-ellipsis> Validation </span> </a> <nav class=md-nav aria-label=Validation> <ul class=md-nav__list> <li class=md-nav__item> <a href=#validation-examples class=md-nav__link> <span class=md-ellipsis> Validation Examples </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#error-handling class=md-nav__link> <span class=md-ellipsis> Error Handling </span> </a> <nav class=md-nav aria-label="Error Handling"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#error-handling-example class=md-nav__link> <span class=md-ellipsis> Error Handling Example </span> </a> </li> <li class=md-nav__item> <a href=#common-configuration-errors class=md-nav__link> <span class=md-ellipsis> Common Configuration Errors </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#configuration-best-practices class=md-nav__link> <span class=md-ellipsis> Configuration Best Practices </span> </a> </li> <li class=md-nav__item> <a href=#future-enhancements class=md-nav__link> <span class=md-ellipsis> Future Enhancements </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <label class=md-nav__link for=__nav_7 id=__nav_7_label tabindex=0> <span class=md-ellipsis> Contributing </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../contributing/ class=md-nav__link> <span class=md-ellipsis> Contributing to DeepCritical </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=sidebar data-md-type=toc> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#overview class=md-nav__link> <span class=md-ellipsis> Overview </span> </a> </li> <li class=md-nav__item> <a href=#quick-start class=md-nav__link> <span class=md-ellipsis> Quick Start </span> </a> </li> <li class=md-nav__item> <a href=#configuration-system-architecture class=md-nav__link> <span class=md-ellipsis> Configuration System Architecture </span> </a> <nav class=md-nav aria-label="Configuration System Architecture"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#settings-class class=md-nav__link> <span class=md-ellipsis> Settings Class </span> </a> </li> <li class=md-nav__item> <a href=#singleton-instance class=md-nav__link> <span class=md-ellipsis> Singleton Instance </span> </a> </li> <li class=md-nav__item> <a href=#usage-pattern class=md-nav__link> <span class=md-ellipsis> Usage Pattern </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#required-configuration class=md-nav__link> <span class=md-ellipsis> Required Configuration </span> </a> <nav class=md-nav aria-label="Required Configuration"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#llm-provider class=md-nav__link> <span class=md-ellipsis> LLM Provider </span> </a> <nav class=md-nav aria-label="LLM Provider"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#openai-configuration class=md-nav__link> <span class=md-ellipsis> OpenAI Configuration </span> </a> </li> <li class=md-nav__item> <a href=#anthropic-configuration class=md-nav__link> <span class=md-ellipsis> Anthropic Configuration </span> </a> </li> <li class=md-nav__item> <a href=#huggingface-configuration class=md-nav__link> <span class=md-ellipsis> HuggingFace Configuration </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#optional-configuration class=md-nav__link> <span class=md-ellipsis> Optional Configuration </span> </a> <nav class=md-nav aria-label="Optional Configuration"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#embedding-configuration class=md-nav__link> <span class=md-ellipsis> Embedding Configuration </span> </a> </li> <li class=md-nav__item> <a href=#web-search-configuration class=md-nav__link> <span class=md-ellipsis> Web Search Configuration </span> </a> </li> <li class=md-nav__item> <a href=#pubmed-configuration class=md-nav__link> <span class=md-ellipsis> PubMed Configuration </span> </a> </li> <li class=md-nav__item> <a href=#agent-configuration class=md-nav__link> <span class=md-ellipsis> Agent Configuration </span> </a> </li> <li class=md-nav__item> <a href=#budget-rate-limiting-configuration class=md-nav__link> <span class=md-ellipsis> Budget &amp; Rate Limiting Configuration </span> </a> </li> <li class=md-nav__item> <a href=#rag-service-configuration class=md-nav__link> <span class=md-ellipsis> RAG Service Configuration </span> </a> </li> <li class=md-nav__item> <a href=#chromadb-configuration class=md-nav__link> <span class=md-ellipsis> ChromaDB Configuration </span> </a> </li> <li class=md-nav__item> <a href=#external-services class=md-nav__link> <span class=md-ellipsis> External Services </span> </a> <nav class=md-nav aria-label="External Services"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#modal-configuration class=md-nav__link> <span class=md-ellipsis> Modal Configuration </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#logging-configuration class=md-nav__link> <span class=md-ellipsis> Logging Configuration </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#configuration-properties class=md-nav__link> <span class=md-ellipsis> Configuration Properties </span> </a> <nav class=md-nav aria-label="Configuration Properties"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#api-key-availability class=md-nav__link> <span class=md-ellipsis> API Key Availability </span> </a> </li> <li class=md-nav__item> <a href=#service-availability class=md-nav__link> <span class=md-ellipsis> Service Availability </span> </a> </li> <li class=md-nav__item> <a href=#api-key-retrieval class=md-nav__link> <span class=md-ellipsis> API Key Retrieval </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#configuration-usage-in-codebase class=md-nav__link> <span class=md-ellipsis> Configuration Usage in Codebase </span> </a> <nav class=md-nav aria-label="Configuration Usage in Codebase"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#llm-factory class=md-nav__link> <span class=md-ellipsis> LLM Factory </span> </a> </li> <li class=md-nav__item> <a href=#embedding-service class=md-nav__link> <span class=md-ellipsis> Embedding Service </span> </a> </li> <li class=md-nav__item> <a href=#orchestrator-factory class=md-nav__link> <span class=md-ellipsis> Orchestrator Factory </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#environment-variables-reference class=md-nav__link> <span class=md-ellipsis> Environment Variables Reference </span> </a> <nav class=md-nav aria-label="Environment Variables Reference"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#required-at-least-one-llm class=md-nav__link> <span class=md-ellipsis> Required (at least one LLM) </span> </a> <nav class=md-nav aria-label="Required (at least one LLM)"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#llm-configuration-variables class=md-nav__link> <span class=md-ellipsis> LLM Configuration Variables </span> </a> </li> <li class=md-nav__item> <a href=#embedding-configuration-variables class=md-nav__link> <span class=md-ellipsis> Embedding Configuration Variables </span> </a> </li> <li class=md-nav__item> <a href=#web-search-configuration-variables class=md-nav__link> <span class=md-ellipsis> Web Search Configuration Variables </span> </a> </li> <li class=md-nav__item> <a href=#pubmed-configuration-variables class=md-nav__link> <span class=md-ellipsis> PubMed Configuration Variables </span> </a> </li> <li class=md-nav__item> <a href=#agent-configuration-variables class=md-nav__link> <span class=md-ellipsis> Agent Configuration Variables </span> </a> </li> <li class=md-nav__item> <a href=#budget-configuration-variables class=md-nav__link> <span class=md-ellipsis> Budget Configuration Variables </span> </a> </li> <li class=md-nav__item> <a href=#rag-configuration-variables class=md-nav__link> <span class=md-ellipsis> RAG Configuration Variables </span> </a> </li> <li class=md-nav__item> <a href=#chromadb-configuration-variables class=md-nav__link> <span class=md-ellipsis> ChromaDB Configuration Variables </span> </a> </li> <li class=md-nav__item> <a href=#external-services-variables class=md-nav__link> <span class=md-ellipsis> External Services Variables </span> </a> </li> <li class=md-nav__item> <a href=#logging-configuration-variables class=md-nav__link> <span class=md-ellipsis> Logging Configuration Variables </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#validation class=md-nav__link> <span class=md-ellipsis> Validation </span> </a> <nav class=md-nav aria-label=Validation> <ul class=md-nav__list> <li class=md-nav__item> <a href=#validation-examples class=md-nav__link> <span class=md-ellipsis> Validation Examples </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#error-handling class=md-nav__link> <span class=md-ellipsis> Error Handling </span> </a> <nav class=md-nav aria-label="Error Handling"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#error-handling-example class=md-nav__link> <span class=md-ellipsis> Error Handling Example </span> </a> </li> <li class=md-nav__item> <a href=#common-configuration-errors class=md-nav__link> <span class=md-ellipsis> Common Configuration Errors </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#configuration-best-practices class=md-nav__link> <span class=md-ellipsis> Configuration Best Practices </span> </a> </li> <li class=md-nav__item> <a href=#future-enhancements class=md-nav__link> <span class=md-ellipsis> Future Enhancements </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=configuration-guide>Configuration Guide<a class=headerlink href=#configuration-guide title="Permanent link">&para;</a></h1> <h2 id=overview>Overview<a class=headerlink href=#overview title="Permanent link">&para;</a></h2> <p>DeepCritical uses <strong>Pydantic Settings</strong> for centralized configuration management. All settings are defined in the <code>Settings</code> class in <code>src/utils/config.py</code> and can be configured via environment variables or a <code>.env</code> file.</p> <p>The configuration system provides:</p> <ul> <li><strong>Type Safety</strong>: Strongly-typed fields with Pydantic validation</li> <li><strong>Environment File Support</strong>: Automatically loads from <code>.env</code> file (if present)</li> <li><strong>Case-Insensitive</strong>: Environment variables are case-insensitive</li> <li><strong>Singleton Pattern</strong>: Global <code>settings</code> instance for easy access throughout the codebase</li> <li><strong>Validation</strong>: Automatic validation on load with helpful error messages</li> </ul> <h2 id=quick-start>Quick Start<a class=headerlink href=#quick-start title="Permanent link">&para;</a></h2> <ol> <li>Create a <code>.env</code> file in the project root</li> <li>Set at least one LLM API key (<code>OPENAI_API_KEY</code>, <code>ANTHROPIC_API_KEY</code>, or <code>HF_TOKEN</code>)</li> <li>Optionally configure other services as needed</li> <li>The application will automatically load and validate your configuration</li> </ol> <h2 id=configuration-system-architecture>Configuration System Architecture<a class=headerlink href=#configuration-system-architecture title="Permanent link">&para;</a></h2> <h3 id=settings-class>Settings Class<a class=headerlink href=#settings-class title="Permanent link">&para;</a></h3> <p>The <code>Settings</code> class extends <code>BaseSettings</code> from <code>pydantic_settings</code> and defines all application configuration:</p> <h3 id=singleton-instance>Singleton Instance<a class=headerlink href=#singleton-instance title="Permanent link">&para;</a></h3> <p>A global <code>settings</code> instance is available for import:</p> <h3 id=usage-pattern>Usage Pattern<a class=headerlink href=#usage-pattern title="Permanent link">&para;</a></h3> <p>Access configuration throughout the codebase:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=kn>from</span><span class=w> </span><span class=nn>src.utils.config</span><span class=w> </span><span class=kn>import</span> <span class=n>settings</span>
2
- <a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a>
3
- <a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a><span class=c1># Check if API keys are available</span>
4
- <a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a><span class=k>if</span> <span class=n>settings</span><span class=o>.</span><span class=n>has_openai_key</span><span class=p>:</span>
5
- <a id=__codelineno-0-5 name=__codelineno-0-5 href=#__codelineno-0-5></a> <span class=c1># Use OpenAI</span>
6
- <a id=__codelineno-0-6 name=__codelineno-0-6 href=#__codelineno-0-6></a> <span class=k>pass</span>
7
- <a id=__codelineno-0-7 name=__codelineno-0-7 href=#__codelineno-0-7></a>
8
- <a id=__codelineno-0-8 name=__codelineno-0-8 href=#__codelineno-0-8></a><span class=c1># Access configuration values</span>
9
- <a id=__codelineno-0-9 name=__codelineno-0-9 href=#__codelineno-0-9></a><span class=n>max_iterations</span> <span class=o>=</span> <span class=n>settings</span><span class=o>.</span><span class=n>max_iterations</span>
10
- <a id=__codelineno-0-10 name=__codelineno-0-10 href=#__codelineno-0-10></a><span class=n>web_search_provider</span> <span class=o>=</span> <span class=n>settings</span><span class=o>.</span><span class=n>web_search_provider</span>
11
- </code></pre></div> <h2 id=required-configuration>Required Configuration<a class=headerlink href=#required-configuration title="Permanent link">&para;</a></h2> <h3 id=llm-provider>LLM Provider<a class=headerlink href=#llm-provider title="Permanent link">&para;</a></h3> <p>You must configure at least one LLM provider. The system supports:</p> <ul> <li><strong>OpenAI</strong>: Requires <code>OPENAI_API_KEY</code></li> <li><strong>Anthropic</strong>: Requires <code>ANTHROPIC_API_KEY</code></li> <li><strong>HuggingFace</strong>: Optional <code>HF_TOKEN</code> or <code>HUGGINGFACE_API_KEY</code> (can work without key for public models)</li> </ul> <h4 id=openai-configuration>OpenAI Configuration<a class=headerlink href=#openai-configuration title="Permanent link">&para;</a></h4> <div class=highlight><pre><span></span><code><a id=__codelineno-1-1 name=__codelineno-1-1 href=#__codelineno-1-1></a><span class=nv>LLM_PROVIDER</span><span class=o>=</span>openai
12
- <a id=__codelineno-1-2 name=__codelineno-1-2 href=#__codelineno-1-2></a><span class=nv>OPENAI_API_KEY</span><span class=o>=</span>your_openai_api_key_here
13
- <a id=__codelineno-1-3 name=__codelineno-1-3 href=#__codelineno-1-3></a><span class=nv>OPENAI_MODEL</span><span class=o>=</span>gpt-5.1
14
- </code></pre></div> <p>The default model is defined in the <code>Settings</code> class:</p> <h4 id=anthropic-configuration>Anthropic Configuration<a class=headerlink href=#anthropic-configuration title="Permanent link">&para;</a></h4> <div class=highlight><pre><span></span><code><a id=__codelineno-2-1 name=__codelineno-2-1 href=#__codelineno-2-1></a><span class=nv>LLM_PROVIDER</span><span class=o>=</span>anthropic
15
- <a id=__codelineno-2-2 name=__codelineno-2-2 href=#__codelineno-2-2></a><span class=nv>ANTHROPIC_API_KEY</span><span class=o>=</span>your_anthropic_api_key_here
16
- <a id=__codelineno-2-3 name=__codelineno-2-3 href=#__codelineno-2-3></a><span class=nv>ANTHROPIC_MODEL</span><span class=o>=</span>claude-sonnet-4-5-20250929
17
- </code></pre></div> <p>The default model is defined in the <code>Settings</code> class:</p> <h4 id=huggingface-configuration>HuggingFace Configuration<a class=headerlink href=#huggingface-configuration title="Permanent link">&para;</a></h4> <p>HuggingFace can work without an API key for public models, but an API key provides higher rate limits:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-3-1 name=__codelineno-3-1 href=#__codelineno-3-1></a><span class=c1># Option 1: Using HF_TOKEN (preferred)</span>
18
- <a id=__codelineno-3-2 name=__codelineno-3-2 href=#__codelineno-3-2></a><span class=nv>HF_TOKEN</span><span class=o>=</span>your_huggingface_token_here
19
- <a id=__codelineno-3-3 name=__codelineno-3-3 href=#__codelineno-3-3></a>
20
- <a id=__codelineno-3-4 name=__codelineno-3-4 href=#__codelineno-3-4></a><span class=c1># Option 2: Using HUGGINGFACE_API_KEY (alternative)</span>
21
- <a id=__codelineno-3-5 name=__codelineno-3-5 href=#__codelineno-3-5></a><span class=nv>HUGGINGFACE_API_KEY</span><span class=o>=</span>your_huggingface_api_key_here
22
- <a id=__codelineno-3-6 name=__codelineno-3-6 href=#__codelineno-3-6></a>
23
- <a id=__codelineno-3-7 name=__codelineno-3-7 href=#__codelineno-3-7></a><span class=c1># Default model</span>
24
- <a id=__codelineno-3-8 name=__codelineno-3-8 href=#__codelineno-3-8></a><span class=nv>HUGGINGFACE_MODEL</span><span class=o>=</span>meta-llama/Llama-3.1-8B-Instruct
25
- </code></pre></div> <p>The HuggingFace token can be set via either environment variable:</p> <h2 id=optional-configuration>Optional Configuration<a class=headerlink href=#optional-configuration title="Permanent link">&para;</a></h2> <h3 id=embedding-configuration>Embedding Configuration<a class=headerlink href=#embedding-configuration title="Permanent link">&para;</a></h3> <p>DeepCritical supports multiple embedding providers for semantic search and RAG:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-4-1 name=__codelineno-4-1 href=#__codelineno-4-1></a><span class=c1># Embedding Provider: &quot;openai&quot;, &quot;local&quot;, or &quot;huggingface&quot;</span>
26
- <a id=__codelineno-4-2 name=__codelineno-4-2 href=#__codelineno-4-2></a><span class=nv>EMBEDDING_PROVIDER</span><span class=o>=</span><span class=nb>local</span>
27
- <a id=__codelineno-4-3 name=__codelineno-4-3 href=#__codelineno-4-3></a>
28
- <a id=__codelineno-4-4 name=__codelineno-4-4 href=#__codelineno-4-4></a><span class=c1># OpenAI Embedding Model (used by LlamaIndex RAG)</span>
29
- <a id=__codelineno-4-5 name=__codelineno-4-5 href=#__codelineno-4-5></a><span class=nv>OPENAI_EMBEDDING_MODEL</span><span class=o>=</span>text-embedding-3-small
30
- <a id=__codelineno-4-6 name=__codelineno-4-6 href=#__codelineno-4-6></a>
31
- <a id=__codelineno-4-7 name=__codelineno-4-7 href=#__codelineno-4-7></a><span class=c1># Local Embedding Model (sentence-transformers, used by EmbeddingService)</span>
32
- <a id=__codelineno-4-8 name=__codelineno-4-8 href=#__codelineno-4-8></a><span class=nv>LOCAL_EMBEDDING_MODEL</span><span class=o>=</span>all-MiniLM-L6-v2
33
- <a id=__codelineno-4-9 name=__codelineno-4-9 href=#__codelineno-4-9></a>
34
- <a id=__codelineno-4-10 name=__codelineno-4-10 href=#__codelineno-4-10></a><span class=c1># HuggingFace Embedding Model</span>
35
- <a id=__codelineno-4-11 name=__codelineno-4-11 href=#__codelineno-4-11></a><span class=nv>HUGGINGFACE_EMBEDDING_MODEL</span><span class=o>=</span>sentence-transformers/all-MiniLM-L6-v2
36
- </code></pre></div> <p>The embedding provider configuration:</p> <p><strong>Note</strong>: OpenAI embeddings require <code>OPENAI_API_KEY</code>. The local provider (default) uses sentence-transformers and requires no API key.</p> <h3 id=web-search-configuration>Web Search Configuration<a class=headerlink href=#web-search-configuration title="Permanent link">&para;</a></h3> <p>DeepCritical supports multiple web search providers:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-5-1 name=__codelineno-5-1 href=#__codelineno-5-1></a><span class=c1># Web Search Provider: &quot;serper&quot;, &quot;searchxng&quot;, &quot;brave&quot;, &quot;tavily&quot;, or &quot;duckduckgo&quot;</span>
37
- <a id=__codelineno-5-2 name=__codelineno-5-2 href=#__codelineno-5-2></a><span class=c1># Default: &quot;duckduckgo&quot; (no API key required)</span>
38
- <a id=__codelineno-5-3 name=__codelineno-5-3 href=#__codelineno-5-3></a><span class=nv>WEB_SEARCH_PROVIDER</span><span class=o>=</span>duckduckgo
39
- <a id=__codelineno-5-4 name=__codelineno-5-4 href=#__codelineno-5-4></a>
40
- <a id=__codelineno-5-5 name=__codelineno-5-5 href=#__codelineno-5-5></a><span class=c1># Serper API Key (for Google search via Serper)</span>
41
- <a id=__codelineno-5-6 name=__codelineno-5-6 href=#__codelineno-5-6></a><span class=nv>SERPER_API_KEY</span><span class=o>=</span>your_serper_api_key_here
42
- <a id=__codelineno-5-7 name=__codelineno-5-7 href=#__codelineno-5-7></a>
43
- <a id=__codelineno-5-8 name=__codelineno-5-8 href=#__codelineno-5-8></a><span class=c1># SearchXNG Host URL (for self-hosted search)</span>
44
- <a id=__codelineno-5-9 name=__codelineno-5-9 href=#__codelineno-5-9></a><span class=nv>SEARCHXNG_HOST</span><span class=o>=</span>http://localhost:8080
45
- <a id=__codelineno-5-10 name=__codelineno-5-10 href=#__codelineno-5-10></a>
46
- <a id=__codelineno-5-11 name=__codelineno-5-11 href=#__codelineno-5-11></a><span class=c1># Brave Search API Key</span>
47
- <a id=__codelineno-5-12 name=__codelineno-5-12 href=#__codelineno-5-12></a><span class=nv>BRAVE_API_KEY</span><span class=o>=</span>your_brave_api_key_here
48
- <a id=__codelineno-5-13 name=__codelineno-5-13 href=#__codelineno-5-13></a>
49
- <a id=__codelineno-5-14 name=__codelineno-5-14 href=#__codelineno-5-14></a><span class=c1># Tavily API Key</span>
50
- <a id=__codelineno-5-15 name=__codelineno-5-15 href=#__codelineno-5-15></a><span class=nv>TAVILY_API_KEY</span><span class=o>=</span>your_tavily_api_key_here
51
- </code></pre></div> <p>The web search provider configuration:</p> <p><strong>Note</strong>: DuckDuckGo is the default and requires no API key, making it ideal for development and testing.</p> <h3 id=pubmed-configuration>PubMed Configuration<a class=headerlink href=#pubmed-configuration title="Permanent link">&para;</a></h3> <p>PubMed search supports optional NCBI API key for higher rate limits:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-6-1 name=__codelineno-6-1 href=#__codelineno-6-1></a><span class=c1># NCBI API Key (optional, for higher rate limits: 10 req/sec vs 3 req/sec)</span>
52
- <a id=__codelineno-6-2 name=__codelineno-6-2 href=#__codelineno-6-2></a><span class=nv>NCBI_API_KEY</span><span class=o>=</span>your_ncbi_api_key_here
53
- </code></pre></div> <p>The PubMed tool uses this configuration:</p> <h3 id=agent-configuration>Agent Configuration<a class=headerlink href=#agent-configuration title="Permanent link">&para;</a></h3> <p>Control agent behavior and research loop execution:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-7-1 name=__codelineno-7-1 href=#__codelineno-7-1></a><span class=c1># Maximum iterations per research loop (1-50, default: 10)</span>
54
- <a id=__codelineno-7-2 name=__codelineno-7-2 href=#__codelineno-7-2></a><span class=nv>MAX_ITERATIONS</span><span class=o>=</span><span class=m>10</span>
55
- <a id=__codelineno-7-3 name=__codelineno-7-3 href=#__codelineno-7-3></a>
56
- <a id=__codelineno-7-4 name=__codelineno-7-4 href=#__codelineno-7-4></a><span class=c1># Search timeout in seconds</span>
57
- <a id=__codelineno-7-5 name=__codelineno-7-5 href=#__codelineno-7-5></a><span class=nv>SEARCH_TIMEOUT</span><span class=o>=</span><span class=m>30</span>
58
- <a id=__codelineno-7-6 name=__codelineno-7-6 href=#__codelineno-7-6></a>
59
- <a id=__codelineno-7-7 name=__codelineno-7-7 href=#__codelineno-7-7></a><span class=c1># Use graph-based execution for research flows</span>
60
- <a id=__codelineno-7-8 name=__codelineno-7-8 href=#__codelineno-7-8></a><span class=nv>USE_GRAPH_EXECUTION</span><span class=o>=</span><span class=nb>false</span>
61
- </code></pre></div> <p>The agent configuration fields:</p> <h3 id=budget-rate-limiting-configuration>Budget &amp; Rate Limiting Configuration<a class=headerlink href=#budget-rate-limiting-configuration title="Permanent link">&para;</a></h3> <p>Control resource limits for research loops:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-8-1 name=__codelineno-8-1 href=#__codelineno-8-1></a><span class=c1># Default token budget per research loop (1000-1000000, default: 100000)</span>
62
- <a id=__codelineno-8-2 name=__codelineno-8-2 href=#__codelineno-8-2></a><span class=nv>DEFAULT_TOKEN_LIMIT</span><span class=o>=</span><span class=m>100000</span>
63
- <a id=__codelineno-8-3 name=__codelineno-8-3 href=#__codelineno-8-3></a>
64
- <a id=__codelineno-8-4 name=__codelineno-8-4 href=#__codelineno-8-4></a><span class=c1># Default time limit per research loop in minutes (1-120, default: 10)</span>
65
- <a id=__codelineno-8-5 name=__codelineno-8-5 href=#__codelineno-8-5></a><span class=nv>DEFAULT_TIME_LIMIT_MINUTES</span><span class=o>=</span><span class=m>10</span>
66
- <a id=__codelineno-8-6 name=__codelineno-8-6 href=#__codelineno-8-6></a>
67
- <a id=__codelineno-8-7 name=__codelineno-8-7 href=#__codelineno-8-7></a><span class=c1># Default iterations limit per research loop (1-50, default: 10)</span>
68
- <a id=__codelineno-8-8 name=__codelineno-8-8 href=#__codelineno-8-8></a><span class=nv>DEFAULT_ITERATIONS_LIMIT</span><span class=o>=</span><span class=m>10</span>
69
- </code></pre></div> <p>The budget configuration with validation:</p> <h3 id=rag-service-configuration>RAG Service Configuration<a class=headerlink href=#rag-service-configuration title="Permanent link">&para;</a></h3> <p>Configure the Retrieval-Augmented Generation service:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-9-1 name=__codelineno-9-1 href=#__codelineno-9-1></a><span class=c1># ChromaDB collection name for RAG</span>
70
- <a id=__codelineno-9-2 name=__codelineno-9-2 href=#__codelineno-9-2></a><span class=nv>RAG_COLLECTION_NAME</span><span class=o>=</span>deepcritical_evidence
71
- <a id=__codelineno-9-3 name=__codelineno-9-3 href=#__codelineno-9-3></a>
72
- <a id=__codelineno-9-4 name=__codelineno-9-4 href=#__codelineno-9-4></a><span class=c1># Number of top results to retrieve from RAG (1-50, default: 5)</span>
73
- <a id=__codelineno-9-5 name=__codelineno-9-5 href=#__codelineno-9-5></a><span class=nv>RAG_SIMILARITY_TOP_K</span><span class=o>=</span><span class=m>5</span>
74
- <a id=__codelineno-9-6 name=__codelineno-9-6 href=#__codelineno-9-6></a>
75
- <a id=__codelineno-9-7 name=__codelineno-9-7 href=#__codelineno-9-7></a><span class=c1># Automatically ingest evidence into RAG</span>
76
- <a id=__codelineno-9-8 name=__codelineno-9-8 href=#__codelineno-9-8></a><span class=nv>RAG_AUTO_INGEST</span><span class=o>=</span><span class=nb>true</span>
77
- </code></pre></div> <p>The RAG configuration:</p> <h3 id=chromadb-configuration>ChromaDB Configuration<a class=headerlink href=#chromadb-configuration title="Permanent link">&para;</a></h3> <p>Configure the vector database for embeddings and RAG:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-10-1 name=__codelineno-10-1 href=#__codelineno-10-1></a><span class=c1># ChromaDB storage path</span>
78
- <a id=__codelineno-10-2 name=__codelineno-10-2 href=#__codelineno-10-2></a><span class=nv>CHROMA_DB_PATH</span><span class=o>=</span>./chroma_db
79
- <a id=__codelineno-10-3 name=__codelineno-10-3 href=#__codelineno-10-3></a>
80
- <a id=__codelineno-10-4 name=__codelineno-10-4 href=#__codelineno-10-4></a><span class=c1># Whether to persist ChromaDB to disk</span>
81
- <a id=__codelineno-10-5 name=__codelineno-10-5 href=#__codelineno-10-5></a><span class=nv>CHROMA_DB_PERSIST</span><span class=o>=</span><span class=nb>true</span>
82
- <a id=__codelineno-10-6 name=__codelineno-10-6 href=#__codelineno-10-6></a>
83
- <a id=__codelineno-10-7 name=__codelineno-10-7 href=#__codelineno-10-7></a><span class=c1># ChromaDB server host (for remote ChromaDB, optional)</span>
84
- <a id=__codelineno-10-8 name=__codelineno-10-8 href=#__codelineno-10-8></a><span class=nv>CHROMA_DB_HOST</span><span class=o>=</span>localhost
85
- <a id=__codelineno-10-9 name=__codelineno-10-9 href=#__codelineno-10-9></a>
86
- <a id=__codelineno-10-10 name=__codelineno-10-10 href=#__codelineno-10-10></a><span class=c1># ChromaDB server port (for remote ChromaDB, optional)</span>
87
- <a id=__codelineno-10-11 name=__codelineno-10-11 href=#__codelineno-10-11></a><span class=nv>CHROMA_DB_PORT</span><span class=o>=</span><span class=m>8000</span>
88
- </code></pre></div> <p>The ChromaDB configuration:</p> <h3 id=external-services>External Services<a class=headerlink href=#external-services title="Permanent link">&para;</a></h3> <h4 id=modal-configuration>Modal Configuration<a class=headerlink href=#modal-configuration title="Permanent link">&para;</a></h4> <p>Modal is used for secure sandbox execution of statistical analysis:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-11-1 name=__codelineno-11-1 href=#__codelineno-11-1></a><span class=c1># Modal Token ID (for Modal sandbox execution)</span>
89
- <a id=__codelineno-11-2 name=__codelineno-11-2 href=#__codelineno-11-2></a><span class=nv>MODAL_TOKEN_ID</span><span class=o>=</span>your_modal_token_id_here
90
- <a id=__codelineno-11-3 name=__codelineno-11-3 href=#__codelineno-11-3></a>
91
- <a id=__codelineno-11-4 name=__codelineno-11-4 href=#__codelineno-11-4></a><span class=c1># Modal Token Secret</span>
92
- <a id=__codelineno-11-5 name=__codelineno-11-5 href=#__codelineno-11-5></a><span class=nv>MODAL_TOKEN_SECRET</span><span class=o>=</span>your_modal_token_secret_here
93
- </code></pre></div> <p>The Modal configuration:</p> <h3 id=logging-configuration>Logging Configuration<a class=headerlink href=#logging-configuration title="Permanent link">&para;</a></h3> <p>Configure structured logging:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-12-1 name=__codelineno-12-1 href=#__codelineno-12-1></a><span class=c1># Log Level: &quot;DEBUG&quot;, &quot;INFO&quot;, &quot;WARNING&quot;, or &quot;ERROR&quot;</span>
94
- <a id=__codelineno-12-2 name=__codelineno-12-2 href=#__codelineno-12-2></a><span class=nv>LOG_LEVEL</span><span class=o>=</span>INFO
95
- </code></pre></div> <p>The logging configuration:</p> <p>Logging is configured via the <code>configure_logging()</code> function:</p> <h2 id=configuration-properties>Configuration Properties<a class=headerlink href=#configuration-properties title="Permanent link">&para;</a></h2> <p>The <code>Settings</code> class provides helpful properties for checking configuration state:</p> <h3 id=api-key-availability>API Key Availability<a class=headerlink href=#api-key-availability title="Permanent link">&para;</a></h3> <p>Check which API keys are available:</p> <p><strong>Usage:</strong></p> <div class=highlight><pre><span></span><code><a id=__codelineno-13-1 name=__codelineno-13-1 href=#__codelineno-13-1></a><span class=kn>from</span><span class=w> </span><span class=nn>src.utils.config</span><span class=w> </span><span class=kn>import</span> <span class=n>settings</span>
96
- <a id=__codelineno-13-2 name=__codelineno-13-2 href=#__codelineno-13-2></a>
97
- <a id=__codelineno-13-3 name=__codelineno-13-3 href=#__codelineno-13-3></a><span class=c1># Check API key availability</span>
98
- <a id=__codelineno-13-4 name=__codelineno-13-4 href=#__codelineno-13-4></a><span class=k>if</span> <span class=n>settings</span><span class=o>.</span><span class=n>has_openai_key</span><span class=p>:</span>
99
- <a id=__codelineno-13-5 name=__codelineno-13-5 href=#__codelineno-13-5></a> <span class=c1># Use OpenAI</span>
100
- <a id=__codelineno-13-6 name=__codelineno-13-6 href=#__codelineno-13-6></a> <span class=k>pass</span>
101
- <a id=__codelineno-13-7 name=__codelineno-13-7 href=#__codelineno-13-7></a>
102
- <a id=__codelineno-13-8 name=__codelineno-13-8 href=#__codelineno-13-8></a><span class=k>if</span> <span class=n>settings</span><span class=o>.</span><span class=n>has_anthropic_key</span><span class=p>:</span>
103
- <a id=__codelineno-13-9 name=__codelineno-13-9 href=#__codelineno-13-9></a> <span class=c1># Use Anthropic</span>
104
- <a id=__codelineno-13-10 name=__codelineno-13-10 href=#__codelineno-13-10></a> <span class=k>pass</span>
105
- <a id=__codelineno-13-11 name=__codelineno-13-11 href=#__codelineno-13-11></a>
106
- <a id=__codelineno-13-12 name=__codelineno-13-12 href=#__codelineno-13-12></a><span class=k>if</span> <span class=n>settings</span><span class=o>.</span><span class=n>has_huggingface_key</span><span class=p>:</span>
107
- <a id=__codelineno-13-13 name=__codelineno-13-13 href=#__codelineno-13-13></a> <span class=c1># Use HuggingFace</span>
108
- <a id=__codelineno-13-14 name=__codelineno-13-14 href=#__codelineno-13-14></a> <span class=k>pass</span>
109
- <a id=__codelineno-13-15 name=__codelineno-13-15 href=#__codelineno-13-15></a>
110
- <a id=__codelineno-13-16 name=__codelineno-13-16 href=#__codelineno-13-16></a><span class=k>if</span> <span class=n>settings</span><span class=o>.</span><span class=n>has_any_llm_key</span><span class=p>:</span>
111
- <a id=__codelineno-13-17 name=__codelineno-13-17 href=#__codelineno-13-17></a> <span class=c1># At least one LLM is available</span>
112
- <a id=__codelineno-13-18 name=__codelineno-13-18 href=#__codelineno-13-18></a> <span class=k>pass</span>
113
- </code></pre></div> <h3 id=service-availability>Service Availability<a class=headerlink href=#service-availability title="Permanent link">&para;</a></h3> <p>Check if external services are configured:</p> <p><strong>Usage:</strong></p> <div class=highlight><pre><span></span><code><a id=__codelineno-14-1 name=__codelineno-14-1 href=#__codelineno-14-1></a><span class=kn>from</span><span class=w> </span><span class=nn>src.utils.config</span><span class=w> </span><span class=kn>import</span> <span class=n>settings</span>
114
- <a id=__codelineno-14-2 name=__codelineno-14-2 href=#__codelineno-14-2></a>
115
- <a id=__codelineno-14-3 name=__codelineno-14-3 href=#__codelineno-14-3></a><span class=c1># Check service availability</span>
116
- <a id=__codelineno-14-4 name=__codelineno-14-4 href=#__codelineno-14-4></a><span class=k>if</span> <span class=n>settings</span><span class=o>.</span><span class=n>modal_available</span><span class=p>:</span>
117
- <a id=__codelineno-14-5 name=__codelineno-14-5 href=#__codelineno-14-5></a> <span class=c1># Use Modal sandbox</span>
118
- <a id=__codelineno-14-6 name=__codelineno-14-6 href=#__codelineno-14-6></a> <span class=k>pass</span>
119
- <a id=__codelineno-14-7 name=__codelineno-14-7 href=#__codelineno-14-7></a>
120
- <a id=__codelineno-14-8 name=__codelineno-14-8 href=#__codelineno-14-8></a><span class=k>if</span> <span class=n>settings</span><span class=o>.</span><span class=n>web_search_available</span><span class=p>:</span>
121
- <a id=__codelineno-14-9 name=__codelineno-14-9 href=#__codelineno-14-9></a> <span class=c1># Web search is configured</span>
122
- <a id=__codelineno-14-10 name=__codelineno-14-10 href=#__codelineno-14-10></a> <span class=k>pass</span>
123
- </code></pre></div> <h3 id=api-key-retrieval>API Key Retrieval<a class=headerlink href=#api-key-retrieval title="Permanent link">&para;</a></h3> <p>Get the API key for the configured provider:</p> <p>For OpenAI-specific operations (e.g., Magentic mode):</p> <h2 id=configuration-usage-in-codebase>Configuration Usage in Codebase<a class=headerlink href=#configuration-usage-in-codebase title="Permanent link">&para;</a></h2> <p>The configuration system is used throughout the codebase:</p> <h3 id=llm-factory>LLM Factory<a class=headerlink href=#llm-factory title="Permanent link">&para;</a></h3> <p>The LLM factory uses settings to create appropriate models:</p> <h3 id=embedding-service>Embedding Service<a class=headerlink href=#embedding-service title="Permanent link">&para;</a></h3> <p>The embedding service uses local embedding model configuration:</p> <h3 id=orchestrator-factory>Orchestrator Factory<a class=headerlink href=#orchestrator-factory title="Permanent link">&para;</a></h3> <p>The orchestrator factory uses settings to determine mode:</p> <h2 id=environment-variables-reference>Environment Variables Reference<a class=headerlink href=#environment-variables-reference title="Permanent link">&para;</a></h2> <h3 id=required-at-least-one-llm>Required (at least one LLM)<a class=headerlink href=#required-at-least-one-llm title="Permanent link">&para;</a></h3> <ul> <li><code>OPENAI_API_KEY</code> - OpenAI API key (required for OpenAI provider)</li> <li><code>ANTHROPIC_API_KEY</code> - Anthropic API key (required for Anthropic provider)</li> <li><code>HF_TOKEN</code> or <code>HUGGINGFACE_API_KEY</code> - HuggingFace API token (optional, can work without for public models)</li> </ul> <h4 id=llm-configuration-variables>LLM Configuration Variables<a class=headerlink href=#llm-configuration-variables title="Permanent link">&para;</a></h4> <ul> <li><code>LLM_PROVIDER</code> - Provider to use: <code>"openai"</code>, <code>"anthropic"</code>, or <code>"huggingface"</code> (default: <code>"huggingface"</code>)</li> <li><code>OPENAI_MODEL</code> - OpenAI model name (default: <code>"gpt-5.1"</code>)</li> <li><code>ANTHROPIC_MODEL</code> - Anthropic model name (default: <code>"claude-sonnet-4-5-20250929"</code>)</li> <li><code>HUGGINGFACE_MODEL</code> - HuggingFace model ID (default: <code>"meta-llama/Llama-3.1-8B-Instruct"</code>)</li> </ul> <h4 id=embedding-configuration-variables>Embedding Configuration Variables<a class=headerlink href=#embedding-configuration-variables title="Permanent link">&para;</a></h4> <ul> <li><code>EMBEDDING_PROVIDER</code> - Provider: <code>"openai"</code>, <code>"local"</code>, or <code>"huggingface"</code> (default: <code>"local"</code>)</li> <li><code>OPENAI_EMBEDDING_MODEL</code> - OpenAI embedding model (default: <code>"text-embedding-3-small"</code>)</li> <li><code>LOCAL_EMBEDDING_MODEL</code> - Local sentence-transformers model (default: <code>"all-MiniLM-L6-v2"</code>)</li> <li><code>HUGGINGFACE_EMBEDDING_MODEL</code> - HuggingFace embedding model (default: <code>"sentence-transformers/all-MiniLM-L6-v2"</code>)</li> </ul> <h4 id=web-search-configuration-variables>Web Search Configuration Variables<a class=headerlink href=#web-search-configuration-variables title="Permanent link">&para;</a></h4> <ul> <li><code>WEB_SEARCH_PROVIDER</code> - Provider: <code>"serper"</code>, <code>"searchxng"</code>, <code>"brave"</code>, <code>"tavily"</code>, or <code>"duckduckgo"</code> (default: <code>"duckduckgo"</code>)</li> <li><code>SERPER_API_KEY</code> - Serper API key (required for Serper provider)</li> <li><code>SEARCHXNG_HOST</code> - SearchXNG host URL (required for SearchXNG provider)</li> <li><code>BRAVE_API_KEY</code> - Brave Search API key (required for Brave provider)</li> <li><code>TAVILY_API_KEY</code> - Tavily API key (required for Tavily provider)</li> </ul> <h4 id=pubmed-configuration-variables>PubMed Configuration Variables<a class=headerlink href=#pubmed-configuration-variables title="Permanent link">&para;</a></h4> <ul> <li><code>NCBI_API_KEY</code> - NCBI API key (optional, increases rate limit from 3 to 10 req/sec)</li> </ul> <h4 id=agent-configuration-variables>Agent Configuration Variables<a class=headerlink href=#agent-configuration-variables title="Permanent link">&para;</a></h4> <ul> <li><code>MAX_ITERATIONS</code> - Maximum iterations per research loop (1-50, default: <code>10</code>)</li> <li><code>SEARCH_TIMEOUT</code> - Search timeout in seconds (default: <code>30</code>)</li> <li><code>USE_GRAPH_EXECUTION</code> - Use graph-based execution (default: <code>false</code>)</li> </ul> <h4 id=budget-configuration-variables>Budget Configuration Variables<a class=headerlink href=#budget-configuration-variables title="Permanent link">&para;</a></h4> <ul> <li><code>DEFAULT_TOKEN_LIMIT</code> - Default token budget per research loop (1000-1000000, default: <code>100000</code>)</li> <li><code>DEFAULT_TIME_LIMIT_MINUTES</code> - Default time limit in minutes (1-120, default: <code>10</code>)</li> <li><code>DEFAULT_ITERATIONS_LIMIT</code> - Default iterations limit (1-50, default: <code>10</code>)</li> </ul> <h4 id=rag-configuration-variables>RAG Configuration Variables<a class=headerlink href=#rag-configuration-variables title="Permanent link">&para;</a></h4> <ul> <li><code>RAG_COLLECTION_NAME</code> - ChromaDB collection name (default: <code>"deepcritical_evidence"</code>)</li> <li><code>RAG_SIMILARITY_TOP_K</code> - Number of top results to retrieve (1-50, default: <code>5</code>)</li> <li><code>RAG_AUTO_INGEST</code> - Automatically ingest evidence into RAG (default: <code>true</code>)</li> </ul> <h4 id=chromadb-configuration-variables>ChromaDB Configuration Variables<a class=headerlink href=#chromadb-configuration-variables title="Permanent link">&para;</a></h4> <ul> <li><code>CHROMA_DB_PATH</code> - ChromaDB storage path (default: <code>"./chroma_db"</code>)</li> <li><code>CHROMA_DB_PERSIST</code> - Whether to persist ChromaDB to disk (default: <code>true</code>)</li> <li><code>CHROMA_DB_HOST</code> - ChromaDB server host (optional, for remote ChromaDB)</li> <li><code>CHROMA_DB_PORT</code> - ChromaDB server port (optional, for remote ChromaDB)</li> </ul> <h4 id=external-services-variables>External Services Variables<a class=headerlink href=#external-services-variables title="Permanent link">&para;</a></h4> <ul> <li><code>MODAL_TOKEN_ID</code> - Modal token ID (optional, for Modal sandbox execution)</li> <li><code>MODAL_TOKEN_SECRET</code> - Modal token secret (optional, for Modal sandbox execution)</li> </ul> <h4 id=logging-configuration-variables>Logging Configuration Variables<a class=headerlink href=#logging-configuration-variables title="Permanent link">&para;</a></h4> <ul> <li><code>LOG_LEVEL</code> - Log level: <code>"DEBUG"</code>, <code>"INFO"</code>, <code>"WARNING"</code>, or <code>"ERROR"</code> (default: <code>"INFO"</code>)</li> </ul> <h2 id=validation>Validation<a class=headerlink href=#validation title="Permanent link">&para;</a></h2> <p>Settings are validated on load using Pydantic validation:</p> <ul> <li><strong>Type Checking</strong>: All fields are strongly typed</li> <li><strong>Range Validation</strong>: Numeric fields have min/max constraints (e.g., <code>ge=1, le=50</code> for <code>max_iterations</code>)</li> <li><strong>Literal Validation</strong>: Enum fields only accept specific values (e.g., <code>Literal["openai", "anthropic", "huggingface"]</code>)</li> <li><strong>Required Fields</strong>: API keys are checked when accessed via <code>get_api_key()</code> or <code>get_openai_api_key()</code></li> </ul> <h3 id=validation-examples>Validation Examples<a class=headerlink href=#validation-examples title="Permanent link">&para;</a></h3> <p>The <code>max_iterations</code> field has range validation:</p> <p>The <code>llm_provider</code> field has literal validation:</p> <h2 id=error-handling>Error Handling<a class=headerlink href=#error-handling title="Permanent link">&para;</a></h2> <p>Configuration errors raise <code>ConfigurationError</code> from <code>src/utils/exceptions.py</code>:</p> <h3 id=error-handling-example>Error Handling Example<a class=headerlink href=#error-handling-example title="Permanent link">&para;</a></h3> <div class=highlight><pre><span></span><code><a id=__codelineno-15-1 name=__codelineno-15-1 href=#__codelineno-15-1></a><span class=kn>from</span><span class=w> </span><span class=nn>src.utils.config</span><span class=w> </span><span class=kn>import</span> <span class=n>settings</span>
124
- <a id=__codelineno-15-2 name=__codelineno-15-2 href=#__codelineno-15-2></a><span class=kn>from</span><span class=w> </span><span class=nn>src.utils.exceptions</span><span class=w> </span><span class=kn>import</span> <span class=n>ConfigurationError</span>
125
- <a id=__codelineno-15-3 name=__codelineno-15-3 href=#__codelineno-15-3></a>
126
- <a id=__codelineno-15-4 name=__codelineno-15-4 href=#__codelineno-15-4></a><span class=k>try</span><span class=p>:</span>
127
- <a id=__codelineno-15-5 name=__codelineno-15-5 href=#__codelineno-15-5></a> <span class=n>api_key</span> <span class=o>=</span> <span class=n>settings</span><span class=o>.</span><span class=n>get_api_key</span><span class=p>()</span>
128
- <a id=__codelineno-15-6 name=__codelineno-15-6 href=#__codelineno-15-6></a><span class=k>except</span> <span class=n>ConfigurationError</span> <span class=k>as</span> <span class=n>e</span><span class=p>:</span>
129
- <a id=__codelineno-15-7 name=__codelineno-15-7 href=#__codelineno-15-7></a> <span class=nb>print</span><span class=p>(</span><span class=sa>f</span><span class=s2>&quot;Configuration error: </span><span class=si>{</span><span class=n>e</span><span class=si>}</span><span class=s2>&quot;</span><span class=p>)</span>
130
- </code></pre></div> <h3 id=common-configuration-errors>Common Configuration Errors<a class=headerlink href=#common-configuration-errors title="Permanent link">&para;</a></h3> <ol> <li><strong>Missing API Key</strong>: When <code>get_api_key()</code> is called but the required API key is not set</li> <li><strong>Invalid Provider</strong>: When <code>llm_provider</code> is set to an unsupported value</li> <li><strong>Out of Range</strong>: When numeric values exceed their min/max constraints</li> <li><strong>Invalid Literal</strong>: When enum fields receive unsupported values</li> </ol> <h2 id=configuration-best-practices>Configuration Best Practices<a class=headerlink href=#configuration-best-practices title="Permanent link">&para;</a></h2> <ol> <li><strong>Use <code>.env</code> File</strong>: Store sensitive keys in <code>.env</code> file (add to <code>.gitignore</code>)</li> <li><strong>Check Availability</strong>: Use properties like <code>has_openai_key</code> before accessing API keys</li> <li><strong>Handle Errors</strong>: Always catch <code>ConfigurationError</code> when calling <code>get_api_key()</code></li> <li><strong>Validate Early</strong>: Configuration is validated on import, so errors surface immediately</li> <li><strong>Use Defaults</strong>: Leverage sensible defaults for optional configuration</li> </ol> <h2 id=future-enhancements>Future Enhancements<a class=headerlink href=#future-enhancements title="Permanent link">&para;</a></h2> <p>The following configurations are planned for future phases:</p> <ol> <li><strong>Additional LLM Providers</strong>: DeepSeek, OpenRouter, Gemini, Perplexity, Azure OpenAI, Local models</li> <li><strong>Model Selection</strong>: Reasoning/main/fast model configuration</li> <li><strong>Service Integration</strong>: Additional service integrations and configurations</li> </ol> </article> </div> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=github.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title=huggingface.co class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> </body> </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
site/configuration/index.html CHANGED
The diff for this file is too large to render. See raw diff
 
site/contributing/code-quality/index.html CHANGED
@@ -1 +1,12 @@
1
- <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DETERMINATOR Team"><link href=https://deepcritical.github.io/GradioDemo/contributing/code-quality/ rel=canonical><link href=../ rel=prev><link href=../code-style/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Code Quality & Documentation - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#code-quality-documentation class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/CONFIGURATION/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../../architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Quick Start Guide </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <label class=md-nav__link for=__nav_4 id=__nav_4_label tabindex=0> <span class=md-ellipsis> Configuration </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../configuration/CONFIGURATION/ class=md-nav__link> <span class=md-ellipsis> Configuration Guide </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_7 checked> <label class=md-nav__link for=__nav_7 id=__nav_7_label tabindex> <span class=md-ellipsis> Contributing </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=true> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../ class=md-nav__link> <span class=md-ellipsis> Contributing to DeepCritical </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Code Quality &amp; Documentation </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#linting class=md-nav__link> <span class=md-ellipsis> Linting </span> </a> </li> <li class=md-nav__item> <a href=#type-checking class=md-nav__link> <span class=md-ellipsis> Type Checking </span> </a> </li> <li class=md-nav__item> <a href=#pre-commit class=md-nav__link> <span class=md-ellipsis> Pre-commit </span> </a> </li> <li class=md-nav__item> <a href=#documentation class=md-nav__link> <span class=md-ellipsis> Documentation </span> </a> <nav class=md-nav aria-label=Documentation> <ul class=md-nav__list> <li class=md-nav__item> <a href=#docstrings class=md-nav__link> <span class=md-ellipsis> Docstrings </span> </a> </li> <li class=md-nav__item> <a href=#code-comments class=md-nav__link> <span class=md-ellipsis> Code Comments </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=sidebar data-md-type=toc> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#linting class=md-nav__link> <span class=md-ellipsis> Linting </span> </a> </li> <li class=md-nav__item> <a href=#type-checking class=md-nav__link> <span class=md-ellipsis> Type Checking </span> </a> </li> <li class=md-nav__item> <a href=#pre-commit class=md-nav__link> <span class=md-ellipsis> Pre-commit </span> </a> </li> <li class=md-nav__item> <a href=#documentation class=md-nav__link> <span class=md-ellipsis> Documentation </span> </a> <nav class=md-nav aria-label=Documentation> <ul class=md-nav__list> <li class=md-nav__item> <a href=#docstrings class=md-nav__link> <span class=md-ellipsis> Docstrings </span> </a> </li> <li class=md-nav__item> <a href=#code-comments class=md-nav__link> <span class=md-ellipsis> Code Comments </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=code-quality-documentation>Code Quality &amp; Documentation<a class=headerlink href=#code-quality-documentation title="Permanent link">&para;</a></h1> <p>This document outlines code quality standards and documentation requirements.</p> <h2 id=linting>Linting<a class=headerlink href=#linting title="Permanent link">&para;</a></h2> <ul> <li>Ruff with 100-char line length</li> <li>Ignore rules documented in <code>pyproject.toml</code>:</li> <li><code>PLR0913</code>: Too many arguments (agents need many params)</li> <li><code>PLR0912</code>: Too many branches (complex orchestrator logic)</li> <li><code>PLR0911</code>: Too many return statements (complex agent logic)</li> <li><code>PLR2004</code>: Magic values (statistical constants)</li> <li><code>PLW0603</code>: Global statement (singleton pattern)</li> <li><code>PLC0415</code>: Lazy imports for optional dependencies</li> </ul> <h2 id=type-checking>Type Checking<a class=headerlink href=#type-checking title="Permanent link">&para;</a></h2> <ul> <li><code>mypy --strict</code> compliance</li> <li><code>ignore_missing_imports = true</code> (for optional dependencies)</li> <li>Exclude: <code>reference_repos/</code>, <code>examples/</code></li> <li>All functions must have complete type annotations</li> </ul> <h2 id=pre-commit>Pre-commit<a class=headerlink href=#pre-commit title="Permanent link">&para;</a></h2> <ul> <li>Run <code>make check</code> before committing</li> <li>Must pass: lint + typecheck + test-cov</li> <li>Pre-commit hooks installed via <code>make install</code></li> </ul> <h2 id=documentation>Documentation<a class=headerlink href=#documentation title="Permanent link">&para;</a></h2> <h3 id=docstrings>Docstrings<a class=headerlink href=#docstrings title="Permanent link">&para;</a></h3> <ul> <li>Google-style docstrings for all public functions</li> <li>Include Args, Returns, Raises sections</li> <li>Use type hints in docstrings only if needed for clarity</li> </ul> <p>Example:</p> <h3 id=code-comments>Code Comments<a class=headerlink href=#code-comments title="Permanent link">&para;</a></h3> <ul> <li>Explain WHY, not WHAT</li> <li>Document non-obvious patterns (e.g., why <code>requests</code> not <code>httpx</code> for ClinicalTrials)</li> <li>Mark critical sections: <code># CRITICAL: ...</code></li> <li>Document rate limiting rationale</li> <li>Explain async patterns when non-obvious</li> </ul> <h2 id=see-also>See Also<a class=headerlink href=#see-also title="Permanent link">&para;</a></h2> <ul> <li><a href=../code-style/ >Code Style</a> - Code style guidelines</li> <li><a href=../testing/ >Testing</a> - Testing guidelines</li> </ul> </article> </div> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=github.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title=huggingface.co class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> </body> </html>
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DeepCritical Team"><link href=https://deepcritical.github.io/GradioDemo/contributing/code-quality/ rel=canonical><link href=../ rel=prev><link href=../code-style/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Code Quality & Documentation - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><link rel=stylesheet href=../../css/timeago.css><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#code-quality--documentation class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../../architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Single Command Deploy </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <div class="md-nav__link md-nav__container"> <a href=../../configuration/ class="md-nav__link "> <span class=md-ellipsis> Configuration </span> </a> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_7 checked> <div class="md-nav__link md-nav__container"> <a href=../ class="md-nav__link "> <span class=md-ellipsis> Contributing </span> </a> <label class="md-nav__link " for=__nav_7 id=__nav_7_label tabindex> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=true> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Code Quality &amp; Documentation </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#linting class=md-nav__link> <span class=md-ellipsis> Linting </span> </a> </li> <li class=md-nav__item> <a href=#type-checking class=md-nav__link> <span class=md-ellipsis> Type Checking </span> </a> </li> <li class=md-nav__item> <a href=#pre-commit class=md-nav__link> <span class=md-ellipsis> Pre-commit </span> </a> <nav class=md-nav aria-label=Pre-commit> <ul class=md-nav__list> <li class=md-nav__item> <a href=#installation class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=#pre-commit-hooks class=md-nav__link> <span class=md-ellipsis> Pre-commit Hooks </span> </a> </li> <li class=md-nav__item> <a href=#manual-pre-commit-run class=md-nav__link> <span class=md-ellipsis> Manual Pre-commit Run </span> </a> </li> <li class=md-nav__item> <a href=#troubleshooting class=md-nav__link> <span class=md-ellipsis> Troubleshooting </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#documentation class=md-nav__link> <span class=md-ellipsis> Documentation </span> </a> <nav class=md-nav aria-label=Documentation> <ul class=md-nav__list> <li class=md-nav__item> <a href=#building-documentation class=md-nav__link> <span class=md-ellipsis> Building Documentation </span> </a> </li> <li class=md-nav__item> <a href=#docstrings class=md-nav__link> <span class=md-ellipsis> Docstrings </span> </a> </li> <li class=md-nav__item> <a href=#code-comments class=md-nav__link> <span class=md-ellipsis> Code Comments </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=code-quality--documentation>Code Quality &amp; Documentation<a class=headerlink href=#code-quality--documentation title="Anchor link to this section">&para;</a></h1> <p>This document outlines code quality standards and documentation requirements for The DETERMINATOR.</p> <h2 id=linting>Linting<a class=headerlink href=#linting title="Anchor link to this section">&para;</a></h2> <ul> <li>Ruff with 100-char line length</li> <li>Ignore rules documented in <code>pyproject.toml</code>:</li> <li><code>PLR0913</code>: Too many arguments (agents need many params)</li> <li><code>PLR0912</code>: Too many branches (complex orchestrator logic)</li> <li><code>PLR0911</code>: Too many return statements (complex agent logic)</li> <li><code>PLR2004</code>: Magic values (statistical constants)</li> <li><code>PLW0603</code>: Global statement (singleton pattern)</li> <li><code>PLC0415</code>: Lazy imports for optional dependencies</li> <li><code>E402</code>: Module level import not at top (needed for pytest.importorskip)</li> <li><code>E501</code>: Line too long (ignore line length violations)</li> <li><code>RUF100</code>: Unused noqa (version differences between local/CI)</li> </ul> <h2 id=type-checking>Type Checking<a class=headerlink href=#type-checking title="Anchor link to this section">&para;</a></h2> <ul> <li><code>mypy --strict</code> compliance</li> <li><code>ignore_missing_imports = true</code> (for optional dependencies)</li> <li>Exclude: <code>reference_repos/</code>, <code>examples/</code></li> <li>All functions must have complete type annotations</li> </ul> <h2 id=pre-commit>Pre-commit<a class=headerlink href=#pre-commit title="Anchor link to this section">&para;</a></h2> <p>Pre-commit hooks run automatically on commit to ensure code quality. Configuration is in <code>.pre-commit-config.yaml</code>.</p> <h3 id=installation>Installation<a class=headerlink href=#installation title="Anchor link to this section">&para;</a></h3> <div class="language-bash highlight"><pre><span></span><code><span id=__span-0-1><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=c1># Install dependencies (includes pre-commit package)</span>
2
+ </span><span id=__span-0-2><a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a>uv<span class=w> </span>sync<span class=w> </span>--all-extras
3
+ </span><span id=__span-0-3><a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a>
4
+ </span><span id=__span-0-4><a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a><span class=c1># Set up git hooks (must be run separately)</span>
5
+ </span><span id=__span-0-5><a id=__codelineno-0-5 name=__codelineno-0-5 href=#__codelineno-0-5></a>uv<span class=w> </span>run<span class=w> </span>pre-commit<span class=w> </span>install
6
+ </span></code></pre></div> <p><strong>Note</strong>: <code>uv sync --all-extras</code> installs the pre-commit package, but you must run <code>uv run pre-commit install</code> separately to set up the git hooks.</p> <h3 id=pre-commit-hooks>Pre-commit Hooks<a class=headerlink href=#pre-commit-hooks title="Anchor link to this section">&para;</a></h3> <p>The following hooks run automatically on commit:</p> <ol> <li><strong>ruff</strong>: Lints code and fixes issues automatically</li> <li>Runs on: <code>src/</code> (excludes <code>tests/</code>, <code>reference_repos/</code>)</li> <li> <p>Auto-fixes: Yes</p> </li> <li> <p><strong>ruff-format</strong>: Formats code with ruff</p> </li> <li>Runs on: <code>src/</code> (excludes <code>tests/</code>, <code>reference_repos/</code>)</li> <li> <p>Auto-fixes: Yes</p> </li> <li> <p><strong>mypy</strong>: Type checking</p> </li> <li>Runs on: <code>src/</code> (excludes <code>folder/</code>)</li> <li> <p>Additional dependencies: pydantic, pydantic-settings, tenacity, pydantic-ai</p> </li> <li> <p><strong>pytest-unit</strong>: Runs unit tests (excludes OpenAI and embedding_provider tests)</p> </li> <li>Runs: <code>tests/unit/</code> with <code>-m "not openai and not embedding_provider"</code></li> <li> <p>Always runs: Yes (not just on changed files)</p> </li> <li> <p><strong>pytest-local-embeddings</strong>: Runs local embedding tests</p> </li> <li>Runs: <code>tests/</code> with <code>-m "local_embeddings"</code></li> <li>Always runs: Yes</li> </ol> <h3 id=manual-pre-commit-run>Manual Pre-commit Run<a class=headerlink href=#manual-pre-commit-run title="Anchor link to this section">&para;</a></h3> <p>To run pre-commit hooks manually (without committing):</p> <div class="language-bash highlight"><pre><span></span><code><span id=__span-1-1><a id=__codelineno-1-1 name=__codelineno-1-1 href=#__codelineno-1-1></a>uv<span class=w> </span>run<span class=w> </span>pre-commit<span class=w> </span>run<span class=w> </span>--all-files
7
+ </span></code></pre></div> <h3 id=troubleshooting>Troubleshooting<a class=headerlink href=#troubleshooting title="Anchor link to this section">&para;</a></h3> <ul> <li><strong>Hooks failing</strong>: Fix the issues shown in the output, then commit again</li> <li><strong>Skipping hooks</strong>: Use <code>git commit --no-verify</code> (not recommended)</li> <li><strong>Hook not running</strong>: Ensure hooks are installed with <code>uv run pre-commit install</code></li> <li><strong>Type errors</strong>: Check that all dependencies are installed with <code>uv sync --all-extras</code></li> </ul> <h2 id=documentation>Documentation<a class=headerlink href=#documentation title="Anchor link to this section">&para;</a></h2> <h3 id=building-documentation>Building Documentation<a class=headerlink href=#building-documentation title="Anchor link to this section">&para;</a></h3> <p>Documentation is built using MkDocs. Source files are in <code>docs/</code>, and the configuration is in <code>mkdocs.yml</code>.</p> <div class="language-bash highlight"><pre><span></span><code><span id=__span-2-1><a id=__codelineno-2-1 name=__codelineno-2-1 href=#__codelineno-2-1></a><span class=c1># Build documentation</span>
8
+ </span><span id=__span-2-2><a id=__codelineno-2-2 name=__codelineno-2-2 href=#__codelineno-2-2></a>uv<span class=w> </span>run<span class=w> </span>mkdocs<span class=w> </span>build
9
+ </span><span id=__span-2-3><a id=__codelineno-2-3 name=__codelineno-2-3 href=#__codelineno-2-3></a>
10
+ </span><span id=__span-2-4><a id=__codelineno-2-4 name=__codelineno-2-4 href=#__codelineno-2-4></a><span class=c1># Serve documentation locally (http://127.0.0.1:8000)</span>
11
+ </span><span id=__span-2-5><a id=__codelineno-2-5 name=__codelineno-2-5 href=#__codelineno-2-5></a>uv<span class=w> </span>run<span class=w> </span>mkdocs<span class=w> </span>serve
12
+ </span></code></pre></div> <p>The documentation site is published at: <a href=https://deepcritical.github.io/GradioDemo/ >https://deepcritical.github.io/GradioDemo/</a></p> <h3 id=docstrings>Docstrings<a class=headerlink href=#docstrings title="Anchor link to this section">&para;</a></h3> <ul> <li>Google-style docstrings for all public functions</li> <li>Include Args, Returns, Raises sections</li> <li>Use type hints in docstrings only if needed for clarity</li> </ul> <p>Example:</p> <h3 id=code-comments>Code Comments<a class=headerlink href=#code-comments title="Anchor link to this section">&para;</a></h3> <ul> <li>Explain WHY, not WHAT</li> <li>Document non-obvious patterns (e.g., why <code>requests</code> not <code>httpx</code> for ClinicalTrials)</li> <li>Mark critical sections: <code># CRITICAL: ...</code></li> <li>Document rate limiting rationale</li> <li>Explain async patterns when non-obvious</li> </ul> <h2 id=see-also>See Also<a class=headerlink href=#see-also title="Anchor link to this section">&para;</a></h2> <ul> <li><a href=../code-style/ >Code Style</a> - Code style guidelines</li> <li><a href=../testing/ >Testing</a> - Testing guidelines</li> </ul> <aside class=md-source-file> <span class=md-source-file__fact> <span class=md-icon title="Last update"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="December 2, 2025 01:35:56 UTC"><span class=timeago datetime=2025-12-02T01:35:56+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="December 2, 2025 01:35:56 UTC">2025-12-02</span> </span> <span class=md-source-file__fact> <span class=md-icon title=Created> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M14.47 15.08 11 13V7h1.5v5.25l3.08 1.83c-.41.28-.79.62-1.11 1m-1.39 4.84c-.36.05-.71.08-1.08.08-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8c0 .37-.03.72-.08 1.08.69.1 1.33.32 1.92.64.1-.56.16-1.13.16-1.72 0-5.5-4.5-10-10-10S2 6.5 2 12s4.47 10 10 10c.59 0 1.16-.06 1.72-.16-.32-.59-.54-1.23-.64-1.92M18 15v3h-3v2h3v3h2v-3h3v-2h-3v-3z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="November 29, 2025 21:40:26 UTC"><span class=timeago datetime=2025-11-29T21:40:26+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="November 29, 2025 21:40:26 UTC">2025-11-29</span> </span> </aside> </article> </div> <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=GitHub class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://twitter.com/josephpollack target=_blank rel=noopener title=Twitter class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M459.4 151.7c.3 4.5.3 9.1.3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103v-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53C87.4 130.8 165 172.4 252.1 176.9c-1.6-7.8-2.6-15.9-2.6-24C249.5 95.1 296.3 48 354.4 48c30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title="Live Demo" class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> <a href=https://discord.gg/n8ytYeh25n target=_blank rel=noopener title=Discord class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 576 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M492.5 69.8c-.2-.3-.4-.6-.8-.7-38.1-17.5-78.4-30-119.7-37.1-.4-.1-.8 0-1.1.1s-.6.4-.8.8c-5.5 9.9-10.5 20.2-14.9 30.6-44.6-6.8-89.9-6.8-134.4 0-4.5-10.5-9.5-20.7-15.1-30.6-.2-.3-.5-.6-.8-.8s-.7-.2-1.1-.2C162.5 39 122.2 51.5 84.1 69c-.3.1-.6.4-.8.7C7.1 183.5-13.8 294.6-3.6 404.2c0 .3.1.5.2.8s.3.4.5.6c44.4 32.9 94 58 146.8 74.2.4.1.8.1 1.1 0s.7-.4.9-.7c11.3-15.4 21.4-31.8 30-48.8.1-.2.2-.5.2-.8s0-.5-.1-.8-.2-.5-.4-.6-.4-.3-.7-.4c-15.8-6.1-31.2-13.4-45.9-21.9-.3-.2-.5-.4-.7-.6s-.3-.6-.3-.9 0-.6.2-.9.3-.5.6-.7c3.1-2.3 6.2-4.7 9.1-7.1.3-.2.6-.4.9-.4s.7 0 1 .1c96.2 43.9 200.4 43.9 295.5 0 .3-.1.7-.2 1-.2s.7.2.9.4c2.9 2.4 6 4.9 9.1 7.2.2.2.4.4.6.7s.2.6.2.9-.1.6-.3.9-.4.5-.6.6c-14.7 8.6-30 15.9-45.9 21.8-.2.1-.5.2-.7.4s-.3.4-.4.7-.1.5-.1.8.1.5.2.8c8.8 17 18.8 33.3 30 48.8.2.3.6.6.9.7s.8.1 1.1 0c52.9-16.2 102.6-41.3 147.1-74.2.2-.2.4-.4.5-.6s.2-.5.2-.8c12.3-126.8-20.5-236.9-86.9-334.5zm-302 267.7c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.4 59.2-52.8 59.2m195.4 0c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.2 59.2-52.8 59.2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "navigation.indexes", "navigation.instant", "navigation.tracking", "navigation.smooth", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy", "content.tabs.link", "content.tooltips", "toc.integrate"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> <script src=../../js/timeago.min.js></script> <script src=../../js/timeago_mkdocs_material.js></script> </body> </html>
site/contributing/code-style/index.html CHANGED
@@ -1,3 +1,23 @@
1
- <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DETERMINATOR Team"><link href=https://deepcritical.github.io/GradioDemo/contributing/code-style/ rel=canonical><link href=../code-quality/ rel=prev><link href=../error-handling/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Code Style & Conventions - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#code-style-conventions class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Code Style &amp; Conventions </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/CONFIGURATION/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../../architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Quick Start Guide </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <label class=md-nav__link for=__nav_4 id=__nav_4_label tabindex=0> <span class=md-ellipsis> Configuration </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../configuration/CONFIGURATION/ class=md-nav__link> <span class=md-ellipsis> Configuration Guide </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_7 checked> <label class=md-nav__link for=__nav_7 id=__nav_7_label tabindex> <span class=md-ellipsis> Contributing </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=true> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../ class=md-nav__link> <span class=md-ellipsis> Contributing to DeepCritical </span> </a> </li> <li class=md-nav__item> <a href=../code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Code Style &amp; Conventions </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#type-safety class=md-nav__link> <span class=md-ellipsis> Type Safety </span> </a> </li> <li class=md-nav__item> <a href=#pydantic-models class=md-nav__link> <span class=md-ellipsis> Pydantic Models </span> </a> </li> <li class=md-nav__item> <a href=#async-patterns class=md-nav__link> <span class=md-ellipsis> Async Patterns </span> </a> </li> <li class=md-nav__item> <a href=#common-pitfalls class=md-nav__link> <span class=md-ellipsis> Common Pitfalls </span> </a> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=sidebar data-md-type=toc> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#type-safety class=md-nav__link> <span class=md-ellipsis> Type Safety </span> </a> </li> <li class=md-nav__item> <a href=#pydantic-models class=md-nav__link> <span class=md-ellipsis> Pydantic Models </span> </a> </li> <li class=md-nav__item> <a href=#async-patterns class=md-nav__link> <span class=md-ellipsis> Async Patterns </span> </a> </li> <li class=md-nav__item> <a href=#common-pitfalls class=md-nav__link> <span class=md-ellipsis> Common Pitfalls </span> </a> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=code-style-conventions>Code Style &amp; Conventions<a class=headerlink href=#code-style-conventions title="Permanent link">&para;</a></h1> <p>This document outlines the code style and conventions for DeepCritical.</p> <h2 id=type-safety>Type Safety<a class=headerlink href=#type-safety title="Permanent link">&para;</a></h2> <ul> <li><strong>ALWAYS</strong> use type hints for all function parameters and return types</li> <li>Use <code>mypy --strict</code> compliance (no <code>Any</code> unless absolutely necessary)</li> <li>Use <code>TYPE_CHECKING</code> imports for circular dependencies:</li> </ul> <h2 id=pydantic-models>Pydantic Models<a class=headerlink href=#pydantic-models title="Permanent link">&para;</a></h2> <ul> <li>All data exchange uses Pydantic models (<code>src/utils/models.py</code>)</li> <li>Models are frozen (<code>model_config = {"frozen": True}</code>) for immutability</li> <li>Use <code>Field()</code> with descriptions for all model fields</li> <li>Validate with <code>ge=</code>, <code>le=</code>, <code>min_length=</code>, <code>max_length=</code> constraints</li> </ul> <h2 id=async-patterns>Async Patterns<a class=headerlink href=#async-patterns title="Permanent link">&para;</a></h2> <ul> <li><strong>ALL</strong> I/O operations must be async (<code>async def</code>, <code>await</code>)</li> <li>Use <code>asyncio.gather()</code> for parallel operations</li> <li>CPU-bound work (embeddings, parsing) must use <code>run_in_executor()</code>:</li> </ul> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=n>loop</span> <span class=o>=</span> <span class=n>asyncio</span><span class=o>.</span><span class=n>get_running_loop</span><span class=p>()</span>
2
- <a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a><span class=n>result</span> <span class=o>=</span> <span class=k>await</span> <span class=n>loop</span><span class=o>.</span><span class=n>run_in_executor</span><span class=p>(</span><span class=kc>None</span><span class=p>,</span> <span class=n>cpu_bound_function</span><span class=p>,</span> <span class=n>args</span><span class=p>)</span>
3
- </code></pre></div> <ul> <li>Never block the event loop with synchronous I/O</li> </ul> <h2 id=common-pitfalls>Common Pitfalls<a class=headerlink href=#common-pitfalls title="Permanent link">&para;</a></h2> <ol> <li><strong>Blocking the event loop</strong>: Never use sync I/O in async functions</li> <li><strong>Missing type hints</strong>: All functions must have complete type annotations</li> <li><strong>Global mutable state</strong>: Use ContextVar or pass via parameters</li> <li><strong>Import errors</strong>: Lazy-load optional dependencies (magentic, modal, embeddings)</li> </ol> <h2 id=see-also>See Also<a class=headerlink href=#see-also title="Permanent link">&para;</a></h2> <ul> <li><a href=../error-handling/ >Error Handling</a> - Error handling guidelines</li> <li><a href=../implementation-patterns/ >Implementation Patterns</a> - Common patterns</li> </ul> </article> </div> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=github.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title=huggingface.co class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> </body> </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DeepCritical Team"><link href=https://deepcritical.github.io/GradioDemo/contributing/code-style/ rel=canonical><link href=../code-quality/ rel=prev><link href=../error-handling/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Code Style & Conventions - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><link rel=stylesheet href=../../css/timeago.css><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#code-style--conventions class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Code Style &amp; Conventions </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../../architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Single Command Deploy </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <div class="md-nav__link md-nav__container"> <a href=../../configuration/ class="md-nav__link "> <span class=md-ellipsis> Configuration </span> </a> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_7 checked> <div class="md-nav__link md-nav__container"> <a href=../ class="md-nav__link "> <span class=md-ellipsis> Contributing </span> </a> <label class="md-nav__link " for=__nav_7 id=__nav_7_label tabindex> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=true> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Code Style &amp; Conventions </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#package-manager class=md-nav__link> <span class=md-ellipsis> Package Manager </span> </a> <nav class=md-nav aria-label="Package Manager"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#installation class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=#running-commands class=md-nav__link> <span class=md-ellipsis> Running Commands </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#type-safety class=md-nav__link> <span class=md-ellipsis> Type Safety </span> </a> </li> <li class=md-nav__item> <a href=#pydantic-models class=md-nav__link> <span class=md-ellipsis> Pydantic Models </span> </a> </li> <li class=md-nav__item> <a href=#async-patterns class=md-nav__link> <span class=md-ellipsis> Async Patterns </span> </a> </li> <li class=md-nav__item> <a href=#common-pitfalls class=md-nav__link> <span class=md-ellipsis> Common Pitfalls </span> </a> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=code-style--conventions>Code Style &amp; Conventions<a class=headerlink href=#code-style--conventions title="Anchor link to this section">&para;</a></h1> <p>This document outlines the code style and conventions for The DETERMINATOR.</p> <h2 id=package-manager>Package Manager<a class=headerlink href=#package-manager title="Anchor link to this section">&para;</a></h2> <p>This project uses <a href=https://github.com/astral-sh/uv><code>uv</code></a> as the package manager. All commands should be prefixed with <code>uv run</code> to ensure they run in the correct environment.</p> <h3 id=installation>Installation<a class=headerlink href=#installation title="Anchor link to this section">&para;</a></h3> <div class="language-bash highlight"><pre><span></span><code><span id=__span-0-1><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=c1># Install uv if you haven&#39;t already (recommended: standalone installer)</span>
2
+ </span><span id=__span-0-2><a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a><span class=c1># Unix/macOS/Linux:</span>
3
+ </span><span id=__span-0-3><a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a>curl<span class=w> </span>-LsSf<span class=w> </span>https://astral.sh/uv/install.sh<span class=w> </span><span class=p>|</span><span class=w> </span>sh
4
+ </span><span id=__span-0-4><a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a>
5
+ </span><span id=__span-0-5><a id=__codelineno-0-5 name=__codelineno-0-5 href=#__codelineno-0-5></a><span class=c1># Windows (PowerShell):</span>
6
+ </span><span id=__span-0-6><a id=__codelineno-0-6 name=__codelineno-0-6 href=#__codelineno-0-6></a>powershell<span class=w> </span>-ExecutionPolicy<span class=w> </span>ByPass<span class=w> </span>-c<span class=w> </span><span class=s2>&quot;irm https://astral.sh/uv/install.ps1 | iex&quot;</span>
7
+ </span><span id=__span-0-7><a id=__codelineno-0-7 name=__codelineno-0-7 href=#__codelineno-0-7></a>
8
+ </span><span id=__span-0-8><a id=__codelineno-0-8 name=__codelineno-0-8 href=#__codelineno-0-8></a><span class=c1># Alternative: pipx install uv</span>
9
+ </span><span id=__span-0-9><a id=__codelineno-0-9 name=__codelineno-0-9 href=#__codelineno-0-9></a><span class=c1># Or: pip install uv</span>
10
+ </span><span id=__span-0-10><a id=__codelineno-0-10 name=__codelineno-0-10 href=#__codelineno-0-10></a>
11
+ </span><span id=__span-0-11><a id=__codelineno-0-11 name=__codelineno-0-11 href=#__codelineno-0-11></a><span class=c1># Sync all dependencies including dev extras</span>
12
+ </span><span id=__span-0-12><a id=__codelineno-0-12 name=__codelineno-0-12 href=#__codelineno-0-12></a>uv<span class=w> </span>sync<span class=w> </span>--all-extras
13
+ </span></code></pre></div> <h3 id=running-commands>Running Commands<a class=headerlink href=#running-commands title="Anchor link to this section">&para;</a></h3> <p>All development commands should use <code>uv run</code> prefix:</p> <div class="language-bash highlight"><pre><span></span><code><span id=__span-1-1><a id=__codelineno-1-1 name=__codelineno-1-1 href=#__codelineno-1-1></a><span class=c1># Instead of: pytest tests/</span>
14
+ </span><span id=__span-1-2><a id=__codelineno-1-2 name=__codelineno-1-2 href=#__codelineno-1-2></a>uv<span class=w> </span>run<span class=w> </span>pytest<span class=w> </span>tests/
15
+ </span><span id=__span-1-3><a id=__codelineno-1-3 name=__codelineno-1-3 href=#__codelineno-1-3></a>
16
+ </span><span id=__span-1-4><a id=__codelineno-1-4 name=__codelineno-1-4 href=#__codelineno-1-4></a><span class=c1># Instead of: ruff check src</span>
17
+ </span><span id=__span-1-5><a id=__codelineno-1-5 name=__codelineno-1-5 href=#__codelineno-1-5></a>uv<span class=w> </span>run<span class=w> </span>ruff<span class=w> </span>check<span class=w> </span>src
18
+ </span><span id=__span-1-6><a id=__codelineno-1-6 name=__codelineno-1-6 href=#__codelineno-1-6></a>
19
+ </span><span id=__span-1-7><a id=__codelineno-1-7 name=__codelineno-1-7 href=#__codelineno-1-7></a><span class=c1># Instead of: mypy src</span>
20
+ </span><span id=__span-1-8><a id=__codelineno-1-8 name=__codelineno-1-8 href=#__codelineno-1-8></a>uv<span class=w> </span>run<span class=w> </span>mypy<span class=w> </span>src
21
+ </span></code></pre></div> <p>This ensures commands run in the correct virtual environment managed by <code>uv</code>.</p> <h2 id=type-safety>Type Safety<a class=headerlink href=#type-safety title="Anchor link to this section">&para;</a></h2> <ul> <li><strong>ALWAYS</strong> use type hints for all function parameters and return types</li> <li>Use <code>mypy --strict</code> compliance (no <code>Any</code> unless absolutely necessary)</li> <li>Use <code>TYPE_CHECKING</code> imports for circular dependencies:</li> </ul> <h2 id=pydantic-models>Pydantic Models<a class=headerlink href=#pydantic-models title="Anchor link to this section">&para;</a></h2> <ul> <li>All data exchange uses Pydantic models (<code>src/utils/models.py</code>)</li> <li>Models are frozen (<code>model_config = {"frozen": True}</code>) for immutability</li> <li>Use <code>Field()</code> with descriptions for all model fields</li> <li>Validate with <code>ge=</code>, <code>le=</code>, <code>min_length=</code>, <code>max_length=</code> constraints</li> </ul> <h2 id=async-patterns>Async Patterns<a class=headerlink href=#async-patterns title="Anchor link to this section">&para;</a></h2> <ul> <li><strong>ALL</strong> I/O operations must be async (<code>async def</code>, <code>await</code>)</li> <li>Use <code>asyncio.gather()</code> for parallel operations</li> <li>CPU-bound work (embeddings, parsing) must use <code>run_in_executor()</code>:</li> </ul> <div class="language-python highlight"><pre><span></span><code><span id=__span-2-1><a id=__codelineno-2-1 name=__codelineno-2-1 href=#__codelineno-2-1></a><span class=n>loop</span> <span class=o>=</span> <span class=n>asyncio</span><span class=o>.</span><span class=n>get_running_loop</span><span class=p>()</span>
22
+ </span><span id=__span-2-2><a id=__codelineno-2-2 name=__codelineno-2-2 href=#__codelineno-2-2></a><span class=n>result</span> <span class=o>=</span> <span class=k>await</span> <span class=n>loop</span><span class=o>.</span><span class=n>run_in_executor</span><span class=p>(</span><span class=kc>None</span><span class=p>,</span> <span class=n>cpu_bound_function</span><span class=p>,</span> <span class=n>args</span><span class=p>)</span>
23
+ </span></code></pre></div> <ul> <li>Never block the event loop with synchronous I/O</li> </ul> <h2 id=common-pitfalls>Common Pitfalls<a class=headerlink href=#common-pitfalls title="Anchor link to this section">&para;</a></h2> <ol> <li><strong>Blocking the event loop</strong>: Never use sync I/O in async functions</li> <li><strong>Missing type hints</strong>: All functions must have complete type annotations</li> <li><strong>Global mutable state</strong>: Use ContextVar or pass via parameters</li> <li><strong>Import errors</strong>: Lazy-load optional dependencies (magentic, modal, embeddings)</li> </ol> <h2 id=see-also>See Also<a class=headerlink href=#see-also title="Anchor link to this section">&para;</a></h2> <ul> <li><a href=../error-handling/ >Error Handling</a> - Error handling guidelines</li> <li><a href=../implementation-patterns/ >Implementation Patterns</a> - Common patterns</li> </ul> <aside class=md-source-file> <span class=md-source-file__fact> <span class=md-icon title="Last update"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="December 2, 2025 01:35:56 UTC"><span class=timeago datetime=2025-12-02T01:35:56+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="December 2, 2025 01:35:56 UTC">2025-12-02</span> </span> <span class=md-source-file__fact> <span class=md-icon title=Created> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M14.47 15.08 11 13V7h1.5v5.25l3.08 1.83c-.41.28-.79.62-1.11 1m-1.39 4.84c-.36.05-.71.08-1.08.08-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8c0 .37-.03.72-.08 1.08.69.1 1.33.32 1.92.64.1-.56.16-1.13.16-1.72 0-5.5-4.5-10-10-10S2 6.5 2 12s4.47 10 10 10c.59 0 1.16-.06 1.72-.16-.32-.59-.54-1.23-.64-1.92M18 15v3h-3v2h3v3h2v-3h3v-2h-3v-3z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="November 29, 2025 21:40:26 UTC"><span class=timeago datetime=2025-11-29T21:40:26+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="November 29, 2025 21:40:26 UTC">2025-11-29</span> </span> </aside> </article> </div> <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=GitHub class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://twitter.com/josephpollack target=_blank rel=noopener title=Twitter class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M459.4 151.7c.3 4.5.3 9.1.3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103v-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53C87.4 130.8 165 172.4 252.1 176.9c-1.6-7.8-2.6-15.9-2.6-24C249.5 95.1 296.3 48 354.4 48c30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title="Live Demo" class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> <a href=https://discord.gg/n8ytYeh25n target=_blank rel=noopener title=Discord class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 576 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M492.5 69.8c-.2-.3-.4-.6-.8-.7-38.1-17.5-78.4-30-119.7-37.1-.4-.1-.8 0-1.1.1s-.6.4-.8.8c-5.5 9.9-10.5 20.2-14.9 30.6-44.6-6.8-89.9-6.8-134.4 0-4.5-10.5-9.5-20.7-15.1-30.6-.2-.3-.5-.6-.8-.8s-.7-.2-1.1-.2C162.5 39 122.2 51.5 84.1 69c-.3.1-.6.4-.8.7C7.1 183.5-13.8 294.6-3.6 404.2c0 .3.1.5.2.8s.3.4.5.6c44.4 32.9 94 58 146.8 74.2.4.1.8.1 1.1 0s.7-.4.9-.7c11.3-15.4 21.4-31.8 30-48.8.1-.2.2-.5.2-.8s0-.5-.1-.8-.2-.5-.4-.6-.4-.3-.7-.4c-15.8-6.1-31.2-13.4-45.9-21.9-.3-.2-.5-.4-.7-.6s-.3-.6-.3-.9 0-.6.2-.9.3-.5.6-.7c3.1-2.3 6.2-4.7 9.1-7.1.3-.2.6-.4.9-.4s.7 0 1 .1c96.2 43.9 200.4 43.9 295.5 0 .3-.1.7-.2 1-.2s.7.2.9.4c2.9 2.4 6 4.9 9.1 7.2.2.2.4.4.6.7s.2.6.2.9-.1.6-.3.9-.4.5-.6.6c-14.7 8.6-30 15.9-45.9 21.8-.2.1-.5.2-.7.4s-.3.4-.4.7-.1.5-.1.8.1.5.2.8c8.8 17 18.8 33.3 30 48.8.2.3.6.6.9.7s.8.1 1.1 0c52.9-16.2 102.6-41.3 147.1-74.2.2-.2.4-.4.5-.6s.2-.5.2-.8c12.3-126.8-20.5-236.9-86.9-334.5zm-302 267.7c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.4 59.2-52.8 59.2m195.4 0c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.2 59.2-52.8 59.2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "navigation.indexes", "navigation.instant", "navigation.tracking", "navigation.smooth", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy", "content.tabs.link", "content.tooltips", "toc.integrate"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> <script src=../../js/timeago.min.js></script> <script src=../../js/timeago_mkdocs_material.js></script> </body> </html>
site/contributing/error-handling/index.html CHANGED
@@ -1,9 +1,9 @@
1
- <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DETERMINATOR Team"><link href=https://deepcritical.github.io/GradioDemo/contributing/error-handling/ rel=canonical><link href=../code-style/ rel=prev><link href=../implementation-patterns/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Error Handling & Logging - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#error-handling-logging class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Error Handling &amp; Logging </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/CONFIGURATION/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../../architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Quick Start Guide </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <label class=md-nav__link for=__nav_4 id=__nav_4_label tabindex=0> <span class=md-ellipsis> Configuration </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../configuration/CONFIGURATION/ class=md-nav__link> <span class=md-ellipsis> Configuration Guide </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_7 checked> <label class=md-nav__link for=__nav_7 id=__nav_7_label tabindex> <span class=md-ellipsis> Contributing </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=true> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../ class=md-nav__link> <span class=md-ellipsis> Contributing to DeepCritical </span> </a> </li> <li class=md-nav__item> <a href=../code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Error Handling &amp; Logging </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#exception-hierarchy class=md-nav__link> <span class=md-ellipsis> Exception Hierarchy </span> </a> </li> <li class=md-nav__item> <a href=#error-handling-rules class=md-nav__link> <span class=md-ellipsis> Error Handling Rules </span> </a> </li> <li class=md-nav__item> <a href=#logging class=md-nav__link> <span class=md-ellipsis> Logging </span> </a> </li> <li class=md-nav__item> <a href=#logging-examples class=md-nav__link> <span class=md-ellipsis> Logging Examples </span> </a> </li> <li class=md-nav__item> <a href=#error-chaining class=md-nav__link> <span class=md-ellipsis> Error Chaining </span> </a> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=sidebar data-md-type=toc> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#exception-hierarchy class=md-nav__link> <span class=md-ellipsis> Exception Hierarchy </span> </a> </li> <li class=md-nav__item> <a href=#error-handling-rules class=md-nav__link> <span class=md-ellipsis> Error Handling Rules </span> </a> </li> <li class=md-nav__item> <a href=#logging class=md-nav__link> <span class=md-ellipsis> Logging </span> </a> </li> <li class=md-nav__item> <a href=#logging-examples class=md-nav__link> <span class=md-ellipsis> Logging Examples </span> </a> </li> <li class=md-nav__item> <a href=#error-chaining class=md-nav__link> <span class=md-ellipsis> Error Chaining </span> </a> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=error-handling-logging>Error Handling &amp; Logging<a class=headerlink href=#error-handling-logging title="Permanent link">&para;</a></h1> <p>This document outlines error handling and logging conventions for DeepCritical.</p> <h2 id=exception-hierarchy>Exception Hierarchy<a class=headerlink href=#exception-hierarchy title="Permanent link">&para;</a></h2> <p>Use custom exception hierarchy (<code>src/utils/exceptions.py</code>):</p> <h2 id=error-handling-rules>Error Handling Rules<a class=headerlink href=#error-handling-rules title="Permanent link">&para;</a></h2> <ul> <li>Always chain exceptions: <code>raise SearchError(...) from e</code></li> <li>Log errors with context using <code>structlog</code>:</li> </ul> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=n>logger</span><span class=o>.</span><span class=n>error</span><span class=p>(</span><span class=s2>&quot;Operation failed&quot;</span><span class=p>,</span> <span class=n>error</span><span class=o>=</span><span class=nb>str</span><span class=p>(</span><span class=n>e</span><span class=p>),</span> <span class=n>context</span><span class=o>=</span><span class=n>value</span><span class=p>)</span>
2
- </code></pre></div> <ul> <li>Never silently swallow exceptions</li> <li>Provide actionable error messages</li> </ul> <h2 id=logging>Logging<a class=headerlink href=#logging title="Permanent link">&para;</a></h2> <ul> <li>Use <code>structlog</code> for all logging (NOT <code>print</code> or <code>logging</code>)</li> <li>Import: <code>import structlog; logger = structlog.get_logger()</code></li> <li>Log with structured data: <code>logger.info("event", key=value)</code></li> <li>Use appropriate levels: DEBUG, INFO, WARNING, ERROR</li> </ul> <h2 id=logging-examples>Logging Examples<a class=headerlink href=#logging-examples title="Permanent link">&para;</a></h2> <div class=highlight><pre><span></span><code><a id=__codelineno-1-1 name=__codelineno-1-1 href=#__codelineno-1-1></a><span class=n>logger</span><span class=o>.</span><span class=n>info</span><span class=p>(</span><span class=s2>&quot;Starting search&quot;</span><span class=p>,</span> <span class=n>query</span><span class=o>=</span><span class=n>query</span><span class=p>,</span> <span class=n>tools</span><span class=o>=</span><span class=p>[</span><span class=n>t</span><span class=o>.</span><span class=n>name</span> <span class=k>for</span> <span class=n>t</span> <span class=ow>in</span> <span class=n>tools</span><span class=p>])</span>
3
- <a id=__codelineno-1-2 name=__codelineno-1-2 href=#__codelineno-1-2></a><span class=n>logger</span><span class=o>.</span><span class=n>warning</span><span class=p>(</span><span class=s2>&quot;Search tool failed&quot;</span><span class=p>,</span> <span class=n>tool</span><span class=o>=</span><span class=n>tool</span><span class=o>.</span><span class=n>name</span><span class=p>,</span> <span class=n>error</span><span class=o>=</span><span class=nb>str</span><span class=p>(</span><span class=n>result</span><span class=p>))</span>
4
- <a id=__codelineno-1-3 name=__codelineno-1-3 href=#__codelineno-1-3></a><span class=n>logger</span><span class=o>.</span><span class=n>error</span><span class=p>(</span><span class=s2>&quot;Assessment failed&quot;</span><span class=p>,</span> <span class=n>error</span><span class=o>=</span><span class=nb>str</span><span class=p>(</span><span class=n>e</span><span class=p>))</span>
5
- </code></pre></div> <h2 id=error-chaining>Error Chaining<a class=headerlink href=#error-chaining title="Permanent link">&para;</a></h2> <p>Always preserve exception context:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-2-1 name=__codelineno-2-1 href=#__codelineno-2-1></a><span class=k>try</span><span class=p>:</span>
6
- <a id=__codelineno-2-2 name=__codelineno-2-2 href=#__codelineno-2-2></a> <span class=n>result</span> <span class=o>=</span> <span class=k>await</span> <span class=n>api_call</span><span class=p>()</span>
7
- <a id=__codelineno-2-3 name=__codelineno-2-3 href=#__codelineno-2-3></a><span class=k>except</span> <span class=n>httpx</span><span class=o>.</span><span class=n>HTTPError</span> <span class=k>as</span> <span class=n>e</span><span class=p>:</span>
8
- <a id=__codelineno-2-4 name=__codelineno-2-4 href=#__codelineno-2-4></a> <span class=k>raise</span> <span class=n>SearchError</span><span class=p>(</span><span class=sa>f</span><span class=s2>&quot;API call failed: </span><span class=si>{</span><span class=n>e</span><span class=si>}</span><span class=s2>&quot;</span><span class=p>)</span> <span class=kn>from</span><span class=w> </span><span class=nn>e</span>
9
- </code></pre></div> <h2 id=see-also>See Also<a class=headerlink href=#see-also title="Permanent link">&para;</a></h2> <ul> <li><a href=../code-style/ >Code Style</a> - Code style guidelines</li> <li><a href=../testing/ >Testing</a> - Testing guidelines</li> </ul> </article> </div> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=github.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title=huggingface.co class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> </body> </html>
 
1
+ <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DeepCritical Team"><link href=https://deepcritical.github.io/GradioDemo/contributing/error-handling/ rel=canonical><link href=../code-style/ rel=prev><link href=../implementation-patterns/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Error Handling & Logging - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><link rel=stylesheet href=../../css/timeago.css><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#error-handling--logging class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Error Handling &amp; Logging </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../../architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Single Command Deploy </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <div class="md-nav__link md-nav__container"> <a href=../../configuration/ class="md-nav__link "> <span class=md-ellipsis> Configuration </span> </a> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_7 checked> <div class="md-nav__link md-nav__container"> <a href=../ class="md-nav__link "> <span class=md-ellipsis> Contributing </span> </a> <label class="md-nav__link " for=__nav_7 id=__nav_7_label tabindex> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=true> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Error Handling &amp; Logging </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#exception-hierarchy class=md-nav__link> <span class=md-ellipsis> Exception Hierarchy </span> </a> </li> <li class=md-nav__item> <a href=#error-handling-rules class=md-nav__link> <span class=md-ellipsis> Error Handling Rules </span> </a> </li> <li class=md-nav__item> <a href=#logging class=md-nav__link> <span class=md-ellipsis> Logging </span> </a> </li> <li class=md-nav__item> <a href=#logging-examples class=md-nav__link> <span class=md-ellipsis> Logging Examples </span> </a> </li> <li class=md-nav__item> <a href=#error-chaining class=md-nav__link> <span class=md-ellipsis> Error Chaining </span> </a> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=error-handling--logging>Error Handling &amp; Logging<a class=headerlink href=#error-handling--logging title="Anchor link to this section">&para;</a></h1> <p>This document outlines error handling and logging conventions for The DETERMINATOR.</p> <h2 id=exception-hierarchy>Exception Hierarchy<a class=headerlink href=#exception-hierarchy title="Anchor link to this section">&para;</a></h2> <p>Use custom exception hierarchy (<code>src/utils/exceptions.py</code>):</p> <h2 id=error-handling-rules>Error Handling Rules<a class=headerlink href=#error-handling-rules title="Anchor link to this section">&para;</a></h2> <ul> <li>Always chain exceptions: <code>raise SearchError(...) from e</code></li> <li>Log errors with context using <code>structlog</code>:</li> </ul> <div class="language-python highlight"><pre><span></span><code><span id=__span-0-1><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=n>logger</span><span class=o>.</span><span class=n>error</span><span class=p>(</span><span class=s2>&quot;Operation failed&quot;</span><span class=p>,</span> <span class=n>error</span><span class=o>=</span><span class=nb>str</span><span class=p>(</span><span class=n>e</span><span class=p>),</span> <span class=n>context</span><span class=o>=</span><span class=n>value</span><span class=p>)</span>
2
+ </span></code></pre></div> <ul> <li>Never silently swallow exceptions</li> <li>Provide actionable error messages</li> </ul> <h2 id=logging>Logging<a class=headerlink href=#logging title="Anchor link to this section">&para;</a></h2> <ul> <li>Use <code>structlog</code> for all logging (NOT <code>print</code> or <code>logging</code>)</li> <li>Import: <code>import structlog; logger = structlog.get_logger()</code></li> <li>Log with structured data: <code>logger.info("event", key=value)</code></li> <li>Use appropriate levels: DEBUG, INFO, WARNING, ERROR</li> </ul> <h2 id=logging-examples>Logging Examples<a class=headerlink href=#logging-examples title="Anchor link to this section">&para;</a></h2> <div class="language-python highlight"><pre><span></span><code><span id=__span-1-1><a id=__codelineno-1-1 name=__codelineno-1-1 href=#__codelineno-1-1></a><span class=n>logger</span><span class=o>.</span><span class=n>info</span><span class=p>(</span><span class=s2>&quot;Starting search&quot;</span><span class=p>,</span> <span class=n>query</span><span class=o>=</span><span class=n>query</span><span class=p>,</span> <span class=n>tools</span><span class=o>=</span><span class=p>[</span><span class=n>t</span><span class=o>.</span><span class=n>name</span> <span class=k>for</span> <span class=n>t</span> <span class=ow>in</span> <span class=n>tools</span><span class=p>])</span>
3
+ </span><span id=__span-1-2><a id=__codelineno-1-2 name=__codelineno-1-2 href=#__codelineno-1-2></a><span class=n>logger</span><span class=o>.</span><span class=n>warning</span><span class=p>(</span><span class=s2>&quot;Search tool failed&quot;</span><span class=p>,</span> <span class=n>tool</span><span class=o>=</span><span class=n>tool</span><span class=o>.</span><span class=n>name</span><span class=p>,</span> <span class=n>error</span><span class=o>=</span><span class=nb>str</span><span class=p>(</span><span class=n>result</span><span class=p>))</span>
4
+ </span><span id=__span-1-3><a id=__codelineno-1-3 name=__codelineno-1-3 href=#__codelineno-1-3></a><span class=n>logger</span><span class=o>.</span><span class=n>error</span><span class=p>(</span><span class=s2>&quot;Assessment failed&quot;</span><span class=p>,</span> <span class=n>error</span><span class=o>=</span><span class=nb>str</span><span class=p>(</span><span class=n>e</span><span class=p>))</span>
5
+ </span></code></pre></div> <h2 id=error-chaining>Error Chaining<a class=headerlink href=#error-chaining title="Anchor link to this section">&para;</a></h2> <p>Always preserve exception context:</p> <div class="language-python highlight"><pre><span></span><code><span id=__span-2-1><a id=__codelineno-2-1 name=__codelineno-2-1 href=#__codelineno-2-1></a><span class=k>try</span><span class=p>:</span>
6
+ </span><span id=__span-2-2><a id=__codelineno-2-2 name=__codelineno-2-2 href=#__codelineno-2-2></a> <span class=n>result</span> <span class=o>=</span> <span class=k>await</span> <span class=n>api_call</span><span class=p>()</span>
7
+ </span><span id=__span-2-3><a id=__codelineno-2-3 name=__codelineno-2-3 href=#__codelineno-2-3></a><span class=k>except</span> <span class=n>httpx</span><span class=o>.</span><span class=n>HTTPError</span> <span class=k>as</span> <span class=n>e</span><span class=p>:</span>
8
+ </span><span id=__span-2-4><a id=__codelineno-2-4 name=__codelineno-2-4 href=#__codelineno-2-4></a> <span class=k>raise</span> <span class=n>SearchError</span><span class=p>(</span><span class=sa>f</span><span class=s2>&quot;API call failed: </span><span class=si>{</span><span class=n>e</span><span class=si>}</span><span class=s2>&quot;</span><span class=p>)</span> <span class=kn>from</span><span class=w> </span><span class=nn>e</span>
9
+ </span></code></pre></div> <h2 id=see-also>See Also<a class=headerlink href=#see-also title="Anchor link to this section">&para;</a></h2> <ul> <li><a href=../code-style/ >Code Style</a> - Code style guidelines</li> <li><a href=../testing/ >Testing</a> - Testing guidelines</li> </ul> <aside class=md-source-file> <span class=md-source-file__fact> <span class=md-icon title="Last update"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="December 2, 2025 01:35:56 UTC"><span class=timeago datetime=2025-12-02T01:35:56+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="December 2, 2025 01:35:56 UTC">2025-12-02</span> </span> <span class=md-source-file__fact> <span class=md-icon title=Created> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M14.47 15.08 11 13V7h1.5v5.25l3.08 1.83c-.41.28-.79.62-1.11 1m-1.39 4.84c-.36.05-.71.08-1.08.08-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8c0 .37-.03.72-.08 1.08.69.1 1.33.32 1.92.64.1-.56.16-1.13.16-1.72 0-5.5-4.5-10-10-10S2 6.5 2 12s4.47 10 10 10c.59 0 1.16-.06 1.72-.16-.32-.59-.54-1.23-.64-1.92M18 15v3h-3v2h3v3h2v-3h3v-2h-3v-3z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="November 29, 2025 21:40:26 UTC"><span class=timeago datetime=2025-11-29T21:40:26+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="November 29, 2025 21:40:26 UTC">2025-11-29</span> </span> </aside> </article> </div> <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=GitHub class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://twitter.com/josephpollack target=_blank rel=noopener title=Twitter class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M459.4 151.7c.3 4.5.3 9.1.3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103v-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53C87.4 130.8 165 172.4 252.1 176.9c-1.6-7.8-2.6-15.9-2.6-24C249.5 95.1 296.3 48 354.4 48c30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title="Live Demo" class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> <a href=https://discord.gg/n8ytYeh25n target=_blank rel=noopener title=Discord class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 576 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M492.5 69.8c-.2-.3-.4-.6-.8-.7-38.1-17.5-78.4-30-119.7-37.1-.4-.1-.8 0-1.1.1s-.6.4-.8.8c-5.5 9.9-10.5 20.2-14.9 30.6-44.6-6.8-89.9-6.8-134.4 0-4.5-10.5-9.5-20.7-15.1-30.6-.2-.3-.5-.6-.8-.8s-.7-.2-1.1-.2C162.5 39 122.2 51.5 84.1 69c-.3.1-.6.4-.8.7C7.1 183.5-13.8 294.6-3.6 404.2c0 .3.1.5.2.8s.3.4.5.6c44.4 32.9 94 58 146.8 74.2.4.1.8.1 1.1 0s.7-.4.9-.7c11.3-15.4 21.4-31.8 30-48.8.1-.2.2-.5.2-.8s0-.5-.1-.8-.2-.5-.4-.6-.4-.3-.7-.4c-15.8-6.1-31.2-13.4-45.9-21.9-.3-.2-.5-.4-.7-.6s-.3-.6-.3-.9 0-.6.2-.9.3-.5.6-.7c3.1-2.3 6.2-4.7 9.1-7.1.3-.2.6-.4.9-.4s.7 0 1 .1c96.2 43.9 200.4 43.9 295.5 0 .3-.1.7-.2 1-.2s.7.2.9.4c2.9 2.4 6 4.9 9.1 7.2.2.2.4.4.6.7s.2.6.2.9-.1.6-.3.9-.4.5-.6.6c-14.7 8.6-30 15.9-45.9 21.8-.2.1-.5.2-.7.4s-.3.4-.4.7-.1.5-.1.8.1.5.2.8c8.8 17 18.8 33.3 30 48.8.2.3.6.6.9.7s.8.1 1.1 0c52.9-16.2 102.6-41.3 147.1-74.2.2-.2.4-.4.5-.6s.2-.5.2-.8c12.3-126.8-20.5-236.9-86.9-334.5zm-302 267.7c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.4 59.2-52.8 59.2m195.4 0c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.2 59.2-52.8 59.2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "navigation.indexes", "navigation.instant", "navigation.tracking", "navigation.smooth", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy", "content.tabs.link", "content.tooltips", "toc.integrate"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> <script src=../../js/timeago.min.js></script> <script src=../../js/timeago_mkdocs_material.js></script> </body> </html>
site/contributing/implementation-patterns/index.html CHANGED
@@ -1,10 +1,10 @@
1
- <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DETERMINATOR Team"><link href=https://deepcritical.github.io/GradioDemo/contributing/implementation-patterns/ rel=canonical><link href=../error-handling/ rel=prev><link href=../prompt-engineering/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Implementation Patterns - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#implementation-patterns class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Implementation Patterns </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/CONFIGURATION/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../../architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Quick Start Guide </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <label class=md-nav__link for=__nav_4 id=__nav_4_label tabindex=0> <span class=md-ellipsis> Configuration </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../configuration/CONFIGURATION/ class=md-nav__link> <span class=md-ellipsis> Configuration Guide </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_7 checked> <label class=md-nav__link for=__nav_7 id=__nav_7_label tabindex> <span class=md-ellipsis> Contributing </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=true> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../ class=md-nav__link> <span class=md-ellipsis> Contributing to DeepCritical </span> </a> </li> <li class=md-nav__item> <a href=../code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Implementation Patterns </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Implementation Patterns </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#search-tools class=md-nav__link> <span class=md-ellipsis> Search Tools </span> </a> </li> <li class=md-nav__item> <a href=#judge-handlers class=md-nav__link> <span class=md-ellipsis> Judge Handlers </span> </a> </li> <li class=md-nav__item> <a href=#agent-factory-pattern class=md-nav__link> <span class=md-ellipsis> Agent Factory Pattern </span> </a> </li> <li class=md-nav__item> <a href=#state-management class=md-nav__link> <span class=md-ellipsis> State Management </span> </a> </li> <li class=md-nav__item> <a href=#singleton-pattern class=md-nav__link> <span class=md-ellipsis> Singleton Pattern </span> </a> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=sidebar data-md-type=toc> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#search-tools class=md-nav__link> <span class=md-ellipsis> Search Tools </span> </a> </li> <li class=md-nav__item> <a href=#judge-handlers class=md-nav__link> <span class=md-ellipsis> Judge Handlers </span> </a> </li> <li class=md-nav__item> <a href=#agent-factory-pattern class=md-nav__link> <span class=md-ellipsis> Agent Factory Pattern </span> </a> </li> <li class=md-nav__item> <a href=#state-management class=md-nav__link> <span class=md-ellipsis> State Management </span> </a> </li> <li class=md-nav__item> <a href=#singleton-pattern class=md-nav__link> <span class=md-ellipsis> Singleton Pattern </span> </a> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=implementation-patterns>Implementation Patterns<a class=headerlink href=#implementation-patterns title="Permanent link">&para;</a></h1> <p>This document outlines common implementation patterns used in DeepCritical.</p> <h2 id=search-tools>Search Tools<a class=headerlink href=#search-tools title="Permanent link">&para;</a></h2> <p>All tools implement <code>SearchTool</code> protocol (<code>src/tools/base.py</code>):</p> <ul> <li>Must have <code>name</code> property</li> <li>Must implement <code>async def search(query, max_results) -&gt; list[Evidence]</code></li> <li>Use <code>@retry</code> decorator from tenacity for resilience</li> <li>Rate limiting: Implement <code>_rate_limit()</code> for APIs with limits (e.g., PubMed)</li> <li>Error handling: Raise <code>SearchError</code> or <code>RateLimitError</code> on failures</li> </ul> <p>Example pattern:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=k>class</span><span class=w> </span><span class=nc>MySearchTool</span><span class=p>:</span>
2
- <a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a> <span class=nd>@property</span>
3
- <a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a> <span class=k>def</span><span class=w> </span><span class=nf>name</span><span class=p>(</span><span class=bp>self</span><span class=p>)</span> <span class=o>-&gt;</span> <span class=nb>str</span><span class=p>:</span>
4
- <a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a> <span class=k>return</span> <span class=s2>&quot;mytool&quot;</span>
5
- <a id=__codelineno-0-5 name=__codelineno-0-5 href=#__codelineno-0-5></a>
6
- <a id=__codelineno-0-6 name=__codelineno-0-6 href=#__codelineno-0-6></a> <span class=nd>@retry</span><span class=p>(</span><span class=n>stop</span><span class=o>=</span><span class=n>stop_after_attempt</span><span class=p>(</span><span class=mi>3</span><span class=p>),</span> <span class=n>wait</span><span class=o>=</span><span class=n>wait_exponential</span><span class=p>(</span><span class=o>...</span><span class=p>))</span>
7
- <a id=__codelineno-0-7 name=__codelineno-0-7 href=#__codelineno-0-7></a> <span class=k>async</span> <span class=k>def</span><span class=w> </span><span class=nf>search</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span> <span class=n>query</span><span class=p>:</span> <span class=nb>str</span><span class=p>,</span> <span class=n>max_results</span><span class=p>:</span> <span class=nb>int</span> <span class=o>=</span> <span class=mi>10</span><span class=p>)</span> <span class=o>-&gt;</span> <span class=nb>list</span><span class=p>[</span><span class=n>Evidence</span><span class=p>]:</span>
8
- <a id=__codelineno-0-8 name=__codelineno-0-8 href=#__codelineno-0-8></a> <span class=c1># Implementation</span>
9
- <a id=__codelineno-0-9 name=__codelineno-0-9 href=#__codelineno-0-9></a> <span class=k>return</span> <span class=n>evidence_list</span>
10
- </code></pre></div> <h2 id=judge-handlers>Judge Handlers<a class=headerlink href=#judge-handlers title="Permanent link">&para;</a></h2> <ul> <li>Implement <code>JudgeHandlerProtocol</code> (<code>async def assess(question, evidence) -&gt; JudgeAssessment</code>)</li> <li>Use pydantic-ai <code>Agent</code> with <code>output_type=JudgeAssessment</code></li> <li>System prompts in <code>src/prompts/judge.py</code></li> <li>Support fallback handlers: <code>MockJudgeHandler</code>, <code>HFInferenceJudgeHandler</code></li> <li>Always return valid <code>JudgeAssessment</code> (never raise exceptions)</li> </ul> <h2 id=agent-factory-pattern>Agent Factory Pattern<a class=headerlink href=#agent-factory-pattern title="Permanent link">&para;</a></h2> <ul> <li>Use factory functions for creating agents (<code>src/agent_factory/</code>)</li> <li>Lazy initialization for optional dependencies (e.g., embeddings, Modal)</li> <li>Check requirements before initialization:</li> </ul> <h2 id=state-management>State Management<a class=headerlink href=#state-management title="Permanent link">&para;</a></h2> <ul> <li><strong>Magentic Mode</strong>: Use <code>ContextVar</code> for thread-safe state (<code>src/agents/state.py</code>)</li> <li><strong>Simple Mode</strong>: Pass state via function parameters</li> <li>Never use global mutable state (except singletons via <code>@lru_cache</code>)</li> </ul> <h2 id=singleton-pattern>Singleton Pattern<a class=headerlink href=#singleton-pattern title="Permanent link">&para;</a></h2> <p>Use <code>@lru_cache(maxsize=1)</code> for singletons:</p> <ul> <li>Lazy initialization to avoid requiring dependencies at import time</li> </ul> <h2 id=see-also>See Also<a class=headerlink href=#see-also title="Permanent link">&para;</a></h2> <ul> <li><a href=../code-style/ >Code Style</a> - Code style guidelines</li> <li><a href=../error-handling/ >Error Handling</a> - Error handling guidelines</li> </ul> </article> </div> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=github.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title=huggingface.co class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> </body> </html>
 
1
+ <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DeepCritical Team"><link href=https://deepcritical.github.io/GradioDemo/contributing/implementation-patterns/ rel=canonical><link href=../error-handling/ rel=prev><link href=../prompt-engineering/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Implementation Patterns - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><link rel=stylesheet href=../../css/timeago.css><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#implementation-patterns class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Implementation Patterns </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../../architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Single Command Deploy </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <div class="md-nav__link md-nav__container"> <a href=../../configuration/ class="md-nav__link "> <span class=md-ellipsis> Configuration </span> </a> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_7 checked> <div class="md-nav__link md-nav__container"> <a href=../ class="md-nav__link "> <span class=md-ellipsis> Contributing </span> </a> <label class="md-nav__link " for=__nav_7 id=__nav_7_label tabindex> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=true> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Implementation Patterns </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Implementation Patterns </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#search-tools class=md-nav__link> <span class=md-ellipsis> Search Tools </span> </a> </li> <li class=md-nav__item> <a href=#judge-handlers class=md-nav__link> <span class=md-ellipsis> Judge Handlers </span> </a> </li> <li class=md-nav__item> <a href=#agent-factory-pattern class=md-nav__link> <span class=md-ellipsis> Agent Factory Pattern </span> </a> </li> <li class=md-nav__item> <a href=#state-management class=md-nav__link> <span class=md-ellipsis> State Management </span> </a> </li> <li class=md-nav__item> <a href=#singleton-pattern class=md-nav__link> <span class=md-ellipsis> Singleton Pattern </span> </a> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=implementation-patterns>Implementation Patterns<a class=headerlink href=#implementation-patterns title="Anchor link to this section">&para;</a></h1> <p>This document outlines common implementation patterns used in The DETERMINATOR.</p> <h2 id=search-tools>Search Tools<a class=headerlink href=#search-tools title="Anchor link to this section">&para;</a></h2> <p>All tools implement <code>SearchTool</code> protocol (<code>src/tools/base.py</code>):</p> <ul> <li>Must have <code>name</code> property</li> <li>Must implement <code>async def search(query, max_results) -&gt; list[Evidence]</code></li> <li>Use <code>@retry</code> decorator from tenacity for resilience</li> <li>Rate limiting: Implement <code>_rate_limit()</code> for APIs with limits (e.g., PubMed)</li> <li>Error handling: Raise <code>SearchError</code> or <code>RateLimitError</code> on failures</li> </ul> <p>Example pattern:</p> <div class="language-python highlight"><pre><span></span><code><span id=__span-0-1><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=k>class</span><span class=w> </span><span class=nc>MySearchTool</span><span class=p>:</span>
2
+ </span><span id=__span-0-2><a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a> <span class=nd>@property</span>
3
+ </span><span id=__span-0-3><a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a> <span class=k>def</span><span class=w> </span><span class=nf>name</span><span class=p>(</span><span class=bp>self</span><span class=p>)</span> <span class=o>-&gt;</span> <span class=nb>str</span><span class=p>:</span>
4
+ </span><span id=__span-0-4><a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a> <span class=k>return</span> <span class=s2>&quot;mytool&quot;</span>
5
+ </span><span id=__span-0-5><a id=__codelineno-0-5 name=__codelineno-0-5 href=#__codelineno-0-5></a>
6
+ </span><span id=__span-0-6><a id=__codelineno-0-6 name=__codelineno-0-6 href=#__codelineno-0-6></a> <span class=nd>@retry</span><span class=p>(</span><span class=n>stop</span><span class=o>=</span><span class=n>stop_after_attempt</span><span class=p>(</span><span class=mi>3</span><span class=p>),</span> <span class=n>wait</span><span class=o>=</span><span class=n>wait_exponential</span><span class=p>(</span><span class=o>...</span><span class=p>))</span>
7
+ </span><span id=__span-0-7><a id=__codelineno-0-7 name=__codelineno-0-7 href=#__codelineno-0-7></a> <span class=k>async</span> <span class=k>def</span><span class=w> </span><span class=nf>search</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span> <span class=n>query</span><span class=p>:</span> <span class=nb>str</span><span class=p>,</span> <span class=n>max_results</span><span class=p>:</span> <span class=nb>int</span> <span class=o>=</span> <span class=mi>10</span><span class=p>)</span> <span class=o>-&gt;</span> <span class=nb>list</span><span class=p>[</span><span class=n>Evidence</span><span class=p>]:</span>
8
+ </span><span id=__span-0-8><a id=__codelineno-0-8 name=__codelineno-0-8 href=#__codelineno-0-8></a> <span class=c1># Implementation</span>
9
+ </span><span id=__span-0-9><a id=__codelineno-0-9 name=__codelineno-0-9 href=#__codelineno-0-9></a> <span class=k>return</span> <span class=n>evidence_list</span>
10
+ </span></code></pre></div> <h2 id=judge-handlers>Judge Handlers<a class=headerlink href=#judge-handlers title="Anchor link to this section">&para;</a></h2> <ul> <li>Implement <code>JudgeHandlerProtocol</code> (<code>async def assess(question, evidence) -&gt; JudgeAssessment</code>)</li> <li>Use pydantic-ai <code>Agent</code> with <code>output_type=JudgeAssessment</code></li> <li>System prompts in <code>src/prompts/judge.py</code></li> <li>Support fallback handlers: <code>MockJudgeHandler</code>, <code>HFInferenceJudgeHandler</code></li> <li>Always return valid <code>JudgeAssessment</code> (never raise exceptions)</li> </ul> <h2 id=agent-factory-pattern>Agent Factory Pattern<a class=headerlink href=#agent-factory-pattern title="Anchor link to this section">&para;</a></h2> <ul> <li>Use factory functions for creating agents (<code>src/agent_factory/</code>)</li> <li>Lazy initialization for optional dependencies (e.g., embeddings, Modal)</li> <li>Check requirements before initialization:</li> </ul> <h2 id=state-management>State Management<a class=headerlink href=#state-management title="Anchor link to this section">&para;</a></h2> <ul> <li><strong>Magentic Mode</strong>: Use <code>ContextVar</code> for thread-safe state (<code>src/agents/state.py</code>)</li> <li><strong>Simple Mode</strong>: Pass state via function parameters</li> <li>Never use global mutable state (except singletons via <code>@lru_cache</code>)</li> </ul> <h2 id=singleton-pattern>Singleton Pattern<a class=headerlink href=#singleton-pattern title="Anchor link to this section">&para;</a></h2> <p>Use <code>@lru_cache(maxsize=1)</code> for singletons:</p> <ul> <li>Lazy initialization to avoid requiring dependencies at import time</li> </ul> <h2 id=see-also>See Also<a class=headerlink href=#see-also title="Anchor link to this section">&para;</a></h2> <ul> <li><a href=../code-style/ >Code Style</a> - Code style guidelines</li> <li><a href=../error-handling/ >Error Handling</a> - Error handling guidelines</li> </ul> <aside class=md-source-file> <span class=md-source-file__fact> <span class=md-icon title="Last update"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="December 2, 2025 01:35:56 UTC"><span class=timeago datetime=2025-12-02T01:35:56+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="December 2, 2025 01:35:56 UTC">2025-12-02</span> </span> <span class=md-source-file__fact> <span class=md-icon title=Created> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M14.47 15.08 11 13V7h1.5v5.25l3.08 1.83c-.41.28-.79.62-1.11 1m-1.39 4.84c-.36.05-.71.08-1.08.08-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8c0 .37-.03.72-.08 1.08.69.1 1.33.32 1.92.64.1-.56.16-1.13.16-1.72 0-5.5-4.5-10-10-10S2 6.5 2 12s4.47 10 10 10c.59 0 1.16-.06 1.72-.16-.32-.59-.54-1.23-.64-1.92M18 15v3h-3v2h3v3h2v-3h3v-2h-3v-3z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="November 29, 2025 21:40:26 UTC"><span class=timeago datetime=2025-11-29T21:40:26+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="November 29, 2025 21:40:26 UTC">2025-11-29</span> </span> </aside> </article> </div> <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=GitHub class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://twitter.com/josephpollack target=_blank rel=noopener title=Twitter class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M459.4 151.7c.3 4.5.3 9.1.3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103v-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53C87.4 130.8 165 172.4 252.1 176.9c-1.6-7.8-2.6-15.9-2.6-24C249.5 95.1 296.3 48 354.4 48c30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title="Live Demo" class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> <a href=https://discord.gg/n8ytYeh25n target=_blank rel=noopener title=Discord class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 576 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M492.5 69.8c-.2-.3-.4-.6-.8-.7-38.1-17.5-78.4-30-119.7-37.1-.4-.1-.8 0-1.1.1s-.6.4-.8.8c-5.5 9.9-10.5 20.2-14.9 30.6-44.6-6.8-89.9-6.8-134.4 0-4.5-10.5-9.5-20.7-15.1-30.6-.2-.3-.5-.6-.8-.8s-.7-.2-1.1-.2C162.5 39 122.2 51.5 84.1 69c-.3.1-.6.4-.8.7C7.1 183.5-13.8 294.6-3.6 404.2c0 .3.1.5.2.8s.3.4.5.6c44.4 32.9 94 58 146.8 74.2.4.1.8.1 1.1 0s.7-.4.9-.7c11.3-15.4 21.4-31.8 30-48.8.1-.2.2-.5.2-.8s0-.5-.1-.8-.2-.5-.4-.6-.4-.3-.7-.4c-15.8-6.1-31.2-13.4-45.9-21.9-.3-.2-.5-.4-.7-.6s-.3-.6-.3-.9 0-.6.2-.9.3-.5.6-.7c3.1-2.3 6.2-4.7 9.1-7.1.3-.2.6-.4.9-.4s.7 0 1 .1c96.2 43.9 200.4 43.9 295.5 0 .3-.1.7-.2 1-.2s.7.2.9.4c2.9 2.4 6 4.9 9.1 7.2.2.2.4.4.6.7s.2.6.2.9-.1.6-.3.9-.4.5-.6.6c-14.7 8.6-30 15.9-45.9 21.8-.2.1-.5.2-.7.4s-.3.4-.4.7-.1.5-.1.8.1.5.2.8c8.8 17 18.8 33.3 30 48.8.2.3.6.6.9.7s.8.1 1.1 0c52.9-16.2 102.6-41.3 147.1-74.2.2-.2.4-.4.5-.6s.2-.5.2-.8c12.3-126.8-20.5-236.9-86.9-334.5zm-302 267.7c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.4 59.2-52.8 59.2m195.4 0c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.2 59.2-52.8 59.2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "navigation.indexes", "navigation.instant", "navigation.tracking", "navigation.smooth", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy", "content.tabs.link", "content.tooltips", "toc.integrate"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> <script src=../../js/timeago.min.js></script> <script src=../../js/timeago_mkdocs_material.js></script> </body> </html>
site/contributing/index.html CHANGED
@@ -1,15 +1,52 @@
1
- <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DETERMINATOR Team"><link href=https://deepcritical.github.io/GradioDemo/contributing/ rel=canonical><link href=../api/models/ rel=prev><link href=code-quality/ rel=next><link rel=icon href=../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Contributing to DeepCritical - The DETERMINATOR</title><link rel=stylesheet href=../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#contributing-to-deepcritical class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Contributing to DeepCritical </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../configuration/CONFIGURATION/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=./ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Quick Start Guide </span> </a> </li> <li class=md-nav__item> <a href=../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <label class=md-nav__link for=__nav_4 id=__nav_4_label tabindex=0> <span class=md-ellipsis> Configuration </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../configuration/CONFIGURATION/ class=md-nav__link> <span class=md-ellipsis> Configuration Guide </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_7 checked> <label class=md-nav__link for=__nav_7 id=__nav_7_label tabindex> <span class=md-ellipsis> Contributing </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=true> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Contributing to DeepCritical </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Contributing to DeepCritical </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#git-workflow class=md-nav__link> <span class=md-ellipsis> Git Workflow </span> </a> </li> <li class=md-nav__item> <a href=#development-commands class=md-nav__link> <span class=md-ellipsis> Development Commands </span> </a> </li> <li class=md-nav__item> <a href=#getting-started class=md-nav__link> <span class=md-ellipsis> Getting Started </span> </a> </li> <li class=md-nav__item> <a href=#development-guidelines class=md-nav__link> <span class=md-ellipsis> Development Guidelines </span> </a> <nav class=md-nav aria-label="Development Guidelines"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#code-style class=md-nav__link> <span class=md-ellipsis> Code Style </span> </a> </li> <li class=md-nav__item> <a href=#error-handling class=md-nav__link> <span class=md-ellipsis> Error Handling </span> </a> </li> <li class=md-nav__item> <a href=#testing class=md-nav__link> <span class=md-ellipsis> Testing </span> </a> </li> <li class=md-nav__item> <a href=#implementation-patterns class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=#prompt-engineering class=md-nav__link> <span class=md-ellipsis> Prompt Engineering </span> </a> </li> <li class=md-nav__item> <a href=#code-quality class=md-nav__link> <span class=md-ellipsis> Code Quality </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#mcp-integration class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> <nav class=md-nav aria-label="MCP Integration"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#mcp-tools class=md-nav__link> <span class=md-ellipsis> MCP Tools </span> </a> </li> <li class=md-nav__item> <a href=#gradio-mcp-server class=md-nav__link> <span class=md-ellipsis> Gradio MCP Server </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#common-pitfalls class=md-nav__link> <span class=md-ellipsis> Common Pitfalls </span> </a> </li> <li class=md-nav__item> <a href=#key-principles class=md-nav__link> <span class=md-ellipsis> Key Principles </span> </a> </li> <li class=md-nav__item> <a href=#pull-request-process class=md-nav__link> <span class=md-ellipsis> Pull Request Process </span> </a> </li> <li class=md-nav__item> <a href=#questions class=md-nav__link> <span class=md-ellipsis> Questions? </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=sidebar data-md-type=toc> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#git-workflow class=md-nav__link> <span class=md-ellipsis> Git Workflow </span> </a> </li> <li class=md-nav__item> <a href=#development-commands class=md-nav__link> <span class=md-ellipsis> Development Commands </span> </a> </li> <li class=md-nav__item> <a href=#getting-started class=md-nav__link> <span class=md-ellipsis> Getting Started </span> </a> </li> <li class=md-nav__item> <a href=#development-guidelines class=md-nav__link> <span class=md-ellipsis> Development Guidelines </span> </a> <nav class=md-nav aria-label="Development Guidelines"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#code-style class=md-nav__link> <span class=md-ellipsis> Code Style </span> </a> </li> <li class=md-nav__item> <a href=#error-handling class=md-nav__link> <span class=md-ellipsis> Error Handling </span> </a> </li> <li class=md-nav__item> <a href=#testing class=md-nav__link> <span class=md-ellipsis> Testing </span> </a> </li> <li class=md-nav__item> <a href=#implementation-patterns class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=#prompt-engineering class=md-nav__link> <span class=md-ellipsis> Prompt Engineering </span> </a> </li> <li class=md-nav__item> <a href=#code-quality class=md-nav__link> <span class=md-ellipsis> Code Quality </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#mcp-integration class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> <nav class=md-nav aria-label="MCP Integration"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#mcp-tools class=md-nav__link> <span class=md-ellipsis> MCP Tools </span> </a> </li> <li class=md-nav__item> <a href=#gradio-mcp-server class=md-nav__link> <span class=md-ellipsis> Gradio MCP Server </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#common-pitfalls class=md-nav__link> <span class=md-ellipsis> Common Pitfalls </span> </a> </li> <li class=md-nav__item> <a href=#key-principles class=md-nav__link> <span class=md-ellipsis> Key Principles </span> </a> </li> <li class=md-nav__item> <a href=#pull-request-process class=md-nav__link> <span class=md-ellipsis> Pull Request Process </span> </a> </li> <li class=md-nav__item> <a href=#questions class=md-nav__link> <span class=md-ellipsis> Questions? </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=contributing-to-deepcritical>Contributing to DeepCritical<a class=headerlink href=#contributing-to-deepcritical title="Permanent link">&para;</a></h1> <p>Thank you for your interest in contributing to DeepCritical! This guide will help you get started.</p> <h2 id=git-workflow>Git Workflow<a class=headerlink href=#git-workflow title="Permanent link">&para;</a></h2> <ul> <li><code>main</code>: Production-ready (GitHub)</li> <li><code>dev</code>: Development integration (GitHub)</li> <li>Use feature branches: <code>yourname-dev</code></li> <li><strong>NEVER</strong> push directly to <code>main</code> or <code>dev</code> on HuggingFace</li> <li>GitHub is source of truth; HuggingFace is for deployment</li> </ul> <h2 id=development-commands>Development Commands<a class=headerlink href=#development-commands title="Permanent link">&para;</a></h2> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a>make<span class=w> </span>install<span class=w> </span><span class=c1># Install dependencies + pre-commit</span>
2
- <a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a>make<span class=w> </span>check<span class=w> </span><span class=c1># Lint + typecheck + test (MUST PASS)</span>
3
- <a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a>make<span class=w> </span><span class=nb>test</span><span class=w> </span><span class=c1># Run unit tests</span>
4
- <a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a>make<span class=w> </span>lint<span class=w> </span><span class=c1># Run ruff</span>
5
- <a id=__codelineno-0-5 name=__codelineno-0-5 href=#__codelineno-0-5></a>make<span class=w> </span>format<span class=w> </span><span class=c1># Format with ruff</span>
6
- <a id=__codelineno-0-6 name=__codelineno-0-6 href=#__codelineno-0-6></a>make<span class=w> </span>typecheck<span class=w> </span><span class=c1># Run mypy</span>
7
- <a id=__codelineno-0-7 name=__codelineno-0-7 href=#__codelineno-0-7></a>make<span class=w> </span>test-cov<span class=w> </span><span class=c1># Test with coverage</span>
8
- </code></pre></div> <h2 id=getting-started>Getting Started<a class=headerlink href=#getting-started title="Permanent link">&para;</a></h2> <ol> <li><strong>Fork the repository</strong> on GitHub</li> <li><strong>Clone your fork</strong>: <div class=highlight><pre><span></span><code><a id=__codelineno-1-1 name=__codelineno-1-1 href=#__codelineno-1-1></a>git<span class=w> </span>clone<span class=w> </span>https://github.com/yourusername/GradioDemo.git
9
- <a id=__codelineno-1-2 name=__codelineno-1-2 href=#__codelineno-1-2></a><span class=nb>cd</span><span class=w> </span>GradioDemo
10
- </code></pre></div></li> <li><strong>Install dependencies</strong>: <div class=highlight><pre><span></span><code><a id=__codelineno-2-1 name=__codelineno-2-1 href=#__codelineno-2-1></a>make<span class=w> </span>install
11
- </code></pre></div></li> <li><strong>Create a feature branch</strong>: <div class=highlight><pre><span></span><code><a id=__codelineno-3-1 name=__codelineno-3-1 href=#__codelineno-3-1></a>git<span class=w> </span>checkout<span class=w> </span>-b<span class=w> </span>yourname-feature-name
12
- </code></pre></div></li> <li><strong>Make your changes</strong> following the guidelines below</li> <li><strong>Run checks</strong>: <div class=highlight><pre><span></span><code><a id=__codelineno-4-1 name=__codelineno-4-1 href=#__codelineno-4-1></a>make<span class=w> </span>check
13
- </code></pre></div></li> <li><strong>Commit and push</strong>: <div class=highlight><pre><span></span><code><a id=__codelineno-5-1 name=__codelineno-5-1 href=#__codelineno-5-1></a>git<span class=w> </span>commit<span class=w> </span>-m<span class=w> </span><span class=s2>&quot;Description of changes&quot;</span>
14
- <a id=__codelineno-5-2 name=__codelineno-5-2 href=#__codelineno-5-2></a>git<span class=w> </span>push<span class=w> </span>origin<span class=w> </span>yourname-feature-name
15
- </code></pre></div></li> <li><strong>Create a pull request</strong> on GitHub</li> </ol> <h2 id=development-guidelines>Development Guidelines<a class=headerlink href=#development-guidelines title="Permanent link">&para;</a></h2> <h3 id=code-style>Code Style<a class=headerlink href=#code-style title="Permanent link">&para;</a></h3> <ul> <li>Follow <a href=code-style/ >Code Style Guidelines</a></li> <li>All code must pass <code>mypy --strict</code></li> <li>Use <code>ruff</code> for linting and formatting</li> <li>Line length: 100 characters</li> </ul> <h3 id=error-handling>Error Handling<a class=headerlink href=#error-handling title="Permanent link">&para;</a></h3> <ul> <li>Follow <a href=error-handling/ >Error Handling Guidelines</a></li> <li>Always chain exceptions: <code>raise SearchError(...) from e</code></li> <li>Use structured logging with <code>structlog</code></li> <li>Never silently swallow exceptions</li> </ul> <h3 id=testing>Testing<a class=headerlink href=#testing title="Permanent link">&para;</a></h3> <ul> <li>Follow <a href=testing/ >Testing Guidelines</a></li> <li>Write tests before implementation (TDD)</li> <li>Aim for &gt;80% coverage on critical paths</li> <li>Use markers: <code>unit</code>, <code>integration</code>, <code>slow</code></li> </ul> <h3 id=implementation-patterns>Implementation Patterns<a class=headerlink href=#implementation-patterns title="Permanent link">&para;</a></h3> <ul> <li>Follow <a href=implementation-patterns/ >Implementation Patterns</a></li> <li>Use factory functions for agent/tool creation</li> <li>Implement protocols for extensibility</li> <li>Use singleton pattern with <code>@lru_cache(maxsize=1)</code></li> </ul> <h3 id=prompt-engineering>Prompt Engineering<a class=headerlink href=#prompt-engineering title="Permanent link">&para;</a></h3> <ul> <li>Follow <a href=prompt-engineering/ >Prompt Engineering Guidelines</a></li> <li>Always validate citations</li> <li>Use diverse evidence selection</li> <li>Never trust LLM-generated citations without validation</li> </ul> <h3 id=code-quality>Code Quality<a class=headerlink href=#code-quality title="Permanent link">&para;</a></h3> <ul> <li>Follow <a href=code-quality/ >Code Quality Guidelines</a></li> <li>Google-style docstrings for all public functions</li> <li>Explain WHY, not WHAT in comments</li> <li>Mark critical sections: <code># CRITICAL: ...</code></li> </ul> <h2 id=mcp-integration>MCP Integration<a class=headerlink href=#mcp-integration title="Permanent link">&para;</a></h2> <h3 id=mcp-tools>MCP Tools<a class=headerlink href=#mcp-tools title="Permanent link">&para;</a></h3> <ul> <li>Functions in <code>src/mcp_tools.py</code> for Claude Desktop</li> <li>Full type hints required</li> <li>Google-style docstrings with Args/Returns sections</li> <li>Formatted string returns (markdown)</li> </ul> <h3 id=gradio-mcp-server>Gradio MCP Server<a class=headerlink href=#gradio-mcp-server title="Permanent link">&para;</a></h3> <ul> <li>Enable with <code>mcp_server=True</code> in <code>demo.launch()</code></li> <li>Endpoint: <code>/gradio_api/mcp/</code></li> <li>Use <code>ssr_mode=False</code> to fix hydration issues in HF Spaces</li> </ul> <h2 id=common-pitfalls>Common Pitfalls<a class=headerlink href=#common-pitfalls title="Permanent link">&para;</a></h2> <ol> <li><strong>Blocking the event loop</strong>: Never use sync I/O in async functions</li> <li><strong>Missing type hints</strong>: All functions must have complete type annotations</li> <li><strong>Hallucinated citations</strong>: Always validate references</li> <li><strong>Global mutable state</strong>: Use ContextVar or pass via parameters</li> <li><strong>Import errors</strong>: Lazy-load optional dependencies (magentic, modal, embeddings)</li> <li><strong>Rate limiting</strong>: Always implement for external APIs</li> <li><strong>Error chaining</strong>: Always use <code>from e</code> when raising exceptions</li> </ol> <h2 id=key-principles>Key Principles<a class=headerlink href=#key-principles title="Permanent link">&para;</a></h2> <ol> <li><strong>Type Safety First</strong>: All code must pass <code>mypy --strict</code></li> <li><strong>Async Everything</strong>: All I/O must be async</li> <li><strong>Test-Driven</strong>: Write tests before implementation</li> <li><strong>No Hallucinations</strong>: Validate all citations</li> <li><strong>Graceful Degradation</strong>: Support free tier (HF Inference) when no API keys</li> <li><strong>Lazy Loading</strong>: Don't require optional dependencies at import time</li> <li><strong>Structured Logging</strong>: Use structlog, never print()</li> <li><strong>Error Chaining</strong>: Always preserve exception context</li> </ol> <h2 id=pull-request-process>Pull Request Process<a class=headerlink href=#pull-request-process title="Permanent link">&para;</a></h2> <ol> <li>Ensure all checks pass: <code>make check</code></li> <li>Update documentation if needed</li> <li>Add tests for new features</li> <li>Update CHANGELOG if applicable</li> <li>Request review from maintainers</li> <li>Address review feedback</li> <li>Wait for approval before merging</li> </ol> <h2 id=questions>Questions?<a class=headerlink href=#questions title="Permanent link">&para;</a></h2> <ul> <li>Open an issue on GitHub</li> <li>Check existing documentation</li> <li>Review code examples in the codebase</li> </ul> <p>Thank you for contributing to DeepCritical!</p> </article> </div> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=github.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title=huggingface.co class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy"], "search": "../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../assets/javascripts/bundle.e71a0d61.min.js></script> </body> </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DeepCritical Team"><link href=https://deepcritical.github.io/GradioDemo/contributing/ rel=canonical><link href=../api/models/ rel=prev><link href=code-quality/ rel=next><link rel=icon href=../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Contributing to The DETERMINATOR - The DETERMINATOR</title><link rel=stylesheet href=../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><link rel=stylesheet href=../css/timeago.css><script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#contributing-to-the-determinator class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Contributing to The DETERMINATOR </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../configuration/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=./ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Single Command Deploy </span> </a> </li> <li class=md-nav__item> <a href=../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <div class="md-nav__link md-nav__container"> <a href=../configuration/ class="md-nav__link "> <span class=md-ellipsis> Configuration </span> </a> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_7 checked> <div class="md-nav__link md-nav__container"> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Contributing </span> </a> <label class="md-nav__link md-nav__link--active" for=__nav_7 id=__nav_7_label tabindex> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=true> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=contributing-to-the-determinator>Contributing to The DETERMINATOR<a class=headerlink href=#contributing-to-the-determinator title="Anchor link to this section">&para;</a></h1> <p>Thank you for your interest in contributing to The DETERMINATOR! This guide will help you get started.</p> <blockquote> <p><strong>Note on Project Names</strong>: "The DETERMINATOR" is the product name, "DeepCritical" is the organization/project name, and "determinator" is the Python package name.</p> </blockquote> <h2 id=git-workflow>Git Workflow<a class=headerlink href=#git-workflow title="Anchor link to this section">&para;</a></h2> <ul> <li><code>main</code>: Production-ready (GitHub)</li> <li><code>dev</code>: Development integration (GitHub)</li> <li>Use feature branches: <code>yourname-dev</code></li> <li><strong>NEVER</strong> push directly to <code>main</code> or <code>dev</code> on HuggingFace</li> <li>GitHub is source of truth; HuggingFace is for deployment</li> </ul> <h2 id=repository-information>Repository Information<a class=headerlink href=#repository-information title="Anchor link to this section">&para;</a></h2> <ul> <li><strong>GitHub Repository</strong>: <a href=https://github.com/DeepCritical/GradioDemo><code>DeepCritical/GradioDemo</code></a> (source of truth, PRs, code review)</li> <li><strong>HuggingFace Space</strong>: <a href=https://huggingface.co/spaces/DataQuests/DeepCritical><code>DataQuests/DeepCritical</code></a> (deployment/demo)</li> <li><strong>Package Name</strong>: <code>determinator</code> (Python package name in <code>pyproject.toml</code>)</li> </ul> <h3 id=dual-repository-setup>Dual Repository Setup<a class=headerlink href=#dual-repository-setup title="Anchor link to this section">&para;</a></h3> <p>This project uses a dual repository setup:</p> <ul> <li><strong>GitHub (<code>DeepCritical/GradioDemo</code>)</strong>: Source of truth for code, PRs, and code review</li> <li><strong>HuggingFace (<code>DataQuests/DeepCritical</code>)</strong>: Deployment target for the Gradio demo</li> </ul> <h4 id=remote-configuration>Remote Configuration<a class=headerlink href=#remote-configuration title="Anchor link to this section">&para;</a></h4> <p>When cloning, set up remotes as follows:</p> <div class="language-bash highlight"><pre><span></span><code><span id=__span-0-1><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=c1># Clone from GitHub</span>
2
+ </span><span id=__span-0-2><a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a>git<span class=w> </span>clone<span class=w> </span>https://github.com/DeepCritical/GradioDemo.git
3
+ </span><span id=__span-0-3><a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a><span class=nb>cd</span><span class=w> </span>GradioDemo
4
+ </span><span id=__span-0-4><a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a>
5
+ </span><span id=__span-0-5><a id=__codelineno-0-5 name=__codelineno-0-5 href=#__codelineno-0-5></a><span class=c1># Add HuggingFace remote (optional, for deployment)</span>
6
+ </span><span id=__span-0-6><a id=__codelineno-0-6 name=__codelineno-0-6 href=#__codelineno-0-6></a>git<span class=w> </span>remote<span class=w> </span>add<span class=w> </span>huggingface-upstream<span class=w> </span>https://huggingface.co/spaces/DataQuests/DeepCritical
7
+ </span></code></pre></div> <p><strong>Important</strong>: Never push directly to <code>main</code> or <code>dev</code> on HuggingFace. Always work through GitHub PRs. GitHub is the source of truth; HuggingFace is for deployment/demo only.</p> <h2 id=package-manager>Package Manager<a class=headerlink href=#package-manager title="Anchor link to this section">&para;</a></h2> <p>This project uses <a href=https://github.com/astral-sh/uv><code>uv</code></a> as the package manager. All commands should be prefixed with <code>uv run</code> to ensure they run in the correct environment.</p> <h3 id=installation>Installation<a class=headerlink href=#installation title="Anchor link to this section">&para;</a></h3> <div class="language-bash highlight"><pre><span></span><code><span id=__span-1-1><a id=__codelineno-1-1 name=__codelineno-1-1 href=#__codelineno-1-1></a><span class=c1># Install uv if you haven&#39;t already (recommended: standalone installer)</span>
8
+ </span><span id=__span-1-2><a id=__codelineno-1-2 name=__codelineno-1-2 href=#__codelineno-1-2></a><span class=c1># Unix/macOS/Linux:</span>
9
+ </span><span id=__span-1-3><a id=__codelineno-1-3 name=__codelineno-1-3 href=#__codelineno-1-3></a>curl<span class=w> </span>-LsSf<span class=w> </span>https://astral.sh/uv/install.sh<span class=w> </span><span class=p>|</span><span class=w> </span>sh
10
+ </span><span id=__span-1-4><a id=__codelineno-1-4 name=__codelineno-1-4 href=#__codelineno-1-4></a>
11
+ </span><span id=__span-1-5><a id=__codelineno-1-5 name=__codelineno-1-5 href=#__codelineno-1-5></a><span class=c1># Windows (PowerShell):</span>
12
+ </span><span id=__span-1-6><a id=__codelineno-1-6 name=__codelineno-1-6 href=#__codelineno-1-6></a>powershell<span class=w> </span>-ExecutionPolicy<span class=w> </span>ByPass<span class=w> </span>-c<span class=w> </span><span class=s2>&quot;irm https://astral.sh/uv/install.ps1 | iex&quot;</span>
13
+ </span><span id=__span-1-7><a id=__codelineno-1-7 name=__codelineno-1-7 href=#__codelineno-1-7></a>
14
+ </span><span id=__span-1-8><a id=__codelineno-1-8 name=__codelineno-1-8 href=#__codelineno-1-8></a><span class=c1># Alternative: pipx install uv</span>
15
+ </span><span id=__span-1-9><a id=__codelineno-1-9 name=__codelineno-1-9 href=#__codelineno-1-9></a><span class=c1># Or: pip install uv</span>
16
+ </span><span id=__span-1-10><a id=__codelineno-1-10 name=__codelineno-1-10 href=#__codelineno-1-10></a>
17
+ </span><span id=__span-1-11><a id=__codelineno-1-11 name=__codelineno-1-11 href=#__codelineno-1-11></a><span class=c1># Sync all dependencies including dev extras</span>
18
+ </span><span id=__span-1-12><a id=__codelineno-1-12 name=__codelineno-1-12 href=#__codelineno-1-12></a>uv<span class=w> </span>sync<span class=w> </span>--all-extras
19
+ </span><span id=__span-1-13><a id=__codelineno-1-13 name=__codelineno-1-13 href=#__codelineno-1-13></a>
20
+ </span><span id=__span-1-14><a id=__codelineno-1-14 name=__codelineno-1-14 href=#__codelineno-1-14></a><span class=c1># Install pre-commit hooks</span>
21
+ </span><span id=__span-1-15><a id=__codelineno-1-15 name=__codelineno-1-15 href=#__codelineno-1-15></a>uv<span class=w> </span>run<span class=w> </span>pre-commit<span class=w> </span>install
22
+ </span></code></pre></div> <h2 id=development-commands>Development Commands<a class=headerlink href=#development-commands title="Anchor link to this section">&para;</a></h2> <div class="language-bash highlight"><pre><span></span><code><span id=__span-2-1><a id=__codelineno-2-1 name=__codelineno-2-1 href=#__codelineno-2-1></a><span class=c1># Installation</span>
23
+ </span><span id=__span-2-2><a id=__codelineno-2-2 name=__codelineno-2-2 href=#__codelineno-2-2></a>uv<span class=w> </span>sync<span class=w> </span>--all-extras<span class=w> </span><span class=c1># Install all dependencies including dev</span>
24
+ </span><span id=__span-2-3><a id=__codelineno-2-3 name=__codelineno-2-3 href=#__codelineno-2-3></a>uv<span class=w> </span>run<span class=w> </span>pre-commit<span class=w> </span>install<span class=w> </span><span class=c1># Install pre-commit hooks</span>
25
+ </span><span id=__span-2-4><a id=__codelineno-2-4 name=__codelineno-2-4 href=#__codelineno-2-4></a>
26
+ </span><span id=__span-2-5><a id=__codelineno-2-5 name=__codelineno-2-5 href=#__codelineno-2-5></a><span class=c1># Code Quality Checks (run all before committing)</span>
27
+ </span><span id=__span-2-6><a id=__codelineno-2-6 name=__codelineno-2-6 href=#__codelineno-2-6></a>uv<span class=w> </span>run<span class=w> </span>ruff<span class=w> </span>check<span class=w> </span>src<span class=w> </span>tests<span class=w> </span><span class=c1># Lint with ruff</span>
28
+ </span><span id=__span-2-7><a id=__codelineno-2-7 name=__codelineno-2-7 href=#__codelineno-2-7></a>uv<span class=w> </span>run<span class=w> </span>ruff<span class=w> </span>format<span class=w> </span>src<span class=w> </span>tests<span class=w> </span><span class=c1># Format with ruff</span>
29
+ </span><span id=__span-2-8><a id=__codelineno-2-8 name=__codelineno-2-8 href=#__codelineno-2-8></a>uv<span class=w> </span>run<span class=w> </span>mypy<span class=w> </span>src<span class=w> </span><span class=c1># Type checking</span>
30
+ </span><span id=__span-2-9><a id=__codelineno-2-9 name=__codelineno-2-9 href=#__codelineno-2-9></a>uv<span class=w> </span>run<span class=w> </span>pytest<span class=w> </span>--cov<span class=o>=</span>src<span class=w> </span>--cov-report<span class=o>=</span>term-missing<span class=w> </span>tests/unit/<span class=w> </span>-v<span class=w> </span>-m<span class=w> </span><span class=s2>&quot;not openai&quot;</span><span class=w> </span>-p<span class=w> </span>no:logfire<span class=w> </span><span class=c1># Tests with coverage</span>
31
+ </span><span id=__span-2-10><a id=__codelineno-2-10 name=__codelineno-2-10 href=#__codelineno-2-10></a>
32
+ </span><span id=__span-2-11><a id=__codelineno-2-11 name=__codelineno-2-11 href=#__codelineno-2-11></a><span class=c1># Testing Commands</span>
33
+ </span><span id=__span-2-12><a id=__codelineno-2-12 name=__codelineno-2-12 href=#__codelineno-2-12></a>uv<span class=w> </span>run<span class=w> </span>pytest<span class=w> </span>tests/unit/<span class=w> </span>-v<span class=w> </span>-m<span class=w> </span><span class=s2>&quot;not openai&quot;</span><span class=w> </span>-p<span class=w> </span>no:logfire<span class=w> </span><span class=c1># Run unit tests (excludes OpenAI tests)</span>
34
+ </span><span id=__span-2-13><a id=__codelineno-2-13 name=__codelineno-2-13 href=#__codelineno-2-13></a>uv<span class=w> </span>run<span class=w> </span>pytest<span class=w> </span>tests/<span class=w> </span>-v<span class=w> </span>-m<span class=w> </span><span class=s2>&quot;huggingface&quot;</span><span class=w> </span>-p<span class=w> </span>no:logfire<span class=w> </span><span class=c1># Run HuggingFace tests</span>
35
+ </span><span id=__span-2-14><a id=__codelineno-2-14 name=__codelineno-2-14 href=#__codelineno-2-14></a>uv<span class=w> </span>run<span class=w> </span>pytest<span class=w> </span>tests/<span class=w> </span>-v<span class=w> </span>-p<span class=w> </span>no:logfire<span class=w> </span><span class=c1># Run all tests</span>
36
+ </span><span id=__span-2-15><a id=__codelineno-2-15 name=__codelineno-2-15 href=#__codelineno-2-15></a>uv<span class=w> </span>run<span class=w> </span>pytest<span class=w> </span>--cov<span class=o>=</span>src<span class=w> </span>--cov-report<span class=o>=</span>term-missing<span class=w> </span>tests/unit/<span class=w> </span>-v<span class=w> </span>-m<span class=w> </span><span class=s2>&quot;not openai&quot;</span><span class=w> </span>-p<span class=w> </span>no:logfire<span class=w> </span><span class=c1># Tests with terminal coverage</span>
37
+ </span><span id=__span-2-16><a id=__codelineno-2-16 name=__codelineno-2-16 href=#__codelineno-2-16></a>uv<span class=w> </span>run<span class=w> </span>pytest<span class=w> </span>--cov<span class=o>=</span>src<span class=w> </span>--cov-report<span class=o>=</span>html<span class=w> </span>-p<span class=w> </span>no:logfire<span class=w> </span><span class=c1># Generate HTML coverage report (opens htmlcov/index.html)</span>
38
+ </span><span id=__span-2-17><a id=__codelineno-2-17 name=__codelineno-2-17 href=#__codelineno-2-17></a>
39
+ </span><span id=__span-2-18><a id=__codelineno-2-18 name=__codelineno-2-18 href=#__codelineno-2-18></a><span class=c1># Documentation Commands</span>
40
+ </span><span id=__span-2-19><a id=__codelineno-2-19 name=__codelineno-2-19 href=#__codelineno-2-19></a>uv<span class=w> </span>run<span class=w> </span>mkdocs<span class=w> </span>build<span class=w> </span><span class=c1># Build documentation</span>
41
+ </span><span id=__span-2-20><a id=__codelineno-2-20 name=__codelineno-2-20 href=#__codelineno-2-20></a>uv<span class=w> </span>run<span class=w> </span>mkdocs<span class=w> </span>serve<span class=w> </span><span class=c1># Serve documentation locally (http://127.0.0.1:8000)</span>
42
+ </span></code></pre></div> <h3 id=test-markers>Test Markers<a class=headerlink href=#test-markers title="Anchor link to this section">&para;</a></h3> <p>The project uses pytest markers to categorize tests. See <a href=testing/ >Testing Guidelines</a> for details:</p> <ul> <li><code>unit</code>: Unit tests (mocked, fast)</li> <li><code>integration</code>: Integration tests (real APIs)</li> <li><code>slow</code>: Slow tests</li> <li><code>openai</code>: Tests requiring OpenAI API key</li> <li><code>huggingface</code>: Tests requiring HuggingFace API key</li> <li><code>embedding_provider</code>: Tests requiring API-based embedding providers</li> <li><code>local_embeddings</code>: Tests using local embeddings</li> </ul> <p><strong>Note</strong>: The <code>-p no:logfire</code> flag disables the logfire plugin to avoid conflicts during testing.</p> <h2 id=getting-started>Getting Started<a class=headerlink href=#getting-started title="Anchor link to this section">&para;</a></h2> <ol> <li> <p><strong>Fork the repository</strong> on GitHub: <a href=https://github.com/DeepCritical/GradioDemo><code>DeepCritical/GradioDemo</code></a></p> </li> <li> <p><strong>Clone your fork</strong>:</p> </li> </ol> <div class="language-bash highlight"><pre><span></span><code><span id=__span-3-1><a id=__codelineno-3-1 name=__codelineno-3-1 href=#__codelineno-3-1></a>git<span class=w> </span>clone<span class=w> </span>https://github.com/yourusername/GradioDemo.git
43
+ </span><span id=__span-3-2><a id=__codelineno-3-2 name=__codelineno-3-2 href=#__codelineno-3-2></a><span class=nb>cd</span><span class=w> </span>GradioDemo
44
+ </span></code></pre></div> <ol> <li><strong>Install dependencies</strong>:</li> </ol> <div class="language-bash highlight"><pre><span></span><code><span id=__span-4-1><a id=__codelineno-4-1 name=__codelineno-4-1 href=#__codelineno-4-1></a>uv<span class=w> </span>sync<span class=w> </span>--all-extras
45
+ </span><span id=__span-4-2><a id=__codelineno-4-2 name=__codelineno-4-2 href=#__codelineno-4-2></a>uv<span class=w> </span>run<span class=w> </span>pre-commit<span class=w> </span>install
46
+ </span></code></pre></div> <ol> <li><strong>Create a feature branch</strong>:</li> </ol> <div class="language-bash highlight"><pre><span></span><code><span id=__span-5-1><a id=__codelineno-5-1 name=__codelineno-5-1 href=#__codelineno-5-1></a>git<span class=w> </span>checkout<span class=w> </span>-b<span class=w> </span>yourname-feature-name
47
+ </span></code></pre></div> <ol> <li> <p><strong>Make your changes</strong> following the guidelines below</p> </li> <li> <p><strong>Run checks</strong>:</p> </li> </ol> <div class="language-bash highlight"><pre><span></span><code><span id=__span-6-1><a id=__codelineno-6-1 name=__codelineno-6-1 href=#__codelineno-6-1></a>uv<span class=w> </span>run<span class=w> </span>ruff<span class=w> </span>check<span class=w> </span>src<span class=w> </span>tests
48
+ </span><span id=__span-6-2><a id=__codelineno-6-2 name=__codelineno-6-2 href=#__codelineno-6-2></a>uv<span class=w> </span>run<span class=w> </span>mypy<span class=w> </span>src
49
+ </span><span id=__span-6-3><a id=__codelineno-6-3 name=__codelineno-6-3 href=#__codelineno-6-3></a>uv<span class=w> </span>run<span class=w> </span>pytest<span class=w> </span>--cov<span class=o>=</span>src<span class=w> </span>--cov-report<span class=o>=</span>term-missing<span class=w> </span>tests/unit/<span class=w> </span>-v<span class=w> </span>-m<span class=w> </span><span class=s2>&quot;not openai&quot;</span><span class=w> </span>-p<span class=w> </span>no:logfire
50
+ </span></code></pre></div> <ol> <li><strong>Commit and push</strong>:</li> </ol> <div class="language-bash highlight"><pre><span></span><code><span id=__span-7-1><a id=__codelineno-7-1 name=__codelineno-7-1 href=#__codelineno-7-1></a>git<span class=w> </span>commit<span class=w> </span>-m<span class=w> </span><span class=s2>&quot;Description of changes&quot;</span>
51
+ </span><span id=__span-7-2><a id=__codelineno-7-2 name=__codelineno-7-2 href=#__codelineno-7-2></a>git<span class=w> </span>push<span class=w> </span>origin<span class=w> </span>yourname-feature-name
52
+ </span></code></pre></div> <ol> <li><strong>Create a pull request</strong> on GitHub</li> </ol> <h2 id=development-guidelines>Development Guidelines<a class=headerlink href=#development-guidelines title="Anchor link to this section">&para;</a></h2> <h3 id=code-style>Code Style<a class=headerlink href=#code-style title="Anchor link to this section">&para;</a></h3> <ul> <li>Follow <a href=code-style/ >Code Style Guidelines</a></li> <li>All code must pass <code>mypy --strict</code></li> <li>Use <code>ruff</code> for linting and formatting</li> <li>Line length: 100 characters</li> </ul> <h3 id=error-handling>Error Handling<a class=headerlink href=#error-handling title="Anchor link to this section">&para;</a></h3> <ul> <li>Follow <a href=error-handling/ >Error Handling Guidelines</a></li> <li>Always chain exceptions: <code>raise SearchError(...) from e</code></li> <li>Use structured logging with <code>structlog</code></li> <li>Never silently swallow exceptions</li> </ul> <h3 id=testing>Testing<a class=headerlink href=#testing title="Anchor link to this section">&para;</a></h3> <ul> <li>Follow <a href=testing/ >Testing Guidelines</a></li> <li>Write tests before implementation (TDD)</li> <li>Aim for &gt;80% coverage on critical paths</li> <li>Use markers: <code>unit</code>, <code>integration</code>, <code>slow</code></li> </ul> <h3 id=implementation-patterns>Implementation Patterns<a class=headerlink href=#implementation-patterns title="Anchor link to this section">&para;</a></h3> <ul> <li>Follow <a href=implementation-patterns/ >Implementation Patterns</a></li> <li>Use factory functions for agent/tool creation</li> <li>Implement protocols for extensibility</li> <li>Use singleton pattern with <code>@lru_cache(maxsize=1)</code></li> </ul> <h3 id=prompt-engineering>Prompt Engineering<a class=headerlink href=#prompt-engineering title="Anchor link to this section">&para;</a></h3> <ul> <li>Follow <a href=prompt-engineering/ >Prompt Engineering Guidelines</a></li> <li>Always validate citations</li> <li>Use diverse evidence selection</li> <li>Never trust LLM-generated citations without validation</li> </ul> <h3 id=code-quality>Code Quality<a class=headerlink href=#code-quality title="Anchor link to this section">&para;</a></h3> <ul> <li>Follow <a href=code-quality/ >Code Quality Guidelines</a></li> <li>Google-style docstrings for all public functions</li> <li>Explain WHY, not WHAT in comments</li> <li>Mark critical sections: <code># CRITICAL: ...</code></li> </ul> <h2 id=mcp-integration>MCP Integration<a class=headerlink href=#mcp-integration title="Anchor link to this section">&para;</a></h2> <h3 id=mcp-tools>MCP Tools<a class=headerlink href=#mcp-tools title="Anchor link to this section">&para;</a></h3> <ul> <li>Functions in <code>src/mcp_tools.py</code> for Claude Desktop</li> <li>Full type hints required</li> <li>Google-style docstrings with Args/Returns sections</li> <li>Formatted string returns (markdown)</li> </ul> <h3 id=gradio-mcp-server>Gradio MCP Server<a class=headerlink href=#gradio-mcp-server title="Anchor link to this section">&para;</a></h3> <ul> <li>Enable with <code>mcp_server=True</code> in <code>demo.launch()</code></li> <li>Endpoint: <code>/gradio_api/mcp/</code></li> <li>Use <code>ssr_mode=False</code> to fix hydration issues in HF Spaces</li> </ul> <h2 id=common-pitfalls>Common Pitfalls<a class=headerlink href=#common-pitfalls title="Anchor link to this section">&para;</a></h2> <ol> <li><strong>Blocking the event loop</strong>: Never use sync I/O in async functions</li> <li><strong>Missing type hints</strong>: All functions must have complete type annotations</li> <li><strong>Hallucinated citations</strong>: Always validate references</li> <li><strong>Global mutable state</strong>: Use ContextVar or pass via parameters</li> <li><strong>Import errors</strong>: Lazy-load optional dependencies (magentic, modal, embeddings)</li> <li><strong>Rate limiting</strong>: Always implement for external APIs</li> <li><strong>Error chaining</strong>: Always use <code>from e</code> when raising exceptions</li> </ol> <h2 id=key-principles>Key Principles<a class=headerlink href=#key-principles title="Anchor link to this section">&para;</a></h2> <ol> <li><strong>Type Safety First</strong>: All code must pass <code>mypy --strict</code></li> <li><strong>Async Everything</strong>: All I/O must be async</li> <li><strong>Test-Driven</strong>: Write tests before implementation</li> <li><strong>No Hallucinations</strong>: Validate all citations</li> <li><strong>Graceful Degradation</strong>: Support free tier (HF Inference) when no API keys</li> <li><strong>Lazy Loading</strong>: Don't require optional dependencies at import time</li> <li><strong>Structured Logging</strong>: Use structlog, never print()</li> <li><strong>Error Chaining</strong>: Always preserve exception context</li> </ol> <h2 id=pull-request-process>Pull Request Process<a class=headerlink href=#pull-request-process title="Anchor link to this section">&para;</a></h2> <ol> <li>Ensure all checks pass: <code>uv run ruff check src tests &amp;&amp; uv run mypy src &amp;&amp; uv run pytest --cov=src --cov-report=term-missing tests/unit/ -v -m "not openai" -p no:logfire</code></li> <li>Update documentation if needed</li> <li>Add tests for new features</li> <li>Update CHANGELOG if applicable</li> <li>Request review from maintainers</li> <li>Address review feedback</li> <li>Wait for approval before merging</li> </ol> <h2 id=project-structure>Project Structure<a class=headerlink href=#project-structure title="Anchor link to this section">&para;</a></h2> <ul> <li><code>src/</code>: Main source code</li> <li><code>tests/</code>: Test files (<code>unit/</code> and <code>integration/</code>)</li> <li><code>docs/</code>: Documentation source files (MkDocs)</li> <li><code>examples/</code>: Example usage scripts</li> <li><code>pyproject.toml</code>: Project configuration and dependencies</li> <li><code>.pre-commit-config.yaml</code>: Pre-commit hook configuration</li> </ul> <h2 id=questions>Questions?<a class=headerlink href=#questions title="Anchor link to this section">&para;</a></h2> <ul> <li>Open an issue on <a href=https://github.com/DeepCritical/GradioDemo>GitHub</a></li> <li>Check existing <a href=https://deepcritical.github.io/GradioDemo/ >documentation</a></li> <li>Review code examples in the codebase</li> </ul> <p>Thank you for contributing to The DETERMINATOR!</p> <aside class=md-source-file> <span class=md-source-file__fact> <span class=md-icon title="Last update"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="December 2, 2025 01:35:56 UTC"><span class=timeago datetime=2025-12-02T01:35:56+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="December 2, 2025 01:35:56 UTC">2025-12-02</span> </span> <span class=md-source-file__fact> <span class=md-icon title=Created> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M14.47 15.08 11 13V7h1.5v5.25l3.08 1.83c-.41.28-.79.62-1.11 1m-1.39 4.84c-.36.05-.71.08-1.08.08-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8c0 .37-.03.72-.08 1.08.69.1 1.33.32 1.92.64.1-.56.16-1.13.16-1.72 0-5.5-4.5-10-10-10S2 6.5 2 12s4.47 10 10 10c.59 0 1.16-.06 1.72-.16-.32-.59-.54-1.23-.64-1.92M18 15v3h-3v2h3v3h2v-3h3v-2h-3v-3z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="November 29, 2025 21:40:26 UTC"><span class=timeago datetime=2025-11-29T21:40:26+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="November 29, 2025 21:40:26 UTC">2025-11-29</span> </span> </aside> </article> </div> <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=GitHub class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://twitter.com/josephpollack target=_blank rel=noopener title=Twitter class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M459.4 151.7c.3 4.5.3 9.1.3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103v-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53C87.4 130.8 165 172.4 252.1 176.9c-1.6-7.8-2.6-15.9-2.6-24C249.5 95.1 296.3 48 354.4 48c30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title="Live Demo" class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> <a href=https://discord.gg/n8ytYeh25n target=_blank rel=noopener title=Discord class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 576 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M492.5 69.8c-.2-.3-.4-.6-.8-.7-38.1-17.5-78.4-30-119.7-37.1-.4-.1-.8 0-1.1.1s-.6.4-.8.8c-5.5 9.9-10.5 20.2-14.9 30.6-44.6-6.8-89.9-6.8-134.4 0-4.5-10.5-9.5-20.7-15.1-30.6-.2-.3-.5-.6-.8-.8s-.7-.2-1.1-.2C162.5 39 122.2 51.5 84.1 69c-.3.1-.6.4-.8.7C7.1 183.5-13.8 294.6-3.6 404.2c0 .3.1.5.2.8s.3.4.5.6c44.4 32.9 94 58 146.8 74.2.4.1.8.1 1.1 0s.7-.4.9-.7c11.3-15.4 21.4-31.8 30-48.8.1-.2.2-.5.2-.8s0-.5-.1-.8-.2-.5-.4-.6-.4-.3-.7-.4c-15.8-6.1-31.2-13.4-45.9-21.9-.3-.2-.5-.4-.7-.6s-.3-.6-.3-.9 0-.6.2-.9.3-.5.6-.7c3.1-2.3 6.2-4.7 9.1-7.1.3-.2.6-.4.9-.4s.7 0 1 .1c96.2 43.9 200.4 43.9 295.5 0 .3-.1.7-.2 1-.2s.7.2.9.4c2.9 2.4 6 4.9 9.1 7.2.2.2.4.4.6.7s.2.6.2.9-.1.6-.3.9-.4.5-.6.6c-14.7 8.6-30 15.9-45.9 21.8-.2.1-.5.2-.7.4s-.3.4-.4.7-.1.5-.1.8.1.5.2.8c8.8 17 18.8 33.3 30 48.8.2.3.6.6.9.7s.8.1 1.1 0c52.9-16.2 102.6-41.3 147.1-74.2.2-.2.4-.4.5-.6s.2-.5.2-.8c12.3-126.8-20.5-236.9-86.9-334.5zm-302 267.7c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.4 59.2-52.8 59.2m195.4 0c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.2 59.2-52.8 59.2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "navigation.indexes", "navigation.instant", "navigation.tracking", "navigation.smooth", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy", "content.tabs.link", "content.tooltips", "toc.integrate"], "search": "../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../assets/javascripts/bundle.e71a0d61.min.js></script> <script src=../js/timeago.min.js></script> <script src=../js/timeago_mkdocs_material.js></script> </body> </html>
site/contributing/prompt-engineering/index.html CHANGED
@@ -1 +1 @@
1
- <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DETERMINATOR Team"><link href=https://deepcritical.github.io/GradioDemo/contributing/prompt-engineering/ rel=canonical><link href=../implementation-patterns/ rel=prev><link href=../testing/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Prompt Engineering & Citation Validation - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#prompt-engineering-citation-validation class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/CONFIGURATION/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../../architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Quick Start Guide </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <label class=md-nav__link for=__nav_4 id=__nav_4_label tabindex=0> <span class=md-ellipsis> Configuration </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../configuration/CONFIGURATION/ class=md-nav__link> <span class=md-ellipsis> Configuration Guide </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_7 checked> <label class=md-nav__link for=__nav_7 id=__nav_7_label tabindex> <span class=md-ellipsis> Contributing </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=true> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../ class=md-nav__link> <span class=md-ellipsis> Contributing to DeepCritical </span> </a> </li> <li class=md-nav__item> <a href=../code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#judge-prompts class=md-nav__link> <span class=md-ellipsis> Judge Prompts </span> </a> </li> <li class=md-nav__item> <a href=#hypothesis-prompts class=md-nav__link> <span class=md-ellipsis> Hypothesis Prompts </span> </a> </li> <li class=md-nav__item> <a href=#report-prompts class=md-nav__link> <span class=md-ellipsis> Report Prompts </span> </a> </li> <li class=md-nav__item> <a href=#citation-validation class=md-nav__link> <span class=md-ellipsis> Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=#citation-validation-rules class=md-nav__link> <span class=md-ellipsis> Citation Validation Rules </span> </a> </li> <li class=md-nav__item> <a href=#evidence-selection class=md-nav__link> <span class=md-ellipsis> Evidence Selection </span> </a> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=sidebar data-md-type=toc> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#judge-prompts class=md-nav__link> <span class=md-ellipsis> Judge Prompts </span> </a> </li> <li class=md-nav__item> <a href=#hypothesis-prompts class=md-nav__link> <span class=md-ellipsis> Hypothesis Prompts </span> </a> </li> <li class=md-nav__item> <a href=#report-prompts class=md-nav__link> <span class=md-ellipsis> Report Prompts </span> </a> </li> <li class=md-nav__item> <a href=#citation-validation class=md-nav__link> <span class=md-ellipsis> Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=#citation-validation-rules class=md-nav__link> <span class=md-ellipsis> Citation Validation Rules </span> </a> </li> <li class=md-nav__item> <a href=#evidence-selection class=md-nav__link> <span class=md-ellipsis> Evidence Selection </span> </a> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=prompt-engineering-citation-validation>Prompt Engineering &amp; Citation Validation<a class=headerlink href=#prompt-engineering-citation-validation title="Permanent link">&para;</a></h1> <p>This document outlines prompt engineering guidelines and citation validation rules.</p> <h2 id=judge-prompts>Judge Prompts<a class=headerlink href=#judge-prompts title="Permanent link">&para;</a></h2> <ul> <li>System prompt in <code>src/prompts/judge.py</code></li> <li>Format evidence with truncation (1500 chars per item)</li> <li>Handle empty evidence case separately</li> <li>Always request structured JSON output</li> <li>Use <code>format_user_prompt()</code> and <code>format_empty_evidence_prompt()</code> helpers</li> </ul> <h2 id=hypothesis-prompts>Hypothesis Prompts<a class=headerlink href=#hypothesis-prompts title="Permanent link">&para;</a></h2> <ul> <li>Use diverse evidence selection (MMR algorithm)</li> <li>Sentence-aware truncation (<code>truncate_at_sentence()</code>)</li> <li>Format: Drug → Target → Pathway → Effect</li> <li>System prompt emphasizes mechanistic reasoning</li> <li>Use <code>format_hypothesis_prompt()</code> with embeddings for diversity</li> </ul> <h2 id=report-prompts>Report Prompts<a class=headerlink href=#report-prompts title="Permanent link">&para;</a></h2> <ul> <li>Include full citation details for validation</li> <li>Use diverse evidence selection (n=20)</li> <li><strong>CRITICAL</strong>: Emphasize citation validation rules</li> <li>Format hypotheses with support/contradiction counts</li> <li>System prompt includes explicit JSON structure requirements</li> </ul> <h2 id=citation-validation>Citation Validation<a class=headerlink href=#citation-validation title="Permanent link">&para;</a></h2> <ul> <li><strong>ALWAYS</strong> validate references before returning reports</li> <li>Use <code>validate_references()</code> from <code>src/utils/citation_validator.py</code></li> <li>Remove hallucinated citations (URLs not in evidence)</li> <li>Log warnings for removed citations</li> <li>Never trust LLM-generated citations without validation</li> </ul> <h2 id=citation-validation-rules>Citation Validation Rules<a class=headerlink href=#citation-validation-rules title="Permanent link">&para;</a></h2> <ol> <li>Every reference URL must EXACTLY match a provided evidence URL</li> <li>Do NOT invent, fabricate, or hallucinate any references</li> <li>Do NOT modify paper titles, authors, dates, or URLs</li> <li>If unsure about a citation, OMIT it rather than guess</li> <li>Copy URLs exactly as provided - do not create similar-looking URLs</li> </ol> <h2 id=evidence-selection>Evidence Selection<a class=headerlink href=#evidence-selection title="Permanent link">&para;</a></h2> <ul> <li>Use <code>select_diverse_evidence()</code> for MMR-based selection</li> <li>Balance relevance vs diversity (lambda=0.7 default)</li> <li>Sentence-aware truncation preserves meaning</li> <li>Limit evidence per prompt to avoid context overflow</li> </ul> <h2 id=see-also>See Also<a class=headerlink href=#see-also title="Permanent link">&para;</a></h2> <ul> <li><a href=../code-quality/ >Code Quality</a> - Code quality guidelines</li> <li><a href=../error-handling/ >Error Handling</a> - Error handling guidelines</li> </ul> </article> </div> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=github.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title=huggingface.co class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> </body> </html>
 
1
+ <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DeepCritical Team"><link href=https://deepcritical.github.io/GradioDemo/contributing/prompt-engineering/ rel=canonical><link href=../implementation-patterns/ rel=prev><link href=../testing/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Prompt Engineering & Citation Validation - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><link rel=stylesheet href=../../css/timeago.css><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#prompt-engineering--citation-validation class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../../architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Single Command Deploy </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <div class="md-nav__link md-nav__container"> <a href=../../configuration/ class="md-nav__link "> <span class=md-ellipsis> Configuration </span> </a> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_7 checked> <div class="md-nav__link md-nav__container"> <a href=../ class="md-nav__link "> <span class=md-ellipsis> Contributing </span> </a> <label class="md-nav__link " for=__nav_7 id=__nav_7_label tabindex> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=true> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#judge-prompts class=md-nav__link> <span class=md-ellipsis> Judge Prompts </span> </a> </li> <li class=md-nav__item> <a href=#hypothesis-prompts class=md-nav__link> <span class=md-ellipsis> Hypothesis Prompts </span> </a> </li> <li class=md-nav__item> <a href=#report-prompts class=md-nav__link> <span class=md-ellipsis> Report Prompts </span> </a> </li> <li class=md-nav__item> <a href=#citation-validation class=md-nav__link> <span class=md-ellipsis> Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=#citation-validation-rules class=md-nav__link> <span class=md-ellipsis> Citation Validation Rules </span> </a> </li> <li class=md-nav__item> <a href=#evidence-selection class=md-nav__link> <span class=md-ellipsis> Evidence Selection </span> </a> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=prompt-engineering--citation-validation>Prompt Engineering &amp; Citation Validation<a class=headerlink href=#prompt-engineering--citation-validation title="Anchor link to this section">&para;</a></h1> <p>This document outlines prompt engineering guidelines and citation validation rules.</p> <h2 id=judge-prompts>Judge Prompts<a class=headerlink href=#judge-prompts title="Anchor link to this section">&para;</a></h2> <ul> <li>System prompt in <code>src/prompts/judge.py</code></li> <li>Format evidence with truncation (1500 chars per item)</li> <li>Handle empty evidence case separately</li> <li>Always request structured JSON output</li> <li>Use <code>format_user_prompt()</code> and <code>format_empty_evidence_prompt()</code> helpers</li> </ul> <h2 id=hypothesis-prompts>Hypothesis Prompts<a class=headerlink href=#hypothesis-prompts title="Anchor link to this section">&para;</a></h2> <ul> <li>Use diverse evidence selection (MMR algorithm)</li> <li>Sentence-aware truncation (<code>truncate_at_sentence()</code>)</li> <li>Format: Drug → Target → Pathway → Effect</li> <li>System prompt emphasizes mechanistic reasoning</li> <li>Use <code>format_hypothesis_prompt()</code> with embeddings for diversity</li> </ul> <h2 id=report-prompts>Report Prompts<a class=headerlink href=#report-prompts title="Anchor link to this section">&para;</a></h2> <ul> <li>Include full citation details for validation</li> <li>Use diverse evidence selection (n=20)</li> <li><strong>CRITICAL</strong>: Emphasize citation validation rules</li> <li>Format hypotheses with support/contradiction counts</li> <li>System prompt includes explicit JSON structure requirements</li> </ul> <h2 id=citation-validation>Citation Validation<a class=headerlink href=#citation-validation title="Anchor link to this section">&para;</a></h2> <ul> <li><strong>ALWAYS</strong> validate references before returning reports</li> <li>Use <code>validate_references()</code> from <code>src/utils/citation_validator.py</code></li> <li>Remove hallucinated citations (URLs not in evidence)</li> <li>Log warnings for removed citations</li> <li>Never trust LLM-generated citations without validation</li> </ul> <h2 id=citation-validation-rules>Citation Validation Rules<a class=headerlink href=#citation-validation-rules title="Anchor link to this section">&para;</a></h2> <ol> <li>Every reference URL must EXACTLY match a provided evidence URL</li> <li>Do NOT invent, fabricate, or hallucinate any references</li> <li>Do NOT modify paper titles, authors, dates, or URLs</li> <li>If unsure about a citation, OMIT it rather than guess</li> <li>Copy URLs exactly as provided - do not create similar-looking URLs</li> </ol> <h2 id=evidence-selection>Evidence Selection<a class=headerlink href=#evidence-selection title="Anchor link to this section">&para;</a></h2> <ul> <li>Use <code>select_diverse_evidence()</code> for MMR-based selection</li> <li>Balance relevance vs diversity (lambda=0.7 default)</li> <li>Sentence-aware truncation preserves meaning</li> <li>Limit evidence per prompt to avoid context overflow</li> </ul> <h2 id=see-also>See Also<a class=headerlink href=#see-also title="Anchor link to this section">&para;</a></h2> <ul> <li><a href=../code-quality/ >Code Quality</a> - Code quality guidelines</li> <li><a href=../error-handling/ >Error Handling</a> - Error handling guidelines</li> </ul> <aside class=md-source-file> <span class=md-source-file__fact> <span class=md-icon title="Last update"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="December 1, 2025 16:59:59 UTC"><span class=timeago datetime=2025-12-01T16:59:59+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="December 1, 2025 16:59:59 UTC">2025-12-01</span> </span> <span class=md-source-file__fact> <span class=md-icon title=Created> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M14.47 15.08 11 13V7h1.5v5.25l3.08 1.83c-.41.28-.79.62-1.11 1m-1.39 4.84c-.36.05-.71.08-1.08.08-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8c0 .37-.03.72-.08 1.08.69.1 1.33.32 1.92.64.1-.56.16-1.13.16-1.72 0-5.5-4.5-10-10-10S2 6.5 2 12s4.47 10 10 10c.59 0 1.16-.06 1.72-.16-.32-.59-.54-1.23-.64-1.92M18 15v3h-3v2h3v3h2v-3h3v-2h-3v-3z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="November 29, 2025 21:40:26 UTC"><span class=timeago datetime=2025-11-29T21:40:26+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="November 29, 2025 21:40:26 UTC">2025-11-29</span> </span> </aside> </article> </div> <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=GitHub class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://twitter.com/josephpollack target=_blank rel=noopener title=Twitter class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M459.4 151.7c.3 4.5.3 9.1.3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103v-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53C87.4 130.8 165 172.4 252.1 176.9c-1.6-7.8-2.6-15.9-2.6-24C249.5 95.1 296.3 48 354.4 48c30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title="Live Demo" class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> <a href=https://discord.gg/n8ytYeh25n target=_blank rel=noopener title=Discord class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 576 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M492.5 69.8c-.2-.3-.4-.6-.8-.7-38.1-17.5-78.4-30-119.7-37.1-.4-.1-.8 0-1.1.1s-.6.4-.8.8c-5.5 9.9-10.5 20.2-14.9 30.6-44.6-6.8-89.9-6.8-134.4 0-4.5-10.5-9.5-20.7-15.1-30.6-.2-.3-.5-.6-.8-.8s-.7-.2-1.1-.2C162.5 39 122.2 51.5 84.1 69c-.3.1-.6.4-.8.7C7.1 183.5-13.8 294.6-3.6 404.2c0 .3.1.5.2.8s.3.4.5.6c44.4 32.9 94 58 146.8 74.2.4.1.8.1 1.1 0s.7-.4.9-.7c11.3-15.4 21.4-31.8 30-48.8.1-.2.2-.5.2-.8s0-.5-.1-.8-.2-.5-.4-.6-.4-.3-.7-.4c-15.8-6.1-31.2-13.4-45.9-21.9-.3-.2-.5-.4-.7-.6s-.3-.6-.3-.9 0-.6.2-.9.3-.5.6-.7c3.1-2.3 6.2-4.7 9.1-7.1.3-.2.6-.4.9-.4s.7 0 1 .1c96.2 43.9 200.4 43.9 295.5 0 .3-.1.7-.2 1-.2s.7.2.9.4c2.9 2.4 6 4.9 9.1 7.2.2.2.4.4.6.7s.2.6.2.9-.1.6-.3.9-.4.5-.6.6c-14.7 8.6-30 15.9-45.9 21.8-.2.1-.5.2-.7.4s-.3.4-.4.7-.1.5-.1.8.1.5.2.8c8.8 17 18.8 33.3 30 48.8.2.3.6.6.9.7s.8.1 1.1 0c52.9-16.2 102.6-41.3 147.1-74.2.2-.2.4-.4.5-.6s.2-.5.2-.8c12.3-126.8-20.5-236.9-86.9-334.5zm-302 267.7c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.4 59.2-52.8 59.2m195.4 0c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.2 59.2-52.8 59.2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "navigation.indexes", "navigation.instant", "navigation.tracking", "navigation.smooth", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy", "content.tabs.link", "content.tooltips", "toc.integrate"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> <script src=../../js/timeago.min.js></script> <script src=../../js/timeago_mkdocs_material.js></script> </body> </html>
site/contributing/testing/index.html CHANGED
@@ -1,13 +1,37 @@
1
- <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DETERMINATOR Team"><link href=https://deepcritical.github.io/GradioDemo/contributing/testing/ rel=canonical><link href=../prompt-engineering/ rel=prev><link href=../../LICENSE/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Testing Requirements - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#testing-requirements class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Testing Requirements </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/CONFIGURATION/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../../architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Quick Start Guide </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <label class=md-nav__link for=__nav_4 id=__nav_4_label tabindex=0> <span class=md-ellipsis> Configuration </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../configuration/CONFIGURATION/ class=md-nav__link> <span class=md-ellipsis> Configuration Guide </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_7 checked> <label class=md-nav__link for=__nav_7 id=__nav_7_label tabindex> <span class=md-ellipsis> Contributing </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=true> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../ class=md-nav__link> <span class=md-ellipsis> Contributing to DeepCritical </span> </a> </li> <li class=md-nav__item> <a href=../code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Testing Requirements </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Testing Requirements </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#test-structure class=md-nav__link> <span class=md-ellipsis> Test Structure </span> </a> </li> <li class=md-nav__item> <a href=#mocking class=md-nav__link> <span class=md-ellipsis> Mocking </span> </a> </li> <li class=md-nav__item> <a href=#tdd-workflow class=md-nav__link> <span class=md-ellipsis> TDD Workflow </span> </a> </li> <li class=md-nav__item> <a href=#test-examples class=md-nav__link> <span class=md-ellipsis> Test Examples </span> </a> </li> <li class=md-nav__item> <a href=#test-coverage class=md-nav__link> <span class=md-ellipsis> Test Coverage </span> </a> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=sidebar data-md-type=toc> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#test-structure class=md-nav__link> <span class=md-ellipsis> Test Structure </span> </a> </li> <li class=md-nav__item> <a href=#mocking class=md-nav__link> <span class=md-ellipsis> Mocking </span> </a> </li> <li class=md-nav__item> <a href=#tdd-workflow class=md-nav__link> <span class=md-ellipsis> TDD Workflow </span> </a> </li> <li class=md-nav__item> <a href=#test-examples class=md-nav__link> <span class=md-ellipsis> Test Examples </span> </a> </li> <li class=md-nav__item> <a href=#test-coverage class=md-nav__link> <span class=md-ellipsis> Test Coverage </span> </a> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=testing-requirements>Testing Requirements<a class=headerlink href=#testing-requirements title="Permanent link">&para;</a></h1> <p>This document outlines testing requirements and guidelines for DeepCritical.</p> <h2 id=test-structure>Test Structure<a class=headerlink href=#test-structure title="Permanent link">&para;</a></h2> <ul> <li>Unit tests in <code>tests/unit/</code> (mocked, fast)</li> <li>Integration tests in <code>tests/integration/</code> (real APIs, marked <code>@pytest.mark.integration</code>)</li> <li>Use markers: <code>unit</code>, <code>integration</code>, <code>slow</code></li> </ul> <h2 id=mocking>Mocking<a class=headerlink href=#mocking title="Permanent link">&para;</a></h2> <ul> <li>Use <code>respx</code> for httpx mocking</li> <li>Use <code>pytest-mock</code> for general mocking</li> <li>Mock LLM calls in unit tests (use <code>MockJudgeHandler</code>)</li> <li>Fixtures in <code>tests/conftest.py</code>: <code>mock_httpx_client</code>, <code>mock_llm_response</code></li> </ul> <h2 id=tdd-workflow>TDD Workflow<a class=headerlink href=#tdd-workflow title="Permanent link">&para;</a></h2> <ol> <li>Write failing test in <code>tests/unit/</code></li> <li>Implement in <code>src/</code></li> <li>Ensure test passes</li> <li>Run <code>make check</code> (lint + typecheck + test)</li> </ol> <h2 id=test-examples>Test Examples<a class=headerlink href=#test-examples title="Permanent link">&para;</a></h2> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=nd>@pytest</span><span class=o>.</span><span class=n>mark</span><span class=o>.</span><span class=n>unit</span>
2
- <a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a><span class=k>async</span> <span class=k>def</span><span class=w> </span><span class=nf>test_pubmed_search</span><span class=p>(</span><span class=n>mock_httpx_client</span><span class=p>):</span>
3
- <a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a> <span class=n>tool</span> <span class=o>=</span> <span class=n>PubMedTool</span><span class=p>()</span>
4
- <a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a> <span class=n>results</span> <span class=o>=</span> <span class=k>await</span> <span class=n>tool</span><span class=o>.</span><span class=n>search</span><span class=p>(</span><span class=s2>&quot;metformin&quot;</span><span class=p>,</span> <span class=n>max_results</span><span class=o>=</span><span class=mi>5</span><span class=p>)</span>
5
- <a id=__codelineno-0-5 name=__codelineno-0-5 href=#__codelineno-0-5></a> <span class=k>assert</span> <span class=nb>len</span><span class=p>(</span><span class=n>results</span><span class=p>)</span> <span class=o>&gt;</span> <span class=mi>0</span>
6
- <a id=__codelineno-0-6 name=__codelineno-0-6 href=#__codelineno-0-6></a> <span class=k>assert</span> <span class=nb>all</span><span class=p>(</span><span class=nb>isinstance</span><span class=p>(</span><span class=n>r</span><span class=p>,</span> <span class=n>Evidence</span><span class=p>)</span> <span class=k>for</span> <span class=n>r</span> <span class=ow>in</span> <span class=n>results</span><span class=p>)</span>
7
- <a id=__codelineno-0-7 name=__codelineno-0-7 href=#__codelineno-0-7></a>
8
- <a id=__codelineno-0-8 name=__codelineno-0-8 href=#__codelineno-0-8></a><span class=nd>@pytest</span><span class=o>.</span><span class=n>mark</span><span class=o>.</span><span class=n>integration</span>
9
- <a id=__codelineno-0-9 name=__codelineno-0-9 href=#__codelineno-0-9></a><span class=k>async</span> <span class=k>def</span><span class=w> </span><span class=nf>test_real_pubmed_search</span><span class=p>():</span>
10
- <a id=__codelineno-0-10 name=__codelineno-0-10 href=#__codelineno-0-10></a> <span class=n>tool</span> <span class=o>=</span> <span class=n>PubMedTool</span><span class=p>()</span>
11
- <a id=__codelineno-0-11 name=__codelineno-0-11 href=#__codelineno-0-11></a> <span class=n>results</span> <span class=o>=</span> <span class=k>await</span> <span class=n>tool</span><span class=o>.</span><span class=n>search</span><span class=p>(</span><span class=s2>&quot;metformin&quot;</span><span class=p>,</span> <span class=n>max_results</span><span class=o>=</span><span class=mi>3</span><span class=p>)</span>
12
- <a id=__codelineno-0-12 name=__codelineno-0-12 href=#__codelineno-0-12></a> <span class=k>assert</span> <span class=nb>len</span><span class=p>(</span><span class=n>results</span><span class=p>)</span> <span class=o>&lt;=</span> <span class=mi>3</span>
13
- </code></pre></div> <h2 id=test-coverage>Test Coverage<a class=headerlink href=#test-coverage title="Permanent link">&para;</a></h2> <ul> <li>Run <code>make test-cov</code> for coverage report</li> <li>Aim for &gt;80% coverage on critical paths</li> <li>Exclude: <code>__init__.py</code>, <code>TYPE_CHECKING</code> blocks</li> </ul> <h2 id=see-also>See Also<a class=headerlink href=#see-also title="Permanent link">&para;</a></h2> <ul> <li><a href=../code-style/ >Code Style</a> - Code style guidelines</li> <li><a href=../implementation-patterns/ >Implementation Patterns</a> - Common patterns</li> </ul> </article> </div> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=github.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title=huggingface.co class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> </body> </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DeepCritical Team"><link href=https://deepcritical.github.io/GradioDemo/contributing/testing/ rel=canonical><link href=../prompt-engineering/ rel=prev><link href=../../LICENSE/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Testing Requirements - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><link rel=stylesheet href=../../css/timeago.css><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#testing-requirements class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Testing Requirements </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../../architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Single Command Deploy </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <div class="md-nav__link md-nav__container"> <a href=../../configuration/ class="md-nav__link "> <span class=md-ellipsis> Configuration </span> </a> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_7 checked> <div class="md-nav__link md-nav__container"> <a href=../ class="md-nav__link "> <span class=md-ellipsis> Contributing </span> </a> <label class="md-nav__link " for=__nav_7 id=__nav_7_label tabindex> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=true> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Testing Requirements </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Testing Requirements </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#test-structure class=md-nav__link> <span class=md-ellipsis> Test Structure </span> </a> </li> <li class=md-nav__item> <a href=#test-markers class=md-nav__link> <span class=md-ellipsis> Test Markers </span> </a> <nav class=md-nav aria-label="Test Markers"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#running-tests-by-marker class=md-nav__link> <span class=md-ellipsis> Running Tests by Marker </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#mocking class=md-nav__link> <span class=md-ellipsis> Mocking </span> </a> </li> <li class=md-nav__item> <a href=#tdd-workflow class=md-nav__link> <span class=md-ellipsis> TDD Workflow </span> </a> <nav class=md-nav aria-label="TDD Workflow"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#test-command-examples class=md-nav__link> <span class=md-ellipsis> Test Command Examples </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#test-examples class=md-nav__link> <span class=md-ellipsis> Test Examples </span> </a> </li> <li class=md-nav__item> <a href=#test-coverage class=md-nav__link> <span class=md-ellipsis> Test Coverage </span> </a> <nav class=md-nav aria-label="Test Coverage"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#terminal-coverage-report class=md-nav__link> <span class=md-ellipsis> Terminal Coverage Report </span> </a> </li> <li class=md-nav__item> <a href=#html-coverage-report class=md-nav__link> <span class=md-ellipsis> HTML Coverage Report </span> </a> </li> <li class=md-nav__item> <a href=#coverage-goals class=md-nav__link> <span class=md-ellipsis> Coverage Goals </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See Also </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=testing-requirements>Testing Requirements<a class=headerlink href=#testing-requirements title="Anchor link to this section">&para;</a></h1> <p>This document outlines testing requirements and guidelines for The DETERMINATOR.</p> <h2 id=test-structure>Test Structure<a class=headerlink href=#test-structure title="Anchor link to this section">&para;</a></h2> <ul> <li>Unit tests in <code>tests/unit/</code> (mocked, fast)</li> <li>Integration tests in <code>tests/integration/</code> (real APIs, marked <code>@pytest.mark.integration</code>)</li> <li>Use markers: <code>unit</code>, <code>integration</code>, <code>slow</code>, <code>openai</code>, <code>huggingface</code>, <code>embedding_provider</code>, <code>local_embeddings</code></li> </ul> <h2 id=test-markers>Test Markers<a class=headerlink href=#test-markers title="Anchor link to this section">&para;</a></h2> <p>The project uses pytest markers to categorize tests. These markers are defined in <code>pyproject.toml</code>:</p> <ul> <li><code>@pytest.mark.unit</code>: Unit tests (mocked, fast) - Run with <code>-m "unit"</code></li> <li><code>@pytest.mark.integration</code>: Integration tests (real APIs) - Run with <code>-m "integration"</code></li> <li><code>@pytest.mark.slow</code>: Slow tests - Run with <code>-m "slow"</code></li> <li><code>@pytest.mark.openai</code>: Tests requiring OpenAI API key - Run with <code>-m "openai"</code> or exclude with <code>-m "not openai"</code></li> <li><code>@pytest.mark.huggingface</code>: Tests requiring HuggingFace API key or using HuggingFace models - Run with <code>-m "huggingface"</code></li> <li><code>@pytest.mark.embedding_provider</code>: Tests requiring API-based embedding providers (OpenAI, etc.) - Run with <code>-m "embedding_provider"</code></li> <li><code>@pytest.mark.local_embeddings</code>: Tests using local embeddings (sentence-transformers, ChromaDB) - Run with <code>-m "local_embeddings"</code></li> </ul> <h3 id=running-tests-by-marker>Running Tests by Marker<a class=headerlink href=#running-tests-by-marker title="Anchor link to this section">&para;</a></h3> <div class="language-bash highlight"><pre><span></span><code><span id=__span-0-1><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=c1># Run only unit tests (excludes OpenAI tests by default)</span>
2
+ </span><span id=__span-0-2><a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a>uv<span class=w> </span>run<span class=w> </span>pytest<span class=w> </span>tests/unit/<span class=w> </span>-v<span class=w> </span>-m<span class=w> </span><span class=s2>&quot;not openai&quot;</span><span class=w> </span>-p<span class=w> </span>no:logfire
3
+ </span><span id=__span-0-3><a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a>
4
+ </span><span id=__span-0-4><a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a><span class=c1># Run HuggingFace tests</span>
5
+ </span><span id=__span-0-5><a id=__codelineno-0-5 name=__codelineno-0-5 href=#__codelineno-0-5></a>uv<span class=w> </span>run<span class=w> </span>pytest<span class=w> </span>tests/<span class=w> </span>-v<span class=w> </span>-m<span class=w> </span><span class=s2>&quot;huggingface&quot;</span><span class=w> </span>-p<span class=w> </span>no:logfire
6
+ </span><span id=__span-0-6><a id=__codelineno-0-6 name=__codelineno-0-6 href=#__codelineno-0-6></a>
7
+ </span><span id=__span-0-7><a id=__codelineno-0-7 name=__codelineno-0-7 href=#__codelineno-0-7></a><span class=c1># Run all tests</span>
8
+ </span><span id=__span-0-8><a id=__codelineno-0-8 name=__codelineno-0-8 href=#__codelineno-0-8></a>uv<span class=w> </span>run<span class=w> </span>pytest<span class=w> </span>tests/<span class=w> </span>-v<span class=w> </span>-p<span class=w> </span>no:logfire
9
+ </span><span id=__span-0-9><a id=__codelineno-0-9 name=__codelineno-0-9 href=#__codelineno-0-9></a>
10
+ </span><span id=__span-0-10><a id=__codelineno-0-10 name=__codelineno-0-10 href=#__codelineno-0-10></a><span class=c1># Run only local embedding tests</span>
11
+ </span><span id=__span-0-11><a id=__codelineno-0-11 name=__codelineno-0-11 href=#__codelineno-0-11></a>uv<span class=w> </span>run<span class=w> </span>pytest<span class=w> </span>tests/<span class=w> </span>-v<span class=w> </span>-m<span class=w> </span><span class=s2>&quot;local_embeddings&quot;</span><span class=w> </span>-p<span class=w> </span>no:logfire
12
+ </span><span id=__span-0-12><a id=__codelineno-0-12 name=__codelineno-0-12 href=#__codelineno-0-12></a>
13
+ </span><span id=__span-0-13><a id=__codelineno-0-13 name=__codelineno-0-13 href=#__codelineno-0-13></a><span class=c1># Exclude slow tests</span>
14
+ </span><span id=__span-0-14><a id=__codelineno-0-14 name=__codelineno-0-14 href=#__codelineno-0-14></a>uv<span class=w> </span>run<span class=w> </span>pytest<span class=w> </span>tests/<span class=w> </span>-v<span class=w> </span>-m<span class=w> </span><span class=s2>&quot;not slow&quot;</span><span class=w> </span>-p<span class=w> </span>no:logfire
15
+ </span></code></pre></div> <p><strong>Note</strong>: The <code>-p no:logfire</code> flag disables the logfire plugin to avoid conflicts during testing.</p> <h2 id=mocking>Mocking<a class=headerlink href=#mocking title="Anchor link to this section">&para;</a></h2> <ul> <li>Use <code>respx</code> for httpx mocking</li> <li>Use <code>pytest-mock</code> for general mocking</li> <li>Mock LLM calls in unit tests (use <code>MockJudgeHandler</code>)</li> <li>Fixtures in <code>tests/conftest.py</code>: <code>mock_httpx_client</code>, <code>mock_llm_response</code></li> </ul> <h2 id=tdd-workflow>TDD Workflow<a class=headerlink href=#tdd-workflow title="Anchor link to this section">&para;</a></h2> <ol> <li>Write failing test in <code>tests/unit/</code></li> <li>Implement in <code>src/</code></li> <li>Ensure test passes</li> <li>Run checks: <code>uv run ruff check src tests &amp;&amp; uv run mypy src &amp;&amp; uv run pytest --cov=src --cov-report=term-missing tests/unit/ -v -m "not openai" -p no:logfire</code></li> </ol> <h3 id=test-command-examples>Test Command Examples<a class=headerlink href=#test-command-examples title="Anchor link to this section">&para;</a></h3> <div class="language-bash highlight"><pre><span></span><code><span id=__span-1-1><a id=__codelineno-1-1 name=__codelineno-1-1 href=#__codelineno-1-1></a><span class=c1># Run unit tests (default, excludes OpenAI tests)</span>
16
+ </span><span id=__span-1-2><a id=__codelineno-1-2 name=__codelineno-1-2 href=#__codelineno-1-2></a>uv<span class=w> </span>run<span class=w> </span>pytest<span class=w> </span>tests/unit/<span class=w> </span>-v<span class=w> </span>-m<span class=w> </span><span class=s2>&quot;not openai&quot;</span><span class=w> </span>-p<span class=w> </span>no:logfire
17
+ </span><span id=__span-1-3><a id=__codelineno-1-3 name=__codelineno-1-3 href=#__codelineno-1-3></a>
18
+ </span><span id=__span-1-4><a id=__codelineno-1-4 name=__codelineno-1-4 href=#__codelineno-1-4></a><span class=c1># Run HuggingFace tests</span>
19
+ </span><span id=__span-1-5><a id=__codelineno-1-5 name=__codelineno-1-5 href=#__codelineno-1-5></a>uv<span class=w> </span>run<span class=w> </span>pytest<span class=w> </span>tests/<span class=w> </span>-v<span class=w> </span>-m<span class=w> </span><span class=s2>&quot;huggingface&quot;</span><span class=w> </span>-p<span class=w> </span>no:logfire
20
+ </span><span id=__span-1-6><a id=__codelineno-1-6 name=__codelineno-1-6 href=#__codelineno-1-6></a>
21
+ </span><span id=__span-1-7><a id=__codelineno-1-7 name=__codelineno-1-7 href=#__codelineno-1-7></a><span class=c1># Run all tests</span>
22
+ </span><span id=__span-1-8><a id=__codelineno-1-8 name=__codelineno-1-8 href=#__codelineno-1-8></a>uv<span class=w> </span>run<span class=w> </span>pytest<span class=w> </span>tests/<span class=w> </span>-v<span class=w> </span>-p<span class=w> </span>no:logfire
23
+ </span></code></pre></div> <h2 id=test-examples>Test Examples<a class=headerlink href=#test-examples title="Anchor link to this section">&para;</a></h2> <div class="language-python highlight"><pre><span></span><code><span id=__span-2-1><a id=__codelineno-2-1 name=__codelineno-2-1 href=#__codelineno-2-1></a><span class=nd>@pytest</span><span class=o>.</span><span class=n>mark</span><span class=o>.</span><span class=n>unit</span>
24
+ </span><span id=__span-2-2><a id=__codelineno-2-2 name=__codelineno-2-2 href=#__codelineno-2-2></a><span class=k>async</span> <span class=k>def</span><span class=w> </span><span class=nf>test_pubmed_search</span><span class=p>(</span><span class=n>mock_httpx_client</span><span class=p>):</span>
25
+ </span><span id=__span-2-3><a id=__codelineno-2-3 name=__codelineno-2-3 href=#__codelineno-2-3></a> <span class=n>tool</span> <span class=o>=</span> <span class=n>PubMedTool</span><span class=p>()</span>
26
+ </span><span id=__span-2-4><a id=__codelineno-2-4 name=__codelineno-2-4 href=#__codelineno-2-4></a> <span class=n>results</span> <span class=o>=</span> <span class=k>await</span> <span class=n>tool</span><span class=o>.</span><span class=n>search</span><span class=p>(</span><span class=s2>&quot;metformin&quot;</span><span class=p>,</span> <span class=n>max_results</span><span class=o>=</span><span class=mi>5</span><span class=p>)</span>
27
+ </span><span id=__span-2-5><a id=__codelineno-2-5 name=__codelineno-2-5 href=#__codelineno-2-5></a> <span class=k>assert</span> <span class=nb>len</span><span class=p>(</span><span class=n>results</span><span class=p>)</span> <span class=o>&gt;</span> <span class=mi>0</span>
28
+ </span><span id=__span-2-6><a id=__codelineno-2-6 name=__codelineno-2-6 href=#__codelineno-2-6></a> <span class=k>assert</span> <span class=nb>all</span><span class=p>(</span><span class=nb>isinstance</span><span class=p>(</span><span class=n>r</span><span class=p>,</span> <span class=n>Evidence</span><span class=p>)</span> <span class=k>for</span> <span class=n>r</span> <span class=ow>in</span> <span class=n>results</span><span class=p>)</span>
29
+ </span><span id=__span-2-7><a id=__codelineno-2-7 name=__codelineno-2-7 href=#__codelineno-2-7></a>
30
+ </span><span id=__span-2-8><a id=__codelineno-2-8 name=__codelineno-2-8 href=#__codelineno-2-8></a><span class=nd>@pytest</span><span class=o>.</span><span class=n>mark</span><span class=o>.</span><span class=n>integration</span>
31
+ </span><span id=__span-2-9><a id=__codelineno-2-9 name=__codelineno-2-9 href=#__codelineno-2-9></a><span class=k>async</span> <span class=k>def</span><span class=w> </span><span class=nf>test_real_pubmed_search</span><span class=p>():</span>
32
+ </span><span id=__span-2-10><a id=__codelineno-2-10 name=__codelineno-2-10 href=#__codelineno-2-10></a> <span class=n>tool</span> <span class=o>=</span> <span class=n>PubMedTool</span><span class=p>()</span>
33
+ </span><span id=__span-2-11><a id=__codelineno-2-11 name=__codelineno-2-11 href=#__codelineno-2-11></a> <span class=n>results</span> <span class=o>=</span> <span class=k>await</span> <span class=n>tool</span><span class=o>.</span><span class=n>search</span><span class=p>(</span><span class=s2>&quot;metformin&quot;</span><span class=p>,</span> <span class=n>max_results</span><span class=o>=</span><span class=mi>3</span><span class=p>)</span>
34
+ </span><span id=__span-2-12><a id=__codelineno-2-12 name=__codelineno-2-12 href=#__codelineno-2-12></a> <span class=k>assert</span> <span class=nb>len</span><span class=p>(</span><span class=n>results</span><span class=p>)</span> <span class=o>&lt;=</span> <span class=mi>3</span>
35
+ </span></code></pre></div> <h2 id=test-coverage>Test Coverage<a class=headerlink href=#test-coverage title="Anchor link to this section">&para;</a></h2> <h3 id=terminal-coverage-report>Terminal Coverage Report<a class=headerlink href=#terminal-coverage-report title="Anchor link to this section">&para;</a></h3> <div class="language-bash highlight"><pre><span></span><code><span id=__span-3-1><a id=__codelineno-3-1 name=__codelineno-3-1 href=#__codelineno-3-1></a>uv<span class=w> </span>run<span class=w> </span>pytest<span class=w> </span>--cov<span class=o>=</span>src<span class=w> </span>--cov-report<span class=o>=</span>term-missing<span class=w> </span>tests/unit/<span class=w> </span>-v<span class=w> </span>-m<span class=w> </span><span class=s2>&quot;not openai&quot;</span><span class=w> </span>-p<span class=w> </span>no:logfire
36
+ </span></code></pre></div> <p>This shows coverage with missing lines highlighted in the terminal output.</p> <h3 id=html-coverage-report>HTML Coverage Report<a class=headerlink href=#html-coverage-report title="Anchor link to this section">&para;</a></h3> <div class="language-bash highlight"><pre><span></span><code><span id=__span-4-1><a id=__codelineno-4-1 name=__codelineno-4-1 href=#__codelineno-4-1></a>uv<span class=w> </span>run<span class=w> </span>pytest<span class=w> </span>--cov<span class=o>=</span>src<span class=w> </span>--cov-report<span class=o>=</span>html<span class=w> </span>-p<span class=w> </span>no:logfire
37
+ </span></code></pre></div> <p>This generates an HTML coverage report in <code>htmlcov/index.html</code>. Open this file in your browser to see detailed coverage information.</p> <h3 id=coverage-goals>Coverage Goals<a class=headerlink href=#coverage-goals title="Anchor link to this section">&para;</a></h3> <ul> <li>Aim for &gt;80% coverage on critical paths</li> <li>Exclude: <code>__init__.py</code>, <code>TYPE_CHECKING</code> blocks</li> <li>Coverage configuration is in <code>pyproject.toml</code> under <code>[tool.coverage.*]</code></li> </ul> <h2 id=see-also>See Also<a class=headerlink href=#see-also title="Anchor link to this section">&para;</a></h2> <ul> <li><a href=../code-style/ >Code Style</a> - Code style guidelines</li> <li><a href=../implementation-patterns/ >Implementation Patterns</a> - Common patterns</li> </ul> <aside class=md-source-file> <span class=md-source-file__fact> <span class=md-icon title="Last update"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="December 2, 2025 01:35:56 UTC"><span class=timeago datetime=2025-12-02T01:35:56+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="December 2, 2025 01:35:56 UTC">2025-12-02</span> </span> <span class=md-source-file__fact> <span class=md-icon title=Created> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M14.47 15.08 11 13V7h1.5v5.25l3.08 1.83c-.41.28-.79.62-1.11 1m-1.39 4.84c-.36.05-.71.08-1.08.08-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8c0 .37-.03.72-.08 1.08.69.1 1.33.32 1.92.64.1-.56.16-1.13.16-1.72 0-5.5-4.5-10-10-10S2 6.5 2 12s4.47 10 10 10c.59 0 1.16-.06 1.72-.16-.32-.59-.54-1.23-.64-1.92M18 15v3h-3v2h3v3h2v-3h3v-2h-3v-3z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="November 29, 2025 21:40:26 UTC"><span class=timeago datetime=2025-11-29T21:40:26+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="November 29, 2025 21:40:26 UTC">2025-11-29</span> </span> </aside> </article> </div> <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=GitHub class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://twitter.com/josephpollack target=_blank rel=noopener title=Twitter class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M459.4 151.7c.3 4.5.3 9.1.3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103v-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53C87.4 130.8 165 172.4 252.1 176.9c-1.6-7.8-2.6-15.9-2.6-24C249.5 95.1 296.3 48 354.4 48c30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title="Live Demo" class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> <a href=https://discord.gg/n8ytYeh25n target=_blank rel=noopener title=Discord class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 576 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M492.5 69.8c-.2-.3-.4-.6-.8-.7-38.1-17.5-78.4-30-119.7-37.1-.4-.1-.8 0-1.1.1s-.6.4-.8.8c-5.5 9.9-10.5 20.2-14.9 30.6-44.6-6.8-89.9-6.8-134.4 0-4.5-10.5-9.5-20.7-15.1-30.6-.2-.3-.5-.6-.8-.8s-.7-.2-1.1-.2C162.5 39 122.2 51.5 84.1 69c-.3.1-.6.4-.8.7C7.1 183.5-13.8 294.6-3.6 404.2c0 .3.1.5.2.8s.3.4.5.6c44.4 32.9 94 58 146.8 74.2.4.1.8.1 1.1 0s.7-.4.9-.7c11.3-15.4 21.4-31.8 30-48.8.1-.2.2-.5.2-.8s0-.5-.1-.8-.2-.5-.4-.6-.4-.3-.7-.4c-15.8-6.1-31.2-13.4-45.9-21.9-.3-.2-.5-.4-.7-.6s-.3-.6-.3-.9 0-.6.2-.9.3-.5.6-.7c3.1-2.3 6.2-4.7 9.1-7.1.3-.2.6-.4.9-.4s.7 0 1 .1c96.2 43.9 200.4 43.9 295.5 0 .3-.1.7-.2 1-.2s.7.2.9.4c2.9 2.4 6 4.9 9.1 7.2.2.2.4.4.6.7s.2.6.2.9-.1.6-.3.9-.4.5-.6.6c-14.7 8.6-30 15.9-45.9 21.8-.2.1-.5.2-.7.4s-.3.4-.4.7-.1.5-.1.8.1.5.2.8c8.8 17 18.8 33.3 30 48.8.2.3.6.6.9.7s.8.1 1.1 0c52.9-16.2 102.6-41.3 147.1-74.2.2-.2.4-.4.5-.6s.2-.5.2-.8c12.3-126.8-20.5-236.9-86.9-334.5zm-302 267.7c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.4 59.2-52.8 59.2m195.4 0c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.2 59.2-52.8 59.2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "navigation.indexes", "navigation.instant", "navigation.tracking", "navigation.smooth", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy", "content.tabs.link", "content.tooltips", "toc.integrate"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> <script src=../../js/timeago.min.js></script> <script src=../../js/timeago_mkdocs_material.js></script> </body> </html>
site/getting-started/examples/index.html CHANGED
@@ -1,49 +1,49 @@
1
- <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DETERMINATOR Team"><link href=https://deepcritical.github.io/GradioDemo/getting-started/examples/ rel=canonical><link href=../mcp-integration/ rel=prev><link href=../../configuration/CONFIGURATION/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Examples - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#examples class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Examples </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/CONFIGURATION/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../../architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../../contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_3 checked> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=true> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../quick-start/ class=md-nav__link> <span class=md-ellipsis> Quick Start Guide </span> </a> </li> <li class=md-nav__item> <a href=../mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Examples </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Examples </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#basic-research-query class=md-nav__link> <span class=md-ellipsis> Basic Research Query </span> </a> <nav class=md-nav aria-label="Basic Research Query"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#example-1-drug-information class=md-nav__link> <span class=md-ellipsis> Example 1: Drug Information </span> </a> </li> <li class=md-nav__item> <a href=#example-2-clinical-trial-search class=md-nav__link> <span class=md-ellipsis> Example 2: Clinical Trial Search </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#advanced-research-queries class=md-nav__link> <span class=md-ellipsis> Advanced Research Queries </span> </a> <nav class=md-nav aria-label="Advanced Research Queries"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#example-3-comprehensive-review class=md-nav__link> <span class=md-ellipsis> Example 3: Comprehensive Review </span> </a> </li> <li class=md-nav__item> <a href=#example-4-hypothesis-testing class=md-nav__link> <span class=md-ellipsis> Example 4: Hypothesis Testing </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#mcp-tool-examples class=md-nav__link> <span class=md-ellipsis> MCP Tool Examples </span> </a> <nav class=md-nav aria-label="MCP Tool Examples"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#using-search_pubmed class=md-nav__link> <span class=md-ellipsis> Using search_pubmed </span> </a> </li> <li class=md-nav__item> <a href=#using-search_clinical_trials class=md-nav__link> <span class=md-ellipsis> Using search_clinical_trials </span> </a> </li> <li class=md-nav__item> <a href=#using-search_all class=md-nav__link> <span class=md-ellipsis> Using search_all </span> </a> </li> <li class=md-nav__item> <a href=#using-analyze_hypothesis class=md-nav__link> <span class=md-ellipsis> Using analyze_hypothesis </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#code-examples class=md-nav__link> <span class=md-ellipsis> Code Examples </span> </a> <nav class=md-nav aria-label="Code Examples"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#python-api-usage class=md-nav__link> <span class=md-ellipsis> Python API Usage </span> </a> </li> <li class=md-nav__item> <a href=#gradio-ui-integration class=md-nav__link> <span class=md-ellipsis> Gradio UI Integration </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#research-patterns class=md-nav__link> <span class=md-ellipsis> Research Patterns </span> </a> <nav class=md-nav aria-label="Research Patterns"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#iterative-research class=md-nav__link> <span class=md-ellipsis> Iterative Research </span> </a> </li> <li class=md-nav__item> <a href=#deep-research class=md-nav__link> <span class=md-ellipsis> Deep Research </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#configuration-examples class=md-nav__link> <span class=md-ellipsis> Configuration Examples </span> </a> <nav class=md-nav aria-label="Configuration Examples"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#basic-configuration class=md-nav__link> <span class=md-ellipsis> Basic Configuration </span> </a> </li> <li class=md-nav__item> <a href=#advanced-configuration class=md-nav__link> <span class=md-ellipsis> Advanced Configuration </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#next-steps class=md-nav__link> <span class=md-ellipsis> Next Steps </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <label class=md-nav__link for=__nav_4 id=__nav_4_label tabindex=0> <span class=md-ellipsis> Configuration </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../configuration/CONFIGURATION/ class=md-nav__link> <span class=md-ellipsis> Configuration Guide </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <label class=md-nav__link for=__nav_7 id=__nav_7_label tabindex=0> <span class=md-ellipsis> Contributing </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../contributing/ class=md-nav__link> <span class=md-ellipsis> Contributing to DeepCritical </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=sidebar data-md-type=toc> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#basic-research-query class=md-nav__link> <span class=md-ellipsis> Basic Research Query </span> </a> <nav class=md-nav aria-label="Basic Research Query"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#example-1-drug-information class=md-nav__link> <span class=md-ellipsis> Example 1: Drug Information </span> </a> </li> <li class=md-nav__item> <a href=#example-2-clinical-trial-search class=md-nav__link> <span class=md-ellipsis> Example 2: Clinical Trial Search </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#advanced-research-queries class=md-nav__link> <span class=md-ellipsis> Advanced Research Queries </span> </a> <nav class=md-nav aria-label="Advanced Research Queries"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#example-3-comprehensive-review class=md-nav__link> <span class=md-ellipsis> Example 3: Comprehensive Review </span> </a> </li> <li class=md-nav__item> <a href=#example-4-hypothesis-testing class=md-nav__link> <span class=md-ellipsis> Example 4: Hypothesis Testing </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#mcp-tool-examples class=md-nav__link> <span class=md-ellipsis> MCP Tool Examples </span> </a> <nav class=md-nav aria-label="MCP Tool Examples"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#using-search_pubmed class=md-nav__link> <span class=md-ellipsis> Using search_pubmed </span> </a> </li> <li class=md-nav__item> <a href=#using-search_clinical_trials class=md-nav__link> <span class=md-ellipsis> Using search_clinical_trials </span> </a> </li> <li class=md-nav__item> <a href=#using-search_all class=md-nav__link> <span class=md-ellipsis> Using search_all </span> </a> </li> <li class=md-nav__item> <a href=#using-analyze_hypothesis class=md-nav__link> <span class=md-ellipsis> Using analyze_hypothesis </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#code-examples class=md-nav__link> <span class=md-ellipsis> Code Examples </span> </a> <nav class=md-nav aria-label="Code Examples"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#python-api-usage class=md-nav__link> <span class=md-ellipsis> Python API Usage </span> </a> </li> <li class=md-nav__item> <a href=#gradio-ui-integration class=md-nav__link> <span class=md-ellipsis> Gradio UI Integration </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#research-patterns class=md-nav__link> <span class=md-ellipsis> Research Patterns </span> </a> <nav class=md-nav aria-label="Research Patterns"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#iterative-research class=md-nav__link> <span class=md-ellipsis> Iterative Research </span> </a> </li> <li class=md-nav__item> <a href=#deep-research class=md-nav__link> <span class=md-ellipsis> Deep Research </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#configuration-examples class=md-nav__link> <span class=md-ellipsis> Configuration Examples </span> </a> <nav class=md-nav aria-label="Configuration Examples"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#basic-configuration class=md-nav__link> <span class=md-ellipsis> Basic Configuration </span> </a> </li> <li class=md-nav__item> <a href=#advanced-configuration class=md-nav__link> <span class=md-ellipsis> Advanced Configuration </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#next-steps class=md-nav__link> <span class=md-ellipsis> Next Steps </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=examples>Examples<a class=headerlink href=#examples title="Permanent link">&para;</a></h1> <p>This page provides examples of using DeepCritical for various research tasks.</p> <h2 id=basic-research-query>Basic Research Query<a class=headerlink href=#basic-research-query title="Permanent link">&para;</a></h2> <h3 id=example-1-drug-information>Example 1: Drug Information<a class=headerlink href=#example-1-drug-information title="Permanent link">&para;</a></h3> <p><strong>Query</strong>: <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a>What are the latest treatments for Alzheimer&#39;s disease?
2
- </code></pre></div></p> <p><strong>What DeepCritical Does</strong>: 1. Searches PubMed for recent papers 2. Searches ClinicalTrials.gov for active trials 3. Evaluates evidence quality 4. Synthesizes findings into a comprehensive report</p> <h3 id=example-2-clinical-trial-search>Example 2: Clinical Trial Search<a class=headerlink href=#example-2-clinical-trial-search title="Permanent link">&para;</a></h3> <p><strong>Query</strong>: <div class=highlight><pre><span></span><code><a id=__codelineno-1-1 name=__codelineno-1-1 href=#__codelineno-1-1></a>What clinical trials are investigating metformin for cancer prevention?
3
- </code></pre></div></p> <p><strong>What DeepCritical Does</strong>: 1. Searches ClinicalTrials.gov for relevant trials 2. Searches PubMed for supporting literature 3. Provides trial details and status 4. Summarizes findings</p> <h2 id=advanced-research-queries>Advanced Research Queries<a class=headerlink href=#advanced-research-queries title="Permanent link">&para;</a></h2> <h3 id=example-3-comprehensive-review>Example 3: Comprehensive Review<a class=headerlink href=#example-3-comprehensive-review title="Permanent link">&para;</a></h3> <p><strong>Query</strong>: <div class=highlight><pre><span></span><code><a id=__codelineno-2-1 name=__codelineno-2-1 href=#__codelineno-2-1></a>Review the evidence for using metformin as an anti-aging intervention,
4
- <a id=__codelineno-2-2 name=__codelineno-2-2 href=#__codelineno-2-2></a>including clinical trials, mechanisms of action, and safety profile.
5
- </code></pre></div></p> <p><strong>What DeepCritical Does</strong>: 1. Uses deep research mode (multi-section) 2. Searches multiple sources in parallel 3. Generates sections on: - Clinical trials - Mechanisms of action - Safety profile 4. Synthesizes comprehensive report</p> <h3 id=example-4-hypothesis-testing>Example 4: Hypothesis Testing<a class=headerlink href=#example-4-hypothesis-testing title="Permanent link">&para;</a></h3> <p><strong>Query</strong>: <div class=highlight><pre><span></span><code><a id=__codelineno-3-1 name=__codelineno-3-1 href=#__codelineno-3-1></a>Test the hypothesis that regular exercise reduces Alzheimer&#39;s disease risk.
6
- </code></pre></div></p> <p><strong>What DeepCritical Does</strong>: 1. Generates testable hypotheses 2. Searches for supporting/contradicting evidence 3. Performs statistical analysis (if Modal configured) 4. Provides verdict: SUPPORTED, REFUTED, or INCONCLUSIVE</p> <h2 id=mcp-tool-examples>MCP Tool Examples<a class=headerlink href=#mcp-tool-examples title="Permanent link">&para;</a></h2> <h3 id=using-search_pubmed>Using search_pubmed<a class=headerlink href=#using-search_pubmed title="Permanent link">&para;</a></h3> <div class=highlight><pre><span></span><code><a id=__codelineno-4-1 name=__codelineno-4-1 href=#__codelineno-4-1></a>Search PubMed for &quot;CRISPR gene editing cancer therapy&quot;
7
- </code></pre></div> <h3 id=using-search_clinical_trials>Using search_clinical_trials<a class=headerlink href=#using-search_clinical_trials title="Permanent link">&para;</a></h3> <div class=highlight><pre><span></span><code><a id=__codelineno-5-1 name=__codelineno-5-1 href=#__codelineno-5-1></a>Find active clinical trials for &quot;diabetes type 2 treatment&quot;
8
- </code></pre></div> <h3 id=using-search_all>Using search_all<a class=headerlink href=#using-search_all title="Permanent link">&para;</a></h3> <div class=highlight><pre><span></span><code><a id=__codelineno-6-1 name=__codelineno-6-1 href=#__codelineno-6-1></a>Search all sources for &quot;COVID-19 vaccine side effects&quot;
9
- </code></pre></div> <h3 id=using-analyze_hypothesis>Using analyze_hypothesis<a class=headerlink href=#using-analyze_hypothesis title="Permanent link">&para;</a></h3> <div class=highlight><pre><span></span><code><a id=__codelineno-7-1 name=__codelineno-7-1 href=#__codelineno-7-1></a>Analyze whether vitamin D supplementation reduces COVID-19 severity
10
- </code></pre></div> <h2 id=code-examples>Code Examples<a class=headerlink href=#code-examples title="Permanent link">&para;</a></h2> <h3 id=python-api-usage>Python API Usage<a class=headerlink href=#python-api-usage title="Permanent link">&para;</a></h3> <div class=highlight><pre><span></span><code><a id=__codelineno-8-1 name=__codelineno-8-1 href=#__codelineno-8-1></a><span class=kn>from</span><span class=w> </span><span class=nn>src.orchestrator_factory</span><span class=w> </span><span class=kn>import</span> <span class=n>create_orchestrator</span>
11
- <a id=__codelineno-8-2 name=__codelineno-8-2 href=#__codelineno-8-2></a><span class=kn>from</span><span class=w> </span><span class=nn>src.tools.search_handler</span><span class=w> </span><span class=kn>import</span> <span class=n>SearchHandler</span>
12
- <a id=__codelineno-8-3 name=__codelineno-8-3 href=#__codelineno-8-3></a><span class=kn>from</span><span class=w> </span><span class=nn>src.agent_factory.judges</span><span class=w> </span><span class=kn>import</span> <span class=n>create_judge_handler</span>
13
- <a id=__codelineno-8-4 name=__codelineno-8-4 href=#__codelineno-8-4></a>
14
- <a id=__codelineno-8-5 name=__codelineno-8-5 href=#__codelineno-8-5></a><span class=c1># Create orchestrator</span>
15
- <a id=__codelineno-8-6 name=__codelineno-8-6 href=#__codelineno-8-6></a><span class=n>search_handler</span> <span class=o>=</span> <span class=n>SearchHandler</span><span class=p>()</span>
16
- <a id=__codelineno-8-7 name=__codelineno-8-7 href=#__codelineno-8-7></a><span class=n>judge_handler</span> <span class=o>=</span> <span class=n>create_judge_handler</span><span class=p>()</span>
17
- </code></pre></div> <div class=highlight><pre><span></span><code><a id=__codelineno-9-1 name=__codelineno-9-1 href=#__codelineno-9-1></a><span class=c1># Run research query</span>
18
- <a id=__codelineno-9-2 name=__codelineno-9-2 href=#__codelineno-9-2></a><span class=n>query</span> <span class=o>=</span> <span class=s2>&quot;What are the latest treatments for Alzheimer&#39;s disease?&quot;</span>
19
- <a id=__codelineno-9-3 name=__codelineno-9-3 href=#__codelineno-9-3></a><span class=k>async</span> <span class=k>for</span> <span class=n>event</span> <span class=ow>in</span> <span class=n>orchestrator</span><span class=o>.</span><span class=n>run</span><span class=p>(</span><span class=n>query</span><span class=p>):</span>
20
- <a id=__codelineno-9-4 name=__codelineno-9-4 href=#__codelineno-9-4></a> <span class=nb>print</span><span class=p>(</span><span class=sa>f</span><span class=s2>&quot;Event: </span><span class=si>{</span><span class=n>event</span><span class=o>.</span><span class=n>type</span><span class=si>}</span><span class=s2> - </span><span class=si>{</span><span class=n>event</span><span class=o>.</span><span class=n>data</span><span class=si>}</span><span class=s2>&quot;</span><span class=p>)</span>
21
- </code></pre></div> <h3 id=gradio-ui-integration>Gradio UI Integration<a class=headerlink href=#gradio-ui-integration title="Permanent link">&para;</a></h3> <div class=highlight><pre><span></span><code><a id=__codelineno-10-1 name=__codelineno-10-1 href=#__codelineno-10-1></a><span class=kn>import</span><span class=w> </span><span class=nn>gradio</span><span class=w> </span><span class=k>as</span><span class=w> </span><span class=nn>gr</span>
22
- <a id=__codelineno-10-2 name=__codelineno-10-2 href=#__codelineno-10-2></a><span class=kn>from</span><span class=w> </span><span class=nn>src.app</span><span class=w> </span><span class=kn>import</span> <span class=n>create_research_interface</span>
23
- <a id=__codelineno-10-3 name=__codelineno-10-3 href=#__codelineno-10-3></a>
24
- <a id=__codelineno-10-4 name=__codelineno-10-4 href=#__codelineno-10-4></a><span class=c1># Create interface</span>
25
- <a id=__codelineno-10-5 name=__codelineno-10-5 href=#__codelineno-10-5></a><span class=n>interface</span> <span class=o>=</span> <span class=n>create_research_interface</span><span class=p>()</span>
26
- <a id=__codelineno-10-6 name=__codelineno-10-6 href=#__codelineno-10-6></a>
27
- <a id=__codelineno-10-7 name=__codelineno-10-7 href=#__codelineno-10-7></a><span class=c1># Launch</span>
28
- <a id=__codelineno-10-8 name=__codelineno-10-8 href=#__codelineno-10-8></a><span class=n>interface</span><span class=o>.</span><span class=n>launch</span><span class=p>(</span><span class=n>server_name</span><span class=o>=</span><span class=s2>&quot;0.0.0.0&quot;</span><span class=p>,</span> <span class=n>server_port</span><span class=o>=</span><span class=mi>7860</span><span class=p>)</span>
29
- </code></pre></div> <h2 id=research-patterns>Research Patterns<a class=headerlink href=#research-patterns title="Permanent link">&para;</a></h2> <h3 id=iterative-research>Iterative Research<a class=headerlink href=#iterative-research title="Permanent link">&para;</a></h3> <p>Single-loop research with search-judge-synthesize cycles:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-11-1 name=__codelineno-11-1 href=#__codelineno-11-1></a><span class=kn>from</span><span class=w> </span><span class=nn>src.orchestrator.research_flow</span><span class=w> </span><span class=kn>import</span> <span class=n>IterativeResearchFlow</span>
30
- </code></pre></div> <div class=highlight><pre><span></span><code><a id=__codelineno-12-1 name=__codelineno-12-1 href=#__codelineno-12-1></a><span class=k>async</span> <span class=k>for</span> <span class=n>event</span> <span class=ow>in</span> <span class=n>flow</span><span class=o>.</span><span class=n>run</span><span class=p>(</span><span class=n>query</span><span class=p>):</span>
31
- <a id=__codelineno-12-2 name=__codelineno-12-2 href=#__codelineno-12-2></a> <span class=c1># Handle events</span>
32
- <a id=__codelineno-12-3 name=__codelineno-12-3 href=#__codelineno-12-3></a> <span class=k>pass</span>
33
- </code></pre></div> <h3 id=deep-research>Deep Research<a class=headerlink href=#deep-research title="Permanent link">&para;</a></h3> <p>Multi-section parallel research:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-13-1 name=__codelineno-13-1 href=#__codelineno-13-1></a><span class=kn>from</span><span class=w> </span><span class=nn>src.orchestrator.research_flow</span><span class=w> </span><span class=kn>import</span> <span class=n>DeepResearchFlow</span>
34
- </code></pre></div> <div class=highlight><pre><span></span><code><a id=__codelineno-14-1 name=__codelineno-14-1 href=#__codelineno-14-1></a><span class=k>async</span> <span class=k>for</span> <span class=n>event</span> <span class=ow>in</span> <span class=n>flow</span><span class=o>.</span><span class=n>run</span><span class=p>(</span><span class=n>query</span><span class=p>):</span>
35
- <a id=__codelineno-14-2 name=__codelineno-14-2 href=#__codelineno-14-2></a> <span class=c1># Handle events</span>
36
- <a id=__codelineno-14-3 name=__codelineno-14-3 href=#__codelineno-14-3></a> <span class=k>pass</span>
37
- </code></pre></div> <h2 id=configuration-examples>Configuration Examples<a class=headerlink href=#configuration-examples title="Permanent link">&para;</a></h2> <h3 id=basic-configuration>Basic Configuration<a class=headerlink href=#basic-configuration title="Permanent link">&para;</a></h3> <div class=highlight><pre><span></span><code><a id=__codelineno-15-1 name=__codelineno-15-1 href=#__codelineno-15-1></a><span class=c1># .env file</span>
38
- <a id=__codelineno-15-2 name=__codelineno-15-2 href=#__codelineno-15-2></a><span class=nv>LLM_PROVIDER</span><span class=o>=</span>openai
39
- <a id=__codelineno-15-3 name=__codelineno-15-3 href=#__codelineno-15-3></a><span class=nv>OPENAI_API_KEY</span><span class=o>=</span>your_key_here
40
- <a id=__codelineno-15-4 name=__codelineno-15-4 href=#__codelineno-15-4></a><span class=nv>MAX_ITERATIONS</span><span class=o>=</span><span class=m>10</span>
41
- </code></pre></div> <h3 id=advanced-configuration>Advanced Configuration<a class=headerlink href=#advanced-configuration title="Permanent link">&para;</a></h3> <div class=highlight><pre><span></span><code><a id=__codelineno-16-1 name=__codelineno-16-1 href=#__codelineno-16-1></a><span class=c1># .env file</span>
42
- <a id=__codelineno-16-2 name=__codelineno-16-2 href=#__codelineno-16-2></a><span class=nv>LLM_PROVIDER</span><span class=o>=</span>anthropic
43
- <a id=__codelineno-16-3 name=__codelineno-16-3 href=#__codelineno-16-3></a><span class=nv>ANTHROPIC_API_KEY</span><span class=o>=</span>your_key_here
44
- <a id=__codelineno-16-4 name=__codelineno-16-4 href=#__codelineno-16-4></a><span class=nv>EMBEDDING_PROVIDER</span><span class=o>=</span><span class=nb>local</span>
45
- <a id=__codelineno-16-5 name=__codelineno-16-5 href=#__codelineno-16-5></a><span class=nv>WEB_SEARCH_PROVIDER</span><span class=o>=</span>duckduckgo
46
- <a id=__codelineno-16-6 name=__codelineno-16-6 href=#__codelineno-16-6></a><span class=nv>MAX_ITERATIONS</span><span class=o>=</span><span class=m>20</span>
47
- <a id=__codelineno-16-7 name=__codelineno-16-7 href=#__codelineno-16-7></a><span class=nv>DEFAULT_TOKEN_LIMIT</span><span class=o>=</span><span class=m>200000</span>
48
- <a id=__codelineno-16-8 name=__codelineno-16-8 href=#__codelineno-16-8></a><span class=nv>USE_GRAPH_EXECUTION</span><span class=o>=</span><span class=nb>true</span>
49
- </code></pre></div> <h2 id=next-steps>Next Steps<a class=headerlink href=#next-steps title="Permanent link">&para;</a></h2> <ul> <li>Read the <a href=../../configuration/ >Configuration Guide</a> for all options</li> <li>Explore the <a href=../../architecture/graph-orchestration/ >Architecture Documentation</a></li> <li>Check out the <a href=../../api/agents/ >API Reference</a> for programmatic usage</li> </ul> </article> </div> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=github.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title=huggingface.co class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> </body> </html>
 
1
+ <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DeepCritical Team"><link href=https://deepcritical.github.io/GradioDemo/getting-started/examples/ rel=canonical><link href=../mcp-integration/ rel=prev><link href=../../configuration/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Examples - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><link rel=stylesheet href=../../css/timeago.css><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#examples class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Examples </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../../architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../../contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_3 checked> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=true> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../quick-start/ class=md-nav__link> <span class=md-ellipsis> Single Command Deploy </span> </a> </li> <li class=md-nav__item> <a href=../mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Examples </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Examples </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#basic-research-query class=md-nav__link> <span class=md-ellipsis> Basic Research Query </span> </a> <nav class=md-nav aria-label="Basic Research Query"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#example-1-drug-information class=md-nav__link> <span class=md-ellipsis> Example 1: Drug Information </span> </a> </li> <li class=md-nav__item> <a href=#example-2-clinical-trial-search class=md-nav__link> <span class=md-ellipsis> Example 2: Clinical Trial Search </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#advanced-research-queries class=md-nav__link> <span class=md-ellipsis> Advanced Research Queries </span> </a> <nav class=md-nav aria-label="Advanced Research Queries"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#example-3-comprehensive-review class=md-nav__link> <span class=md-ellipsis> Example 3: Comprehensive Review </span> </a> </li> <li class=md-nav__item> <a href=#example-4-hypothesis-testing class=md-nav__link> <span class=md-ellipsis> Example 4: Hypothesis Testing </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#mcp-tool-examples class=md-nav__link> <span class=md-ellipsis> MCP Tool Examples </span> </a> <nav class=md-nav aria-label="MCP Tool Examples"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#using-search_pubmed class=md-nav__link> <span class=md-ellipsis> Using search_pubmed </span> </a> </li> <li class=md-nav__item> <a href=#using-search_clinical_trials class=md-nav__link> <span class=md-ellipsis> Using search_clinical_trials </span> </a> </li> <li class=md-nav__item> <a href=#using-search_all class=md-nav__link> <span class=md-ellipsis> Using search_all </span> </a> </li> <li class=md-nav__item> <a href=#using-analyze_hypothesis class=md-nav__link> <span class=md-ellipsis> Using analyze_hypothesis </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#code-examples class=md-nav__link> <span class=md-ellipsis> Code Examples </span> </a> <nav class=md-nav aria-label="Code Examples"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#python-api-usage class=md-nav__link> <span class=md-ellipsis> Python API Usage </span> </a> </li> <li class=md-nav__item> <a href=#gradio-ui-integration class=md-nav__link> <span class=md-ellipsis> Gradio UI Integration </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#research-patterns class=md-nav__link> <span class=md-ellipsis> Research Patterns </span> </a> <nav class=md-nav aria-label="Research Patterns"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#iterative-research class=md-nav__link> <span class=md-ellipsis> Iterative Research </span> </a> </li> <li class=md-nav__item> <a href=#deep-research class=md-nav__link> <span class=md-ellipsis> Deep Research </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#configuration-examples class=md-nav__link> <span class=md-ellipsis> Configuration Examples </span> </a> <nav class=md-nav aria-label="Configuration Examples"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#basic-configuration class=md-nav__link> <span class=md-ellipsis> Basic Configuration </span> </a> </li> <li class=md-nav__item> <a href=#advanced-configuration class=md-nav__link> <span class=md-ellipsis> Advanced Configuration </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#next-steps class=md-nav__link> <span class=md-ellipsis> Next Steps </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <div class="md-nav__link md-nav__container"> <a href=../../configuration/ class="md-nav__link "> <span class=md-ellipsis> Configuration </span> </a> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <div class="md-nav__link md-nav__container"> <a href=../../contributing/ class="md-nav__link "> <span class=md-ellipsis> Contributing </span> </a> <label class="md-nav__link " for=__nav_7 id=__nav_7_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=examples>Examples<a class=headerlink href=#examples title="Anchor link to this section">&para;</a></h1> <p>This page provides examples of using The DETERMINATOR for various research tasks.</p> <h2 id=basic-research-query>Basic Research Query<a class=headerlink href=#basic-research-query title="Anchor link to this section">&para;</a></h2> <h3 id=example-1-drug-information>Example 1: Drug Information<a class=headerlink href=#example-1-drug-information title="Anchor link to this section">&para;</a></h3> <p><strong>Query</strong>: <div class="language-text highlight"><pre><span></span><code><span id=__span-0-1><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a>What are the latest treatments for Alzheimer&#39;s disease?
2
+ </span></code></pre></div></p> <p><strong>What The DETERMINATOR Does</strong>: 1. Searches PubMed for recent papers 2. Searches ClinicalTrials.gov for active trials 3. Evaluates evidence quality 4. Synthesizes findings into a comprehensive report</p> <h3 id=example-2-clinical-trial-search>Example 2: Clinical Trial Search<a class=headerlink href=#example-2-clinical-trial-search title="Anchor link to this section">&para;</a></h3> <p><strong>Query</strong>: <div class="language-text highlight"><pre><span></span><code><span id=__span-1-1><a id=__codelineno-1-1 name=__codelineno-1-1 href=#__codelineno-1-1></a>What clinical trials are investigating metformin for cancer prevention?
3
+ </span></code></pre></div></p> <p><strong>What The DETERMINATOR Does</strong>:</p> <ol> <li>Searches ClinicalTrials.gov for relevant trials</li> <li>Searches PubMed for supporting literature</li> <li>Provides trial details and status</li> <li>Summarizes findings</li> </ol> <h2 id=advanced-research-queries>Advanced Research Queries<a class=headerlink href=#advanced-research-queries title="Anchor link to this section">&para;</a></h2> <h3 id=example-3-comprehensive-review>Example 3: Comprehensive Review<a class=headerlink href=#example-3-comprehensive-review title="Anchor link to this section">&para;</a></h3> <p><strong>Query</strong>:</p> <div class="language-text highlight"><pre><span></span><code><span id=__span-2-1><a id=__codelineno-2-1 name=__codelineno-2-1 href=#__codelineno-2-1></a>Review the evidence for using metformin as an anti-aging intervention,
4
+ </span><span id=__span-2-2><a id=__codelineno-2-2 name=__codelineno-2-2 href=#__codelineno-2-2></a>including clinical trials, mechanisms of action, and safety profile.
5
+ </span></code></pre></div> <p><strong>What The DETERMINATOR Does</strong>: 1. Uses deep research mode (multi-section) 2. Searches multiple sources in parallel 3. Generates sections on: - Clinical trials - Mechanisms of action - Safety profile 4. Synthesizes comprehensive report</p> <h3 id=example-4-hypothesis-testing>Example 4: Hypothesis Testing<a class=headerlink href=#example-4-hypothesis-testing title="Anchor link to this section">&para;</a></h3> <p><strong>Query</strong>: <div class="language-text highlight"><pre><span></span><code><span id=__span-3-1><a id=__codelineno-3-1 name=__codelineno-3-1 href=#__codelineno-3-1></a>Test the hypothesis that regular exercise reduces Alzheimer&#39;s disease risk.
6
+ </span></code></pre></div></p> <p><strong>What The DETERMINATOR Does</strong>: 1. Generates testable hypotheses 2. Searches for supporting/contradicting evidence 3. Performs statistical analysis (if Modal configured) 4. Provides verdict: SUPPORTED, REFUTED, or INCONCLUSIVE</p> <h2 id=mcp-tool-examples>MCP Tool Examples<a class=headerlink href=#mcp-tool-examples title="Anchor link to this section">&para;</a></h2> <h3 id=using-search_pubmed>Using search_pubmed<a class=headerlink href=#using-search_pubmed title="Anchor link to this section">&para;</a></h3> <div class="language-text highlight"><pre><span></span><code><span id=__span-4-1><a id=__codelineno-4-1 name=__codelineno-4-1 href=#__codelineno-4-1></a>Search PubMed for &quot;CRISPR gene editing cancer therapy&quot;
7
+ </span></code></pre></div> <h3 id=using-search_clinical_trials>Using search_clinical_trials<a class=headerlink href=#using-search_clinical_trials title="Anchor link to this section">&para;</a></h3> <div class="language-text highlight"><pre><span></span><code><span id=__span-5-1><a id=__codelineno-5-1 name=__codelineno-5-1 href=#__codelineno-5-1></a>Find active clinical trials for &quot;diabetes type 2 treatment&quot;
8
+ </span></code></pre></div> <h3 id=using-search_all>Using search_all<a class=headerlink href=#using-search_all title="Anchor link to this section">&para;</a></h3> <div class="language-text highlight"><pre><span></span><code><span id=__span-6-1><a id=__codelineno-6-1 name=__codelineno-6-1 href=#__codelineno-6-1></a>Search all sources for &quot;COVID-19 vaccine side effects&quot;
9
+ </span></code></pre></div> <h3 id=using-analyze_hypothesis>Using analyze_hypothesis<a class=headerlink href=#using-analyze_hypothesis title="Anchor link to this section">&para;</a></h3> <div class="language-text highlight"><pre><span></span><code><span id=__span-7-1><a id=__codelineno-7-1 name=__codelineno-7-1 href=#__codelineno-7-1></a>Analyze whether vitamin D supplementation reduces COVID-19 severity
10
+ </span></code></pre></div> <h2 id=code-examples>Code Examples<a class=headerlink href=#code-examples title="Anchor link to this section">&para;</a></h2> <h3 id=python-api-usage>Python API Usage<a class=headerlink href=#python-api-usage title="Anchor link to this section">&para;</a></h3> <div class="language-python highlight"><pre><span></span><code><span id=__span-8-1><a id=__codelineno-8-1 name=__codelineno-8-1 href=#__codelineno-8-1></a><span class=kn>from</span><span class=w> </span><span class=nn>src.orchestrator_factory</span><span class=w> </span><span class=kn>import</span> <span class=n>create_orchestrator</span>
11
+ </span><span id=__span-8-2><a id=__codelineno-8-2 name=__codelineno-8-2 href=#__codelineno-8-2></a><span class=kn>from</span><span class=w> </span><span class=nn>src.tools.search_handler</span><span class=w> </span><span class=kn>import</span> <span class=n>SearchHandler</span>
12
+ </span><span id=__span-8-3><a id=__codelineno-8-3 name=__codelineno-8-3 href=#__codelineno-8-3></a><span class=kn>from</span><span class=w> </span><span class=nn>src.agent_factory.judges</span><span class=w> </span><span class=kn>import</span> <span class=n>create_judge_handler</span>
13
+ </span><span id=__span-8-4><a id=__codelineno-8-4 name=__codelineno-8-4 href=#__codelineno-8-4></a>
14
+ </span><span id=__span-8-5><a id=__codelineno-8-5 name=__codelineno-8-5 href=#__codelineno-8-5></a><span class=c1># Create orchestrator</span>
15
+ </span><span id=__span-8-6><a id=__codelineno-8-6 name=__codelineno-8-6 href=#__codelineno-8-6></a><span class=n>search_handler</span> <span class=o>=</span> <span class=n>SearchHandler</span><span class=p>()</span>
16
+ </span><span id=__span-8-7><a id=__codelineno-8-7 name=__codelineno-8-7 href=#__codelineno-8-7></a><span class=n>judge_handler</span> <span class=o>=</span> <span class=n>create_judge_handler</span><span class=p>()</span>
17
+ </span></code></pre></div> <div class="language-python highlight"><pre><span></span><code><span id=__span-9-1><a id=__codelineno-9-1 name=__codelineno-9-1 href=#__codelineno-9-1></a><span class=c1># Run research query</span>
18
+ </span><span id=__span-9-2><a id=__codelineno-9-2 name=__codelineno-9-2 href=#__codelineno-9-2></a><span class=n>query</span> <span class=o>=</span> <span class=s2>&quot;What are the latest treatments for Alzheimer&#39;s disease?&quot;</span>
19
+ </span><span id=__span-9-3><a id=__codelineno-9-3 name=__codelineno-9-3 href=#__codelineno-9-3></a><span class=k>async</span> <span class=k>for</span> <span class=n>event</span> <span class=ow>in</span> <span class=n>orchestrator</span><span class=o>.</span><span class=n>run</span><span class=p>(</span><span class=n>query</span><span class=p>):</span>
20
+ </span><span id=__span-9-4><a id=__codelineno-9-4 name=__codelineno-9-4 href=#__codelineno-9-4></a> <span class=nb>print</span><span class=p>(</span><span class=sa>f</span><span class=s2>&quot;Event: </span><span class=si>{</span><span class=n>event</span><span class=o>.</span><span class=n>type</span><span class=si>}</span><span class=s2> - </span><span class=si>{</span><span class=n>event</span><span class=o>.</span><span class=n>data</span><span class=si>}</span><span class=s2>&quot;</span><span class=p>)</span>
21
+ </span></code></pre></div> <h3 id=gradio-ui-integration>Gradio UI Integration<a class=headerlink href=#gradio-ui-integration title="Anchor link to this section">&para;</a></h3> <div class="language-python highlight"><pre><span></span><code><span id=__span-10-1><a id=__codelineno-10-1 name=__codelineno-10-1 href=#__codelineno-10-1></a><span class=kn>import</span><span class=w> </span><span class=nn>gradio</span><span class=w> </span><span class=k>as</span><span class=w> </span><span class=nn>gr</span>
22
+ </span><span id=__span-10-2><a id=__codelineno-10-2 name=__codelineno-10-2 href=#__codelineno-10-2></a><span class=kn>from</span><span class=w> </span><span class=nn>src.app</span><span class=w> </span><span class=kn>import</span> <span class=n>create_research_interface</span>
23
+ </span><span id=__span-10-3><a id=__codelineno-10-3 name=__codelineno-10-3 href=#__codelineno-10-3></a>
24
+ </span><span id=__span-10-4><a id=__codelineno-10-4 name=__codelineno-10-4 href=#__codelineno-10-4></a><span class=c1># Create interface</span>
25
+ </span><span id=__span-10-5><a id=__codelineno-10-5 name=__codelineno-10-5 href=#__codelineno-10-5></a><span class=n>interface</span> <span class=o>=</span> <span class=n>create_research_interface</span><span class=p>()</span>
26
+ </span><span id=__span-10-6><a id=__codelineno-10-6 name=__codelineno-10-6 href=#__codelineno-10-6></a>
27
+ </span><span id=__span-10-7><a id=__codelineno-10-7 name=__codelineno-10-7 href=#__codelineno-10-7></a><span class=c1># Launch</span>
28
+ </span><span id=__span-10-8><a id=__codelineno-10-8 name=__codelineno-10-8 href=#__codelineno-10-8></a><span class=n>interface</span><span class=o>.</span><span class=n>launch</span><span class=p>(</span><span class=n>server_name</span><span class=o>=</span><span class=s2>&quot;0.0.0.0&quot;</span><span class=p>,</span> <span class=n>server_port</span><span class=o>=</span><span class=mi>7860</span><span class=p>)</span>
29
+ </span></code></pre></div> <h2 id=research-patterns>Research Patterns<a class=headerlink href=#research-patterns title="Anchor link to this section">&para;</a></h2> <h3 id=iterative-research>Iterative Research<a class=headerlink href=#iterative-research title="Anchor link to this section">&para;</a></h3> <p>Single-loop research with search-judge-synthesize cycles:</p> <div class="language-python highlight"><pre><span></span><code><span id=__span-11-1><a id=__codelineno-11-1 name=__codelineno-11-1 href=#__codelineno-11-1></a><span class=kn>from</span><span class=w> </span><span class=nn>src.orchestrator.research_flow</span><span class=w> </span><span class=kn>import</span> <span class=n>IterativeResearchFlow</span>
30
+ </span></code></pre></div> <div class="language-python highlight"><pre><span></span><code><span id=__span-12-1><a id=__codelineno-12-1 name=__codelineno-12-1 href=#__codelineno-12-1></a><span class=k>async</span> <span class=k>for</span> <span class=n>event</span> <span class=ow>in</span> <span class=n>flow</span><span class=o>.</span><span class=n>run</span><span class=p>(</span><span class=n>query</span><span class=p>):</span>
31
+ </span><span id=__span-12-2><a id=__codelineno-12-2 name=__codelineno-12-2 href=#__codelineno-12-2></a> <span class=c1># Handle events</span>
32
+ </span><span id=__span-12-3><a id=__codelineno-12-3 name=__codelineno-12-3 href=#__codelineno-12-3></a> <span class=k>pass</span>
33
+ </span></code></pre></div> <h3 id=deep-research>Deep Research<a class=headerlink href=#deep-research title="Anchor link to this section">&para;</a></h3> <p>Multi-section parallel research:</p> <div class="language-python highlight"><pre><span></span><code><span id=__span-13-1><a id=__codelineno-13-1 name=__codelineno-13-1 href=#__codelineno-13-1></a><span class=kn>from</span><span class=w> </span><span class=nn>src.orchestrator.research_flow</span><span class=w> </span><span class=kn>import</span> <span class=n>DeepResearchFlow</span>
34
+ </span></code></pre></div> <div class="language-python highlight"><pre><span></span><code><span id=__span-14-1><a id=__codelineno-14-1 name=__codelineno-14-1 href=#__codelineno-14-1></a><span class=k>async</span> <span class=k>for</span> <span class=n>event</span> <span class=ow>in</span> <span class=n>flow</span><span class=o>.</span><span class=n>run</span><span class=p>(</span><span class=n>query</span><span class=p>):</span>
35
+ </span><span id=__span-14-2><a id=__codelineno-14-2 name=__codelineno-14-2 href=#__codelineno-14-2></a> <span class=c1># Handle events</span>
36
+ </span><span id=__span-14-3><a id=__codelineno-14-3 name=__codelineno-14-3 href=#__codelineno-14-3></a> <span class=k>pass</span>
37
+ </span></code></pre></div> <h2 id=configuration-examples>Configuration Examples<a class=headerlink href=#configuration-examples title="Anchor link to this section">&para;</a></h2> <h3 id=basic-configuration>Basic Configuration<a class=headerlink href=#basic-configuration title="Anchor link to this section">&para;</a></h3> <div class="language-bash highlight"><pre><span></span><code><span id=__span-15-1><a id=__codelineno-15-1 name=__codelineno-15-1 href=#__codelineno-15-1></a><span class=c1># .env file</span>
38
+ </span><span id=__span-15-2><a id=__codelineno-15-2 name=__codelineno-15-2 href=#__codelineno-15-2></a><span class=nv>LLM_PROVIDER</span><span class=o>=</span>openai
39
+ </span><span id=__span-15-3><a id=__codelineno-15-3 name=__codelineno-15-3 href=#__codelineno-15-3></a><span class=nv>OPENAI_API_KEY</span><span class=o>=</span>your_key_here
40
+ </span><span id=__span-15-4><a id=__codelineno-15-4 name=__codelineno-15-4 href=#__codelineno-15-4></a><span class=nv>MAX_ITERATIONS</span><span class=o>=</span><span class=m>10</span>
41
+ </span></code></pre></div> <h3 id=advanced-configuration>Advanced Configuration<a class=headerlink href=#advanced-configuration title="Anchor link to this section">&para;</a></h3> <div class="language-bash highlight"><pre><span></span><code><span id=__span-16-1><a id=__codelineno-16-1 name=__codelineno-16-1 href=#__codelineno-16-1></a><span class=c1># .env file</span>
42
+ </span><span id=__span-16-2><a id=__codelineno-16-2 name=__codelineno-16-2 href=#__codelineno-16-2></a><span class=nv>LLM_PROVIDER</span><span class=o>=</span>anthropic
43
+ </span><span id=__span-16-3><a id=__codelineno-16-3 name=__codelineno-16-3 href=#__codelineno-16-3></a><span class=nv>ANTHROPIC_API_KEY</span><span class=o>=</span>your_key_here
44
+ </span><span id=__span-16-4><a id=__codelineno-16-4 name=__codelineno-16-4 href=#__codelineno-16-4></a><span class=nv>EMBEDDING_PROVIDER</span><span class=o>=</span><span class=nb>local</span>
45
+ </span><span id=__span-16-5><a id=__codelineno-16-5 name=__codelineno-16-5 href=#__codelineno-16-5></a><span class=nv>WEB_SEARCH_PROVIDER</span><span class=o>=</span>duckduckgo
46
+ </span><span id=__span-16-6><a id=__codelineno-16-6 name=__codelineno-16-6 href=#__codelineno-16-6></a><span class=nv>MAX_ITERATIONS</span><span class=o>=</span><span class=m>20</span>
47
+ </span><span id=__span-16-7><a id=__codelineno-16-7 name=__codelineno-16-7 href=#__codelineno-16-7></a><span class=nv>DEFAULT_TOKEN_LIMIT</span><span class=o>=</span><span class=m>200000</span>
48
+ </span><span id=__span-16-8><a id=__codelineno-16-8 name=__codelineno-16-8 href=#__codelineno-16-8></a><span class=nv>USE_GRAPH_EXECUTION</span><span class=o>=</span><span class=nb>true</span>
49
+ </span></code></pre></div> <h2 id=next-steps>Next Steps<a class=headerlink href=#next-steps title="Anchor link to this section">&para;</a></h2> <ul> <li>Read the <a href=../../configuration/ >Configuration Guide</a> for all options</li> <li>Explore the <a href=../../architecture/graph_orchestration/ >Architecture Documentation</a></li> <li>Check out the <a href=../../api/agents/ >API Reference</a> for programmatic usage</li> </ul> <aside class=md-source-file> <span class=md-source-file__fact> <span class=md-icon title="Last update"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="December 2, 2025 01:35:56 UTC"><span class=timeago datetime=2025-12-02T01:35:56+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="December 2, 2025 01:35:56 UTC">2025-12-02</span> </span> <span class=md-source-file__fact> <span class=md-icon title=Created> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M14.47 15.08 11 13V7h1.5v5.25l3.08 1.83c-.41.28-.79.62-1.11 1m-1.39 4.84c-.36.05-.71.08-1.08.08-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8c0 .37-.03.72-.08 1.08.69.1 1.33.32 1.92.64.1-.56.16-1.13.16-1.72 0-5.5-4.5-10-10-10S2 6.5 2 12s4.47 10 10 10c.59 0 1.16-.06 1.72-.16-.32-.59-.54-1.23-.64-1.92M18 15v3h-3v2h3v3h2v-3h3v-2h-3v-3z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="November 29, 2025 21:40:26 UTC"><span class=timeago datetime=2025-11-29T21:40:26+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="November 29, 2025 21:40:26 UTC">2025-11-29</span> </span> </aside> </article> </div> <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=GitHub class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://twitter.com/josephpollack target=_blank rel=noopener title=Twitter class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M459.4 151.7c.3 4.5.3 9.1.3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103v-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53C87.4 130.8 165 172.4 252.1 176.9c-1.6-7.8-2.6-15.9-2.6-24C249.5 95.1 296.3 48 354.4 48c30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title="Live Demo" class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> <a href=https://discord.gg/n8ytYeh25n target=_blank rel=noopener title=Discord class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 576 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M492.5 69.8c-.2-.3-.4-.6-.8-.7-38.1-17.5-78.4-30-119.7-37.1-.4-.1-.8 0-1.1.1s-.6.4-.8.8c-5.5 9.9-10.5 20.2-14.9 30.6-44.6-6.8-89.9-6.8-134.4 0-4.5-10.5-9.5-20.7-15.1-30.6-.2-.3-.5-.6-.8-.8s-.7-.2-1.1-.2C162.5 39 122.2 51.5 84.1 69c-.3.1-.6.4-.8.7C7.1 183.5-13.8 294.6-3.6 404.2c0 .3.1.5.2.8s.3.4.5.6c44.4 32.9 94 58 146.8 74.2.4.1.8.1 1.1 0s.7-.4.9-.7c11.3-15.4 21.4-31.8 30-48.8.1-.2.2-.5.2-.8s0-.5-.1-.8-.2-.5-.4-.6-.4-.3-.7-.4c-15.8-6.1-31.2-13.4-45.9-21.9-.3-.2-.5-.4-.7-.6s-.3-.6-.3-.9 0-.6.2-.9.3-.5.6-.7c3.1-2.3 6.2-4.7 9.1-7.1.3-.2.6-.4.9-.4s.7 0 1 .1c96.2 43.9 200.4 43.9 295.5 0 .3-.1.7-.2 1-.2s.7.2.9.4c2.9 2.4 6 4.9 9.1 7.2.2.2.4.4.6.7s.2.6.2.9-.1.6-.3.9-.4.5-.6.6c-14.7 8.6-30 15.9-45.9 21.8-.2.1-.5.2-.7.4s-.3.4-.4.7-.1.5-.1.8.1.5.2.8c8.8 17 18.8 33.3 30 48.8.2.3.6.6.9.7s.8.1 1.1 0c52.9-16.2 102.6-41.3 147.1-74.2.2-.2.4-.4.5-.6s.2-.5.2-.8c12.3-126.8-20.5-236.9-86.9-334.5zm-302 267.7c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.4 59.2-52.8 59.2m195.4 0c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.2 59.2-52.8 59.2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "navigation.indexes", "navigation.instant", "navigation.tracking", "navigation.smooth", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy", "content.tabs.link", "content.tooltips", "toc.integrate"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> <script src=../../js/timeago.min.js></script> <script src=../../js/timeago_mkdocs_material.js></script> </body> </html>
site/getting-started/installation/index.html CHANGED
@@ -1,21 +1,27 @@
1
- <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DETERMINATOR Team"><link href=https://deepcritical.github.io/GradioDemo/getting-started/installation/ rel=canonical><link href=../../overview/features/ rel=prev><link href=../quick-start/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Installation - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#installation class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Installation </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=./ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/CONFIGURATION/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../../architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../../contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_3 checked> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=true> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Installation </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Installation </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#prerequisites class=md-nav__link> <span class=md-ellipsis> Prerequisites </span> </a> </li> <li class=md-nav__item> <a href=#installation-steps class=md-nav__link> <span class=md-ellipsis> Installation Steps </span> </a> <nav class=md-nav aria-label="Installation Steps"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#1-install-uv-recommended class=md-nav__link> <span class=md-ellipsis> 1. Install uv (Recommended) </span> </a> </li> <li class=md-nav__item> <a href=#2-clone-the-repository class=md-nav__link> <span class=md-ellipsis> 2. Clone the Repository </span> </a> </li> <li class=md-nav__item> <a href=#3-install-dependencies class=md-nav__link> <span class=md-ellipsis> 3. Install Dependencies </span> </a> </li> <li class=md-nav__item> <a href=#4-install-optional-dependencies class=md-nav__link> <span class=md-ellipsis> 4. Install Optional Dependencies </span> </a> </li> <li class=md-nav__item> <a href=#5-configure-environment-variables class=md-nav__link> <span class=md-ellipsis> 5. Configure Environment Variables </span> </a> </li> <li class=md-nav__item> <a href=#6-verify-installation class=md-nav__link> <span class=md-ellipsis> 6. Verify Installation </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#development-setup class=md-nav__link> <span class=md-ellipsis> Development Setup </span> </a> </li> <li class=md-nav__item> <a href=#troubleshooting class=md-nav__link> <span class=md-ellipsis> Troubleshooting </span> </a> <nav class=md-nav aria-label=Troubleshooting> <ul class=md-nav__list> <li class=md-nav__item> <a href=#common-issues class=md-nav__link> <span class=md-ellipsis> Common Issues </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#next-steps class=md-nav__link> <span class=md-ellipsis> Next Steps </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../quick-start/ class=md-nav__link> <span class=md-ellipsis> Quick Start Guide </span> </a> </li> <li class=md-nav__item> <a href=../mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <label class=md-nav__link for=__nav_4 id=__nav_4_label tabindex=0> <span class=md-ellipsis> Configuration </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../configuration/CONFIGURATION/ class=md-nav__link> <span class=md-ellipsis> Configuration Guide </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <label class=md-nav__link for=__nav_7 id=__nav_7_label tabindex=0> <span class=md-ellipsis> Contributing </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../contributing/ class=md-nav__link> <span class=md-ellipsis> Contributing to DeepCritical </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=sidebar data-md-type=toc> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#prerequisites class=md-nav__link> <span class=md-ellipsis> Prerequisites </span> </a> </li> <li class=md-nav__item> <a href=#installation-steps class=md-nav__link> <span class=md-ellipsis> Installation Steps </span> </a> <nav class=md-nav aria-label="Installation Steps"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#1-install-uv-recommended class=md-nav__link> <span class=md-ellipsis> 1. Install uv (Recommended) </span> </a> </li> <li class=md-nav__item> <a href=#2-clone-the-repository class=md-nav__link> <span class=md-ellipsis> 2. Clone the Repository </span> </a> </li> <li class=md-nav__item> <a href=#3-install-dependencies class=md-nav__link> <span class=md-ellipsis> 3. Install Dependencies </span> </a> </li> <li class=md-nav__item> <a href=#4-install-optional-dependencies class=md-nav__link> <span class=md-ellipsis> 4. Install Optional Dependencies </span> </a> </li> <li class=md-nav__item> <a href=#5-configure-environment-variables class=md-nav__link> <span class=md-ellipsis> 5. Configure Environment Variables </span> </a> </li> <li class=md-nav__item> <a href=#6-verify-installation class=md-nav__link> <span class=md-ellipsis> 6. Verify Installation </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#development-setup class=md-nav__link> <span class=md-ellipsis> Development Setup </span> </a> </li> <li class=md-nav__item> <a href=#troubleshooting class=md-nav__link> <span class=md-ellipsis> Troubleshooting </span> </a> <nav class=md-nav aria-label=Troubleshooting> <ul class=md-nav__list> <li class=md-nav__item> <a href=#common-issues class=md-nav__link> <span class=md-ellipsis> Common Issues </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#next-steps class=md-nav__link> <span class=md-ellipsis> Next Steps </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=installation>Installation<a class=headerlink href=#installation title="Permanent link">&para;</a></h1> <p>This guide will help you install and set up DeepCritical on your system.</p> <h2 id=prerequisites>Prerequisites<a class=headerlink href=#prerequisites title="Permanent link">&para;</a></h2> <ul> <li>Python 3.11 or higher</li> <li><code>uv</code> package manager (recommended) or <code>pip</code></li> <li>At least one LLM API key (OpenAI, Anthropic, or HuggingFace)</li> </ul> <h2 id=installation-steps>Installation Steps<a class=headerlink href=#installation-steps title="Permanent link">&para;</a></h2> <h3 id=1-install-uv-recommended>1. Install uv (Recommended)<a class=headerlink href=#1-install-uv-recommended title="Permanent link">&para;</a></h3> <p><code>uv</code> is a fast Python package installer and resolver. Install it with:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a>pip<span class=w> </span>install<span class=w> </span>uv
2
- </code></pre></div> <h3 id=2-clone-the-repository>2. Clone the Repository<a class=headerlink href=#2-clone-the-repository title="Permanent link">&para;</a></h3> <div class=highlight><pre><span></span><code><a id=__codelineno-1-1 name=__codelineno-1-1 href=#__codelineno-1-1></a>git<span class=w> </span>clone<span class=w> </span>https://github.com/DeepCritical/GradioDemo.git
3
- <a id=__codelineno-1-2 name=__codelineno-1-2 href=#__codelineno-1-2></a><span class=nb>cd</span><span class=w> </span>GradioDemo
4
- </code></pre></div> <h3 id=3-install-dependencies>3. Install Dependencies<a class=headerlink href=#3-install-dependencies title="Permanent link">&para;</a></h3> <p>Using <code>uv</code> (recommended):</p> <div class=highlight><pre><span></span><code><a id=__codelineno-2-1 name=__codelineno-2-1 href=#__codelineno-2-1></a>uv<span class=w> </span>sync
5
- </code></pre></div> <p>Using <code>pip</code>:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-3-1 name=__codelineno-3-1 href=#__codelineno-3-1></a>pip<span class=w> </span>install<span class=w> </span>-e<span class=w> </span>.
6
- </code></pre></div> <h3 id=4-install-optional-dependencies>4. Install Optional Dependencies<a class=headerlink href=#4-install-optional-dependencies title="Permanent link">&para;</a></h3> <p>For embeddings support (local sentence-transformers):</p> <div class=highlight><pre><span></span><code><a id=__codelineno-4-1 name=__codelineno-4-1 href=#__codelineno-4-1></a>uv<span class=w> </span>sync<span class=w> </span>--extra<span class=w> </span>embeddings
7
- </code></pre></div> <p>For Modal sandbox execution:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-5-1 name=__codelineno-5-1 href=#__codelineno-5-1></a>uv<span class=w> </span>sync<span class=w> </span>--extra<span class=w> </span>modal
8
- </code></pre></div> <p>For Magentic orchestration:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-6-1 name=__codelineno-6-1 href=#__codelineno-6-1></a>uv<span class=w> </span>sync<span class=w> </span>--extra<span class=w> </span>magentic
9
- </code></pre></div> <p>Install all extras:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-7-1 name=__codelineno-7-1 href=#__codelineno-7-1></a>uv<span class=w> </span>sync<span class=w> </span>--all-extras
10
- </code></pre></div> <h3 id=5-configure-environment-variables>5. Configure Environment Variables<a class=headerlink href=#5-configure-environment-variables title="Permanent link">&para;</a></h3> <p>Create a <code>.env</code> file in the project root:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-8-1 name=__codelineno-8-1 href=#__codelineno-8-1></a><span class=c1># Required: At least one LLM provider</span>
11
- <a id=__codelineno-8-2 name=__codelineno-8-2 href=#__codelineno-8-2></a><span class=nv>LLM_PROVIDER</span><span class=o>=</span>openai<span class=w> </span><span class=c1># or &quot;anthropic&quot; or &quot;huggingface&quot;</span>
12
- <a id=__codelineno-8-3 name=__codelineno-8-3 href=#__codelineno-8-3></a><span class=nv>OPENAI_API_KEY</span><span class=o>=</span>your_openai_api_key_here
13
- <a id=__codelineno-8-4 name=__codelineno-8-4 href=#__codelineno-8-4></a>
14
- <a id=__codelineno-8-5 name=__codelineno-8-5 href=#__codelineno-8-5></a><span class=c1># Optional: Other services</span>
15
- <a id=__codelineno-8-6 name=__codelineno-8-6 href=#__codelineno-8-6></a><span class=nv>NCBI_API_KEY</span><span class=o>=</span>your_ncbi_api_key_here<span class=w> </span><span class=c1># For higher PubMed rate limits</span>
16
- <a id=__codelineno-8-7 name=__codelineno-8-7 href=#__codelineno-8-7></a><span class=nv>MODAL_TOKEN_ID</span><span class=o>=</span>your_modal_token_id
17
- <a id=__codelineno-8-8 name=__codelineno-8-8 href=#__codelineno-8-8></a><span class=nv>MODAL_TOKEN_SECRET</span><span class=o>=</span>your_modal_token_secret
18
- </code></pre></div> <p>See the <a href=../../configuration/ >Configuration Guide</a> for all available options.</p> <h3 id=6-verify-installation>6. Verify Installation<a class=headerlink href=#6-verify-installation title="Permanent link">&para;</a></h3> <p>Run the application:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-9-1 name=__codelineno-9-1 href=#__codelineno-9-1></a>uv<span class=w> </span>run<span class=w> </span>gradio<span class=w> </span>run<span class=w> </span>src/app.py
19
- </code></pre></div> <p>Open your browser to <code>http://localhost:7860</code> to verify the installation.</p> <h2 id=development-setup>Development Setup<a class=headerlink href=#development-setup title="Permanent link">&para;</a></h2> <p>For development, install dev dependencies:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-10-1 name=__codelineno-10-1 href=#__codelineno-10-1></a>uv<span class=w> </span>sync<span class=w> </span>--all-extras<span class=w> </span>--dev
20
- </code></pre></div> <p>Install pre-commit hooks:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-11-1 name=__codelineno-11-1 href=#__codelineno-11-1></a>uv<span class=w> </span>run<span class=w> </span>pre-commit<span class=w> </span>install
21
- </code></pre></div> <h2 id=troubleshooting>Troubleshooting<a class=headerlink href=#troubleshooting title="Permanent link">&para;</a></h2> <h3 id=common-issues>Common Issues<a class=headerlink href=#common-issues title="Permanent link">&para;</a></h3> <p><strong>Import Errors</strong>: - Ensure you've installed all required dependencies - Check that Python 3.11+ is being used</p> <p><strong>API Key Errors</strong>: - Verify your <code>.env</code> file is in the project root - Check that API keys are correctly formatted - Ensure at least one LLM provider is configured</p> <p><strong>Module Not Found</strong>: - Run <code>uv sync</code> or <code>pip install -e .</code> again - Check that you're in the correct virtual environment</p> <p><strong>Port Already in Use</strong>: - Change the port in <code>src/app.py</code> or use environment variable - Kill the process using port 7860</p> <h2 id=next-steps>Next Steps<a class=headerlink href=#next-steps title="Permanent link">&para;</a></h2> <ul> <li>Read the <a href=../quick-start/ >Quick Start Guide</a></li> <li>Learn about <a href=../mcp-integration/ >MCP Integration</a></li> <li>Explore <a href=../examples/ >Examples</a></li> </ul> <h1 id=updated-upstream>&lt;&lt;&lt;&lt;&lt;&lt;&lt; Updated upstream<a class=headerlink href=#updated-upstream title="Permanent link">&para;</a></h1> <p>&lt;&lt;&lt;&lt;&lt;&lt;&lt; Updated upstream</p> <p>=======</p> <blockquote> <blockquote> <blockquote> <blockquote> <blockquote> <blockquote> <blockquote> <p>Stashed changes</p> <p>Stashed changes</p> </blockquote> </blockquote> </blockquote> </blockquote> </blockquote> </blockquote> </blockquote> </article> </div> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=github.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title=huggingface.co class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> </body> </html>
 
 
 
 
 
 
 
1
+ <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DeepCritical Team"><link href=https://deepcritical.github.io/GradioDemo/getting-started/installation/ rel=canonical><link href=../../overview/features/ rel=prev><link href=../quick-start/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Installation - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><link rel=stylesheet href=../../css/timeago.css><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#installation class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Installation </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=./ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../../architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../../contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_3 checked> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=true> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Installation </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Installation </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#prerequisites class=md-nav__link> <span class=md-ellipsis> Prerequisites </span> </a> </li> <li class=md-nav__item> <a href=#installation-steps class=md-nav__link> <span class=md-ellipsis> Installation Steps </span> </a> <nav class=md-nav aria-label="Installation Steps"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#1-install-uv-recommended class=md-nav__link> <span class=md-ellipsis> 1. Install uv (Recommended) </span> </a> </li> <li class=md-nav__item> <a href=#2-clone-the-repository class=md-nav__link> <span class=md-ellipsis> 2. Clone the Repository </span> </a> </li> <li class=md-nav__item> <a href=#3-install-dependencies class=md-nav__link> <span class=md-ellipsis> 3. Install Dependencies </span> </a> </li> <li class=md-nav__item> <a href=#4-install-optional-dependencies class=md-nav__link> <span class=md-ellipsis> 4. Install Optional Dependencies </span> </a> </li> <li class=md-nav__item> <a href=#5-configure-environment-variables class=md-nav__link> <span class=md-ellipsis> 5. Configure Environment Variables </span> </a> </li> <li class=md-nav__item> <a href=#6-verify-installation class=md-nav__link> <span class=md-ellipsis> 6. Verify Installation </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#development-setup class=md-nav__link> <span class=md-ellipsis> Development Setup </span> </a> </li> <li class=md-nav__item> <a href=#troubleshooting class=md-nav__link> <span class=md-ellipsis> Troubleshooting </span> </a> <nav class=md-nav aria-label=Troubleshooting> <ul class=md-nav__list> <li class=md-nav__item> <a href=#common-issues class=md-nav__link> <span class=md-ellipsis> Common Issues </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#next-steps class=md-nav__link> <span class=md-ellipsis> Next Steps </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../quick-start/ class=md-nav__link> <span class=md-ellipsis> Single Command Deploy </span> </a> </li> <li class=md-nav__item> <a href=../mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <div class="md-nav__link md-nav__container"> <a href=../../configuration/ class="md-nav__link "> <span class=md-ellipsis> Configuration </span> </a> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <div class="md-nav__link md-nav__container"> <a href=../../contributing/ class="md-nav__link "> <span class=md-ellipsis> Contributing </span> </a> <label class="md-nav__link " for=__nav_7 id=__nav_7_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=installation>Installation<a class=headerlink href=#installation title="Anchor link to this section">&para;</a></h1> <p>This guide will help you install and set up DeepCritical on your system.</p> <h2 id=prerequisites>Prerequisites<a class=headerlink href=#prerequisites title="Anchor link to this section">&para;</a></h2> <ul> <li>Python 3.11 or higher</li> <li><code>uv</code> package manager (recommended) or <code>pip</code></li> <li>At least one LLM API key (OpenAI, Anthropic, or HuggingFace)</li> </ul> <h2 id=installation-steps>Installation Steps<a class=headerlink href=#installation-steps title="Anchor link to this section">&para;</a></h2> <h3 id=1-install-uv-recommended>1. Install uv (Recommended)<a class=headerlink href=#1-install-uv-recommended title="Anchor link to this section">&para;</a></h3> <p><code>uv</code> is a fast Python package installer and resolver. Install it using the standalone installer (recommended):</p> <p><strong>Unix/macOS/Linux:</strong> <div class="language-bash highlight"><pre><span></span><code><span id=__span-0-1><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a>curl<span class=w> </span>-LsSf<span class=w> </span>https://astral.sh/uv/install.sh<span class=w> </span><span class=p>|</span><span class=w> </span>sh
2
+ </span></code></pre></div></p> <p><strong>Windows (PowerShell):</strong> <div class="language-powershell highlight"><pre><span></span><code><span id=__span-1-1><a id=__codelineno-1-1 name=__codelineno-1-1 href=#__codelineno-1-1></a><span class=n>powershell</span> <span class=n>-ExecutionPolicy</span> <span class=n>ByPass</span> <span class=n>-c</span> <span class=s2>&quot;irm https://astral.sh/uv/install.ps1 | iex&quot;</span>
3
+ </span></code></pre></div></p> <p><strong>Alternative methods:</strong> <div class="language-bash highlight"><pre><span></span><code><span id=__span-2-1><a id=__codelineno-2-1 name=__codelineno-2-1 href=#__codelineno-2-1></a><span class=c1># Using pipx (recommended if you have pipx installed)</span>
4
+ </span><span id=__span-2-2><a id=__codelineno-2-2 name=__codelineno-2-2 href=#__codelineno-2-2></a>pipx<span class=w> </span>install<span class=w> </span>uv
5
+ </span><span id=__span-2-3><a id=__codelineno-2-3 name=__codelineno-2-3 href=#__codelineno-2-3></a>
6
+ </span><span id=__span-2-4><a id=__codelineno-2-4 name=__codelineno-2-4 href=#__codelineno-2-4></a><span class=c1># Or using pip</span>
7
+ </span><span id=__span-2-5><a id=__codelineno-2-5 name=__codelineno-2-5 href=#__codelineno-2-5></a>pip<span class=w> </span>install<span class=w> </span>uv
8
+ </span></code></pre></div></p> <p>After installation, restart your terminal or add <code>~/.cargo/bin</code> to your PATH.</p> <h3 id=2-clone-the-repository>2. Clone the Repository<a class=headerlink href=#2-clone-the-repository title="Anchor link to this section">&para;</a></h3> <div class="language-bash highlight"><pre><span></span><code><span id=__span-3-1><a id=__codelineno-3-1 name=__codelineno-3-1 href=#__codelineno-3-1></a>git<span class=w> </span>clone<span class=w> </span>https://github.com/DeepCritical/GradioDemo.git
9
+ </span><span id=__span-3-2><a id=__codelineno-3-2 name=__codelineno-3-2 href=#__codelineno-3-2></a><span class=nb>cd</span><span class=w> </span>GradioDemo
10
+ </span></code></pre></div> <h3 id=3-install-dependencies>3. Install Dependencies<a class=headerlink href=#3-install-dependencies title="Anchor link to this section">&para;</a></h3> <p>Using <code>uv</code> (recommended):</p> <div class="language-bash highlight"><pre><span></span><code><span id=__span-4-1><a id=__codelineno-4-1 name=__codelineno-4-1 href=#__codelineno-4-1></a>uv<span class=w> </span>sync
11
+ </span></code></pre></div> <p>Using <code>pip</code>:</p> <div class="language-bash highlight"><pre><span></span><code><span id=__span-5-1><a id=__codelineno-5-1 name=__codelineno-5-1 href=#__codelineno-5-1></a>pip<span class=w> </span>install<span class=w> </span>-e<span class=w> </span>.
12
+ </span></code></pre></div> <h3 id=4-install-optional-dependencies>4. Install Optional Dependencies<a class=headerlink href=#4-install-optional-dependencies title="Anchor link to this section">&para;</a></h3> <p>For embeddings support (local sentence-transformers):</p> <div class="language-bash highlight"><pre><span></span><code><span id=__span-6-1><a id=__codelineno-6-1 name=__codelineno-6-1 href=#__codelineno-6-1></a>uv<span class=w> </span>sync<span class=w> </span>--extra<span class=w> </span>embeddings
13
+ </span></code></pre></div> <p>For Modal sandbox execution:</p> <div class="language-bash highlight"><pre><span></span><code><span id=__span-7-1><a id=__codelineno-7-1 name=__codelineno-7-1 href=#__codelineno-7-1></a>uv<span class=w> </span>sync<span class=w> </span>--extra<span class=w> </span>modal
14
+ </span></code></pre></div> <p>For Magentic orchestration:</p> <div class="language-bash highlight"><pre><span></span><code><span id=__span-8-1><a id=__codelineno-8-1 name=__codelineno-8-1 href=#__codelineno-8-1></a>uv<span class=w> </span>sync<span class=w> </span>--extra<span class=w> </span>magentic
15
+ </span></code></pre></div> <p>Install all extras:</p> <div class="language-bash highlight"><pre><span></span><code><span id=__span-9-1><a id=__codelineno-9-1 name=__codelineno-9-1 href=#__codelineno-9-1></a>uv<span class=w> </span>sync<span class=w> </span>--all-extras
16
+ </span></code></pre></div> <h3 id=5-configure-environment-variables>5. Configure Environment Variables<a class=headerlink href=#5-configure-environment-variables title="Anchor link to this section">&para;</a></h3> <p>Create a <code>.env</code> file in the project root:</p> <div class="language-bash highlight"><pre><span></span><code><span id=__span-10-1><a id=__codelineno-10-1 name=__codelineno-10-1 href=#__codelineno-10-1></a><span class=c1># Required: At least one LLM provider</span>
17
+ </span><span id=__span-10-2><a id=__codelineno-10-2 name=__codelineno-10-2 href=#__codelineno-10-2></a><span class=nv>LLM_PROVIDER</span><span class=o>=</span>openai<span class=w> </span><span class=c1># or &quot;anthropic&quot; or &quot;huggingface&quot;</span>
18
+ </span><span id=__span-10-3><a id=__codelineno-10-3 name=__codelineno-10-3 href=#__codelineno-10-3></a><span class=nv>OPENAI_API_KEY</span><span class=o>=</span>your_openai_api_key_here
19
+ </span><span id=__span-10-4><a id=__codelineno-10-4 name=__codelineno-10-4 href=#__codelineno-10-4></a>
20
+ </span><span id=__span-10-5><a id=__codelineno-10-5 name=__codelineno-10-5 href=#__codelineno-10-5></a><span class=c1># Optional: Other services</span>
21
+ </span><span id=__span-10-6><a id=__codelineno-10-6 name=__codelineno-10-6 href=#__codelineno-10-6></a><span class=nv>NCBI_API_KEY</span><span class=o>=</span>your_ncbi_api_key_here<span class=w> </span><span class=c1># For higher PubMed rate limits</span>
22
+ </span><span id=__span-10-7><a id=__codelineno-10-7 name=__codelineno-10-7 href=#__codelineno-10-7></a><span class=nv>MODAL_TOKEN_ID</span><span class=o>=</span>your_modal_token_id
23
+ </span><span id=__span-10-8><a id=__codelineno-10-8 name=__codelineno-10-8 href=#__codelineno-10-8></a><span class=nv>MODAL_TOKEN_SECRET</span><span class=o>=</span>your_modal_token_secret
24
+ </span></code></pre></div> <p>See the <a href=../../configuration/ >Configuration Guide</a> for all available options.</p> <h3 id=6-verify-installation>6. Verify Installation<a class=headerlink href=#6-verify-installation title="Anchor link to this section">&para;</a></h3> <p>Run the application:</p> <div class="language-bash highlight"><pre><span></span><code><span id=__span-11-1><a id=__codelineno-11-1 name=__codelineno-11-1 href=#__codelineno-11-1></a>uv<span class=w> </span>run<span class=w> </span>gradio<span class=w> </span>run<span class=w> </span>src/app.py
25
+ </span></code></pre></div> <p>Open your browser to <code>http://localhost:7860</code> to verify the installation.</p> <h2 id=development-setup>Development Setup<a class=headerlink href=#development-setup title="Anchor link to this section">&para;</a></h2> <p>For development, install dev dependencies:</p> <div class="language-bash highlight"><pre><span></span><code><span id=__span-12-1><a id=__codelineno-12-1 name=__codelineno-12-1 href=#__codelineno-12-1></a>uv<span class=w> </span>sync<span class=w> </span>--all-extras<span class=w> </span>--dev
26
+ </span></code></pre></div> <p>Install pre-commit hooks:</p> <div class="language-bash highlight"><pre><span></span><code><span id=__span-13-1><a id=__codelineno-13-1 name=__codelineno-13-1 href=#__codelineno-13-1></a>uv<span class=w> </span>run<span class=w> </span>pre-commit<span class=w> </span>install
27
+ </span></code></pre></div> <h2 id=troubleshooting>Troubleshooting<a class=headerlink href=#troubleshooting title="Anchor link to this section">&para;</a></h2> <h3 id=common-issues>Common Issues<a class=headerlink href=#common-issues title="Anchor link to this section">&para;</a></h3> <p><strong>Import Errors</strong>: - Ensure you've installed all required dependencies - Check that Python 3.11+ is being used</p> <p><strong>API Key Errors</strong>: - Verify your <code>.env</code> file is in the project root - Check that API keys are correctly formatted - Ensure at least one LLM provider is configured</p> <p><strong>Module Not Found</strong>: - Run <code>uv sync</code> or <code>pip install -e .</code> again - Check that you're in the correct virtual environment</p> <p><strong>Port Already in Use</strong>: - Change the port in <code>src/app.py</code> or use environment variable - Kill the process using port 7860</p> <h2 id=next-steps>Next Steps<a class=headerlink href=#next-steps title="Anchor link to this section">&para;</a></h2> <ul> <li>Read the <a href=../quick-start/ >Quick Start Guide</a></li> <li>Learn about <a href=../mcp-integration/ >MCP Integration</a></li> <li>Explore <a href=../examples/ >Examples</a></li> </ul> <aside class=md-source-file> <span class=md-source-file__fact> <span class=md-icon title="Last update"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="December 2, 2025 01:35:56 UTC"><span class=timeago datetime=2025-12-02T01:35:56+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="December 2, 2025 01:35:56 UTC">2025-12-02</span> </span> <span class=md-source-file__fact> <span class=md-icon title=Created> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M14.47 15.08 11 13V7h1.5v5.25l3.08 1.83c-.41.28-.79.62-1.11 1m-1.39 4.84c-.36.05-.71.08-1.08.08-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8c0 .37-.03.72-.08 1.08.69.1 1.33.32 1.92.64.1-.56.16-1.13.16-1.72 0-5.5-4.5-10-10-10S2 6.5 2 12s4.47 10 10 10c.59 0 1.16-.06 1.72-.16-.32-.59-.54-1.23-.64-1.92M18 15v3h-3v2h3v3h2v-3h3v-2h-3v-3z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="November 29, 2025 21:40:26 UTC"><span class=timeago datetime=2025-11-29T21:40:26+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="November 29, 2025 21:40:26 UTC">2025-11-29</span> </span> </aside> </article> </div> <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=GitHub class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://twitter.com/josephpollack target=_blank rel=noopener title=Twitter class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M459.4 151.7c.3 4.5.3 9.1.3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103v-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53C87.4 130.8 165 172.4 252.1 176.9c-1.6-7.8-2.6-15.9-2.6-24C249.5 95.1 296.3 48 354.4 48c30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title="Live Demo" class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> <a href=https://discord.gg/n8ytYeh25n target=_blank rel=noopener title=Discord class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 576 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M492.5 69.8c-.2-.3-.4-.6-.8-.7-38.1-17.5-78.4-30-119.7-37.1-.4-.1-.8 0-1.1.1s-.6.4-.8.8c-5.5 9.9-10.5 20.2-14.9 30.6-44.6-6.8-89.9-6.8-134.4 0-4.5-10.5-9.5-20.7-15.1-30.6-.2-.3-.5-.6-.8-.8s-.7-.2-1.1-.2C162.5 39 122.2 51.5 84.1 69c-.3.1-.6.4-.8.7C7.1 183.5-13.8 294.6-3.6 404.2c0 .3.1.5.2.8s.3.4.5.6c44.4 32.9 94 58 146.8 74.2.4.1.8.1 1.1 0s.7-.4.9-.7c11.3-15.4 21.4-31.8 30-48.8.1-.2.2-.5.2-.8s0-.5-.1-.8-.2-.5-.4-.6-.4-.3-.7-.4c-15.8-6.1-31.2-13.4-45.9-21.9-.3-.2-.5-.4-.7-.6s-.3-.6-.3-.9 0-.6.2-.9.3-.5.6-.7c3.1-2.3 6.2-4.7 9.1-7.1.3-.2.6-.4.9-.4s.7 0 1 .1c96.2 43.9 200.4 43.9 295.5 0 .3-.1.7-.2 1-.2s.7.2.9.4c2.9 2.4 6 4.9 9.1 7.2.2.2.4.4.6.7s.2.6.2.9-.1.6-.3.9-.4.5-.6.6c-14.7 8.6-30 15.9-45.9 21.8-.2.1-.5.2-.7.4s-.3.4-.4.7-.1.5-.1.8.1.5.2.8c8.8 17 18.8 33.3 30 48.8.2.3.6.6.9.7s.8.1 1.1 0c52.9-16.2 102.6-41.3 147.1-74.2.2-.2.4-.4.5-.6s.2-.5.2-.8c12.3-126.8-20.5-236.9-86.9-334.5zm-302 267.7c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.4 59.2-52.8 59.2m195.4 0c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.2 59.2-52.8 59.2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "navigation.indexes", "navigation.instant", "navigation.tracking", "navigation.smooth", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy", "content.tabs.link", "content.tooltips", "toc.integrate"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> <script src=../../js/timeago.min.js></script> <script src=../../js/timeago_mkdocs_material.js></script> </body> </html>
site/getting-started/mcp-integration/index.html CHANGED
@@ -1,35 +1,35 @@
1
- <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DETERMINATOR Team"><link href=https://deepcritical.github.io/GradioDemo/getting-started/mcp-integration/ rel=canonical><link href=../quick-start/ rel=prev><link href=../examples/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>MCP Integration - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#mcp-integration class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> MCP Integration </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/CONFIGURATION/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../../architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../../contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_3 checked> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=true> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../quick-start/ class=md-nav__link> <span class=md-ellipsis> Quick Start Guide </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> MCP Integration </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> MCP Integration </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#what-is-mcp class=md-nav__link> <span class=md-ellipsis> What is MCP? </span> </a> </li> <li class=md-nav__item> <a href=#mcp-server-url class=md-nav__link> <span class=md-ellipsis> MCP Server URL </span> </a> </li> <li class=md-nav__item> <a href=#claude-desktop-configuration class=md-nav__link> <span class=md-ellipsis> Claude Desktop Configuration </span> </a> <nav class=md-nav aria-label="Claude Desktop Configuration"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#1-locate-configuration-file class=md-nav__link> <span class=md-ellipsis> 1. Locate Configuration File </span> </a> </li> <li class=md-nav__item> <a href=#2-add-deepcritical-server class=md-nav__link> <span class=md-ellipsis> 2. Add DeepCritical Server </span> </a> </li> <li class=md-nav__item> <a href=#3-restart-claude-desktop class=md-nav__link> <span class=md-ellipsis> 3. Restart Claude Desktop </span> </a> </li> <li class=md-nav__item> <a href=#4-verify-connection class=md-nav__link> <span class=md-ellipsis> 4. Verify Connection </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#available-tools class=md-nav__link> <span class=md-ellipsis> Available Tools </span> </a> <nav class=md-nav aria-label="Available Tools"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#search_pubmed class=md-nav__link> <span class=md-ellipsis> search_pubmed </span> </a> </li> <li class=md-nav__item> <a href=#search_clinical_trials class=md-nav__link> <span class=md-ellipsis> search_clinical_trials </span> </a> </li> <li class=md-nav__item> <a href=#search_biorxiv class=md-nav__link> <span class=md-ellipsis> search_biorxiv </span> </a> </li> <li class=md-nav__item> <a href=#search_all class=md-nav__link> <span class=md-ellipsis> search_all </span> </a> </li> <li class=md-nav__item> <a href=#analyze_hypothesis class=md-nav__link> <span class=md-ellipsis> analyze_hypothesis </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#using-tools-in-claude-desktop class=md-nav__link> <span class=md-ellipsis> Using Tools in Claude Desktop </span> </a> </li> <li class=md-nav__item> <a href=#troubleshooting class=md-nav__link> <span class=md-ellipsis> Troubleshooting </span> </a> <nav class=md-nav aria-label=Troubleshooting> <ul class=md-nav__list> <li class=md-nav__item> <a href=#connection-issues class=md-nav__link> <span class=md-ellipsis> Connection Issues </span> </a> </li> <li class=md-nav__item> <a href=#authentication class=md-nav__link> <span class=md-ellipsis> Authentication </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#advanced-configuration class=md-nav__link> <span class=md-ellipsis> Advanced Configuration </span> </a> <nav class=md-nav aria-label="Advanced Configuration"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#custom-port class=md-nav__link> <span class=md-ellipsis> Custom Port </span> </a> </li> <li class=md-nav__item> <a href=#multiple-instances class=md-nav__link> <span class=md-ellipsis> Multiple Instances </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#next-steps class=md-nav__link> <span class=md-ellipsis> Next Steps </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <label class=md-nav__link for=__nav_4 id=__nav_4_label tabindex=0> <span class=md-ellipsis> Configuration </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../configuration/CONFIGURATION/ class=md-nav__link> <span class=md-ellipsis> Configuration Guide </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <label class=md-nav__link for=__nav_7 id=__nav_7_label tabindex=0> <span class=md-ellipsis> Contributing </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../contributing/ class=md-nav__link> <span class=md-ellipsis> Contributing to DeepCritical </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=sidebar data-md-type=toc> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#what-is-mcp class=md-nav__link> <span class=md-ellipsis> What is MCP? </span> </a> </li> <li class=md-nav__item> <a href=#mcp-server-url class=md-nav__link> <span class=md-ellipsis> MCP Server URL </span> </a> </li> <li class=md-nav__item> <a href=#claude-desktop-configuration class=md-nav__link> <span class=md-ellipsis> Claude Desktop Configuration </span> </a> <nav class=md-nav aria-label="Claude Desktop Configuration"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#1-locate-configuration-file class=md-nav__link> <span class=md-ellipsis> 1. Locate Configuration File </span> </a> </li> <li class=md-nav__item> <a href=#2-add-deepcritical-server class=md-nav__link> <span class=md-ellipsis> 2. Add DeepCritical Server </span> </a> </li> <li class=md-nav__item> <a href=#3-restart-claude-desktop class=md-nav__link> <span class=md-ellipsis> 3. Restart Claude Desktop </span> </a> </li> <li class=md-nav__item> <a href=#4-verify-connection class=md-nav__link> <span class=md-ellipsis> 4. Verify Connection </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#available-tools class=md-nav__link> <span class=md-ellipsis> Available Tools </span> </a> <nav class=md-nav aria-label="Available Tools"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#search_pubmed class=md-nav__link> <span class=md-ellipsis> search_pubmed </span> </a> </li> <li class=md-nav__item> <a href=#search_clinical_trials class=md-nav__link> <span class=md-ellipsis> search_clinical_trials </span> </a> </li> <li class=md-nav__item> <a href=#search_biorxiv class=md-nav__link> <span class=md-ellipsis> search_biorxiv </span> </a> </li> <li class=md-nav__item> <a href=#search_all class=md-nav__link> <span class=md-ellipsis> search_all </span> </a> </li> <li class=md-nav__item> <a href=#analyze_hypothesis class=md-nav__link> <span class=md-ellipsis> analyze_hypothesis </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#using-tools-in-claude-desktop class=md-nav__link> <span class=md-ellipsis> Using Tools in Claude Desktop </span> </a> </li> <li class=md-nav__item> <a href=#troubleshooting class=md-nav__link> <span class=md-ellipsis> Troubleshooting </span> </a> <nav class=md-nav aria-label=Troubleshooting> <ul class=md-nav__list> <li class=md-nav__item> <a href=#connection-issues class=md-nav__link> <span class=md-ellipsis> Connection Issues </span> </a> </li> <li class=md-nav__item> <a href=#authentication class=md-nav__link> <span class=md-ellipsis> Authentication </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#advanced-configuration class=md-nav__link> <span class=md-ellipsis> Advanced Configuration </span> </a> <nav class=md-nav aria-label="Advanced Configuration"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#custom-port class=md-nav__link> <span class=md-ellipsis> Custom Port </span> </a> </li> <li class=md-nav__item> <a href=#multiple-instances class=md-nav__link> <span class=md-ellipsis> Multiple Instances </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#next-steps class=md-nav__link> <span class=md-ellipsis> Next Steps </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=mcp-integration>MCP Integration<a class=headerlink href=#mcp-integration title="Permanent link">&para;</a></h1> <p>DeepCritical exposes a Model Context Protocol (MCP) server, allowing you to use its search tools directly from Claude Desktop or other MCP clients.</p> <h2 id=what-is-mcp>What is MCP?<a class=headerlink href=#what-is-mcp title="Permanent link">&para;</a></h2> <p>The Model Context Protocol (MCP) is a standard for connecting AI assistants to external tools and data sources. DeepCritical implements an MCP server that exposes its search capabilities as MCP tools.</p> <h2 id=mcp-server-url>MCP Server URL<a class=headerlink href=#mcp-server-url title="Permanent link">&para;</a></h2> <p>When running locally:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a>http://localhost:7860/gradio_api/mcp/
2
- </code></pre></div> <h2 id=claude-desktop-configuration>Claude Desktop Configuration<a class=headerlink href=#claude-desktop-configuration title="Permanent link">&para;</a></h2> <h3 id=1-locate-configuration-file>1. Locate Configuration File<a class=headerlink href=#1-locate-configuration-file title="Permanent link">&para;</a></h3> <p><strong>macOS</strong>: <div class=highlight><pre><span></span><code><a id=__codelineno-1-1 name=__codelineno-1-1 href=#__codelineno-1-1></a>~/Library/Application Support/Claude/claude_desktop_config.json
3
- </code></pre></div></p> <p><strong>Windows</strong>: <div class=highlight><pre><span></span><code><a id=__codelineno-2-1 name=__codelineno-2-1 href=#__codelineno-2-1></a>%APPDATA%\Claude\claude_desktop_config.json
4
- </code></pre></div></p> <p><strong>Linux</strong>: <div class=highlight><pre><span></span><code><a id=__codelineno-3-1 name=__codelineno-3-1 href=#__codelineno-3-1></a>~/.config/Claude/claude_desktop_config.json
5
- </code></pre></div></p> <h3 id=2-add-deepcritical-server>2. Add DeepCritical Server<a class=headerlink href=#2-add-deepcritical-server title="Permanent link">&para;</a></h3> <p>Edit <code>claude_desktop_config.json</code> and add:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-4-1 name=__codelineno-4-1 href=#__codelineno-4-1></a><span class=p>{</span>
6
- <a id=__codelineno-4-2 name=__codelineno-4-2 href=#__codelineno-4-2></a><span class=w> </span><span class=nt>&quot;mcpServers&quot;</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
7
- <a id=__codelineno-4-3 name=__codelineno-4-3 href=#__codelineno-4-3></a><span class=w> </span><span class=nt>&quot;deepcritical&quot;</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
8
- <a id=__codelineno-4-4 name=__codelineno-4-4 href=#__codelineno-4-4></a><span class=w> </span><span class=nt>&quot;url&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;http://localhost:7860/gradio_api/mcp/&quot;</span>
9
- <a id=__codelineno-4-5 name=__codelineno-4-5 href=#__codelineno-4-5></a><span class=w> </span><span class=p>}</span>
10
- <a id=__codelineno-4-6 name=__codelineno-4-6 href=#__codelineno-4-6></a><span class=w> </span><span class=p>}</span>
11
- <a id=__codelineno-4-7 name=__codelineno-4-7 href=#__codelineno-4-7></a><span class=p>}</span>
12
- </code></pre></div> <h3 id=3-restart-claude-desktop>3. Restart Claude Desktop<a class=headerlink href=#3-restart-claude-desktop title="Permanent link">&para;</a></h3> <p>Close and restart Claude Desktop for changes to take effect.</p> <h3 id=4-verify-connection>4. Verify Connection<a class=headerlink href=#4-verify-connection title="Permanent link">&para;</a></h3> <p>In Claude Desktop, you should see DeepCritical tools available: - <code>search_pubmed</code> - <code>search_clinical_trials</code> - <code>search_biorxiv</code> - <code>search_all</code> - <code>analyze_hypothesis</code></p> <h2 id=available-tools>Available Tools<a class=headerlink href=#available-tools title="Permanent link">&para;</a></h2> <h3 id=search_pubmed>search_pubmed<a class=headerlink href=#search_pubmed title="Permanent link">&para;</a></h3> <p>Search peer-reviewed biomedical literature from PubMed.</p> <p><strong>Parameters</strong>: - <code>query</code> (string): Search query - <code>max_results</code> (integer, optional): Maximum number of results (default: 10)</p> <p><strong>Example</strong>: <div class=highlight><pre><span></span><code><a id=__codelineno-5-1 name=__codelineno-5-1 href=#__codelineno-5-1></a>Search PubMed for &quot;metformin diabetes&quot;
13
- </code></pre></div></p> <h3 id=search_clinical_trials>search_clinical_trials<a class=headerlink href=#search_clinical_trials title="Permanent link">&para;</a></h3> <p>Search ClinicalTrials.gov for interventional studies.</p> <p><strong>Parameters</strong>: - <code>query</code> (string): Search query - <code>max_results</code> (integer, optional): Maximum number of results (default: 10)</p> <p><strong>Example</strong>: <div class=highlight><pre><span></span><code><a id=__codelineno-6-1 name=__codelineno-6-1 href=#__codelineno-6-1></a>Search clinical trials for &quot;Alzheimer&#39;s disease treatment&quot;
14
- </code></pre></div></p> <h3 id=search_biorxiv>search_biorxiv<a class=headerlink href=#search_biorxiv title="Permanent link">&para;</a></h3> <p>Search bioRxiv/medRxiv preprints via Europe PMC.</p> <p><strong>Parameters</strong>: - <code>query</code> (string): Search query - <code>max_results</code> (integer, optional): Maximum number of results (default: 10)</p> <p><strong>Example</strong>: <div class=highlight><pre><span></span><code><a id=__codelineno-7-1 name=__codelineno-7-1 href=#__codelineno-7-1></a>Search bioRxiv for &quot;CRISPR gene editing&quot;
15
- </code></pre></div></p> <h3 id=search_all>search_all<a class=headerlink href=#search_all title="Permanent link">&para;</a></h3> <p>Search all sources simultaneously (PubMed, ClinicalTrials.gov, Europe PMC).</p> <p><strong>Parameters</strong>: - <code>query</code> (string): Search query - <code>max_results</code> (integer, optional): Maximum number of results per source (default: 10)</p> <p><strong>Example</strong>: <div class=highlight><pre><span></span><code><a id=__codelineno-8-1 name=__codelineno-8-1 href=#__codelineno-8-1></a>Search all sources for &quot;COVID-19 vaccine efficacy&quot;
16
- </code></pre></div></p> <h3 id=analyze_hypothesis>analyze_hypothesis<a class=headerlink href=#analyze_hypothesis title="Permanent link">&para;</a></h3> <p>Perform secure statistical analysis using Modal sandboxes.</p> <p><strong>Parameters</strong>: - <code>hypothesis</code> (string): Hypothesis to analyze - <code>data</code> (string, optional): Data description or code</p> <p><strong>Example</strong>: <div class=highlight><pre><span></span><code><a id=__codelineno-9-1 name=__codelineno-9-1 href=#__codelineno-9-1></a>Analyze the hypothesis that metformin reduces cancer risk
17
- </code></pre></div></p> <h2 id=using-tools-in-claude-desktop>Using Tools in Claude Desktop<a class=headerlink href=#using-tools-in-claude-desktop title="Permanent link">&para;</a></h2> <p>Once configured, you can ask Claude to use DeepCritical tools:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-10-1 name=__codelineno-10-1 href=#__codelineno-10-1></a>Use DeepCritical to search PubMed for recent papers on Alzheimer&#39;s disease treatments.
18
- </code></pre></div> <p>Claude will automatically: 1. Call the appropriate DeepCritical tool 2. Retrieve results 3. Use the results in its response</p> <h2 id=troubleshooting>Troubleshooting<a class=headerlink href=#troubleshooting title="Permanent link">&para;</a></h2> <h3 id=connection-issues>Connection Issues<a class=headerlink href=#connection-issues title="Permanent link">&para;</a></h3> <p><strong>Server Not Found</strong>: - Ensure DeepCritical is running (<code>uv run gradio run src/app.py</code>) - Verify the URL in <code>claude_desktop_config.json</code> is correct - Check that port 7860 is not blocked by firewall</p> <p><strong>Tools Not Appearing</strong>: - Restart Claude Desktop after configuration changes - Check Claude Desktop logs for errors - Verify MCP server is accessible at the configured URL</p> <h3 id=authentication>Authentication<a class=headerlink href=#authentication title="Permanent link">&para;</a></h3> <p>If DeepCritical requires authentication: - Configure API keys in DeepCritical settings - Use HuggingFace OAuth login - Ensure API keys are valid</p> <h2 id=advanced-configuration>Advanced Configuration<a class=headerlink href=#advanced-configuration title="Permanent link">&para;</a></h2> <h3 id=custom-port>Custom Port<a class=headerlink href=#custom-port title="Permanent link">&para;</a></h3> <p>If running on a different port, update the URL:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-11-1 name=__codelineno-11-1 href=#__codelineno-11-1></a><span class=p>{</span>
19
- <a id=__codelineno-11-2 name=__codelineno-11-2 href=#__codelineno-11-2></a><span class=w> </span><span class=nt>&quot;mcpServers&quot;</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
20
- <a id=__codelineno-11-3 name=__codelineno-11-3 href=#__codelineno-11-3></a><span class=w> </span><span class=nt>&quot;deepcritical&quot;</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
21
- <a id=__codelineno-11-4 name=__codelineno-11-4 href=#__codelineno-11-4></a><span class=w> </span><span class=nt>&quot;url&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;http://localhost:8080/gradio_api/mcp/&quot;</span>
22
- <a id=__codelineno-11-5 name=__codelineno-11-5 href=#__codelineno-11-5></a><span class=w> </span><span class=p>}</span>
23
- <a id=__codelineno-11-6 name=__codelineno-11-6 href=#__codelineno-11-6></a><span class=w> </span><span class=p>}</span>
24
- <a id=__codelineno-11-7 name=__codelineno-11-7 href=#__codelineno-11-7></a><span class=p>}</span>
25
- </code></pre></div> <h3 id=multiple-instances>Multiple Instances<a class=headerlink href=#multiple-instances title="Permanent link">&para;</a></h3> <p>You can configure multiple DeepCritical instances:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-12-1 name=__codelineno-12-1 href=#__codelineno-12-1></a><span class=p>{</span>
26
- <a id=__codelineno-12-2 name=__codelineno-12-2 href=#__codelineno-12-2></a><span class=w> </span><span class=nt>&quot;mcpServers&quot;</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
27
- <a id=__codelineno-12-3 name=__codelineno-12-3 href=#__codelineno-12-3></a><span class=w> </span><span class=nt>&quot;deepcritical-local&quot;</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
28
- <a id=__codelineno-12-4 name=__codelineno-12-4 href=#__codelineno-12-4></a><span class=w> </span><span class=nt>&quot;url&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;http://localhost:7860/gradio_api/mcp/&quot;</span>
29
- <a id=__codelineno-12-5 name=__codelineno-12-5 href=#__codelineno-12-5></a><span class=w> </span><span class=p>},</span>
30
- <a id=__codelineno-12-6 name=__codelineno-12-6 href=#__codelineno-12-6></a><span class=w> </span><span class=nt>&quot;deepcritical-remote&quot;</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
31
- <a id=__codelineno-12-7 name=__codelineno-12-7 href=#__codelineno-12-7></a><span class=w> </span><span class=nt>&quot;url&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;https://your-server.com/gradio_api/mcp/&quot;</span>
32
- <a id=__codelineno-12-8 name=__codelineno-12-8 href=#__codelineno-12-8></a><span class=w> </span><span class=p>}</span>
33
- <a id=__codelineno-12-9 name=__codelineno-12-9 href=#__codelineno-12-9></a><span class=w> </span><span class=p>}</span>
34
- <a id=__codelineno-12-10 name=__codelineno-12-10 href=#__codelineno-12-10></a><span class=p>}</span>
35
- </code></pre></div> <h2 id=next-steps>Next Steps<a class=headerlink href=#next-steps title="Permanent link">&para;</a></h2> <ul> <li>Learn about <a href=../../configuration/ >Configuration</a> for advanced settings</li> <li>Explore <a href=../examples/ >Examples</a> for use cases</li> <li>Read the <a href=../../architecture/graph-orchestration/ >Architecture Documentation</a></li> </ul> </article> </div> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=github.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title=huggingface.co class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> </body> </html>
 
1
+ <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DeepCritical Team"><link href=https://deepcritical.github.io/GradioDemo/getting-started/mcp-integration/ rel=canonical><link href=../quick-start/ rel=prev><link href=../examples/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>MCP Integration - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><link rel=stylesheet href=../../css/timeago.css><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#mcp-integration class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> MCP Integration </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../../architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../../contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_3 checked> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=true> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../quick-start/ class=md-nav__link> <span class=md-ellipsis> Single Command Deploy </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> MCP Integration </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> MCP Integration </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#what-is-mcp class=md-nav__link> <span class=md-ellipsis> What is MCP? </span> </a> </li> <li class=md-nav__item> <a href=#mcp-server-url class=md-nav__link> <span class=md-ellipsis> MCP Server URL </span> </a> </li> <li class=md-nav__item> <a href=#claude-desktop-configuration class=md-nav__link> <span class=md-ellipsis> Claude Desktop Configuration </span> </a> <nav class=md-nav aria-label="Claude Desktop Configuration"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#1-locate-configuration-file class=md-nav__link> <span class=md-ellipsis> 1. Locate Configuration File </span> </a> </li> <li class=md-nav__item> <a href=#2-add-the-determinator-server class=md-nav__link> <span class=md-ellipsis> 2. Add The DETERMINATOR Server </span> </a> </li> <li class=md-nav__item> <a href=#3-restart-claude-desktop class=md-nav__link> <span class=md-ellipsis> 3. Restart Claude Desktop </span> </a> </li> <li class=md-nav__item> <a href=#4-verify-connection class=md-nav__link> <span class=md-ellipsis> 4. Verify Connection </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#available-tools class=md-nav__link> <span class=md-ellipsis> Available Tools </span> </a> <nav class=md-nav aria-label="Available Tools"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#search_pubmed class=md-nav__link> <span class=md-ellipsis> search_pubmed </span> </a> </li> <li class=md-nav__item> <a href=#search_clinical_trials class=md-nav__link> <span class=md-ellipsis> search_clinical_trials </span> </a> </li> <li class=md-nav__item> <a href=#search_biorxiv class=md-nav__link> <span class=md-ellipsis> search_biorxiv </span> </a> </li> <li class=md-nav__item> <a href=#search_all class=md-nav__link> <span class=md-ellipsis> search_all </span> </a> </li> <li class=md-nav__item> <a href=#analyze_hypothesis class=md-nav__link> <span class=md-ellipsis> analyze_hypothesis </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#using-tools-in-claude-desktop class=md-nav__link> <span class=md-ellipsis> Using Tools in Claude Desktop </span> </a> </li> <li class=md-nav__item> <a href=#troubleshooting class=md-nav__link> <span class=md-ellipsis> Troubleshooting </span> </a> <nav class=md-nav aria-label=Troubleshooting> <ul class=md-nav__list> <li class=md-nav__item> <a href=#connection-issues class=md-nav__link> <span class=md-ellipsis> Connection Issues </span> </a> </li> <li class=md-nav__item> <a href=#authentication class=md-nav__link> <span class=md-ellipsis> Authentication </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#advanced-configuration class=md-nav__link> <span class=md-ellipsis> Advanced Configuration </span> </a> <nav class=md-nav aria-label="Advanced Configuration"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#custom-port class=md-nav__link> <span class=md-ellipsis> Custom Port </span> </a> </li> <li class=md-nav__item> <a href=#multiple-instances class=md-nav__link> <span class=md-ellipsis> Multiple Instances </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#next-steps class=md-nav__link> <span class=md-ellipsis> Next Steps </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <div class="md-nav__link md-nav__container"> <a href=../../configuration/ class="md-nav__link "> <span class=md-ellipsis> Configuration </span> </a> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <div class="md-nav__link md-nav__container"> <a href=../../contributing/ class="md-nav__link "> <span class=md-ellipsis> Contributing </span> </a> <label class="md-nav__link " for=__nav_7 id=__nav_7_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=mcp-integration>MCP Integration<a class=headerlink href=#mcp-integration title="Anchor link to this section">&para;</a></h1> <p>The DETERMINATOR exposes a Model Context Protocol (MCP) server, allowing you to use its search tools directly from Claude Desktop or other MCP clients.</p> <h2 id=what-is-mcp>What is MCP?<a class=headerlink href=#what-is-mcp title="Anchor link to this section">&para;</a></h2> <p>The Model Context Protocol (MCP) is a standard for connecting AI assistants to external tools and data sources. The DETERMINATOR implements an MCP server that exposes its search capabilities as MCP tools.</p> <h2 id=mcp-server-url>MCP Server URL<a class=headerlink href=#mcp-server-url title="Anchor link to this section">&para;</a></h2> <p>When running locally:</p> <div class="language-text highlight"><pre><span></span><code><span id=__span-0-1><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a>http://localhost:7860/gradio_api/mcp/
2
+ </span></code></pre></div> <h2 id=claude-desktop-configuration>Claude Desktop Configuration<a class=headerlink href=#claude-desktop-configuration title="Anchor link to this section">&para;</a></h2> <h3 id=1-locate-configuration-file>1. Locate Configuration File<a class=headerlink href=#1-locate-configuration-file title="Anchor link to this section">&para;</a></h3> <p><strong>macOS</strong>: <div class="language-text highlight"><pre><span></span><code><span id=__span-1-1><a id=__codelineno-1-1 name=__codelineno-1-1 href=#__codelineno-1-1></a>~/Library/Application Support/Claude/claude_desktop_config.json
3
+ </span></code></pre></div></p> <p><strong>Windows</strong>: <div class="language-text highlight"><pre><span></span><code><span id=__span-2-1><a id=__codelineno-2-1 name=__codelineno-2-1 href=#__codelineno-2-1></a>%APPDATA%\Claude\claude_desktop_config.json
4
+ </span></code></pre></div></p> <p><strong>Linux</strong>: <div class="language-text highlight"><pre><span></span><code><span id=__span-3-1><a id=__codelineno-3-1 name=__codelineno-3-1 href=#__codelineno-3-1></a>~/.config/Claude/claude_desktop_config.json
5
+ </span></code></pre></div></p> <h3 id=2-add-the-determinator-server>2. Add The DETERMINATOR Server<a class=headerlink href=#2-add-the-determinator-server title="Anchor link to this section">&para;</a></h3> <p>Edit <code>claude_desktop_config.json</code> and add:</p> <div class="language-json highlight"><pre><span></span><code><span id=__span-4-1><a id=__codelineno-4-1 name=__codelineno-4-1 href=#__codelineno-4-1></a><span class=p>{</span>
6
+ </span><span id=__span-4-2><a id=__codelineno-4-2 name=__codelineno-4-2 href=#__codelineno-4-2></a><span class=w> </span><span class=nt>&quot;mcpServers&quot;</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
7
+ </span><span id=__span-4-3><a id=__codelineno-4-3 name=__codelineno-4-3 href=#__codelineno-4-3></a><span class=w> </span><span class=nt>&quot;determinator&quot;</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
8
+ </span><span id=__span-4-4><a id=__codelineno-4-4 name=__codelineno-4-4 href=#__codelineno-4-4></a><span class=w> </span><span class=nt>&quot;url&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;http://localhost:7860/gradio_api/mcp/&quot;</span>
9
+ </span><span id=__span-4-5><a id=__codelineno-4-5 name=__codelineno-4-5 href=#__codelineno-4-5></a><span class=w> </span><span class=p>}</span>
10
+ </span><span id=__span-4-6><a id=__codelineno-4-6 name=__codelineno-4-6 href=#__codelineno-4-6></a><span class=w> </span><span class=p>}</span>
11
+ </span><span id=__span-4-7><a id=__codelineno-4-7 name=__codelineno-4-7 href=#__codelineno-4-7></a><span class=p>}</span>
12
+ </span></code></pre></div> <h3 id=3-restart-claude-desktop>3. Restart Claude Desktop<a class=headerlink href=#3-restart-claude-desktop title="Anchor link to this section">&para;</a></h3> <p>Close and restart Claude Desktop for changes to take effect.</p> <h3 id=4-verify-connection>4. Verify Connection<a class=headerlink href=#4-verify-connection title="Anchor link to this section">&para;</a></h3> <p>In Claude Desktop, you should see The DETERMINATOR tools available: - <code>search_pubmed</code> - <code>search_clinical_trials</code> - <code>search_biorxiv</code> - <code>search_all</code> - <code>analyze_hypothesis</code></p> <h2 id=available-tools>Available Tools<a class=headerlink href=#available-tools title="Anchor link to this section">&para;</a></h2> <h3 id=search_pubmed>search_pubmed<a class=headerlink href=#search_pubmed title="Anchor link to this section">&para;</a></h3> <p>Search peer-reviewed biomedical literature from PubMed.</p> <p><strong>Parameters</strong>: - <code>query</code> (string): Search query - <code>max_results</code> (integer, optional): Maximum number of results (default: 10)</p> <p><strong>Example</strong>: <div class="language-text highlight"><pre><span></span><code><span id=__span-5-1><a id=__codelineno-5-1 name=__codelineno-5-1 href=#__codelineno-5-1></a>Search PubMed for &quot;metformin diabetes&quot;
13
+ </span></code></pre></div></p> <h3 id=search_clinical_trials>search_clinical_trials<a class=headerlink href=#search_clinical_trials title="Anchor link to this section">&para;</a></h3> <p>Search ClinicalTrials.gov for interventional studies.</p> <p><strong>Parameters</strong>: - <code>query</code> (string): Search query - <code>max_results</code> (integer, optional): Maximum number of results (default: 10)</p> <p><strong>Example</strong>: <div class="language-text highlight"><pre><span></span><code><span id=__span-6-1><a id=__codelineno-6-1 name=__codelineno-6-1 href=#__codelineno-6-1></a>Search clinical trials for &quot;Alzheimer&#39;s disease treatment&quot;
14
+ </span></code></pre></div></p> <h3 id=search_biorxiv>search_biorxiv<a class=headerlink href=#search_biorxiv title="Anchor link to this section">&para;</a></h3> <p>Search bioRxiv/medRxiv preprints via Europe PMC.</p> <p><strong>Parameters</strong>: - <code>query</code> (string): Search query - <code>max_results</code> (integer, optional): Maximum number of results (default: 10)</p> <p><strong>Example</strong>: <div class="language-text highlight"><pre><span></span><code><span id=__span-7-1><a id=__codelineno-7-1 name=__codelineno-7-1 href=#__codelineno-7-1></a>Search bioRxiv for &quot;CRISPR gene editing&quot;
15
+ </span></code></pre></div></p> <h3 id=search_all>search_all<a class=headerlink href=#search_all title="Anchor link to this section">&para;</a></h3> <p>Search all sources simultaneously (PubMed, ClinicalTrials.gov, Europe PMC).</p> <p><strong>Parameters</strong>: - <code>query</code> (string): Search query - <code>max_results</code> (integer, optional): Maximum number of results per source (default: 10)</p> <p><strong>Example</strong>: <div class="language-text highlight"><pre><span></span><code><span id=__span-8-1><a id=__codelineno-8-1 name=__codelineno-8-1 href=#__codelineno-8-1></a>Search all sources for &quot;COVID-19 vaccine efficacy&quot;
16
+ </span></code></pre></div></p> <h3 id=analyze_hypothesis>analyze_hypothesis<a class=headerlink href=#analyze_hypothesis title="Anchor link to this section">&para;</a></h3> <p>Perform secure statistical analysis using Modal sandboxes.</p> <p><strong>Parameters</strong>: - <code>hypothesis</code> (string): Hypothesis to analyze - <code>data</code> (string, optional): Data description or code</p> <p><strong>Example</strong>: <div class="language-text highlight"><pre><span></span><code><span id=__span-9-1><a id=__codelineno-9-1 name=__codelineno-9-1 href=#__codelineno-9-1></a>Analyze the hypothesis that metformin reduces cancer risk
17
+ </span></code></pre></div></p> <h2 id=using-tools-in-claude-desktop>Using Tools in Claude Desktop<a class=headerlink href=#using-tools-in-claude-desktop title="Anchor link to this section">&para;</a></h2> <p>Once configured, you can ask Claude to use DeepCritical tools:</p> <div class="language-text highlight"><pre><span></span><code><span id=__span-10-1><a id=__codelineno-10-1 name=__codelineno-10-1 href=#__codelineno-10-1></a>Use DeepCritical to search PubMed for recent papers on Alzheimer&#39;s disease treatments.
18
+ </span></code></pre></div> <p>Claude will automatically: 1. Call the appropriate DeepCritical tool 2. Retrieve results 3. Use the results in its response</p> <h2 id=troubleshooting>Troubleshooting<a class=headerlink href=#troubleshooting title="Anchor link to this section">&para;</a></h2> <h3 id=connection-issues>Connection Issues<a class=headerlink href=#connection-issues title="Anchor link to this section">&para;</a></h3> <p><strong>Server Not Found</strong>: - Ensure DeepCritical is running (<code>uv run gradio run src/app.py</code>) - Verify the URL in <code>claude_desktop_config.json</code> is correct - Check that port 7860 is not blocked by firewall</p> <p><strong>Tools Not Appearing</strong>: - Restart Claude Desktop after configuration changes - Check Claude Desktop logs for errors - Verify MCP server is accessible at the configured URL</p> <h3 id=authentication>Authentication<a class=headerlink href=#authentication title="Anchor link to this section">&para;</a></h3> <p>If DeepCritical requires authentication: - Configure API keys in DeepCritical settings - Use HuggingFace OAuth login - Ensure API keys are valid</p> <h2 id=advanced-configuration>Advanced Configuration<a class=headerlink href=#advanced-configuration title="Anchor link to this section">&para;</a></h2> <h3 id=custom-port>Custom Port<a class=headerlink href=#custom-port title="Anchor link to this section">&para;</a></h3> <p>If running on a different port, update the URL:</p> <div class="language-json highlight"><pre><span></span><code><span id=__span-11-1><a id=__codelineno-11-1 name=__codelineno-11-1 href=#__codelineno-11-1></a><span class=p>{</span>
19
+ </span><span id=__span-11-2><a id=__codelineno-11-2 name=__codelineno-11-2 href=#__codelineno-11-2></a><span class=w> </span><span class=nt>&quot;mcpServers&quot;</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
20
+ </span><span id=__span-11-3><a id=__codelineno-11-3 name=__codelineno-11-3 href=#__codelineno-11-3></a><span class=w> </span><span class=nt>&quot;deepcritical&quot;</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
21
+ </span><span id=__span-11-4><a id=__codelineno-11-4 name=__codelineno-11-4 href=#__codelineno-11-4></a><span class=w> </span><span class=nt>&quot;url&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;http://localhost:8080/gradio_api/mcp/&quot;</span>
22
+ </span><span id=__span-11-5><a id=__codelineno-11-5 name=__codelineno-11-5 href=#__codelineno-11-5></a><span class=w> </span><span class=p>}</span>
23
+ </span><span id=__span-11-6><a id=__codelineno-11-6 name=__codelineno-11-6 href=#__codelineno-11-6></a><span class=w> </span><span class=p>}</span>
24
+ </span><span id=__span-11-7><a id=__codelineno-11-7 name=__codelineno-11-7 href=#__codelineno-11-7></a><span class=p>}</span>
25
+ </span></code></pre></div> <h3 id=multiple-instances>Multiple Instances<a class=headerlink href=#multiple-instances title="Anchor link to this section">&para;</a></h3> <p>You can configure multiple DeepCritical instances:</p> <div class="language-json highlight"><pre><span></span><code><span id=__span-12-1><a id=__codelineno-12-1 name=__codelineno-12-1 href=#__codelineno-12-1></a><span class=p>{</span>
26
+ </span><span id=__span-12-2><a id=__codelineno-12-2 name=__codelineno-12-2 href=#__codelineno-12-2></a><span class=w> </span><span class=nt>&quot;mcpServers&quot;</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
27
+ </span><span id=__span-12-3><a id=__codelineno-12-3 name=__codelineno-12-3 href=#__codelineno-12-3></a><span class=w> </span><span class=nt>&quot;deepcritical-local&quot;</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
28
+ </span><span id=__span-12-4><a id=__codelineno-12-4 name=__codelineno-12-4 href=#__codelineno-12-4></a><span class=w> </span><span class=nt>&quot;url&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;http://localhost:7860/gradio_api/mcp/&quot;</span>
29
+ </span><span id=__span-12-5><a id=__codelineno-12-5 name=__codelineno-12-5 href=#__codelineno-12-5></a><span class=w> </span><span class=p>},</span>
30
+ </span><span id=__span-12-6><a id=__codelineno-12-6 name=__codelineno-12-6 href=#__codelineno-12-6></a><span class=w> </span><span class=nt>&quot;deepcritical-remote&quot;</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
31
+ </span><span id=__span-12-7><a id=__codelineno-12-7 name=__codelineno-12-7 href=#__codelineno-12-7></a><span class=w> </span><span class=nt>&quot;url&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;https://your-server.com/gradio_api/mcp/&quot;</span>
32
+ </span><span id=__span-12-8><a id=__codelineno-12-8 name=__codelineno-12-8 href=#__codelineno-12-8></a><span class=w> </span><span class=p>}</span>
33
+ </span><span id=__span-12-9><a id=__codelineno-12-9 name=__codelineno-12-9 href=#__codelineno-12-9></a><span class=w> </span><span class=p>}</span>
34
+ </span><span id=__span-12-10><a id=__codelineno-12-10 name=__codelineno-12-10 href=#__codelineno-12-10></a><span class=p>}</span>
35
+ </span></code></pre></div> <h2 id=next-steps>Next Steps<a class=headerlink href=#next-steps title="Anchor link to this section">&para;</a></h2> <ul> <li>Learn about <a href=../../configuration/ >Configuration</a> for advanced settings</li> <li>Explore <a href=../examples/ >Examples</a> for use cases</li> <li>Read the <a href=../../architecture/graph_orchestration/ >Architecture Documentation</a></li> </ul> <aside class=md-source-file> <span class=md-source-file__fact> <span class=md-icon title="Last update"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="December 2, 2025 01:35:56 UTC"><span class=timeago datetime=2025-12-02T01:35:56+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="December 2, 2025 01:35:56 UTC">2025-12-02</span> </span> <span class=md-source-file__fact> <span class=md-icon title=Created> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M14.47 15.08 11 13V7h1.5v5.25l3.08 1.83c-.41.28-.79.62-1.11 1m-1.39 4.84c-.36.05-.71.08-1.08.08-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8c0 .37-.03.72-.08 1.08.69.1 1.33.32 1.92.64.1-.56.16-1.13.16-1.72 0-5.5-4.5-10-10-10S2 6.5 2 12s4.47 10 10 10c.59 0 1.16-.06 1.72-.16-.32-.59-.54-1.23-.64-1.92M18 15v3h-3v2h3v3h2v-3h3v-2h-3v-3z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="November 29, 2025 21:40:26 UTC"><span class=timeago datetime=2025-11-29T21:40:26+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="November 29, 2025 21:40:26 UTC">2025-11-29</span> </span> </aside> </article> </div> <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=GitHub class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://twitter.com/josephpollack target=_blank rel=noopener title=Twitter class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M459.4 151.7c.3 4.5.3 9.1.3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103v-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53C87.4 130.8 165 172.4 252.1 176.9c-1.6-7.8-2.6-15.9-2.6-24C249.5 95.1 296.3 48 354.4 48c30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title="Live Demo" class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> <a href=https://discord.gg/n8ytYeh25n target=_blank rel=noopener title=Discord class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 576 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M492.5 69.8c-.2-.3-.4-.6-.8-.7-38.1-17.5-78.4-30-119.7-37.1-.4-.1-.8 0-1.1.1s-.6.4-.8.8c-5.5 9.9-10.5 20.2-14.9 30.6-44.6-6.8-89.9-6.8-134.4 0-4.5-10.5-9.5-20.7-15.1-30.6-.2-.3-.5-.6-.8-.8s-.7-.2-1.1-.2C162.5 39 122.2 51.5 84.1 69c-.3.1-.6.4-.8.7C7.1 183.5-13.8 294.6-3.6 404.2c0 .3.1.5.2.8s.3.4.5.6c44.4 32.9 94 58 146.8 74.2.4.1.8.1 1.1 0s.7-.4.9-.7c11.3-15.4 21.4-31.8 30-48.8.1-.2.2-.5.2-.8s0-.5-.1-.8-.2-.5-.4-.6-.4-.3-.7-.4c-15.8-6.1-31.2-13.4-45.9-21.9-.3-.2-.5-.4-.7-.6s-.3-.6-.3-.9 0-.6.2-.9.3-.5.6-.7c3.1-2.3 6.2-4.7 9.1-7.1.3-.2.6-.4.9-.4s.7 0 1 .1c96.2 43.9 200.4 43.9 295.5 0 .3-.1.7-.2 1-.2s.7.2.9.4c2.9 2.4 6 4.9 9.1 7.2.2.2.4.4.6.7s.2.6.2.9-.1.6-.3.9-.4.5-.6.6c-14.7 8.6-30 15.9-45.9 21.8-.2.1-.5.2-.7.4s-.3.4-.4.7-.1.5-.1.8.1.5.2.8c8.8 17 18.8 33.3 30 48.8.2.3.6.6.9.7s.8.1 1.1 0c52.9-16.2 102.6-41.3 147.1-74.2.2-.2.4-.4.5-.6s.2-.5.2-.8c12.3-126.8-20.5-236.9-86.9-334.5zm-302 267.7c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.4 59.2-52.8 59.2m195.4 0c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.2 59.2-52.8 59.2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "navigation.indexes", "navigation.instant", "navigation.tracking", "navigation.smooth", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy", "content.tabs.link", "content.tooltips", "toc.integrate"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> <script src=../../js/timeago.min.js></script> <script src=../../js/timeago_mkdocs_material.js></script> </body> </html>
site/getting-started/quick-start/index.html CHANGED
@@ -1,6 +1,44 @@
1
- <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DETERMINATOR Team"><link href=https://deepcritical.github.io/GradioDemo/getting-started/quick-start/ rel=canonical><link href=../installation/ rel=prev><link href=../mcp-integration/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Quick Start Guide - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#quick-start-guide class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Quick Start Guide </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/CONFIGURATION/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../../architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../../contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_3 checked> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=true> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Quick Start Guide </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Quick Start Guide </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#start-the-application class=md-nav__link> <span class=md-ellipsis> Start the Application </span> </a> </li> <li class=md-nav__item> <a href=#first-research-query class=md-nav__link> <span class=md-ellipsis> First Research Query </span> </a> </li> <li class=md-nav__item> <a href=#authentication class=md-nav__link> <span class=md-ellipsis> Authentication </span> </a> <nav class=md-nav aria-label=Authentication> <ul class=md-nav__list> <li class=md-nav__item> <a href=#huggingface-oauth-recommended class=md-nav__link> <span class=md-ellipsis> HuggingFace OAuth (Recommended) </span> </a> </li> <li class=md-nav__item> <a href=#manual-api-key class=md-nav__link> <span class=md-ellipsis> Manual API Key </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#understanding-the-interface class=md-nav__link> <span class=md-ellipsis> Understanding the Interface </span> </a> <nav class=md-nav aria-label="Understanding the Interface"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#chat-interface class=md-nav__link> <span class=md-ellipsis> Chat Interface </span> </a> </li> <li class=md-nav__item> <a href=#status-indicators class=md-nav__link> <span class=md-ellipsis> Status Indicators </span> </a> </li> <li class=md-nav__item> <a href=#settings class=md-nav__link> <span class=md-ellipsis> Settings </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#example-queries class=md-nav__link> <span class=md-ellipsis> Example Queries </span> </a> <nav class=md-nav aria-label="Example Queries"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#simple-query class=md-nav__link> <span class=md-ellipsis> Simple Query </span> </a> </li> <li class=md-nav__item> <a href=#complex-query class=md-nav__link> <span class=md-ellipsis> Complex Query </span> </a> </li> <li class=md-nav__item> <a href=#clinical-trial-query class=md-nav__link> <span class=md-ellipsis> Clinical Trial Query </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#next-steps class=md-nav__link> <span class=md-ellipsis> Next Steps </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <label class=md-nav__link for=__nav_4 id=__nav_4_label tabindex=0> <span class=md-ellipsis> Configuration </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../configuration/CONFIGURATION/ class=md-nav__link> <span class=md-ellipsis> Configuration Guide </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <label class=md-nav__link for=__nav_7 id=__nav_7_label tabindex=0> <span class=md-ellipsis> Contributing </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../contributing/ class=md-nav__link> <span class=md-ellipsis> Contributing to DeepCritical </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=sidebar data-md-type=toc> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#start-the-application class=md-nav__link> <span class=md-ellipsis> Start the Application </span> </a> </li> <li class=md-nav__item> <a href=#first-research-query class=md-nav__link> <span class=md-ellipsis> First Research Query </span> </a> </li> <li class=md-nav__item> <a href=#authentication class=md-nav__link> <span class=md-ellipsis> Authentication </span> </a> <nav class=md-nav aria-label=Authentication> <ul class=md-nav__list> <li class=md-nav__item> <a href=#huggingface-oauth-recommended class=md-nav__link> <span class=md-ellipsis> HuggingFace OAuth (Recommended) </span> </a> </li> <li class=md-nav__item> <a href=#manual-api-key class=md-nav__link> <span class=md-ellipsis> Manual API Key </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#understanding-the-interface class=md-nav__link> <span class=md-ellipsis> Understanding the Interface </span> </a> <nav class=md-nav aria-label="Understanding the Interface"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#chat-interface class=md-nav__link> <span class=md-ellipsis> Chat Interface </span> </a> </li> <li class=md-nav__item> <a href=#status-indicators class=md-nav__link> <span class=md-ellipsis> Status Indicators </span> </a> </li> <li class=md-nav__item> <a href=#settings class=md-nav__link> <span class=md-ellipsis> Settings </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#example-queries class=md-nav__link> <span class=md-ellipsis> Example Queries </span> </a> <nav class=md-nav aria-label="Example Queries"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#simple-query class=md-nav__link> <span class=md-ellipsis> Simple Query </span> </a> </li> <li class=md-nav__item> <a href=#complex-query class=md-nav__link> <span class=md-ellipsis> Complex Query </span> </a> </li> <li class=md-nav__item> <a href=#clinical-trial-query class=md-nav__link> <span class=md-ellipsis> Clinical Trial Query </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#next-steps class=md-nav__link> <span class=md-ellipsis> Next Steps </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=quick-start-guide>Quick Start Guide<a class=headerlink href=#quick-start-guide title="Permanent link">&para;</a></h1> <p>Get up and running with DeepCritical in minutes.</p> <h2 id=start-the-application>Start the Application<a class=headerlink href=#start-the-application title="Permanent link">&para;</a></h2> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a>uv<span class=w> </span>run<span class=w> </span>gradio<span class=w> </span>run<span class=w> </span>src/app.py
2
- </code></pre></div> <p>Open your browser to <code>http://localhost:7860</code>.</p> <h2 id=first-research-query>First Research Query<a class=headerlink href=#first-research-query title="Permanent link">&para;</a></h2> <ol> <li><strong>Enter a Research Question</strong></li> </ol> <p>Type your research question in the chat interface, for example: - "What are the latest treatments for Alzheimer's disease?" - "Review the evidence for metformin in cancer prevention" - "What clinical trials are investigating COVID-19 vaccines?"</p> <ol> <li><strong>Submit the Query</strong></li> </ol> <p>Click "Submit" or press Enter. The system will: - Generate observations about your query - Identify knowledge gaps - Search multiple sources (PubMed, ClinicalTrials.gov, Europe PMC) - Evaluate evidence quality - Synthesize findings into a report</p> <ol> <li><strong>Review Results</strong></li> </ol> <p>Watch the real-time progress in the chat interface: - Search operations and results - Evidence evaluation - Report generation - Final research report with citations</p> <h2 id=authentication>Authentication<a class=headerlink href=#authentication title="Permanent link">&para;</a></h2> <h3 id=huggingface-oauth-recommended>HuggingFace OAuth (Recommended)<a class=headerlink href=#huggingface-oauth-recommended title="Permanent link">&para;</a></h3> <ol> <li>Click "Sign in with HuggingFace" at the top of the app</li> <li>Authorize the application</li> <li>Your HuggingFace API token will be automatically used</li> <li>No need to manually enter API keys</li> </ol> <h3 id=manual-api-key>Manual API Key<a class=headerlink href=#manual-api-key title="Permanent link">&para;</a></h3> <ol> <li>Open the Settings accordion</li> <li>Enter your API key:</li> <li>OpenAI API key</li> <li>Anthropic API key</li> <li>HuggingFace API key</li> <li>Click "Save Settings"</li> <li>Manual keys take priority over OAuth tokens</li> </ol> <h2 id=understanding-the-interface>Understanding the Interface<a class=headerlink href=#understanding-the-interface title="Permanent link">&para;</a></h2> <h3 id=chat-interface>Chat Interface<a class=headerlink href=#chat-interface title="Permanent link">&para;</a></h3> <ul> <li><strong>Input</strong>: Enter your research questions here</li> <li><strong>Messages</strong>: View conversation history and research progress</li> <li><strong>Streaming</strong>: Real-time updates as research progresses</li> </ul> <h3 id=status-indicators>Status Indicators<a class=headerlink href=#status-indicators title="Permanent link">&para;</a></h3> <ul> <li><strong>Searching</strong>: Active search operations</li> <li><strong>Evaluating</strong>: Evidence quality assessment</li> <li><strong>Synthesizing</strong>: Report generation</li> <li><strong>Complete</strong>: Research finished</li> </ul> <h3 id=settings>Settings<a class=headerlink href=#settings title="Permanent link">&para;</a></h3> <ul> <li><strong>API Keys</strong>: Configure LLM providers</li> <li><strong>Research Mode</strong>: Choose iterative or deep research</li> <li><strong>Budget Limits</strong>: Set token, time, and iteration limits</li> </ul> <h2 id=example-queries>Example Queries<a class=headerlink href=#example-queries title="Permanent link">&para;</a></h2> <h3 id=simple-query>Simple Query<a class=headerlink href=#simple-query title="Permanent link">&para;</a></h3> <div class=highlight><pre><span></span><code><a id=__codelineno-1-1 name=__codelineno-1-1 href=#__codelineno-1-1></a>What are the side effects of metformin?
3
- </code></pre></div> <h3 id=complex-query>Complex Query<a class=headerlink href=#complex-query title="Permanent link">&para;</a></h3> <div class=highlight><pre><span></span><code><a id=__codelineno-2-1 name=__codelineno-2-1 href=#__codelineno-2-1></a>Review the evidence for using metformin as an anti-aging intervention,
4
- <a id=__codelineno-2-2 name=__codelineno-2-2 href=#__codelineno-2-2></a>including clinical trials, mechanisms of action, and safety profile.
5
- </code></pre></div> <h3 id=clinical-trial-query>Clinical Trial Query<a class=headerlink href=#clinical-trial-query title="Permanent link">&para;</a></h3> <div class=highlight><pre><span></span><code><a id=__codelineno-3-1 name=__codelineno-3-1 href=#__codelineno-3-1></a>What are the active clinical trials investigating Alzheimer&#39;s disease treatments?
6
- </code></pre></div> <h2 id=next-steps>Next Steps<a class=headerlink href=#next-steps title="Permanent link">&para;</a></h2> <ul> <li>Learn about <a href=../mcp-integration/ >MCP Integration</a> to use DeepCritical from Claude Desktop</li> <li>Explore <a href=../examples/ >Examples</a> for more use cases</li> <li>Read the <a href=../../configuration/ >Configuration Guide</a> for advanced settings</li> <li>Check out the <a href=../../architecture/graph-orchestration/ >Architecture Documentation</a> to understand how it works</li> </ul> </article> </div> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=github.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title=huggingface.co class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> </body> </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DeepCritical Team"><link href=https://deepcritical.github.io/GradioDemo/getting-started/quick-start/ rel=canonical><link href=../installation/ rel=prev><link href=../mcp-integration/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Single Command Deploy - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><link rel=stylesheet href=../../css/timeago.css><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#single-command-deploy class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Single Command Deploy </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../../architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../../contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_3 checked> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=true> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Single Command Deploy </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Single Command Deploy </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#first-research-query class=md-nav__link> <span class=md-ellipsis> First Research Query </span> </a> </li> <li class=md-nav__item> <a href=#authentication class=md-nav__link> <span class=md-ellipsis> Authentication </span> </a> <nav class=md-nav aria-label=Authentication> <ul class=md-nav__list> <li class=md-nav__item> <a href=#huggingface-oauth-recommended class=md-nav__link> <span class=md-ellipsis> HuggingFace OAuth (Recommended) </span> </a> </li> <li class=md-nav__item> <a href=#manual-api-key class=md-nav__link> <span class=md-ellipsis> Manual API Key </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#understanding-the-interface class=md-nav__link> <span class=md-ellipsis> Understanding the Interface </span> </a> <nav class=md-nav aria-label="Understanding the Interface"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#chat-interface class=md-nav__link> <span class=md-ellipsis> Chat Interface </span> </a> </li> <li class=md-nav__item> <a href=#status-indicators class=md-nav__link> <span class=md-ellipsis> Status Indicators </span> </a> </li> <li class=md-nav__item> <a href=#settings class=md-nav__link> <span class=md-ellipsis> Settings </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#example-queries class=md-nav__link> <span class=md-ellipsis> Example Queries </span> </a> <nav class=md-nav aria-label="Example Queries"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#simple-query class=md-nav__link> <span class=md-ellipsis> Simple Query </span> </a> </li> <li class=md-nav__item> <a href=#complex-query class=md-nav__link> <span class=md-ellipsis> Complex Query </span> </a> </li> <li class=md-nav__item> <a href=#clinical-trial-query class=md-nav__link> <span class=md-ellipsis> Clinical Trial Query </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#next-steps class=md-nav__link> <span class=md-ellipsis> Next Steps </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <div class="md-nav__link md-nav__container"> <a href=../../configuration/ class="md-nav__link "> <span class=md-ellipsis> Configuration </span> </a> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <div class="md-nav__link md-nav__container"> <a href=../../contributing/ class="md-nav__link "> <span class=md-ellipsis> Contributing </span> </a> <label class="md-nav__link " for=__nav_7 id=__nav_7_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=single-command-deploy>Single Command Deploy<a class=headerlink href=#single-command-deploy title="Anchor link to this section">&para;</a></h1> <p>Deploy with docker instandly with a single command :</p> <div class="language-bash highlight"><pre><span></span><code><span id=__span-0-1><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a>docker<span class=w> </span>run<span class=w> </span>-it<span class=w> </span>-p<span class=w> </span><span class=m>7860</span>:7860<span class=w> </span>--platform<span class=o>=</span>linux/amd64<span class=w> </span><span class=se>\</span>
2
+ </span><span id=__span-0-2><a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a><span class=w> </span>-e<span class=w> </span><span class=nv>DB_KEY</span><span class=o>=</span><span class=s2>&quot;YOUR_VALUE_HERE&quot;</span><span class=w> </span><span class=se>\</span>
3
+ </span><span id=__span-0-3><a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a><span class=w> </span>-e<span class=w> </span><span class=nv>SERP_API</span><span class=o>=</span><span class=s2>&quot;YOUR_VALUE_HERE&quot;</span><span class=w> </span><span class=se>\</span>
4
+ </span><span id=__span-0-4><a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a><span class=w> </span>-e<span class=w> </span><span class=nv>INFERENCE_API</span><span class=o>=</span><span class=s2>&quot;YOUR_VALUE_HERE&quot;</span><span class=w> </span><span class=se>\</span>
5
+ </span><span id=__span-0-5><a id=__codelineno-0-5 name=__codelineno-0-5 href=#__codelineno-0-5></a><span class=w> </span>-e<span class=w> </span><span class=nv>MODAL_TOKEN_ID</span><span class=o>=</span><span class=s2>&quot;YOUR_VALUE_HERE&quot;</span><span class=w> </span><span class=se>\</span>
6
+ </span><span id=__span-0-6><a id=__codelineno-0-6 name=__codelineno-0-6 href=#__codelineno-0-6></a><span class=w> </span>-e<span class=w> </span><span class=nv>MODAL_TOKEN_SECRET</span><span class=o>=</span><span class=s2>&quot;YOUR_VALUE_HERE&quot;</span><span class=w> </span><span class=se>\</span>
7
+ </span><span id=__span-0-7><a id=__codelineno-0-7 name=__codelineno-0-7 href=#__codelineno-0-7></a><span class=w> </span>-e<span class=w> </span><span class=nv>NCBI_API_KEY</span><span class=o>=</span><span class=s2>&quot;YOUR_VALUE_HERE&quot;</span><span class=w> </span><span class=se>\</span>
8
+ </span><span id=__span-0-8><a id=__codelineno-0-8 name=__codelineno-0-8 href=#__codelineno-0-8></a><span class=w> </span>-e<span class=w> </span><span class=nv>SERPER_API_KEY</span><span class=o>=</span><span class=s2>&quot;YOUR_VALUE_HERE&quot;</span><span class=w> </span><span class=se>\</span>
9
+ </span><span id=__span-0-9><a id=__codelineno-0-9 name=__codelineno-0-9 href=#__codelineno-0-9></a><span class=w> </span>-e<span class=w> </span><span class=nv>CHROMA_DB_PATH</span><span class=o>=</span><span class=s2>&quot;./chroma_db&quot;</span><span class=w> </span><span class=se>\</span>
10
+ </span><span id=__span-0-10><a id=__codelineno-0-10 name=__codelineno-0-10 href=#__codelineno-0-10></a><span class=w> </span>-e<span class=w> </span><span class=nv>CHROMA_DB_HOST</span><span class=o>=</span><span class=s2>&quot;localhost&quot;</span><span class=w> </span><span class=se>\</span>
11
+ </span><span id=__span-0-11><a id=__codelineno-0-11 name=__codelineno-0-11 href=#__codelineno-0-11></a><span class=w> </span>-e<span class=w> </span><span class=nv>CHROMA_DB_PORT</span><span class=o>=</span><span class=s2>&quot;8000&quot;</span><span class=w> </span><span class=se>\</span>
12
+ </span><span id=__span-0-12><a id=__codelineno-0-12 name=__codelineno-0-12 href=#__codelineno-0-12></a><span class=w> </span>-e<span class=w> </span><span class=nv>RAG_COLLECTION_NAME</span><span class=o>=</span><span class=s2>&quot;deepcritical_evidence&quot;</span><span class=w> </span><span class=se>\</span>
13
+ </span><span id=__span-0-13><a id=__codelineno-0-13 name=__codelineno-0-13 href=#__codelineno-0-13></a><span class=w> </span>-e<span class=w> </span><span class=nv>RAG_SIMILARITY_TOP_K</span><span class=o>=</span><span class=s2>&quot;5&quot;</span><span class=w> </span><span class=se>\</span>
14
+ </span><span id=__span-0-14><a id=__codelineno-0-14 name=__codelineno-0-14 href=#__codelineno-0-14></a><span class=w> </span>-e<span class=w> </span><span class=nv>RAG_AUTO_INGEST</span><span class=o>=</span><span class=s2>&quot;true&quot;</span><span class=w> </span><span class=se>\</span>
15
+ </span><span id=__span-0-15><a id=__codelineno-0-15 name=__codelineno-0-15 href=#__codelineno-0-15></a><span class=w> </span>-e<span class=w> </span><span class=nv>USE_GRAPH_EXECUTION</span><span class=o>=</span><span class=s2>&quot;false&quot;</span><span class=w> </span><span class=se>\</span>
16
+ </span><span id=__span-0-16><a id=__codelineno-0-16 name=__codelineno-0-16 href=#__codelineno-0-16></a><span class=w> </span>-e<span class=w> </span><span class=nv>DEFAULT_TOKEN_LIMIT</span><span class=o>=</span><span class=s2>&quot;100000&quot;</span><span class=w> </span><span class=se>\</span>
17
+ </span><span id=__span-0-17><a id=__codelineno-0-17 name=__codelineno-0-17 href=#__codelineno-0-17></a><span class=w> </span>-e<span class=w> </span><span class=nv>DEFAULT_TIME_LIMIT_MINUTES</span><span class=o>=</span><span class=s2>&quot;10&quot;</span><span class=w> </span><span class=se>\</span>
18
+ </span><span id=__span-0-18><a id=__codelineno-0-18 name=__codelineno-0-18 href=#__codelineno-0-18></a><span class=w> </span>-e<span class=w> </span><span class=nv>DEFAULT_ITERATIONS_LIMIT</span><span class=o>=</span><span class=s2>&quot;10&quot;</span><span class=w> </span><span class=se>\</span>
19
+ </span><span id=__span-0-19><a id=__codelineno-0-19 name=__codelineno-0-19 href=#__codelineno-0-19></a><span class=w> </span>-e<span class=w> </span><span class=nv>WEB_SEARCH_PROVIDER</span><span class=o>=</span><span class=s2>&quot;duckduckgo&quot;</span><span class=w> </span><span class=se>\</span>
20
+ </span><span id=__span-0-20><a id=__codelineno-0-20 name=__codelineno-0-20 href=#__codelineno-0-20></a><span class=w> </span>-e<span class=w> </span><span class=nv>MAX_ITERATIONS</span><span class=o>=</span><span class=s2>&quot;10&quot;</span><span class=w> </span><span class=se>\</span>
21
+ </span><span id=__span-0-21><a id=__codelineno-0-21 name=__codelineno-0-21 href=#__codelineno-0-21></a><span class=w> </span>-e<span class=w> </span><span class=nv>SEARCH_TIMEOUT</span><span class=o>=</span><span class=s2>&quot;30&quot;</span><span class=w> </span><span class=se>\</span>
22
+ </span><span id=__span-0-22><a id=__codelineno-0-22 name=__codelineno-0-22 href=#__codelineno-0-22></a><span class=w> </span>-e<span class=w> </span><span class=nv>LOG_LEVEL</span><span class=o>=</span><span class=s2>&quot;DEBUG&quot;</span><span class=w> </span><span class=se>\</span>
23
+ </span><span id=__span-0-23><a id=__codelineno-0-23 name=__codelineno-0-23 href=#__codelineno-0-23></a><span class=w> </span>-e<span class=w> </span><span class=nv>EMBEDDING_PROVIDER</span><span class=o>=</span><span class=s2>&quot;local&quot;</span><span class=w> </span><span class=se>\</span>
24
+ </span><span id=__span-0-24><a id=__codelineno-0-24 name=__codelineno-0-24 href=#__codelineno-0-24></a><span class=w> </span>-e<span class=w> </span><span class=nv>OPENAI_EMBEDDING_MODEL</span><span class=o>=</span><span class=s2>&quot;text-embedding-3-small&quot;</span><span class=w> </span><span class=se>\</span>
25
+ </span><span id=__span-0-25><a id=__codelineno-0-25 name=__codelineno-0-25 href=#__codelineno-0-25></a><span class=w> </span>-e<span class=w> </span><span class=nv>LOCAL_EMBEDDING_MODEL</span><span class=o>=</span><span class=s2>&quot;BAAI/bge-small-en-v1.5&quot;</span><span class=w> </span><span class=se>\</span>
26
+ </span><span id=__span-0-26><a id=__codelineno-0-26 name=__codelineno-0-26 href=#__codelineno-0-26></a><span class=w> </span>-e<span class=w> </span><span class=nv>HUGGINGFACE_EMBEDDING_MODEL</span><span class=o>=</span><span class=s2>&quot;sentence-transformers/all-MiniLM-L6-v2&quot;</span><span class=w> </span><span class=se>\</span>
27
+ </span><span id=__span-0-27><a id=__codelineno-0-27 name=__codelineno-0-27 href=#__codelineno-0-27></a><span class=w> </span>-e<span class=w> </span><span class=nv>HF_FALLBACK_MODELS</span><span class=o>=</span><span class=s2>&quot;Qwen/Qwen3-Next-80B-A3B-Thinking,Qwen/Qwen3-Next-80B-A3B-Instruct,meta-llama/Llama-3.3-70B-Instruct,meta-llama/Llama-3.1-8B-Instruct,HuggingFaceH4/zephyr-7b-beta,Qwen/Qwen2-7B-Instruct&quot;</span><span class=w> </span><span class=se>\</span>
28
+ </span><span id=__span-0-28><a id=__codelineno-0-28 name=__codelineno-0-28 href=#__codelineno-0-28></a><span class=w> </span>-e<span class=w> </span><span class=nv>HUGGINGFACE_MODEL</span><span class=o>=</span><span class=s2>&quot;Qwen/Qwen3-Next-80B-A3B-Thinking&quot;</span><span class=w> </span><span class=se>\</span>
29
+ </span><span id=__span-0-29><a id=__codelineno-0-29 name=__codelineno-0-29 href=#__codelineno-0-29></a><span class=w> </span>registry.hf.space/dataquests-deepcritical:latest<span class=w> </span>python<span class=w> </span>src/app.py
30
+ </span><span id=__span-0-30><a id=__codelineno-0-30 name=__codelineno-0-30 href=#__codelineno-0-30></a><span class=w> </span><span class=sb>```</span>
31
+ </span><span id=__span-0-31><a id=__codelineno-0-31 name=__codelineno-0-31 href=#__codelineno-0-31></a>
32
+ </span><span id=__span-0-32><a id=__codelineno-0-32 name=__codelineno-0-32 href=#__codelineno-0-32></a><span class=c1>## Quick start guide</span>
33
+ </span><span id=__span-0-33><a id=__codelineno-0-33 name=__codelineno-0-33 href=#__codelineno-0-33></a>
34
+ </span><span id=__span-0-34><a id=__codelineno-0-34 name=__codelineno-0-34 href=#__codelineno-0-34></a>Get<span class=w> </span>up<span class=w> </span>and<span class=w> </span>running<span class=w> </span>with<span class=w> </span>The<span class=w> </span>DETERMINATOR<span class=w> </span><span class=k>in</span><span class=w> </span>minutes.
35
+ </span><span id=__span-0-35><a id=__codelineno-0-35 name=__codelineno-0-35 href=#__codelineno-0-35></a>
36
+ </span><span id=__span-0-36><a id=__codelineno-0-36 name=__codelineno-0-36 href=#__codelineno-0-36></a><span class=c1>## Start the Application</span>
37
+ </span><span id=__span-0-37><a id=__codelineno-0-37 name=__codelineno-0-37 href=#__codelineno-0-37></a>
38
+ </span><span id=__span-0-38><a id=__codelineno-0-38 name=__codelineno-0-38 href=#__codelineno-0-38></a><span class=sb>```</span>bash
39
+ </span><span id=__span-0-39><a id=__codelineno-0-39 name=__codelineno-0-39 href=#__codelineno-0-39></a>gradio<span class=w> </span>src/app.py
40
+ </span></code></pre></div> <p>Open your browser to <code>http://localhost:7860</code>.</p> <h2 id=first-research-query>First Research Query<a class=headerlink href=#first-research-query title="Anchor link to this section">&para;</a></h2> <ol> <li><strong>Enter a Research Question</strong></li> </ol> <p>Type your research question in the chat interface, for example: - "What are the latest treatments for Alzheimer's disease?" - "Review the evidence for metformin in cancer prevention" - "What clinical trials are investigating COVID-19 vaccines?"</p> <ol> <li><strong>Submit the Query</strong></li> </ol> <p>Click "Submit" or press Enter. The system will: - Generate observations about your query - Identify knowledge gaps - Search multiple sources (PubMed, ClinicalTrials.gov, Europe PMC) - Evaluate evidence quality - Synthesize findings into a report</p> <ol> <li><strong>Review Results</strong></li> </ol> <p>Watch the real-time progress in the chat interface: - Search operations and results - Evidence evaluation - Report generation - Final research report with citations</p> <h2 id=authentication>Authentication<a class=headerlink href=#authentication title="Anchor link to this section">&para;</a></h2> <h3 id=huggingface-oauth-recommended>HuggingFace OAuth (Recommended)<a class=headerlink href=#huggingface-oauth-recommended title="Anchor link to this section">&para;</a></h3> <ol> <li>Click "Sign in with HuggingFace" at the top of the app</li> <li>Authorize the application</li> <li>Your HuggingFace API token will be automatically used</li> <li>No need to manually enter API keys</li> </ol> <h3 id=manual-api-key>Manual API Key<a class=headerlink href=#manual-api-key title="Anchor link to this section">&para;</a></h3> <ol> <li>Open the Settings accordion</li> <li>Enter your API key:</li> <li>OpenAI API key</li> <li>Anthropic API key</li> <li>HuggingFace API key</li> <li>Click "Save Settings"</li> <li>Manual keys take priority over OAuth tokens</li> </ol> <h2 id=understanding-the-interface>Understanding the Interface<a class=headerlink href=#understanding-the-interface title="Anchor link to this section">&para;</a></h2> <h3 id=chat-interface>Chat Interface<a class=headerlink href=#chat-interface title="Anchor link to this section">&para;</a></h3> <ul> <li><strong>Input</strong>: Enter your research questions here</li> <li><strong>Messages</strong>: View conversation history and research progress</li> <li><strong>Streaming</strong>: Real-time updates as research progresses</li> </ul> <h3 id=status-indicators>Status Indicators<a class=headerlink href=#status-indicators title="Anchor link to this section">&para;</a></h3> <ul> <li><strong>Searching</strong>: Active search operations</li> <li><strong>Evaluating</strong>: Evidence quality assessment</li> <li><strong>Synthesizing</strong>: Report generation</li> <li><strong>Complete</strong>: Research finished</li> </ul> <h3 id=settings>Settings<a class=headerlink href=#settings title="Anchor link to this section">&para;</a></h3> <ul> <li><strong>API Keys</strong>: Configure LLM providers</li> <li><strong>Research Mode</strong>: Choose iterative or deep research</li> <li><strong>Budget Limits</strong>: Set token, time, and iteration limits</li> </ul> <h2 id=example-queries>Example Queries<a class=headerlink href=#example-queries title="Anchor link to this section">&para;</a></h2> <h3 id=simple-query>Simple Query<a class=headerlink href=#simple-query title="Anchor link to this section">&para;</a></h3> <div class="language-text highlight"><pre><span></span><code><span id=__span-1-1><a id=__codelineno-1-1 name=__codelineno-1-1 href=#__codelineno-1-1></a>What are the side effects of metformin?
41
+ </span></code></pre></div> <h3 id=complex-query>Complex Query<a class=headerlink href=#complex-query title="Anchor link to this section">&para;</a></h3> <div class="language-text highlight"><pre><span></span><code><span id=__span-2-1><a id=__codelineno-2-1 name=__codelineno-2-1 href=#__codelineno-2-1></a>Review the evidence for using metformin as an anti-aging intervention,
42
+ </span><span id=__span-2-2><a id=__codelineno-2-2 name=__codelineno-2-2 href=#__codelineno-2-2></a>including clinical trials, mechanisms of action, and safety profile.
43
+ </span></code></pre></div> <h3 id=clinical-trial-query>Clinical Trial Query<a class=headerlink href=#clinical-trial-query title="Anchor link to this section">&para;</a></h3> <div class="language-text highlight"><pre><span></span><code><span id=__span-3-1><a id=__codelineno-3-1 name=__codelineno-3-1 href=#__codelineno-3-1></a>What are the active clinical trials investigating Alzheimer&#39;s disease treatments?
44
+ </span></code></pre></div> <h2 id=next-steps>Next Steps<a class=headerlink href=#next-steps title="Anchor link to this section">&para;</a></h2> <ul> <li>Learn about <a href=../mcp-integration/ >MCP Integration</a> to use The DETERMINATOR from Claude Desktop</li> <li>Explore <a href=../examples/ >Examples</a> for more use cases</li> <li>Read the <a href=../../configuration/ >Configuration Guide</a> for advanced settings</li> <li>Check out the <a href=../../architecture/graph_orchestration/ >Architecture Documentation</a> to understand how it works</li> </ul> <aside class=md-source-file> <span class=md-source-file__fact> <span class=md-icon title="Last update"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="December 2, 2025 01:35:56 UTC"><span class=timeago datetime=2025-12-02T01:35:56+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="December 2, 2025 01:35:56 UTC">2025-12-02</span> </span> <span class=md-source-file__fact> <span class=md-icon title=Created> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M14.47 15.08 11 13V7h1.5v5.25l3.08 1.83c-.41.28-.79.62-1.11 1m-1.39 4.84c-.36.05-.71.08-1.08.08-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8c0 .37-.03.72-.08 1.08.69.1 1.33.32 1.92.64.1-.56.16-1.13.16-1.72 0-5.5-4.5-10-10-10S2 6.5 2 12s4.47 10 10 10c.59 0 1.16-.06 1.72-.16-.32-.59-.54-1.23-.64-1.92M18 15v3h-3v2h3v3h2v-3h3v-2h-3v-3z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="November 29, 2025 21:40:26 UTC"><span class=timeago datetime=2025-11-29T21:40:26+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="November 29, 2025 21:40:26 UTC">2025-11-29</span> </span> </aside> </article> </div> <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=GitHub class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://twitter.com/josephpollack target=_blank rel=noopener title=Twitter class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M459.4 151.7c.3 4.5.3 9.1.3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103v-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53C87.4 130.8 165 172.4 252.1 176.9c-1.6-7.8-2.6-15.9-2.6-24C249.5 95.1 296.3 48 354.4 48c30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title="Live Demo" class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> <a href=https://discord.gg/n8ytYeh25n target=_blank rel=noopener title=Discord class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 576 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M492.5 69.8c-.2-.3-.4-.6-.8-.7-38.1-17.5-78.4-30-119.7-37.1-.4-.1-.8 0-1.1.1s-.6.4-.8.8c-5.5 9.9-10.5 20.2-14.9 30.6-44.6-6.8-89.9-6.8-134.4 0-4.5-10.5-9.5-20.7-15.1-30.6-.2-.3-.5-.6-.8-.8s-.7-.2-1.1-.2C162.5 39 122.2 51.5 84.1 69c-.3.1-.6.4-.8.7C7.1 183.5-13.8 294.6-3.6 404.2c0 .3.1.5.2.8s.3.4.5.6c44.4 32.9 94 58 146.8 74.2.4.1.8.1 1.1 0s.7-.4.9-.7c11.3-15.4 21.4-31.8 30-48.8.1-.2.2-.5.2-.8s0-.5-.1-.8-.2-.5-.4-.6-.4-.3-.7-.4c-15.8-6.1-31.2-13.4-45.9-21.9-.3-.2-.5-.4-.7-.6s-.3-.6-.3-.9 0-.6.2-.9.3-.5.6-.7c3.1-2.3 6.2-4.7 9.1-7.1.3-.2.6-.4.9-.4s.7 0 1 .1c96.2 43.9 200.4 43.9 295.5 0 .3-.1.7-.2 1-.2s.7.2.9.4c2.9 2.4 6 4.9 9.1 7.2.2.2.4.4.6.7s.2.6.2.9-.1.6-.3.9-.4.5-.6.6c-14.7 8.6-30 15.9-45.9 21.8-.2.1-.5.2-.7.4s-.3.4-.4.7-.1.5-.1.8.1.5.2.8c8.8 17 18.8 33.3 30 48.8.2.3.6.6.9.7s.8.1 1.1 0c52.9-16.2 102.6-41.3 147.1-74.2.2-.2.4-.4.5-.6s.2-.5.2-.8c12.3-126.8-20.5-236.9-86.9-334.5zm-302 267.7c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.4 59.2-52.8 59.2m195.4 0c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.2 59.2-52.8 59.2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "navigation.indexes", "navigation.instant", "navigation.tracking", "navigation.smooth", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy", "content.tabs.link", "content.tooltips", "toc.integrate"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> <script src=../../js/timeago.min.js></script> <script src=../../js/timeago_mkdocs_material.js></script> </body> </html>
site/index.html CHANGED
@@ -1,9 +1,16 @@
1
- <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DETERMINATOR Team"><link href=https://deepcritical.github.io/GradioDemo/ rel=canonical><link href=overview/architecture/ rel=next><link rel=icon href=assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>The DETERMINATOR</title><link rel=stylesheet href=assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><script>__md_scope=new URL(".",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#deepcritical class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Home </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class="md-tabs__item md-tabs__item--active"> <a href=. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=configuration/CONFIGURATION/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=api/agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Home </span> <span class="md-nav__icon md-icon"></span> </label> <a href=. class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Home </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#features class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> <li class=md-nav__item> <a href=#quick-start class=md-nav__link> <span class=md-ellipsis> Quick Start </span> </a> </li> <li class=md-nav__item> <a href=#architecture class=md-nav__link> <span class=md-ellipsis> Architecture </span> </a> </li> <li class=md-nav__item> <a href=#documentation class=md-nav__link> <span class=md-ellipsis> Documentation </span> </a> </li> <li class=md-nav__item> <a href=#links class=md-nav__link> <span class=md-ellipsis> Links </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Quick Start Guide </span> </a> </li> <li class=md-nav__item> <a href=getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <label class=md-nav__link for=__nav_4 id=__nav_4_label tabindex=0> <span class=md-ellipsis> Configuration </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=configuration/CONFIGURATION/ class=md-nav__link> <span class=md-ellipsis> Configuration Guide </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <label class=md-nav__link for=__nav_7 id=__nav_7_label tabindex=0> <span class=md-ellipsis> Contributing </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=contributing/ class=md-nav__link> <span class=md-ellipsis> Contributing to DeepCritical </span> </a> </li> <li class=md-nav__item> <a href=contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=sidebar data-md-type=toc> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#features class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> <li class=md-nav__item> <a href=#quick-start class=md-nav__link> <span class=md-ellipsis> Quick Start </span> </a> </li> <li class=md-nav__item> <a href=#architecture class=md-nav__link> <span class=md-ellipsis> Architecture </span> </a> </li> <li class=md-nav__item> <a href=#documentation class=md-nav__link> <span class=md-ellipsis> Documentation </span> </a> </li> <li class=md-nav__item> <a href=#links class=md-nav__link> <span class=md-ellipsis> Links </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=deepcritical>DeepCritical<a class=headerlink href=#deepcritical title="Permanent link">&para;</a></h1> <p><strong>AI-Native Drug Repurposing Research Agent</strong></p> <p>DeepCritical is a deep research agent system that uses iterative search-and-judge loops to comprehensively answer research questions. The system supports multiple orchestration patterns, graph-based execution, parallel research workflows, and long-running task management with real-time streaming.</p> <h2 id=features>Features<a class=headerlink href=#features title="Permanent link">&para;</a></h2> <ul> <li><strong>Multi-Source Search</strong>: PubMed, ClinicalTrials.gov, Europe PMC (includes bioRxiv/medRxiv)</li> <li><strong>MCP Integration</strong>: Use our tools from Claude Desktop or any MCP client</li> <li><strong>HuggingFace OAuth</strong>: Sign in with your HuggingFace account to automatically use your API token</li> <li><strong>Modal Sandbox</strong>: Secure execution of AI-generated statistical code</li> <li><strong>LlamaIndex RAG</strong>: Semantic search and evidence synthesis</li> <li><strong>HuggingFace Inference</strong>: Free tier support with automatic fallback</li> <li><strong>Strongly Typed Composable Graphs</strong>: Graph-based orchestration with Pydantic AI</li> <li><strong>Specialized Research Teams of Agents</strong>: Multi-agent coordination for complex research tasks</li> </ul> <h2 id=quick-start>Quick Start<a class=headerlink href=#quick-start title="Permanent link">&para;</a></h2> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=c1># Install uv if you haven&#39;t already</span>
2
- <a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a>pip<span class=w> </span>install<span class=w> </span>uv
3
- <a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a>
4
- <a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a><span class=c1># Sync dependencies</span>
5
- <a id=__codelineno-0-5 name=__codelineno-0-5 href=#__codelineno-0-5></a>uv<span class=w> </span>sync
6
- <a id=__codelineno-0-6 name=__codelineno-0-6 href=#__codelineno-0-6></a>
7
- <a id=__codelineno-0-7 name=__codelineno-0-7 href=#__codelineno-0-7></a><span class=c1># Start the Gradio app</span>
8
- <a id=__codelineno-0-8 name=__codelineno-0-8 href=#__codelineno-0-8></a>uv<span class=w> </span>run<span class=w> </span>gradio<span class=w> </span>run<span class=w> </span>src/app.py
9
- </code></pre></div> <p>Open your browser to <code>http://localhost:7860</code>.</p> <p>For detailed installation and setup instructions, see the <a href=getting-started/installation/ >Getting Started Guide</a>.</p> <h2 id=architecture>Architecture<a class=headerlink href=#architecture title="Permanent link">&para;</a></h2> <p>DeepCritical uses a Vertical Slice Architecture:</p> <ol> <li><strong>Search Slice</strong>: Retrieving evidence from PubMed, ClinicalTrials.gov, and Europe PMC</li> <li><strong>Judge Slice</strong>: Evaluating evidence quality using LLMs</li> <li><strong>Orchestrator Slice</strong>: Managing the research loop and UI</li> </ol> <p>The system supports three main research patterns:</p> <ul> <li><strong>Iterative Research</strong>: Single research loop with search-judge-synthesize cycles</li> <li><strong>Deep Research</strong>: Multi-section parallel research with planning and synthesis</li> <li><strong>Research Team</strong>: Multi-agent coordination using Magentic framework</li> </ul> <p>Learn more about the <a href=overview/architecture/ >Architecture</a>.</p> <h2 id=documentation>Documentation<a class=headerlink href=#documentation title="Permanent link">&para;</a></h2> <ul> <li><a href=overview/architecture/ >Overview</a> - System architecture and design</li> <li><a href=getting-started/installation/ >Getting Started</a> - Installation and setup</li> <li><a href=configuration/ >Configuration</a> - Configuration guide</li> <li><a href=api/agents/ >API Reference</a> - API documentation</li> <li><a href=CONTRIBUTING/ >Contributing</a> - Development guidelines</li> </ul> <h2 id=links>Links<a class=headerlink href=#links title="Permanent link">&para;</a></h2> <ul> <li><a href=https://github.com/DeepCritical/GradioDemo>GitHub Repository</a></li> <li><a href=https://huggingface.co/spaces/DataQuests/DeepCritical>HuggingFace Space</a></li> </ul> </article> </div> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=github.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title=huggingface.co class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": ".", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy"], "search": "assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=assets/javascripts/bundle.e71a0d61.min.js></script> </body> </html>
 
 
 
 
 
 
 
 
1
+ <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DeepCritical Team"><link href=https://deepcritical.github.io/GradioDemo/ rel=canonical><link href=overview/architecture/ rel=next><link rel=icon href=assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>The DETERMINATOR</title><link rel=stylesheet href=assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><link rel=stylesheet href=css/timeago.css><script>__md_scope=new URL(".",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#the-determinator class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Home </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class="md-tabs__item md-tabs__item--active"> <a href=. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=configuration/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=api/agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Home </span> <span class="md-nav__icon md-icon"></span> </label> <a href=. class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Home </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#features class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> <li class=md-nav__item> <a href=#quick-start class=md-nav__link> <span class=md-ellipsis> Quick Start </span> </a> </li> <li class=md-nav__item> <a href=#architecture class=md-nav__link> <span class=md-ellipsis> Architecture </span> </a> </li> <li class=md-nav__item> <a href=#documentation class=md-nav__link> <span class=md-ellipsis> Documentation </span> </a> </li> <li class=md-nav__item> <a href=#links class=md-nav__link> <span class=md-ellipsis> Links </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Single Command Deploy </span> </a> </li> <li class=md-nav__item> <a href=getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <div class="md-nav__link md-nav__container"> <a href=configuration/ class="md-nav__link "> <span class=md-ellipsis> Configuration </span> </a> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <div class="md-nav__link md-nav__container"> <a href=contributing/ class="md-nav__link "> <span class=md-ellipsis> Contributing </span> </a> <label class="md-nav__link " for=__nav_7 id=__nav_7_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=the-determinator>The DETERMINATOR<a class=headerlink href=#the-determinator title="Anchor link to this section">&para;</a></h1> <p><strong>Generalist Deep Research Agent - Stops at Nothing Until Finding Precise Answers</strong></p> <p>The DETERMINATOR is a powerful generalist deep research agent system that uses iterative search-and-judge loops to comprehensively investigate any research question. It stops at nothing until finding precise answers, only stopping at configured limits (budget, time, iterations).</p> <p><strong>Key Features</strong>: - <strong>Generalist</strong>: Handles queries from any domain (medical, technical, business, scientific, etc.) - <strong>Automatic Source Selection</strong>: Automatically determines if medical knowledge sources (PubMed, ClinicalTrials.gov) are needed - <strong>Multi-Source Search</strong>: Web search, PubMed, ClinicalTrials.gov, Europe PMC, RAG - <strong>Iterative Refinement</strong>: Continues searching and refining until precise answers are found - <strong>Evidence Synthesis</strong>: Comprehensive reports with proper citations</p> <p><strong>Important</strong>: The DETERMINATOR is a research tool that synthesizes evidence. It cannot provide medical advice or answer medical questions directly.</p> <h2 id=features>Features<a class=headerlink href=#features title="Anchor link to this section">&para;</a></h2> <ul> <li><strong>Generalist Research</strong>: Handles any research question from any domain</li> <li><strong>Automatic Medical Detection</strong>: Automatically determines if medical knowledge sources are needed</li> <li><strong>Multi-Source Search</strong>: Web search, PubMed, ClinicalTrials.gov, Europe PMC (includes bioRxiv/medRxiv), RAG</li> <li><strong>Iterative Until Precise</strong>: Stops at nothing until finding precise answers (only stops at configured limits)</li> <li><strong>MCP Integration</strong>: Use our tools from Claude Desktop or any MCP client</li> <li><strong>HuggingFace OAuth</strong>: Sign in with your HuggingFace account to automatically use your API token</li> <li><strong>Modal Sandbox</strong>: Secure execution of AI-generated statistical code</li> <li><strong>LlamaIndex RAG</strong>: Semantic search and evidence synthesis</li> <li><strong>HuggingFace Inference</strong>: Free tier support with automatic fallback</li> <li><strong>Strongly Typed Composable Graphs</strong>: Graph-based orchestration with Pydantic AI</li> <li><strong>Specialized Research Teams of Agents</strong>: Multi-agent coordination for complex research tasks</li> </ul> <h2 id=quick-start>Quick Start<a class=headerlink href=#quick-start title="Anchor link to this section">&para;</a></h2> <div class="language-bash highlight"><pre><span></span><code><span id=__span-0-1><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=c1># Install uv if you haven&#39;t already (recommended: standalone installer)</span>
2
+ </span><span id=__span-0-2><a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a><span class=c1># Unix/macOS/Linux:</span>
3
+ </span><span id=__span-0-3><a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a>curl<span class=w> </span>-LsSf<span class=w> </span>https://astral.sh/uv/install.sh<span class=w> </span><span class=p>|</span><span class=w> </span>sh
4
+ </span><span id=__span-0-4><a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a>
5
+ </span><span id=__span-0-5><a id=__codelineno-0-5 name=__codelineno-0-5 href=#__codelineno-0-5></a><span class=c1># Windows (PowerShell):</span>
6
+ </span><span id=__span-0-6><a id=__codelineno-0-6 name=__codelineno-0-6 href=#__codelineno-0-6></a>powershell<span class=w> </span>-ExecutionPolicy<span class=w> </span>ByPass<span class=w> </span>-c<span class=w> </span><span class=s2>&quot;irm https://astral.sh/uv/install.ps1 | iex&quot;</span>
7
+ </span><span id=__span-0-7><a id=__codelineno-0-7 name=__codelineno-0-7 href=#__codelineno-0-7></a>
8
+ </span><span id=__span-0-8><a id=__codelineno-0-8 name=__codelineno-0-8 href=#__codelineno-0-8></a><span class=c1># Alternative: pipx install uv</span>
9
+ </span><span id=__span-0-9><a id=__codelineno-0-9 name=__codelineno-0-9 href=#__codelineno-0-9></a><span class=c1># Or: pip install uv</span>
10
+ </span><span id=__span-0-10><a id=__codelineno-0-10 name=__codelineno-0-10 href=#__codelineno-0-10></a>
11
+ </span><span id=__span-0-11><a id=__codelineno-0-11 name=__codelineno-0-11 href=#__codelineno-0-11></a><span class=c1># Sync dependencies</span>
12
+ </span><span id=__span-0-12><a id=__codelineno-0-12 name=__codelineno-0-12 href=#__codelineno-0-12></a>uv<span class=w> </span>sync
13
+ </span><span id=__span-0-13><a id=__codelineno-0-13 name=__codelineno-0-13 href=#__codelineno-0-13></a>
14
+ </span><span id=__span-0-14><a id=__codelineno-0-14 name=__codelineno-0-14 href=#__codelineno-0-14></a><span class=c1># Start the Gradio app</span>
15
+ </span><span id=__span-0-15><a id=__codelineno-0-15 name=__codelineno-0-15 href=#__codelineno-0-15></a>uv<span class=w> </span>run<span class=w> </span>gradio<span class=w> </span>run<span class=w> </span>src/app.py
16
+ </span></code></pre></div> <p>Open your browser to <code>http://localhost:7860</code>.</p> <p>For detailed installation and setup instructions, see the <a href=getting-started/installation/ >Getting Started Guide</a>.</p> <h2 id=architecture>Architecture<a class=headerlink href=#architecture title="Anchor link to this section">&para;</a></h2> <p>The DETERMINATOR uses a Vertical Slice Architecture:</p> <ol> <li><strong>Search Slice</strong>: Retrieving evidence from multiple sources (web, PubMed, ClinicalTrials.gov, Europe PMC, RAG) based on query analysis</li> <li><strong>Judge Slice</strong>: Evaluating evidence quality using LLMs</li> <li><strong>Orchestrator Slice</strong>: Managing the research loop and UI</li> </ol> <p>The system supports three main research patterns:</p> <ul> <li><strong>Iterative Research</strong>: Single research loop with search-judge-synthesize cycles</li> <li><strong>Deep Research</strong>: Multi-section parallel research with planning and synthesis</li> <li><strong>Research Team</strong>: Multi-agent coordination using Magentic framework</li> </ul> <p>Learn more about the <a href=overview/architecture/ >Architecture</a>.</p> <h2 id=documentation>Documentation<a class=headerlink href=#documentation title="Anchor link to this section">&para;</a></h2> <ul> <li><a href=overview/architecture/ >Overview</a> - System architecture and design</li> <li><a href=getting-started/installation/ >Getting Started</a> - Installation and setup</li> <li><a href=configuration/ >Configuration</a> - Configuration guide</li> <li><a href=api/agents/ >API Reference</a> - API documentation</li> <li><a href=contributing/ >Contributing</a> - Development guidelines</li> </ul> <h2 id=links>Links<a class=headerlink href=#links title="Anchor link to this section">&para;</a></h2> <ul> <li><a href=https://github.com/DeepCritical/GradioDemo>GitHub Repository</a></li> <li><a href=https://huggingface.co/spaces/DataQuests/DeepCritical>HuggingFace Space</a></li> </ul> <aside class=md-source-file> <span class=md-source-file__fact> <span class=md-icon title="Last update"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="December 2, 2025 01:35:56 UTC"><span class=timeago datetime=2025-12-02T01:35:56+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="December 2, 2025 01:35:56 UTC">2025-12-02</span> </span> <span class=md-source-file__fact> <span class=md-icon title=Created> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M14.47 15.08 11 13V7h1.5v5.25l3.08 1.83c-.41.28-.79.62-1.11 1m-1.39 4.84c-.36.05-.71.08-1.08.08-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8c0 .37-.03.72-.08 1.08.69.1 1.33.32 1.92.64.1-.56.16-1.13.16-1.72 0-5.5-4.5-10-10-10S2 6.5 2 12s4.47 10 10 10c.59 0 1.16-.06 1.72-.16-.32-.59-.54-1.23-.64-1.92M18 15v3h-3v2h3v3h2v-3h3v-2h-3v-3z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="November 29, 2025 21:33:25 UTC"><span class=timeago datetime=2025-11-29T21:33:25+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="November 29, 2025 21:33:25 UTC">2025-11-29</span> </span> </aside> </article> </div> <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=GitHub class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://twitter.com/josephpollack target=_blank rel=noopener title=Twitter class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M459.4 151.7c.3 4.5.3 9.1.3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103v-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53C87.4 130.8 165 172.4 252.1 176.9c-1.6-7.8-2.6-15.9-2.6-24C249.5 95.1 296.3 48 354.4 48c30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title="Live Demo" class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> <a href=https://discord.gg/n8ytYeh25n target=_blank rel=noopener title=Discord class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 576 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M492.5 69.8c-.2-.3-.4-.6-.8-.7-38.1-17.5-78.4-30-119.7-37.1-.4-.1-.8 0-1.1.1s-.6.4-.8.8c-5.5 9.9-10.5 20.2-14.9 30.6-44.6-6.8-89.9-6.8-134.4 0-4.5-10.5-9.5-20.7-15.1-30.6-.2-.3-.5-.6-.8-.8s-.7-.2-1.1-.2C162.5 39 122.2 51.5 84.1 69c-.3.1-.6.4-.8.7C7.1 183.5-13.8 294.6-3.6 404.2c0 .3.1.5.2.8s.3.4.5.6c44.4 32.9 94 58 146.8 74.2.4.1.8.1 1.1 0s.7-.4.9-.7c11.3-15.4 21.4-31.8 30-48.8.1-.2.2-.5.2-.8s0-.5-.1-.8-.2-.5-.4-.6-.4-.3-.7-.4c-15.8-6.1-31.2-13.4-45.9-21.9-.3-.2-.5-.4-.7-.6s-.3-.6-.3-.9 0-.6.2-.9.3-.5.6-.7c3.1-2.3 6.2-4.7 9.1-7.1.3-.2.6-.4.9-.4s.7 0 1 .1c96.2 43.9 200.4 43.9 295.5 0 .3-.1.7-.2 1-.2s.7.2.9.4c2.9 2.4 6 4.9 9.1 7.2.2.2.4.4.6.7s.2.6.2.9-.1.6-.3.9-.4.5-.6.6c-14.7 8.6-30 15.9-45.9 21.8-.2.1-.5.2-.7.4s-.3.4-.4.7-.1.5-.1.8.1.5.2.8c8.8 17 18.8 33.3 30 48.8.2.3.6.6.9.7s.8.1 1.1 0c52.9-16.2 102.6-41.3 147.1-74.2.2-.2.4-.4.5-.6s.2-.5.2-.8c12.3-126.8-20.5-236.9-86.9-334.5zm-302 267.7c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.4 59.2-52.8 59.2m195.4 0c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.2 59.2-52.8 59.2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": ".", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "navigation.indexes", "navigation.instant", "navigation.tracking", "navigation.smooth", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy", "content.tabs.link", "content.tooltips", "toc.integrate"], "search": "assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=assets/javascripts/bundle.e71a0d61.min.js></script> <script src=js/timeago.min.js></script> <script src=js/timeago_mkdocs_material.js></script> </body> </html>
site/license/index.html CHANGED
@@ -1 +1 @@
1
- <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DETERMINATOR Team"><link href=https://deepcritical.github.io/GradioDemo/LICENSE/ rel=canonical><link href=../contributing/testing/ rel=prev><link href=../team/ rel=next><link rel=icon href=../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>License - The DETERMINATOR</title><link rel=stylesheet href=../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#license class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> License </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../configuration/CONFIGURATION/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../contributing/ class=md-tabs__link> Contributing </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=./ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Quick Start Guide </span> </a> </li> <li class=md-nav__item> <a href=../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <label class=md-nav__link for=__nav_4 id=__nav_4_label tabindex=0> <span class=md-ellipsis> Configuration </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../configuration/CONFIGURATION/ class=md-nav__link> <span class=md-ellipsis> Configuration Guide </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <label class=md-nav__link for=__nav_7 id=__nav_7_label tabindex=0> <span class=md-ellipsis> Contributing </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../contributing/ class=md-nav__link> <span class=md-ellipsis> Contributing to DeepCritical </span> </a> </li> <li class=md-nav__item> <a href=../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> License </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> License </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#mit-license class=md-nav__link> <span class=md-ellipsis> MIT License </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=sidebar data-md-type=toc> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#mit-license class=md-nav__link> <span class=md-ellipsis> MIT License </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=license>License<a class=headerlink href=#license title="Permanent link">&para;</a></h1> <p>DeepCritical is licensed under the MIT License.</p> <h2 id=mit-license>MIT License<a class=headerlink href=#mit-license title="Permanent link">&para;</a></h2> <p>Copyright (c) 2024 DeepCritical Team</p> <p>Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p> <p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p> <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p> </article> </div> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=github.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title=huggingface.co class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy"], "search": "../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../assets/javascripts/bundle.e71a0d61.min.js></script> </body> </html>
 
1
+ <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DeepCritical Team"><link href=https://deepcritical.github.io/GradioDemo/LICENSE/ rel=canonical><link href=../contributing/testing/ rel=prev><link href=../team/ rel=next><link rel=icon href=../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>License - The DETERMINATOR</title><link rel=stylesheet href=../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><link rel=stylesheet href=../css/timeago.css><script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#license class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> License </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../configuration/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../contributing/ class=md-tabs__link> Contributing </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=./ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Single Command Deploy </span> </a> </li> <li class=md-nav__item> <a href=../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <div class="md-nav__link md-nav__container"> <a href=../configuration/ class="md-nav__link "> <span class=md-ellipsis> Configuration </span> </a> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <div class="md-nav__link md-nav__container"> <a href=../contributing/ class="md-nav__link "> <span class=md-ellipsis> Contributing </span> </a> <label class="md-nav__link " for=__nav_7 id=__nav_7_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> License </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> License </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#mit-license class=md-nav__link> <span class=md-ellipsis> MIT License </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=license>License<a class=headerlink href=#license title="Anchor link to this section">&para;</a></h1> <p>DeepCritical is licensed under the MIT License.</p> <h2 id=mit-license>MIT License<a class=headerlink href=#mit-license title="Anchor link to this section">&para;</a></h2> <p>Copyright (c) 2024 DeepCritical Team</p> <p>Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p> <p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p> <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p> <aside class=md-source-file> <span class=md-source-file__fact> <span class=md-icon title="Last update"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="December 2, 2025 01:59:02 UTC"><span class=timeago datetime=2025-12-02T01:59:02+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="December 2, 2025 01:59:02 UTC">2025-12-02</span> </span> <span class=md-source-file__fact> <span class=md-icon title=Created> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M14.47 15.08 11 13V7h1.5v5.25l3.08 1.83c-.41.28-.79.62-1.11 1m-1.39 4.84c-.36.05-.71.08-1.08.08-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8c0 .37-.03.72-.08 1.08.69.1 1.33.32 1.92.64.1-.56.16-1.13.16-1.72 0-5.5-4.5-10-10-10S2 6.5 2 12s4.47 10 10 10c.59 0 1.16-.06 1.72-.16-.32-.59-.54-1.23-.64-1.92M18 15v3h-3v2h3v3h2v-3h3v-2h-3v-3z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="December 2, 2025 01:59:02 UTC"><span class=timeago datetime=2025-12-02T01:59:02+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="December 2, 2025 01:59:02 UTC">2025-12-02</span> </span> </aside> </article> </div> <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=GitHub class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://twitter.com/josephpollack target=_blank rel=noopener title=Twitter class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M459.4 151.7c.3 4.5.3 9.1.3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103v-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53C87.4 130.8 165 172.4 252.1 176.9c-1.6-7.8-2.6-15.9-2.6-24C249.5 95.1 296.3 48 354.4 48c30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title="Live Demo" class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> <a href=https://discord.gg/n8ytYeh25n target=_blank rel=noopener title=Discord class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 576 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M492.5 69.8c-.2-.3-.4-.6-.8-.7-38.1-17.5-78.4-30-119.7-37.1-.4-.1-.8 0-1.1.1s-.6.4-.8.8c-5.5 9.9-10.5 20.2-14.9 30.6-44.6-6.8-89.9-6.8-134.4 0-4.5-10.5-9.5-20.7-15.1-30.6-.2-.3-.5-.6-.8-.8s-.7-.2-1.1-.2C162.5 39 122.2 51.5 84.1 69c-.3.1-.6.4-.8.7C7.1 183.5-13.8 294.6-3.6 404.2c0 .3.1.5.2.8s.3.4.5.6c44.4 32.9 94 58 146.8 74.2.4.1.8.1 1.1 0s.7-.4.9-.7c11.3-15.4 21.4-31.8 30-48.8.1-.2.2-.5.2-.8s0-.5-.1-.8-.2-.5-.4-.6-.4-.3-.7-.4c-15.8-6.1-31.2-13.4-45.9-21.9-.3-.2-.5-.4-.7-.6s-.3-.6-.3-.9 0-.6.2-.9.3-.5.6-.7c3.1-2.3 6.2-4.7 9.1-7.1.3-.2.6-.4.9-.4s.7 0 1 .1c96.2 43.9 200.4 43.9 295.5 0 .3-.1.7-.2 1-.2s.7.2.9.4c2.9 2.4 6 4.9 9.1 7.2.2.2.4.4.6.7s.2.6.2.9-.1.6-.3.9-.4.5-.6.6c-14.7 8.6-30 15.9-45.9 21.8-.2.1-.5.2-.7.4s-.3.4-.4.7-.1.5-.1.8.1.5.2.8c8.8 17 18.8 33.3 30 48.8.2.3.6.6.9.7s.8.1 1.1 0c52.9-16.2 102.6-41.3 147.1-74.2.2-.2.4-.4.5-.6s.2-.5.2-.8c12.3-126.8-20.5-236.9-86.9-334.5zm-302 267.7c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.4 59.2-52.8 59.2m195.4 0c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.2 59.2-52.8 59.2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "navigation.indexes", "navigation.instant", "navigation.tracking", "navigation.smooth", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy", "content.tabs.link", "content.tooltips", "toc.integrate"], "search": "../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../assets/javascripts/bundle.e71a0d61.min.js></script> <script src=../js/timeago.min.js></script> <script src=../js/timeago_mkdocs_material.js></script> </body> </html>
site/overview/architecture/index.html CHANGED
@@ -1 +1 @@
1
- <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DETERMINATOR Team"><link href=https://deepcritical.github.io/GradioDemo/overview/architecture/ rel=canonical><link rel=prev href=../..><link href=../features/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Architecture Overview - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#architecture-overview class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Architecture Overview </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=./ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/CONFIGURATION/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../../architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../../contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_2 checked> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=true> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Architecture Overview </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Architecture Overview </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#core-architecture class=md-nav__link> <span class=md-ellipsis> Core Architecture </span> </a> <nav class=md-nav aria-label="Core Architecture"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#orchestration-patterns class=md-nav__link> <span class=md-ellipsis> Orchestration Patterns </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#long-running-task-support class=md-nav__link> <span class=md-ellipsis> Long-Running Task Support </span> </a> </li> <li class=md-nav__item> <a href=#graph-architecture class=md-nav__link> <span class=md-ellipsis> Graph Architecture </span> </a> </li> <li class=md-nav__item> <a href=#key-components class=md-nav__link> <span class=md-ellipsis> Key Components </span> </a> </li> <li class=md-nav__item> <a href=#research-team-parallel-execution class=md-nav__link> <span class=md-ellipsis> Research Team &amp; Parallel Execution </span> </a> </li> <li class=md-nav__item> <a href=#configuration-modes class=md-nav__link> <span class=md-ellipsis> Configuration &amp; Modes </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Quick Start Guide </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <label class=md-nav__link for=__nav_4 id=__nav_4_label tabindex=0> <span class=md-ellipsis> Configuration </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../configuration/CONFIGURATION/ class=md-nav__link> <span class=md-ellipsis> Configuration Guide </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <label class=md-nav__link for=__nav_7 id=__nav_7_label tabindex=0> <span class=md-ellipsis> Contributing </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../contributing/ class=md-nav__link> <span class=md-ellipsis> Contributing to DeepCritical </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=sidebar data-md-type=toc> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#core-architecture class=md-nav__link> <span class=md-ellipsis> Core Architecture </span> </a> <nav class=md-nav aria-label="Core Architecture"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#orchestration-patterns class=md-nav__link> <span class=md-ellipsis> Orchestration Patterns </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#long-running-task-support class=md-nav__link> <span class=md-ellipsis> Long-Running Task Support </span> </a> </li> <li class=md-nav__item> <a href=#graph-architecture class=md-nav__link> <span class=md-ellipsis> Graph Architecture </span> </a> </li> <li class=md-nav__item> <a href=#key-components class=md-nav__link> <span class=md-ellipsis> Key Components </span> </a> </li> <li class=md-nav__item> <a href=#research-team-parallel-execution class=md-nav__link> <span class=md-ellipsis> Research Team &amp; Parallel Execution </span> </a> </li> <li class=md-nav__item> <a href=#configuration-modes class=md-nav__link> <span class=md-ellipsis> Configuration &amp; Modes </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=architecture-overview>Architecture Overview<a class=headerlink href=#architecture-overview title="Permanent link">&para;</a></h1> <p>DeepCritical is a deep research agent system that uses iterative search-and-judge loops to comprehensively answer research questions. The system supports multiple orchestration patterns, graph-based execution, parallel research workflows, and long-running task management with real-time streaming.</p> <h2 id=core-architecture>Core Architecture<a class=headerlink href=#core-architecture title="Permanent link">&para;</a></h2> <h3 id=orchestration-patterns>Orchestration Patterns<a class=headerlink href=#orchestration-patterns title="Permanent link">&para;</a></h3> <ol> <li><strong>Graph Orchestrator</strong> (<code>src/orchestrator/graph_orchestrator.py</code>):</li> <li>Graph-based execution using Pydantic AI agents as nodes</li> <li>Supports both iterative and deep research patterns</li> <li>Node types: Agent, State, Decision, Parallel</li> <li>Edge types: Sequential, Conditional, Parallel</li> <li>Conditional routing based on knowledge gaps, budget, and iterations</li> <li>Parallel execution for concurrent research loops</li> <li>Event streaming via <code>AsyncGenerator[AgentEvent]</code> for real-time UI updates</li> <li> <p>Fallback to agent chains when graph execution is disabled</p> </li> <li> <p><strong>Deep Research Flow</strong> (<code>src/orchestrator/research_flow.py</code>):</p> </li> <li><strong>Pattern</strong>: Planner → Parallel Iterative Loops (one per section) → Synthesis</li> <li>Uses <code>PlannerAgent</code> to break query into report sections</li> <li>Runs <code>IterativeResearchFlow</code> instances in parallel per section via <code>WorkflowManager</code></li> <li>Synthesizes results using <code>LongWriterAgent</code> or <code>ProofreaderAgent</code></li> <li>Supports both graph execution (<code>use_graph=True</code>) and agent chains (<code>use_graph=False</code>)</li> <li>Budget tracking per section and globally</li> <li> <p>State synchronization across parallel loops</p> </li> <li> <p><strong>Iterative Research Flow</strong> (<code>src/orchestrator/research_flow.py</code>):</p> </li> <li><strong>Pattern</strong>: Generate observations → Evaluate gaps → Select tools → Execute → Judge → Continue/Complete</li> <li>Uses <code>KnowledgeGapAgent</code>, <code>ToolSelectorAgent</code>, <code>ThinkingAgent</code>, <code>WriterAgent</code></li> <li><code>JudgeHandler</code> assesses evidence sufficiency</li> <li>Iterates until research complete or constraints met (iterations, time, tokens)</li> <li> <p>Supports graph execution and agent chains</p> </li> <li> <p><strong>Magentic Orchestrator</strong> (<code>src/orchestrator_magentic.py</code>):</p> </li> <li>Multi-agent coordination using <code>agent-framework-core</code></li> <li>ChatAgent pattern with internal LLMs per agent</li> <li>Uses <code>MagenticBuilder</code> with participants: searcher, hypothesizer, judge, reporter</li> <li>Manager orchestrates agents via <code>OpenAIChatClient</code></li> <li>Requires OpenAI API key (function calling support)</li> <li>Event-driven: converts Magentic events to <code>AgentEvent</code> for UI streaming</li> <li> <p>Supports long-running workflows with max rounds and stall/reset handling</p> </li> <li> <p><strong>Hierarchical Orchestrator</strong> (<code>src/orchestrator_hierarchical.py</code>):</p> </li> <li>Uses <code>SubIterationMiddleware</code> with <code>ResearchTeam</code> and <code>LLMSubIterationJudge</code></li> <li>Adapts Magentic ChatAgent to <code>SubIterationTeam</code> protocol</li> <li>Event-driven via <code>asyncio.Queue</code> for coordination</li> <li> <p>Supports sub-iteration patterns for complex research tasks</p> </li> <li> <p><strong>Legacy Simple Mode</strong> (<code>src/legacy_orchestrator.py</code>):</p> </li> <li>Linear search-judge-synthesize loop</li> <li>Uses <code>SearchHandlerProtocol</code> and <code>JudgeHandlerProtocol</code></li> <li>Generator-based design yielding <code>AgentEvent</code> objects</li> <li>Backward compatibility for simple use cases</li> </ol> <h2 id=long-running-task-support>Long-Running Task Support<a class=headerlink href=#long-running-task-support title="Permanent link">&para;</a></h2> <p>The system is designed for long-running research tasks with comprehensive state management and streaming:</p> <ol> <li><strong>Event Streaming</strong>:</li> <li>All orchestrators yield <code>AgentEvent</code> objects via <code>AsyncGenerator</code></li> <li>Real-time UI updates through Gradio chat interface</li> <li>Event types: <code>started</code>, <code>searching</code>, <code>search_complete</code>, <code>judging</code>, <code>judge_complete</code>, <code>looping</code>, <code>synthesizing</code>, <code>hypothesizing</code>, <code>complete</code>, <code>error</code></li> <li> <p>Metadata includes iteration numbers, tool names, result counts, durations</p> </li> <li> <p><strong>Budget Tracking</strong> (<code>src/middleware/budget_tracker.py</code>):</p> </li> <li>Per-loop and global budget management</li> <li>Tracks: tokens, time (seconds), iterations</li> <li>Budget enforcement at decision nodes</li> <li>Token estimation (~4 chars per token)</li> <li>Early termination when budgets exceeded</li> <li> <p>Budget summaries for monitoring</p> </li> <li> <p><strong>Workflow Manager</strong> (<code>src/middleware/workflow_manager.py</code>):</p> </li> <li>Coordinates parallel research loops</li> <li>Tracks loop status: <code>pending</code>, <code>running</code>, <code>completed</code>, <code>failed</code>, <code>cancelled</code></li> <li>Synchronizes evidence between loops and global state</li> <li>Handles errors per loop (doesn't fail all if one fails)</li> <li>Supports loop cancellation and timeout handling</li> <li> <p>Evidence deduplication across parallel loops</p> </li> <li> <p><strong>State Management</strong> (<code>src/middleware/state_machine.py</code>):</p> </li> <li>Thread-safe isolation using <code>ContextVar</code> for concurrent requests</li> <li><code>WorkflowState</code> tracks: evidence, conversation history, embedding service</li> <li>Evidence deduplication by URL</li> <li>Semantic search via embedding service</li> <li>State persistence across long-running workflows</li> <li> <p>Supports both iterative and deep research patterns</p> </li> <li> <p><strong>Gradio UI</strong> (<code>src/app.py</code>):</p> </li> <li>Real-time streaming of research progress</li> <li>Accordion-based UI for pending/done operations</li> <li>OAuth integration (HuggingFace)</li> <li>Multiple backend support (API keys, free tier)</li> <li>Handles long-running tasks with progress indicators</li> <li>Event accumulation for pending operations</li> </ol> <h2 id=graph-architecture>Graph Architecture<a class=headerlink href=#graph-architecture title="Permanent link">&para;</a></h2> <p>The graph orchestrator (<code>src/orchestrator/graph_orchestrator.py</code>) implements a flexible graph-based execution model:</p> <p><strong>Node Types</strong>:</p> <ul> <li><strong>Agent Nodes</strong>: Execute Pydantic AI agents (e.g., <code>KnowledgeGapAgent</code>, <code>ToolSelectorAgent</code>)</li> <li><strong>State Nodes</strong>: Update or read workflow state (evidence, conversation)</li> <li><strong>Decision Nodes</strong>: Make routing decisions (research complete?, budget exceeded?)</li> <li><strong>Parallel Nodes</strong>: Execute multiple nodes concurrently (parallel research loops)</li> </ul> <p><strong>Edge Types</strong>:</p> <ul> <li><strong>Sequential Edges</strong>: Always traversed (no condition)</li> <li><strong>Conditional Edges</strong>: Traversed based on condition (e.g., if research complete → writer, else → tool selector)</li> <li><strong>Parallel Edges</strong>: Used for parallel execution branches</li> </ul> <p><strong>Graph Patterns</strong>:</p> <ul> <li><strong>Iterative Graph</strong>: <code>[Input] → [Thinking] → [Knowledge Gap] → [Decision: Complete?] → [Tool Selector] or [Writer]</code></li> <li><strong>Deep Research Graph</strong>: <code>[Input] → [Planner] → [Parallel Iterative Loops] → [Synthesizer]</code></li> </ul> <p><strong>Execution Flow</strong>:</p> <ol> <li>Graph construction from nodes and edges</li> <li>Graph validation (no cycles, all nodes reachable)</li> <li>Graph execution from entry node</li> <li>Node execution based on type</li> <li>Edge evaluation for next node(s)</li> <li>Parallel execution via <code>asyncio.gather()</code></li> <li>State updates at state nodes</li> <li>Event streaming for UI</li> </ol> <h2 id=key-components>Key Components<a class=headerlink href=#key-components title="Permanent link">&para;</a></h2> <ul> <li><strong>Orchestrators</strong>: Multiple orchestration patterns (<code>src/orchestrator/</code>, <code>src/orchestrator_*.py</code>)</li> <li><strong>Research Flows</strong>: Iterative and deep research patterns (<code>src/orchestrator/research_flow.py</code>)</li> <li><strong>Graph Builder</strong>: Graph construction utilities (<code>src/agent_factory/graph_builder.py</code>)</li> <li><strong>Agents</strong>: Pydantic AI agents (<code>src/agents/</code>, <code>src/agent_factory/agents.py</code>)</li> <li><strong>Search Tools</strong>: PubMed, ClinicalTrials.gov, Europe PMC, RAG (<code>src/tools/</code>)</li> <li><strong>Judge Handler</strong>: LLM-based evidence assessment (<code>src/agent_factory/judges.py</code>)</li> <li><strong>Embeddings</strong>: Semantic search &amp; deduplication (<code>src/services/embeddings.py</code>)</li> <li><strong>Statistical Analyzer</strong>: Modal sandbox execution (<code>src/services/statistical_analyzer.py</code>)</li> <li><strong>Middleware</strong>: State management, budget tracking, workflow coordination (<code>src/middleware/</code>)</li> <li><strong>MCP Tools</strong>: Claude Desktop integration (<code>src/mcp_tools.py</code>)</li> <li><strong>Gradio UI</strong>: Web interface with MCP server and streaming (<code>src/app.py</code>)</li> </ul> <h2 id=research-team-parallel-execution>Research Team &amp; Parallel Execution<a class=headerlink href=#research-team-parallel-execution title="Permanent link">&para;</a></h2> <p>The system supports complex research workflows through:</p> <ol> <li><strong>WorkflowManager</strong>: Coordinates multiple parallel research loops</li> <li>Creates and tracks <code>ResearchLoop</code> instances</li> <li>Runs loops in parallel via <code>asyncio.gather()</code></li> <li>Synchronizes evidence to global state</li> <li> <p>Handles loop failures gracefully</p> </li> <li> <p><strong>Deep Research Pattern</strong>: Breaks complex queries into sections</p> </li> <li>Planner creates report outline with sections</li> <li>Each section runs as independent iterative research loop</li> <li>Loops execute in parallel</li> <li>Evidence shared across loops via global state</li> <li> <p>Final synthesis combines all section results</p> </li> <li> <p><strong>State Synchronization</strong>: Thread-safe evidence sharing</p> </li> <li>Evidence deduplication by URL</li> <li>Global state accessible to all loops</li> <li>Semantic search across all collected evidence</li> <li>Conversation history tracking per iteration</li> </ol> <h2 id=configuration-modes>Configuration &amp; Modes<a class=headerlink href=#configuration-modes title="Permanent link">&para;</a></h2> <ul> <li><strong>Orchestrator Factory</strong> (<code>src/orchestrator_factory.py</code>):</li> <li>Auto-detects mode: "advanced" if OpenAI key available, else "simple"</li> <li>Supports explicit mode selection: "simple", "magentic", "advanced"</li> <li> <p>Lazy imports for optional dependencies</p> </li> <li> <p><strong>Research Modes</strong>:</p> </li> <li><code>iterative</code>: Single research loop</li> <li><code>deep</code>: Multi-section parallel research</li> <li> <p><code>auto</code>: Auto-detect based on query complexity</p> </li> <li> <p><strong>Execution Modes</strong>:</p> </li> <li><code>use_graph=True</code>: Graph-based execution (parallel, conditional routing)</li> <li><code>use_graph=False</code>: Agent chains (sequential, backward compatible)</li> </ul> </article> </div> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=github.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title=huggingface.co class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> </body> </html>
 
1
+ <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DeepCritical Team"><link href=https://deepcritical.github.io/GradioDemo/overview/architecture/ rel=canonical><link rel=prev href=../..><link href=../features/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Architecture Overview - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><link rel=stylesheet href=../../css/timeago.css><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#architecture-overview class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Architecture Overview </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=./ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../../architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../../contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_2 checked> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=true> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Architecture Overview </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Architecture Overview </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#core-architecture class=md-nav__link> <span class=md-ellipsis> Core Architecture </span> </a> <nav class=md-nav aria-label="Core Architecture"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#orchestration-patterns class=md-nav__link> <span class=md-ellipsis> Orchestration Patterns </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#long-running-task-support class=md-nav__link> <span class=md-ellipsis> Long-Running Task Support </span> </a> </li> <li class=md-nav__item> <a href=#graph-architecture class=md-nav__link> <span class=md-ellipsis> Graph Architecture </span> </a> </li> <li class=md-nav__item> <a href=#key-components class=md-nav__link> <span class=md-ellipsis> Key Components </span> </a> </li> <li class=md-nav__item> <a href=#research-team--parallel-execution class=md-nav__link> <span class=md-ellipsis> Research Team &amp; Parallel Execution </span> </a> </li> <li class=md-nav__item> <a href=#configuration--modes class=md-nav__link> <span class=md-ellipsis> Configuration &amp; Modes </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Single Command Deploy </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <div class="md-nav__link md-nav__container"> <a href=../../configuration/ class="md-nav__link "> <span class=md-ellipsis> Configuration </span> </a> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <div class="md-nav__link md-nav__container"> <a href=../../contributing/ class="md-nav__link "> <span class=md-ellipsis> Contributing </span> </a> <label class="md-nav__link " for=__nav_7 id=__nav_7_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=architecture-overview>Architecture Overview<a class=headerlink href=#architecture-overview title="Anchor link to this section">&para;</a></h1> <p>The DETERMINATOR is a powerful generalist deep research agent system that uses iterative search-and-judge loops to comprehensively investigate any research question. It stops at nothing until finding precise answers, only stopping at configured limits (budget, time, iterations). The system automatically determines if medical knowledge sources are needed and adapts its search strategy accordingly. It supports multiple orchestration patterns, graph-based execution, parallel research workflows, and long-running task management with real-time streaming.</p> <h2 id=core-architecture>Core Architecture<a class=headerlink href=#core-architecture title="Anchor link to this section">&para;</a></h2> <h3 id=orchestration-patterns>Orchestration Patterns<a class=headerlink href=#orchestration-patterns title="Anchor link to this section">&para;</a></h3> <ol> <li><strong>Graph Orchestrator</strong> (<code>src/orchestrator/graph_orchestrator.py</code>):</li> <li>Graph-based execution using Pydantic AI agents as nodes</li> <li>Supports both iterative and deep research patterns</li> <li>Node types: Agent, State, Decision, Parallel</li> <li>Edge types: Sequential, Conditional, Parallel</li> <li>Conditional routing based on knowledge gaps, budget, and iterations</li> <li>Parallel execution for concurrent research loops</li> <li>Event streaming via <code>AsyncGenerator[AgentEvent]</code> for real-time UI updates</li> <li> <p>Fallback to agent chains when graph execution is disabled</p> </li> <li> <p><strong>Deep Research Flow</strong> (<code>src/orchestrator/research_flow.py</code>):</p> </li> <li><strong>Pattern</strong>: Planner → Parallel Iterative Loops (one per section) → Synthesis</li> <li>Uses <code>PlannerAgent</code> to break query into report sections</li> <li>Runs <code>IterativeResearchFlow</code> instances in parallel per section via <code>WorkflowManager</code></li> <li>Synthesizes results using <code>LongWriterAgent</code> or <code>ProofreaderAgent</code></li> <li>Supports both graph execution (<code>use_graph=True</code>) and agent chains (<code>use_graph=False</code>)</li> <li>Budget tracking per section and globally</li> <li> <p>State synchronization across parallel loops</p> </li> <li> <p><strong>Iterative Research Flow</strong> (<code>src/orchestrator/research_flow.py</code>):</p> </li> <li><strong>Pattern</strong>: Generate observations → Evaluate gaps → Select tools → Execute → Judge → Continue/Complete</li> <li>Uses <code>KnowledgeGapAgent</code>, <code>ToolSelectorAgent</code>, <code>ThinkingAgent</code>, <code>WriterAgent</code></li> <li><code>JudgeHandler</code> assesses evidence sufficiency</li> <li>Iterates until research complete or constraints met (iterations, time, tokens)</li> <li> <p>Supports graph execution and agent chains</p> </li> <li> <p><strong>Magentic Orchestrator</strong> (<code>src/orchestrator_magentic.py</code>):</p> </li> <li>Multi-agent coordination using <code>agent-framework-core</code></li> <li>ChatAgent pattern with internal LLMs per agent</li> <li>Uses <code>MagenticBuilder</code> with participants: searcher, hypothesizer, judge, reporter</li> <li>Manager orchestrates agents via <code>OpenAIChatClient</code></li> <li>Requires OpenAI API key (function calling support)</li> <li>Event-driven: converts Magentic events to <code>AgentEvent</code> for UI streaming</li> <li> <p>Supports long-running workflows with max rounds and stall/reset handling</p> </li> <li> <p><strong>Hierarchical Orchestrator</strong> (<code>src/orchestrator_hierarchical.py</code>):</p> </li> <li>Uses <code>SubIterationMiddleware</code> with <code>ResearchTeam</code> and <code>LLMSubIterationJudge</code></li> <li>Adapts Magentic ChatAgent to <code>SubIterationTeam</code> protocol</li> <li>Event-driven via <code>asyncio.Queue</code> for coordination</li> <li> <p>Supports sub-iteration patterns for complex research tasks</p> </li> <li> <p><strong>Legacy Simple Mode</strong> (<code>src/legacy_orchestrator.py</code>):</p> </li> <li>Linear search-judge-synthesize loop</li> <li>Uses <code>SearchHandlerProtocol</code> and <code>JudgeHandlerProtocol</code></li> <li>Generator-based design yielding <code>AgentEvent</code> objects</li> <li>Backward compatibility for simple use cases</li> </ol> <h2 id=long-running-task-support>Long-Running Task Support<a class=headerlink href=#long-running-task-support title="Anchor link to this section">&para;</a></h2> <p>The system is designed for long-running research tasks with comprehensive state management and streaming:</p> <ol> <li><strong>Event Streaming</strong>:</li> <li>All orchestrators yield <code>AgentEvent</code> objects via <code>AsyncGenerator</code></li> <li>Real-time UI updates through Gradio chat interface</li> <li>Event types: <code>started</code>, <code>searching</code>, <code>search_complete</code>, <code>judging</code>, <code>judge_complete</code>, <code>looping</code>, <code>synthesizing</code>, <code>hypothesizing</code>, <code>complete</code>, <code>error</code></li> <li> <p>Metadata includes iteration numbers, tool names, result counts, durations</p> </li> <li> <p><strong>Budget Tracking</strong> (<code>src/middleware/budget_tracker.py</code>):</p> </li> <li>Per-loop and global budget management</li> <li>Tracks: tokens, time (seconds), iterations</li> <li>Budget enforcement at decision nodes</li> <li>Token estimation (~4 chars per token)</li> <li>Early termination when budgets exceeded</li> <li> <p>Budget summaries for monitoring</p> </li> <li> <p><strong>Workflow Manager</strong> (<code>src/middleware/workflow_manager.py</code>):</p> </li> <li>Coordinates parallel research loops</li> <li>Tracks loop status: <code>pending</code>, <code>running</code>, <code>completed</code>, <code>failed</code>, <code>cancelled</code></li> <li>Synchronizes evidence between loops and global state</li> <li>Handles errors per loop (doesn't fail all if one fails)</li> <li>Supports loop cancellation and timeout handling</li> <li> <p>Evidence deduplication across parallel loops</p> </li> <li> <p><strong>State Management</strong> (<code>src/middleware/state_machine.py</code>):</p> </li> <li>Thread-safe isolation using <code>ContextVar</code> for concurrent requests</li> <li><code>WorkflowState</code> tracks: evidence, conversation history, embedding service</li> <li>Evidence deduplication by URL</li> <li>Semantic search via embedding service</li> <li>State persistence across long-running workflows</li> <li> <p>Supports both iterative and deep research patterns</p> </li> <li> <p><strong>Gradio UI</strong> (<code>src/app.py</code>):</p> </li> <li>Real-time streaming of research progress</li> <li>Accordion-based UI for pending/done operations</li> <li>OAuth integration (HuggingFace)</li> <li>Multiple backend support (API keys, free tier)</li> <li>Handles long-running tasks with progress indicators</li> <li>Event accumulation for pending operations</li> </ol> <h2 id=graph-architecture>Graph Architecture<a class=headerlink href=#graph-architecture title="Anchor link to this section">&para;</a></h2> <p>The graph orchestrator (<code>src/orchestrator/graph_orchestrator.py</code>) implements a flexible graph-based execution model:</p> <p><strong>Node Types</strong>:</p> <ul> <li><strong>Agent Nodes</strong>: Execute Pydantic AI agents (e.g., <code>KnowledgeGapAgent</code>, <code>ToolSelectorAgent</code>)</li> <li><strong>State Nodes</strong>: Update or read workflow state (evidence, conversation)</li> <li><strong>Decision Nodes</strong>: Make routing decisions (research complete?, budget exceeded?)</li> <li><strong>Parallel Nodes</strong>: Execute multiple nodes concurrently (parallel research loops)</li> </ul> <p><strong>Edge Types</strong>:</p> <ul> <li><strong>Sequential Edges</strong>: Always traversed (no condition)</li> <li><strong>Conditional Edges</strong>: Traversed based on condition (e.g., if research complete → writer, else → tool selector)</li> <li><strong>Parallel Edges</strong>: Used for parallel execution branches</li> </ul> <p><strong>Graph Patterns</strong>:</p> <ul> <li><strong>Iterative Graph</strong>: <code>[Input] → [Thinking] → [Knowledge Gap] → [Decision: Complete?] → [Tool Selector] or [Writer]</code></li> <li><strong>Deep Research Graph</strong>: <code>[Input] → [Planner] → [Parallel Iterative Loops] → [Synthesizer]</code></li> </ul> <p><strong>Execution Flow</strong>:</p> <ol> <li>Graph construction from nodes and edges</li> <li>Graph validation (no cycles, all nodes reachable)</li> <li>Graph execution from entry node</li> <li>Node execution based on type</li> <li>Edge evaluation for next node(s)</li> <li>Parallel execution via <code>asyncio.gather()</code></li> <li>State updates at state nodes</li> <li>Event streaming for UI</li> </ol> <h2 id=key-components>Key Components<a class=headerlink href=#key-components title="Anchor link to this section">&para;</a></h2> <ul> <li><strong>Orchestrators</strong>: Multiple orchestration patterns (<code>src/orchestrator/</code>, <code>src/orchestrator_*.py</code>)</li> <li><strong>Research Flows</strong>: Iterative and deep research patterns (<code>src/orchestrator/research_flow.py</code>)</li> <li><strong>Graph Builder</strong>: Graph construction utilities (<code>src/agent_factory/graph_builder.py</code>)</li> <li><strong>Agents</strong>: Pydantic AI agents (<code>src/agents/</code>, <code>src/agent_factory/agents.py</code>)</li> <li><strong>Search Tools</strong>: Neo4j knowledge graph, PubMed, ClinicalTrials.gov, Europe PMC, Web search, RAG (<code>src/tools/</code>)</li> <li><strong>Judge Handler</strong>: LLM-based evidence assessment (<code>src/agent_factory/judges.py</code>)</li> <li><strong>Embeddings</strong>: Semantic search &amp; deduplication (<code>src/services/embeddings.py</code>)</li> <li><strong>Statistical Analyzer</strong>: Modal sandbox execution (<code>src/services/statistical_analyzer.py</code>)</li> <li><strong>Multimodal Processing</strong>: Image OCR and audio STT/TTS services (<code>src/services/multimodal_processing.py</code>, <code>src/services/audio_processing.py</code>)</li> <li><strong>Middleware</strong>: State management, budget tracking, workflow coordination (<code>src/middleware/</code>)</li> <li><strong>MCP Tools</strong>: Claude Desktop integration (<code>src/mcp_tools.py</code>)</li> <li><strong>Gradio UI</strong>: Web interface with MCP server and streaming (<code>src/app.py</code>)</li> </ul> <h2 id=research-team--parallel-execution>Research Team &amp; Parallel Execution<a class=headerlink href=#research-team--parallel-execution title="Anchor link to this section">&para;</a></h2> <p>The system supports complex research workflows through:</p> <ol> <li><strong>WorkflowManager</strong>: Coordinates multiple parallel research loops</li> <li>Creates and tracks <code>ResearchLoop</code> instances</li> <li>Runs loops in parallel via <code>asyncio.gather()</code></li> <li>Synchronizes evidence to global state</li> <li> <p>Handles loop failures gracefully</p> </li> <li> <p><strong>Deep Research Pattern</strong>: Breaks complex queries into sections</p> </li> <li>Planner creates report outline with sections</li> <li>Each section runs as independent iterative research loop</li> <li>Loops execute in parallel</li> <li>Evidence shared across loops via global state</li> <li> <p>Final synthesis combines all section results</p> </li> <li> <p><strong>State Synchronization</strong>: Thread-safe evidence sharing</p> </li> <li>Evidence deduplication by URL</li> <li>Global state accessible to all loops</li> <li>Semantic search across all collected evidence</li> <li>Conversation history tracking per iteration</li> </ol> <h2 id=configuration--modes>Configuration &amp; Modes<a class=headerlink href=#configuration--modes title="Anchor link to this section">&para;</a></h2> <ul> <li><strong>Orchestrator Factory</strong> (<code>src/orchestrator_factory.py</code>):</li> <li>Auto-detects mode: "advanced" if OpenAI key available, else "simple"</li> <li>Supports explicit mode selection: "simple", "magentic" (alias for "advanced"), "advanced", "iterative", "deep", "auto"</li> <li> <p>Lazy imports for optional dependencies</p> </li> <li> <p><strong>Orchestrator Modes</strong> (selected in UI or via factory):</p> </li> <li><code>simple</code>: Legacy linear search-judge loop (Free Tier)</li> <li><code>advanced</code> or <code>magentic</code>: Multi-agent coordination using Microsoft Agent Framework (requires OpenAI API key)</li> <li><code>iterative</code>: Knowledge-gap-driven research with single loop (Free Tier)</li> <li><code>deep</code>: Parallel section-based research with planning (Free Tier)</li> <li> <p><code>auto</code>: Intelligent mode detection based on query complexity (Free Tier)</p> </li> <li> <p><strong>Graph Research Modes</strong> (used within graph orchestrator, separate from orchestrator mode):</p> </li> <li><code>iterative</code>: Single research loop pattern</li> <li><code>deep</code>: Multi-section parallel research pattern</li> <li> <p><code>auto</code>: Auto-detect pattern based on query complexity</p> </li> <li> <p><strong>Execution Modes</strong>:</p> </li> <li><code>use_graph=True</code>: Graph-based execution (parallel, conditional routing)</li> <li><code>use_graph=False</code>: Agent chains (sequential, backward compatible)</li> </ul> <p><strong>Note</strong>: The UI provides separate controls for orchestrator mode and graph research mode. When using graph-based orchestrators (iterative/deep/auto), the graph research mode determines the specific pattern used within the graph execution.</p> <aside class=md-source-file> <span class=md-source-file__fact> <span class=md-icon title="Last update"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="December 2, 2025 01:35:56 UTC"><span class=timeago datetime=2025-12-02T01:35:56+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="December 2, 2025 01:35:56 UTC">2025-12-02</span> </span> <span class=md-source-file__fact> <span class=md-icon title=Created> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M14.47 15.08 11 13V7h1.5v5.25l3.08 1.83c-.41.28-.79.62-1.11 1m-1.39 4.84c-.36.05-.71.08-1.08.08-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8c0 .37-.03.72-.08 1.08.69.1 1.33.32 1.92.64.1-.56.16-1.13.16-1.72 0-5.5-4.5-10-10-10S2 6.5 2 12s4.47 10 10 10c.59 0 1.16-.06 1.72-.16-.32-.59-.54-1.23-.64-1.92M18 15v3h-3v2h3v3h2v-3h3v-2h-3v-3z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="November 29, 2025 21:40:26 UTC"><span class=timeago datetime=2025-11-29T21:40:26+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="November 29, 2025 21:40:26 UTC">2025-11-29</span> </span> </aside> </article> </div> <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=GitHub class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://twitter.com/josephpollack target=_blank rel=noopener title=Twitter class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M459.4 151.7c.3 4.5.3 9.1.3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103v-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53C87.4 130.8 165 172.4 252.1 176.9c-1.6-7.8-2.6-15.9-2.6-24C249.5 95.1 296.3 48 354.4 48c30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title="Live Demo" class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> <a href=https://discord.gg/n8ytYeh25n target=_blank rel=noopener title=Discord class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 576 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M492.5 69.8c-.2-.3-.4-.6-.8-.7-38.1-17.5-78.4-30-119.7-37.1-.4-.1-.8 0-1.1.1s-.6.4-.8.8c-5.5 9.9-10.5 20.2-14.9 30.6-44.6-6.8-89.9-6.8-134.4 0-4.5-10.5-9.5-20.7-15.1-30.6-.2-.3-.5-.6-.8-.8s-.7-.2-1.1-.2C162.5 39 122.2 51.5 84.1 69c-.3.1-.6.4-.8.7C7.1 183.5-13.8 294.6-3.6 404.2c0 .3.1.5.2.8s.3.4.5.6c44.4 32.9 94 58 146.8 74.2.4.1.8.1 1.1 0s.7-.4.9-.7c11.3-15.4 21.4-31.8 30-48.8.1-.2.2-.5.2-.8s0-.5-.1-.8-.2-.5-.4-.6-.4-.3-.7-.4c-15.8-6.1-31.2-13.4-45.9-21.9-.3-.2-.5-.4-.7-.6s-.3-.6-.3-.9 0-.6.2-.9.3-.5.6-.7c3.1-2.3 6.2-4.7 9.1-7.1.3-.2.6-.4.9-.4s.7 0 1 .1c96.2 43.9 200.4 43.9 295.5 0 .3-.1.7-.2 1-.2s.7.2.9.4c2.9 2.4 6 4.9 9.1 7.2.2.2.4.4.6.7s.2.6.2.9-.1.6-.3.9-.4.5-.6.6c-14.7 8.6-30 15.9-45.9 21.8-.2.1-.5.2-.7.4s-.3.4-.4.7-.1.5-.1.8.1.5.2.8c8.8 17 18.8 33.3 30 48.8.2.3.6.6.9.7s.8.1 1.1 0c52.9-16.2 102.6-41.3 147.1-74.2.2-.2.4-.4.5-.6s.2-.5.2-.8c12.3-126.8-20.5-236.9-86.9-334.5zm-302 267.7c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.4 59.2-52.8 59.2m195.4 0c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.2 59.2-52.8 59.2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "navigation.indexes", "navigation.instant", "navigation.tracking", "navigation.smooth", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy", "content.tabs.link", "content.tooltips", "toc.integrate"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> <script src=../../js/timeago.min.js></script> <script src=../../js/timeago_mkdocs_material.js></script> </body> </html>
site/overview/features/index.html CHANGED
@@ -1 +1 @@
1
- <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DETERMINATOR Team"><link href=https://deepcritical.github.io/GradioDemo/overview/features/ rel=canonical><link href=../architecture/ rel=prev><link href=../../getting-started/installation/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Features - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#features class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Features </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/CONFIGURATION/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../../architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../../contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_2 checked> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=true> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Features </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Features </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#core-features class=md-nav__link> <span class=md-ellipsis> Core Features </span> </a> <nav class=md-nav aria-label="Core Features"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#multi-source-search class=md-nav__link> <span class=md-ellipsis> Multi-Source Search </span> </a> </li> <li class=md-nav__item> <a href=#mcp-integration class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=#authentication class=md-nav__link> <span class=md-ellipsis> Authentication </span> </a> </li> <li class=md-nav__item> <a href=#secure-code-execution class=md-nav__link> <span class=md-ellipsis> Secure Code Execution </span> </a> </li> <li class=md-nav__item> <a href=#semantic-search-rag class=md-nav__link> <span class=md-ellipsis> Semantic Search &amp; RAG </span> </a> </li> <li class=md-nav__item> <a href=#orchestration-patterns class=md-nav__link> <span class=md-ellipsis> Orchestration Patterns </span> </a> </li> <li class=md-nav__item> <a href=#real-time-streaming class=md-nav__link> <span class=md-ellipsis> Real-Time Streaming </span> </a> </li> <li class=md-nav__item> <a href=#budget-management class=md-nav__link> <span class=md-ellipsis> Budget Management </span> </a> </li> <li class=md-nav__item> <a href=#state-management class=md-nav__link> <span class=md-ellipsis> State Management </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#advanced-features class=md-nav__link> <span class=md-ellipsis> Advanced Features </span> </a> <nav class=md-nav aria-label="Advanced Features"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#agent-system class=md-nav__link> <span class=md-ellipsis> Agent System </span> </a> </li> <li class=md-nav__item> <a href=#search-tools class=md-nav__link> <span class=md-ellipsis> Search Tools </span> </a> </li> <li class=md-nav__item> <a href=#error-handling class=md-nav__link> <span class=md-ellipsis> Error Handling </span> </a> </li> <li class=md-nav__item> <a href=#configuration class=md-nav__link> <span class=md-ellipsis> Configuration </span> </a> </li> <li class=md-nav__item> <a href=#testing class=md-nav__link> <span class=md-ellipsis> Testing </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#ui-features class=md-nav__link> <span class=md-ellipsis> UI Features </span> </a> <nav class=md-nav aria-label="UI Features"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#gradio-interface class=md-nav__link> <span class=md-ellipsis> Gradio Interface </span> </a> </li> <li class=md-nav__item> <a href=#mcp-server class=md-nav__link> <span class=md-ellipsis> MCP Server </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#development-features class=md-nav__link> <span class=md-ellipsis> Development Features </span> </a> <nav class=md-nav aria-label="Development Features"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#code-quality class=md-nav__link> <span class=md-ellipsis> Code Quality </span> </a> </li> <li class=md-nav__item> <a href=#documentation class=md-nav__link> <span class=md-ellipsis> Documentation </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Quick Start Guide </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <label class=md-nav__link for=__nav_4 id=__nav_4_label tabindex=0> <span class=md-ellipsis> Configuration </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../configuration/CONFIGURATION/ class=md-nav__link> <span class=md-ellipsis> Configuration Guide </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <label class=md-nav__link for=__nav_7 id=__nav_7_label tabindex=0> <span class=md-ellipsis> Contributing </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../contributing/ class=md-nav__link> <span class=md-ellipsis> Contributing to DeepCritical </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=sidebar data-md-type=toc> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#core-features class=md-nav__link> <span class=md-ellipsis> Core Features </span> </a> <nav class=md-nav aria-label="Core Features"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#multi-source-search class=md-nav__link> <span class=md-ellipsis> Multi-Source Search </span> </a> </li> <li class=md-nav__item> <a href=#mcp-integration class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=#authentication class=md-nav__link> <span class=md-ellipsis> Authentication </span> </a> </li> <li class=md-nav__item> <a href=#secure-code-execution class=md-nav__link> <span class=md-ellipsis> Secure Code Execution </span> </a> </li> <li class=md-nav__item> <a href=#semantic-search-rag class=md-nav__link> <span class=md-ellipsis> Semantic Search &amp; RAG </span> </a> </li> <li class=md-nav__item> <a href=#orchestration-patterns class=md-nav__link> <span class=md-ellipsis> Orchestration Patterns </span> </a> </li> <li class=md-nav__item> <a href=#real-time-streaming class=md-nav__link> <span class=md-ellipsis> Real-Time Streaming </span> </a> </li> <li class=md-nav__item> <a href=#budget-management class=md-nav__link> <span class=md-ellipsis> Budget Management </span> </a> </li> <li class=md-nav__item> <a href=#state-management class=md-nav__link> <span class=md-ellipsis> State Management </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#advanced-features class=md-nav__link> <span class=md-ellipsis> Advanced Features </span> </a> <nav class=md-nav aria-label="Advanced Features"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#agent-system class=md-nav__link> <span class=md-ellipsis> Agent System </span> </a> </li> <li class=md-nav__item> <a href=#search-tools class=md-nav__link> <span class=md-ellipsis> Search Tools </span> </a> </li> <li class=md-nav__item> <a href=#error-handling class=md-nav__link> <span class=md-ellipsis> Error Handling </span> </a> </li> <li class=md-nav__item> <a href=#configuration class=md-nav__link> <span class=md-ellipsis> Configuration </span> </a> </li> <li class=md-nav__item> <a href=#testing class=md-nav__link> <span class=md-ellipsis> Testing </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#ui-features class=md-nav__link> <span class=md-ellipsis> UI Features </span> </a> <nav class=md-nav aria-label="UI Features"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#gradio-interface class=md-nav__link> <span class=md-ellipsis> Gradio Interface </span> </a> </li> <li class=md-nav__item> <a href=#mcp-server class=md-nav__link> <span class=md-ellipsis> MCP Server </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#development-features class=md-nav__link> <span class=md-ellipsis> Development Features </span> </a> <nav class=md-nav aria-label="Development Features"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#code-quality class=md-nav__link> <span class=md-ellipsis> Code Quality </span> </a> </li> <li class=md-nav__item> <a href=#documentation class=md-nav__link> <span class=md-ellipsis> Documentation </span> </a> </li> </ul> </nav> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=features>Features<a class=headerlink href=#features title="Permanent link">&para;</a></h1> <p>DeepCritical provides a comprehensive set of features for AI-assisted research:</p> <h2 id=core-features>Core Features<a class=headerlink href=#core-features title="Permanent link">&para;</a></h2> <h3 id=multi-source-search>Multi-Source Search<a class=headerlink href=#multi-source-search title="Permanent link">&para;</a></h3> <ul> <li><strong>PubMed</strong>: Search peer-reviewed biomedical literature via NCBI E-utilities</li> <li><strong>ClinicalTrials.gov</strong>: Search interventional clinical trials</li> <li><strong>Europe PMC</strong>: Search preprints and peer-reviewed articles (includes bioRxiv/medRxiv)</li> <li><strong>RAG</strong>: Semantic search within collected evidence using LlamaIndex</li> </ul> <h3 id=mcp-integration>MCP Integration<a class=headerlink href=#mcp-integration title="Permanent link">&para;</a></h3> <ul> <li><strong>Model Context Protocol</strong>: Expose search tools via MCP server</li> <li><strong>Claude Desktop</strong>: Use DeepCritical tools directly from Claude Desktop</li> <li><strong>MCP Clients</strong>: Compatible with any MCP-compatible client</li> </ul> <h3 id=authentication>Authentication<a class=headerlink href=#authentication title="Permanent link">&para;</a></h3> <ul> <li><strong>HuggingFace OAuth</strong>: Sign in with HuggingFace account for automatic API token usage</li> <li><strong>Manual API Keys</strong>: Support for OpenAI, Anthropic, and HuggingFace API keys</li> <li><strong>Free Tier Support</strong>: Automatic fallback to HuggingFace Inference API</li> </ul> <h3 id=secure-code-execution>Secure Code Execution<a class=headerlink href=#secure-code-execution title="Permanent link">&para;</a></h3> <ul> <li><strong>Modal Sandbox</strong>: Secure execution of AI-generated statistical code</li> <li><strong>Isolated Environment</strong>: Network isolation and package version pinning</li> <li><strong>Safe Execution</strong>: Prevents malicious code execution</li> </ul> <h3 id=semantic-search-rag>Semantic Search &amp; RAG<a class=headerlink href=#semantic-search-rag title="Permanent link">&para;</a></h3> <ul> <li><strong>LlamaIndex Integration</strong>: Advanced RAG capabilities</li> <li><strong>Vector Storage</strong>: ChromaDB for embedding storage</li> <li><strong>Semantic Deduplication</strong>: Automatic detection of similar evidence</li> <li><strong>Embedding Service</strong>: Local sentence-transformers (no API key required)</li> </ul> <h3 id=orchestration-patterns>Orchestration Patterns<a class=headerlink href=#orchestration-patterns title="Permanent link">&para;</a></h3> <ul> <li><strong>Graph-Based Execution</strong>: Flexible graph orchestration with conditional routing</li> <li><strong>Parallel Research Loops</strong>: Run multiple research tasks concurrently</li> <li><strong>Iterative Research</strong>: Single-loop research with search-judge-synthesize cycles</li> <li><strong>Deep Research</strong>: Multi-section parallel research with planning and synthesis</li> <li><strong>Magentic Orchestration</strong>: Multi-agent coordination using Microsoft Agent Framework</li> </ul> <h3 id=real-time-streaming>Real-Time Streaming<a class=headerlink href=#real-time-streaming title="Permanent link">&para;</a></h3> <ul> <li><strong>Event Streaming</strong>: Real-time updates via <code>AsyncGenerator[AgentEvent]</code></li> <li><strong>Progress Tracking</strong>: Monitor research progress with detailed event metadata</li> <li><strong>UI Integration</strong>: Seamless integration with Gradio chat interface</li> </ul> <h3 id=budget-management>Budget Management<a class=headerlink href=#budget-management title="Permanent link">&para;</a></h3> <ul> <li><strong>Token Budget</strong>: Track and limit LLM token usage</li> <li><strong>Time Budget</strong>: Enforce time limits per research loop</li> <li><strong>Iteration Budget</strong>: Limit maximum iterations</li> <li><strong>Per-Loop Budgets</strong>: Independent budgets for parallel research loops</li> </ul> <h3 id=state-management>State Management<a class=headerlink href=#state-management title="Permanent link">&para;</a></h3> <ul> <li><strong>Thread-Safe Isolation</strong>: ContextVar-based state management</li> <li><strong>Evidence Deduplication</strong>: Automatic URL-based deduplication</li> <li><strong>Conversation History</strong>: Track iteration history and agent interactions</li> <li><strong>State Synchronization</strong>: Share evidence across parallel loops</li> </ul> <h2 id=advanced-features>Advanced Features<a class=headerlink href=#advanced-features title="Permanent link">&para;</a></h2> <h3 id=agent-system>Agent System<a class=headerlink href=#agent-system title="Permanent link">&para;</a></h3> <ul> <li><strong>Pydantic AI Agents</strong>: Type-safe agent implementation</li> <li><strong>Structured Output</strong>: Pydantic models for agent responses</li> <li><strong>Agent Factory</strong>: Centralized agent creation with fallback support</li> <li><strong>Specialized Agents</strong>: Knowledge gap, tool selector, writer, proofreader, and more</li> </ul> <h3 id=search-tools>Search Tools<a class=headerlink href=#search-tools title="Permanent link">&para;</a></h3> <ul> <li><strong>Rate Limiting</strong>: Built-in rate limiting for external APIs</li> <li><strong>Retry Logic</strong>: Automatic retry with exponential backoff</li> <li><strong>Query Preprocessing</strong>: Automatic query enhancement and synonym expansion</li> <li><strong>Evidence Conversion</strong>: Automatic conversion to structured Evidence objects</li> </ul> <h3 id=error-handling>Error Handling<a class=headerlink href=#error-handling title="Permanent link">&para;</a></h3> <ul> <li><strong>Custom Exceptions</strong>: Hierarchical exception system</li> <li><strong>Error Chaining</strong>: Preserve exception context</li> <li><strong>Structured Logging</strong>: Comprehensive logging with structlog</li> <li><strong>Graceful Degradation</strong>: Fallback handlers for missing dependencies</li> </ul> <h3 id=configuration>Configuration<a class=headerlink href=#configuration title="Permanent link">&para;</a></h3> <ul> <li><strong>Pydantic Settings</strong>: Type-safe configuration management</li> <li><strong>Environment Variables</strong>: Support for <code>.env</code> files</li> <li><strong>Validation</strong>: Automatic configuration validation</li> <li><strong>Flexible Providers</strong>: Support for multiple LLM and embedding providers</li> </ul> <h3 id=testing>Testing<a class=headerlink href=#testing title="Permanent link">&para;</a></h3> <ul> <li><strong>Unit Tests</strong>: Comprehensive unit test coverage</li> <li><strong>Integration Tests</strong>: Real API integration tests</li> <li><strong>Mock Support</strong>: Extensive mocking utilities</li> <li><strong>Coverage Reports</strong>: Code coverage tracking</li> </ul> <h2 id=ui-features>UI Features<a class=headerlink href=#ui-features title="Permanent link">&para;</a></h2> <h3 id=gradio-interface>Gradio Interface<a class=headerlink href=#gradio-interface title="Permanent link">&para;</a></h3> <ul> <li><strong>Real-Time Chat</strong>: Interactive chat interface</li> <li><strong>Streaming Updates</strong>: Live progress updates</li> <li><strong>Accordion UI</strong>: Organized display of pending/done operations</li> <li><strong>OAuth Integration</strong>: Seamless HuggingFace authentication</li> </ul> <h3 id=mcp-server>MCP Server<a class=headerlink href=#mcp-server title="Permanent link">&para;</a></h3> <ul> <li><strong>RESTful API</strong>: HTTP-based MCP server</li> <li><strong>Tool Discovery</strong>: Automatic tool registration</li> <li><strong>Request Handling</strong>: Async request processing</li> <li><strong>Error Responses</strong>: Structured error responses</li> </ul> <h2 id=development-features>Development Features<a class=headerlink href=#development-features title="Permanent link">&para;</a></h2> <h3 id=code-quality>Code Quality<a class=headerlink href=#code-quality title="Permanent link">&para;</a></h3> <ul> <li><strong>Type Safety</strong>: Full type hints with mypy strict mode</li> <li><strong>Linting</strong>: Ruff for code quality</li> <li><strong>Formatting</strong>: Automatic code formatting</li> <li><strong>Pre-commit Hooks</strong>: Automated quality checks</li> </ul> <h3 id=documentation>Documentation<a class=headerlink href=#documentation title="Permanent link">&para;</a></h3> <ul> <li><strong>Comprehensive Docs</strong>: Detailed documentation for all components</li> <li><strong>Code Examples</strong>: Extensive code examples</li> <li><strong>Architecture Diagrams</strong>: Visual architecture documentation</li> <li><strong>API Reference</strong>: Complete API documentation</li> </ul> </article> </div> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=github.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title=huggingface.co class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> </body> </html>
 
1
+ <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DeepCritical Team"><link href=https://deepcritical.github.io/GradioDemo/overview/features/ rel=canonical><link href=../architecture/ rel=prev><link href=../../getting-started/installation/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Features - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><link rel=stylesheet href=../../css/timeago.css><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#features class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Features </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../../architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../../contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_2 checked> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=true> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Features </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Features </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#core-features class=md-nav__link> <span class=md-ellipsis> Core Features </span> </a> <nav class=md-nav aria-label="Core Features"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#multi-source-search class=md-nav__link> <span class=md-ellipsis> Multi-Source Search </span> </a> </li> <li class=md-nav__item> <a href=#mcp-integration class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=#authentication class=md-nav__link> <span class=md-ellipsis> Authentication </span> </a> </li> <li class=md-nav__item> <a href=#secure-code-execution class=md-nav__link> <span class=md-ellipsis> Secure Code Execution </span> </a> </li> <li class=md-nav__item> <a href=#semantic-search--rag class=md-nav__link> <span class=md-ellipsis> Semantic Search &amp; RAG </span> </a> </li> <li class=md-nav__item> <a href=#orchestration-patterns class=md-nav__link> <span class=md-ellipsis> Orchestration Patterns </span> </a> </li> <li class=md-nav__item> <a href=#real-time-streaming class=md-nav__link> <span class=md-ellipsis> Real-Time Streaming </span> </a> </li> <li class=md-nav__item> <a href=#budget-management class=md-nav__link> <span class=md-ellipsis> Budget Management </span> </a> </li> <li class=md-nav__item> <a href=#state-management class=md-nav__link> <span class=md-ellipsis> State Management </span> </a> </li> <li class=md-nav__item> <a href=#multimodal-input--output class=md-nav__link> <span class=md-ellipsis> Multimodal Input &amp; Output </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#advanced-features class=md-nav__link> <span class=md-ellipsis> Advanced Features </span> </a> <nav class=md-nav aria-label="Advanced Features"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#agent-system class=md-nav__link> <span class=md-ellipsis> Agent System </span> </a> </li> <li class=md-nav__item> <a href=#search-tools class=md-nav__link> <span class=md-ellipsis> Search Tools </span> </a> </li> <li class=md-nav__item> <a href=#error-handling class=md-nav__link> <span class=md-ellipsis> Error Handling </span> </a> </li> <li class=md-nav__item> <a href=#configuration class=md-nav__link> <span class=md-ellipsis> Configuration </span> </a> </li> <li class=md-nav__item> <a href=#testing class=md-nav__link> <span class=md-ellipsis> Testing </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#ui-features class=md-nav__link> <span class=md-ellipsis> UI Features </span> </a> <nav class=md-nav aria-label="UI Features"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#gradio-interface class=md-nav__link> <span class=md-ellipsis> Gradio Interface </span> </a> </li> <li class=md-nav__item> <a href=#mcp-server class=md-nav__link> <span class=md-ellipsis> MCP Server </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#development-features class=md-nav__link> <span class=md-ellipsis> Development Features </span> </a> <nav class=md-nav aria-label="Development Features"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#code-quality class=md-nav__link> <span class=md-ellipsis> Code Quality </span> </a> </li> <li class=md-nav__item> <a href=#documentation class=md-nav__link> <span class=md-ellipsis> Documentation </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Single Command Deploy </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <div class="md-nav__link md-nav__container"> <a href=../../configuration/ class="md-nav__link "> <span class=md-ellipsis> Configuration </span> </a> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <div class="md-nav__link md-nav__container"> <a href=../../contributing/ class="md-nav__link "> <span class=md-ellipsis> Contributing </span> </a> <label class="md-nav__link " for=__nav_7 id=__nav_7_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=features>Features<a class=headerlink href=#features title="Anchor link to this section">&para;</a></h1> <p>The DETERMINATOR provides a comprehensive set of features for AI-assisted research:</p> <h2 id=core-features>Core Features<a class=headerlink href=#core-features title="Anchor link to this section">&para;</a></h2> <h3 id=multi-source-search>Multi-Source Search<a class=headerlink href=#multi-source-search title="Anchor link to this section">&para;</a></h3> <ul> <li><strong>General Web Search</strong>: Search general knowledge sources for any domain</li> <li><strong>Neo4j Knowledge Graph</strong>: Search structured knowledge graph for papers and disease relationships</li> <li><strong>PubMed</strong>: Search peer-reviewed biomedical literature via NCBI E-utilities (automatically used when medical knowledge needed)</li> <li><strong>ClinicalTrials.gov</strong>: Search interventional clinical trials (automatically used when medical knowledge needed)</li> <li><strong>Europe PMC</strong>: Search preprints and peer-reviewed articles (includes bioRxiv/medRxiv)</li> <li><strong>RAG</strong>: Semantic search within collected evidence using LlamaIndex</li> <li><strong>Automatic Source Selection</strong>: Automatically determines which sources are needed based on query analysis</li> </ul> <h3 id=mcp-integration>MCP Integration<a class=headerlink href=#mcp-integration title="Anchor link to this section">&para;</a></h3> <ul> <li><strong>Model Context Protocol</strong>: Expose search tools via MCP server</li> <li><strong>Claude Desktop</strong>: Use The DETERMINATOR tools directly from Claude Desktop</li> <li><strong>MCP Clients</strong>: Compatible with any MCP-compatible client</li> </ul> <h3 id=authentication>Authentication<a class=headerlink href=#authentication title="Anchor link to this section">&para;</a></h3> <ul> <li><strong>REQUIRED</strong>: Authentication is mandatory before using the application</li> <li><strong>HuggingFace OAuth</strong>: Sign in with HuggingFace account for automatic API token usage (recommended)</li> <li><strong>Manual API Keys</strong>: Support for HuggingFace API keys via environment variables (<code>HF_TOKEN</code> or <code>HUGGINGFACE_API_KEY</code>)</li> <li><strong>Free Tier Support</strong>: Automatic fallback to HuggingFace Inference API (public models) when no API key is available</li> <li><strong>Authentication Check</strong>: The application will display an error message if authentication is not provided</li> </ul> <h3 id=secure-code-execution>Secure Code Execution<a class=headerlink href=#secure-code-execution title="Anchor link to this section">&para;</a></h3> <ul> <li><strong>Modal Sandbox</strong>: Secure execution of AI-generated statistical code</li> <li><strong>Isolated Environment</strong>: Network isolation and package version pinning</li> <li><strong>Safe Execution</strong>: Prevents malicious code execution</li> </ul> <h3 id=semantic-search--rag>Semantic Search &amp; RAG<a class=headerlink href=#semantic-search--rag title="Anchor link to this section">&para;</a></h3> <ul> <li><strong>LlamaIndex Integration</strong>: Advanced RAG capabilities</li> <li><strong>Vector Storage</strong>: ChromaDB for embedding storage</li> <li><strong>Semantic Deduplication</strong>: Automatic detection of similar evidence</li> <li><strong>Embedding Service</strong>: Local sentence-transformers (no API key required)</li> </ul> <h3 id=orchestration-patterns>Orchestration Patterns<a class=headerlink href=#orchestration-patterns title="Anchor link to this section">&para;</a></h3> <ul> <li><strong>Graph-Based Execution</strong>: Flexible graph orchestration with conditional routing</li> <li><strong>Parallel Research Loops</strong>: Run multiple research tasks concurrently</li> <li><strong>Iterative Research</strong>: Single-loop research with search-judge-synthesize cycles that continues until precise answers are found</li> <li><strong>Deep Research</strong>: Multi-section parallel research with planning and synthesis</li> <li><strong>Magentic Orchestration</strong>: Multi-agent coordination using Microsoft Agent Framework (alias: "advanced" mode)</li> <li><strong>Stops at Nothing</strong>: Only stops at configured limits (budget, time, iterations), otherwise continues until finding precise answers</li> </ul> <p><strong>Orchestrator Modes</strong>: - <code>simple</code>: Legacy linear search-judge loop - <code>advanced</code> (or <code>magentic</code>): Multi-agent coordination (requires OpenAI API key) - <code>iterative</code>: Knowledge-gap-driven research with single loop - <code>deep</code>: Parallel section-based research with planning - <code>auto</code>: Intelligent mode detection based on query complexity</p> <p><strong>Graph Research Modes</strong> (used within graph orchestrator): - <code>iterative</code>: Single research loop pattern - <code>deep</code>: Multi-section parallel research pattern - <code>auto</code>: Auto-detect pattern based on query complexity</p> <p><strong>Execution Modes</strong>: - <code>use_graph=True</code>: Graph-based execution with parallel and conditional routing - <code>use_graph=False</code>: Agent chains with sequential execution (backward compatible)</p> <h3 id=real-time-streaming>Real-Time Streaming<a class=headerlink href=#real-time-streaming title="Anchor link to this section">&para;</a></h3> <ul> <li><strong>Event Streaming</strong>: Real-time updates via <code>AsyncGenerator[AgentEvent]</code></li> <li><strong>Progress Tracking</strong>: Monitor research progress with detailed event metadata</li> <li><strong>UI Integration</strong>: Seamless integration with Gradio chat interface</li> </ul> <h3 id=budget-management>Budget Management<a class=headerlink href=#budget-management title="Anchor link to this section">&para;</a></h3> <ul> <li><strong>Token Budget</strong>: Track and limit LLM token usage</li> <li><strong>Time Budget</strong>: Enforce time limits per research loop</li> <li><strong>Iteration Budget</strong>: Limit maximum iterations</li> <li><strong>Per-Loop Budgets</strong>: Independent budgets for parallel research loops</li> </ul> <h3 id=state-management>State Management<a class=headerlink href=#state-management title="Anchor link to this section">&para;</a></h3> <ul> <li><strong>Thread-Safe Isolation</strong>: ContextVar-based state management</li> <li><strong>Evidence Deduplication</strong>: Automatic URL-based deduplication</li> <li><strong>Conversation History</strong>: Track iteration history and agent interactions</li> <li><strong>State Synchronization</strong>: Share evidence across parallel loops</li> </ul> <h3 id=multimodal-input--output>Multimodal Input &amp; Output<a class=headerlink href=#multimodal-input--output title="Anchor link to this section">&para;</a></h3> <ul> <li><strong>Image Input (OCR)</strong>: Upload images and extract text using optical character recognition</li> <li><strong>Audio Input (STT)</strong>: Record or upload audio files and transcribe to text using speech-to-text</li> <li><strong>Audio Output (TTS)</strong>: Generate audio responses with text-to-speech synthesis</li> <li><strong>Configurable Settings</strong>: Enable/disable multimodal features via sidebar settings</li> <li><strong>Voice Selection</strong>: Choose from multiple TTS voices (American English: af_<em>, am_</em>)</li> <li><strong>Speech Speed Control</strong>: Adjust TTS speech speed (0.5x to 2.0x)</li> <li><strong>Multimodal Processing Service</strong>: Integrated service for processing images and audio files</li> </ul> <h2 id=advanced-features>Advanced Features<a class=headerlink href=#advanced-features title="Anchor link to this section">&para;</a></h2> <h3 id=agent-system>Agent System<a class=headerlink href=#agent-system title="Anchor link to this section">&para;</a></h3> <ul> <li><strong>Pydantic AI Agents</strong>: Type-safe agent implementation</li> <li><strong>Structured Output</strong>: Pydantic models for agent responses</li> <li><strong>Agent Factory</strong>: Centralized agent creation with fallback support</li> <li><strong>Specialized Agents</strong>: Knowledge gap, tool selector, writer, proofreader, and more</li> </ul> <h3 id=search-tools>Search Tools<a class=headerlink href=#search-tools title="Anchor link to this section">&para;</a></h3> <ul> <li><strong>Rate Limiting</strong>: Built-in rate limiting for external APIs</li> <li><strong>Retry Logic</strong>: Automatic retry with exponential backoff</li> <li><strong>Query Preprocessing</strong>: Automatic query enhancement and synonym expansion</li> <li><strong>Evidence Conversion</strong>: Automatic conversion to structured Evidence objects</li> </ul> <h3 id=error-handling>Error Handling<a class=headerlink href=#error-handling title="Anchor link to this section">&para;</a></h3> <ul> <li><strong>Custom Exceptions</strong>: Hierarchical exception system</li> <li><strong>Error Chaining</strong>: Preserve exception context</li> <li><strong>Structured Logging</strong>: Comprehensive logging with structlog</li> <li><strong>Graceful Degradation</strong>: Fallback handlers for missing dependencies</li> </ul> <h3 id=configuration>Configuration<a class=headerlink href=#configuration title="Anchor link to this section">&para;</a></h3> <ul> <li><strong>Pydantic Settings</strong>: Type-safe configuration management</li> <li><strong>Environment Variables</strong>: Support for <code>.env</code> files</li> <li><strong>Validation</strong>: Automatic configuration validation</li> <li><strong>Flexible Providers</strong>: Support for multiple LLM and embedding providers</li> </ul> <h3 id=testing>Testing<a class=headerlink href=#testing title="Anchor link to this section">&para;</a></h3> <ul> <li><strong>Unit Tests</strong>: Comprehensive unit test coverage</li> <li><strong>Integration Tests</strong>: Real API integration tests</li> <li><strong>Mock Support</strong>: Extensive mocking utilities</li> <li><strong>Coverage Reports</strong>: Code coverage tracking</li> </ul> <h2 id=ui-features>UI Features<a class=headerlink href=#ui-features title="Anchor link to this section">&para;</a></h2> <h3 id=gradio-interface>Gradio Interface<a class=headerlink href=#gradio-interface title="Anchor link to this section">&para;</a></h3> <ul> <li><strong>Real-Time Chat</strong>: Interactive chat interface with multimodal support</li> <li><strong>Streaming Updates</strong>: Live progress updates</li> <li><strong>Accordion UI</strong>: Organized display of pending/done operations</li> <li><strong>OAuth Integration</strong>: Seamless HuggingFace authentication</li> <li><strong>Multimodal Input</strong>: Support for text, images, and audio input in the same interface</li> <li><strong>Sidebar Settings</strong>: Configuration accordions for research, multimodal, and audio settings</li> </ul> <h3 id=mcp-server>MCP Server<a class=headerlink href=#mcp-server title="Anchor link to this section">&para;</a></h3> <ul> <li><strong>RESTful API</strong>: HTTP-based MCP server</li> <li><strong>Tool Discovery</strong>: Automatic tool registration</li> <li><strong>Request Handling</strong>: Async request processing</li> <li><strong>Error Responses</strong>: Structured error responses</li> </ul> <h2 id=development-features>Development Features<a class=headerlink href=#development-features title="Anchor link to this section">&para;</a></h2> <h3 id=code-quality>Code Quality<a class=headerlink href=#code-quality title="Anchor link to this section">&para;</a></h3> <ul> <li><strong>Type Safety</strong>: Full type hints with mypy strict mode</li> <li><strong>Linting</strong>: Ruff for code quality</li> <li><strong>Formatting</strong>: Automatic code formatting</li> <li><strong>Pre-commit Hooks</strong>: Automated quality checks</li> </ul> <h3 id=documentation>Documentation<a class=headerlink href=#documentation title="Anchor link to this section">&para;</a></h3> <ul> <li><strong>Comprehensive Docs</strong>: Detailed documentation for all components</li> <li><strong>Code Examples</strong>: Extensive code examples</li> <li><strong>Architecture Diagrams</strong>: Visual architecture documentation</li> <li><strong>API Reference</strong>: Complete API documentation</li> </ul> <aside class=md-source-file> <span class=md-source-file__fact> <span class=md-icon title="Last update"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="December 2, 2025 01:35:56 UTC"><span class=timeago datetime=2025-12-02T01:35:56+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="December 2, 2025 01:35:56 UTC">2025-12-02</span> </span> <span class=md-source-file__fact> <span class=md-icon title=Created> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M14.47 15.08 11 13V7h1.5v5.25l3.08 1.83c-.41.28-.79.62-1.11 1m-1.39 4.84c-.36.05-.71.08-1.08.08-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8c0 .37-.03.72-.08 1.08.69.1 1.33.32 1.92.64.1-.56.16-1.13.16-1.72 0-5.5-4.5-10-10-10S2 6.5 2 12s4.47 10 10 10c.59 0 1.16-.06 1.72-.16-.32-.59-.54-1.23-.64-1.92M18 15v3h-3v2h3v3h2v-3h3v-2h-3v-3z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="November 29, 2025 21:40:26 UTC"><span class=timeago datetime=2025-11-29T21:40:26+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="November 29, 2025 21:40:26 UTC">2025-11-29</span> </span> </aside> </article> </div> <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=GitHub class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://twitter.com/josephpollack target=_blank rel=noopener title=Twitter class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M459.4 151.7c.3 4.5.3 9.1.3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103v-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53C87.4 130.8 165 172.4 252.1 176.9c-1.6-7.8-2.6-15.9-2.6-24C249.5 95.1 296.3 48 354.4 48c30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title="Live Demo" class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> <a href=https://discord.gg/n8ytYeh25n target=_blank rel=noopener title=Discord class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 576 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M492.5 69.8c-.2-.3-.4-.6-.8-.7-38.1-17.5-78.4-30-119.7-37.1-.4-.1-.8 0-1.1.1s-.6.4-.8.8c-5.5 9.9-10.5 20.2-14.9 30.6-44.6-6.8-89.9-6.8-134.4 0-4.5-10.5-9.5-20.7-15.1-30.6-.2-.3-.5-.6-.8-.8s-.7-.2-1.1-.2C162.5 39 122.2 51.5 84.1 69c-.3.1-.6.4-.8.7C7.1 183.5-13.8 294.6-3.6 404.2c0 .3.1.5.2.8s.3.4.5.6c44.4 32.9 94 58 146.8 74.2.4.1.8.1 1.1 0s.7-.4.9-.7c11.3-15.4 21.4-31.8 30-48.8.1-.2.2-.5.2-.8s0-.5-.1-.8-.2-.5-.4-.6-.4-.3-.7-.4c-15.8-6.1-31.2-13.4-45.9-21.9-.3-.2-.5-.4-.7-.6s-.3-.6-.3-.9 0-.6.2-.9.3-.5.6-.7c3.1-2.3 6.2-4.7 9.1-7.1.3-.2.6-.4.9-.4s.7 0 1 .1c96.2 43.9 200.4 43.9 295.5 0 .3-.1.7-.2 1-.2s.7.2.9.4c2.9 2.4 6 4.9 9.1 7.2.2.2.4.4.6.7s.2.6.2.9-.1.6-.3.9-.4.5-.6.6c-14.7 8.6-30 15.9-45.9 21.8-.2.1-.5.2-.7.4s-.3.4-.4.7-.1.5-.1.8.1.5.2.8c8.8 17 18.8 33.3 30 48.8.2.3.6.6.9.7s.8.1 1.1 0c52.9-16.2 102.6-41.3 147.1-74.2.2-.2.4-.4.5-.6s.2-.5.2-.8c12.3-126.8-20.5-236.9-86.9-334.5zm-302 267.7c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.4 59.2-52.8 59.2m195.4 0c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.2 59.2-52.8 59.2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "navigation.indexes", "navigation.instant", "navigation.tracking", "navigation.smooth", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy", "content.tabs.link", "content.tooltips", "toc.integrate"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> <script src=../../js/timeago.min.js></script> <script src=../../js/timeago_mkdocs_material.js></script> </body> </html>
site/overview/quick-start/index.html CHANGED
@@ -1,15 +1,22 @@
1
- <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DETERMINATOR Team"><link href=https://deepcritical.github.io/GradioDemo/overview/quick-start/ rel=canonical><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Quick Start - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#quick-start class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Quick Start </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/CONFIGURATION/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../../architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../../contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Quick Start Guide </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <label class=md-nav__link for=__nav_4 id=__nav_4_label tabindex=0> <span class=md-ellipsis> Configuration </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../configuration/CONFIGURATION/ class=md-nav__link> <span class=md-ellipsis> Configuration Guide </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <label class=md-nav__link for=__nav_7 id=__nav_7_label tabindex=0> <span class=md-ellipsis> Contributing </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../contributing/ class=md-nav__link> <span class=md-ellipsis> Contributing to DeepCritical </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=sidebar data-md-type=toc> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#installation class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=#run-the-ui class=md-nav__link> <span class=md-ellipsis> Run the UI </span> </a> </li> <li class=md-nav__item> <a href=#basic-usage class=md-nav__link> <span class=md-ellipsis> Basic Usage </span> </a> <nav class=md-nav aria-label="Basic Usage"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#1-authentication-optional class=md-nav__link> <span class=md-ellipsis> 1. Authentication (Optional) </span> </a> </li> <li class=md-nav__item> <a href=#2-start-a-research-query class=md-nav__link> <span class=md-ellipsis> 2. Start a Research Query </span> </a> </li> <li class=md-nav__item> <a href=#3-mcp-integration-optional class=md-nav__link> <span class=md-ellipsis> 3. MCP Integration (Optional) </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#available-tools class=md-nav__link> <span class=md-ellipsis> Available Tools </span> </a> </li> <li class=md-nav__item> <a href=#next-steps class=md-nav__link> <span class=md-ellipsis> Next Steps </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=quick-start>Quick Start<a class=headerlink href=#quick-start title="Permanent link">&para;</a></h1> <p>Get started with DeepCritical in minutes.</p> <h2 id=installation>Installation<a class=headerlink href=#installation title="Permanent link">&para;</a></h2> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=c1># Install uv if you haven&#39;t already</span>
2
- <a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a>pip<span class=w> </span>install<span class=w> </span>uv
3
- <a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a>
4
- <a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a><span class=c1># Sync dependencies</span>
5
- <a id=__codelineno-0-5 name=__codelineno-0-5 href=#__codelineno-0-5></a>uv<span class=w> </span>sync
6
- </code></pre></div> <h2 id=run-the-ui>Run the UI<a class=headerlink href=#run-the-ui title="Permanent link">&para;</a></h2> <div class=highlight><pre><span></span><code><a id=__codelineno-1-1 name=__codelineno-1-1 href=#__codelineno-1-1></a><span class=c1># Start the Gradio app</span>
7
- <a id=__codelineno-1-2 name=__codelineno-1-2 href=#__codelineno-1-2></a>uv<span class=w> </span>run<span class=w> </span>gradio<span class=w> </span>run<span class=w> </span>src/app.py
8
- </code></pre></div> <p>Open your browser to <code>http://localhost:7860</code>.</p> <h2 id=basic-usage>Basic Usage<a class=headerlink href=#basic-usage title="Permanent link">&para;</a></h2> <h3 id=1-authentication-optional>1. Authentication (Optional)<a class=headerlink href=#1-authentication-optional title="Permanent link">&para;</a></h3> <p><strong>HuggingFace OAuth Login</strong>: - Click the "Sign in with HuggingFace" button at the top of the app - Your HuggingFace API token will be automatically used for AI inference - No need to manually enter API keys when logged in</p> <p><strong>Manual API Key (BYOK)</strong>: - Provide your own API key in the Settings accordion - Supports HuggingFace, OpenAI, or Anthropic API keys - Manual keys take priority over OAuth tokens</p> <h3 id=2-start-a-research-query>2. Start a Research Query<a class=headerlink href=#2-start-a-research-query title="Permanent link">&para;</a></h3> <ol> <li>Enter your research question in the chat interface</li> <li>Click "Submit" or press Enter</li> <li>Watch the real-time progress as the system:</li> <li>Generates observations</li> <li>Identifies knowledge gaps</li> <li>Searches multiple sources</li> <li>Evaluates evidence</li> <li>Synthesizes findings</li> <li>Review the final research report</li> </ol> <h3 id=3-mcp-integration-optional>3. MCP Integration (Optional)<a class=headerlink href=#3-mcp-integration-optional title="Permanent link">&para;</a></h3> <p>Connect DeepCritical to Claude Desktop:</p> <ol> <li> <p>Add to your <code>claude_desktop_config.json</code>: <div class=highlight><pre><span></span><code><a id=__codelineno-2-1 name=__codelineno-2-1 href=#__codelineno-2-1></a><span class=p>{</span>
9
- <a id=__codelineno-2-2 name=__codelineno-2-2 href=#__codelineno-2-2></a><span class=w> </span><span class=nt>&quot;mcpServers&quot;</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
10
- <a id=__codelineno-2-3 name=__codelineno-2-3 href=#__codelineno-2-3></a><span class=w> </span><span class=nt>&quot;deepcritical&quot;</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
11
- <a id=__codelineno-2-4 name=__codelineno-2-4 href=#__codelineno-2-4></a><span class=w> </span><span class=nt>&quot;url&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;http://localhost:7860/gradio_api/mcp/&quot;</span>
12
- <a id=__codelineno-2-5 name=__codelineno-2-5 href=#__codelineno-2-5></a><span class=w> </span><span class=p>}</span>
13
- <a id=__codelineno-2-6 name=__codelineno-2-6 href=#__codelineno-2-6></a><span class=w> </span><span class=p>}</span>
14
- <a id=__codelineno-2-7 name=__codelineno-2-7 href=#__codelineno-2-7></a><span class=p>}</span>
15
- </code></pre></div></p> </li> <li> <p>Restart Claude Desktop</p> </li> <li>Use DeepCritical tools directly from Claude Desktop</li> </ol> <h2 id=available-tools>Available Tools<a class=headerlink href=#available-tools title="Permanent link">&para;</a></h2> <ul> <li><code>search_pubmed</code>: Search peer-reviewed biomedical literature</li> <li><code>search_clinical_trials</code>: Search ClinicalTrials.gov</li> <li><code>search_biorxiv</code>: Search bioRxiv/medRxiv preprints</li> <li><code>search_all</code>: Search all sources simultaneously</li> <li><code>analyze_hypothesis</code>: Secure statistical analysis using Modal sandboxes</li> </ul> <h2 id=next-steps>Next Steps<a class=headerlink href=#next-steps title="Permanent link">&para;</a></h2> <ul> <li>Read the <a href=../../getting-started/installation/ >Installation Guide</a> for detailed setup</li> <li>Learn about <a href=../../configuration/ >Configuration</a></li> <li>Explore the <a href=../../architecture/graph-orchestration/ >Architecture</a></li> <li>Check out <a href=../../getting-started/examples/ >Examples</a></li> </ul> </article> </div> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=github.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title=huggingface.co class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> </body> </html>
 
 
 
 
 
 
 
 
1
+ <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DeepCritical Team"><link href=https://deepcritical.github.io/GradioDemo/overview/quick-start/ rel=canonical><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Quick Start - The DETERMINATOR</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><link rel=stylesheet href=../../css/timeago.css><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#quick-start class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Quick Start </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../../configuration/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../../architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../../contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../../LICENSE/ class=md-tabs__link> License </a> </li> <li class=md-tabs__item> <a href=../../team/ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Single Command Deploy </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <div class="md-nav__link md-nav__container"> <a href=../../configuration/ class="md-nav__link "> <span class=md-ellipsis> Configuration </span> </a> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <div class="md-nav__link md-nav__container"> <a href=../../contributing/ class="md-nav__link "> <span class=md-ellipsis> Contributing </span> </a> <label class="md-nav__link " for=__nav_7 id=__nav_7_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../team/ class=md-nav__link> <span class=md-ellipsis> Team </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=quick-start>Quick Start<a class=headerlink href=#quick-start title="Anchor link to this section">&para;</a></h1> <p>Get started with DeepCritical in minutes.</p> <h2 id=installation>Installation<a class=headerlink href=#installation title="Anchor link to this section">&para;</a></h2> <div class="language-bash highlight"><pre><span></span><code><span id=__span-0-1><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=c1># Install uv if you haven&#39;t already (recommended: standalone installer)</span>
2
+ </span><span id=__span-0-2><a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a><span class=c1># Unix/macOS/Linux:</span>
3
+ </span><span id=__span-0-3><a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a>curl<span class=w> </span>-LsSf<span class=w> </span>https://astral.sh/uv/install.sh<span class=w> </span><span class=p>|</span><span class=w> </span>sh
4
+ </span><span id=__span-0-4><a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a>
5
+ </span><span id=__span-0-5><a id=__codelineno-0-5 name=__codelineno-0-5 href=#__codelineno-0-5></a><span class=c1># Windows (PowerShell):</span>
6
+ </span><span id=__span-0-6><a id=__codelineno-0-6 name=__codelineno-0-6 href=#__codelineno-0-6></a>powershell<span class=w> </span>-ExecutionPolicy<span class=w> </span>ByPass<span class=w> </span>-c<span class=w> </span><span class=s2>&quot;irm https://astral.sh/uv/install.ps1 | iex&quot;</span>
7
+ </span><span id=__span-0-7><a id=__codelineno-0-7 name=__codelineno-0-7 href=#__codelineno-0-7></a>
8
+ </span><span id=__span-0-8><a id=__codelineno-0-8 name=__codelineno-0-8 href=#__codelineno-0-8></a><span class=c1># Alternative: pipx install uv</span>
9
+ </span><span id=__span-0-9><a id=__codelineno-0-9 name=__codelineno-0-9 href=#__codelineno-0-9></a><span class=c1># Or: pip install uv</span>
10
+ </span><span id=__span-0-10><a id=__codelineno-0-10 name=__codelineno-0-10 href=#__codelineno-0-10></a>
11
+ </span><span id=__span-0-11><a id=__codelineno-0-11 name=__codelineno-0-11 href=#__codelineno-0-11></a><span class=c1># Sync dependencies</span>
12
+ </span><span id=__span-0-12><a id=__codelineno-0-12 name=__codelineno-0-12 href=#__codelineno-0-12></a>uv<span class=w> </span>sync
13
+ </span></code></pre></div> <h2 id=run-the-ui>Run the UI<a class=headerlink href=#run-the-ui title="Anchor link to this section">&para;</a></h2> <div class="language-bash highlight"><pre><span></span><code><span id=__span-1-1><a id=__codelineno-1-1 name=__codelineno-1-1 href=#__codelineno-1-1></a><span class=c1># Start the Gradio app</span>
14
+ </span><span id=__span-1-2><a id=__codelineno-1-2 name=__codelineno-1-2 href=#__codelineno-1-2></a>uv<span class=w> </span>run<span class=w> </span>gradio<span class=w> </span>run<span class=w> </span>src/app.py
15
+ </span></code></pre></div> <p>Open your browser to <code>http://localhost:7860</code>.</p> <h2 id=basic-usage>Basic Usage<a class=headerlink href=#basic-usage title="Anchor link to this section">&para;</a></h2> <h3 id=1-authentication-required>1. Authentication (REQUIRED)<a class=headerlink href=#1-authentication-required title="Anchor link to this section">&para;</a></h3> <p><strong>Authentication is mandatory</strong> - you must authenticate before using the application. The app will display an error message if you try to use it without authentication.</p> <p><strong>HuggingFace OAuth Login</strong> (Recommended): - Click the "Sign in with HuggingFace" button at the top of the app - Your HuggingFace API token will be automatically used for AI inference - No need to manually enter API keys when logged in</p> <p><strong>Manual API Key</strong> (Alternative): - Set environment variable <code>HF_TOKEN</code> or <code>HUGGINGFACE_API_KEY</code> before starting the app - The app will automatically use these tokens if OAuth login is not available - Supports HuggingFace API keys only (OpenAI/Anthropic keys are not used in the current implementation)</p> <h3 id=2-start-a-research-query>2. Start a Research Query<a class=headerlink href=#2-start-a-research-query title="Anchor link to this section">&para;</a></h3> <ol> <li>Enter your research question in the chat interface</li> <li><strong>Text Input</strong>: Type your question directly</li> <li><strong>Image Input</strong>: Click the 📷 icon to upload images (OCR will extract text)</li> <li><strong>Audio Input</strong>: Click the 🎤 icon to record or upload audio (STT will transcribe to text)</li> <li>Click "Submit" or press Enter</li> <li>Watch the real-time progress as the system:</li> <li>Generates observations</li> <li>Identifies knowledge gaps</li> <li>Searches multiple sources</li> <li>Evaluates evidence</li> <li>Synthesizes findings</li> <li>Review the final research report</li> <li><strong>Audio Output</strong>: If enabled, the final response will include audio synthesis (TTS)</li> </ol> <p><strong>Multimodal Features</strong>: - Configure image/audio input and output in the sidebar settings - Image OCR and audio STT/TTS can be enabled/disabled independently - TTS voice and speed can be customized in the Audio Output settings</p> <h3 id=3-mcp-integration-optional>3. MCP Integration (Optional)<a class=headerlink href=#3-mcp-integration-optional title="Anchor link to this section">&para;</a></h3> <p>Connect DeepCritical to Claude Desktop:</p> <ol> <li> <p>Add to your <code>claude_desktop_config.json</code>: <div class="language-json highlight"><pre><span></span><code><span id=__span-2-1><a id=__codelineno-2-1 name=__codelineno-2-1 href=#__codelineno-2-1></a><span class=p>{</span>
16
+ </span><span id=__span-2-2><a id=__codelineno-2-2 name=__codelineno-2-2 href=#__codelineno-2-2></a><span class=w> </span><span class=nt>&quot;mcpServers&quot;</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
17
+ </span><span id=__span-2-3><a id=__codelineno-2-3 name=__codelineno-2-3 href=#__codelineno-2-3></a><span class=w> </span><span class=nt>&quot;deepcritical&quot;</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
18
+ </span><span id=__span-2-4><a id=__codelineno-2-4 name=__codelineno-2-4 href=#__codelineno-2-4></a><span class=w> </span><span class=nt>&quot;url&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;http://localhost:7860/gradio_api/mcp/&quot;</span>
19
+ </span><span id=__span-2-5><a id=__codelineno-2-5 name=__codelineno-2-5 href=#__codelineno-2-5></a><span class=w> </span><span class=p>}</span>
20
+ </span><span id=__span-2-6><a id=__codelineno-2-6 name=__codelineno-2-6 href=#__codelineno-2-6></a><span class=w> </span><span class=p>}</span>
21
+ </span><span id=__span-2-7><a id=__codelineno-2-7 name=__codelineno-2-7 href=#__codelineno-2-7></a><span class=p>}</span>
22
+ </span></code></pre></div></p> </li> <li> <p>Restart Claude Desktop</p> </li> <li>Use DeepCritical tools directly from Claude Desktop</li> </ol> <h2 id=available-tools>Available Tools<a class=headerlink href=#available-tools title="Anchor link to this section">&para;</a></h2> <ul> <li><code>search_pubmed</code>: Search peer-reviewed biomedical literature</li> <li><code>search_clinical_trials</code>: Search ClinicalTrials.gov</li> <li><code>search_biorxiv</code>: Search bioRxiv/medRxiv preprints</li> <li><code>search_neo4j</code>: Search Neo4j knowledge graph for papers and disease relationships</li> <li><code>search_all</code>: Search all sources simultaneously</li> <li><code>analyze_hypothesis</code>: Secure statistical analysis using Modal sandboxes</li> </ul> <p><strong>Note</strong>: The application automatically uses all available search tools (Neo4j, PubMed, ClinicalTrials.gov, Europe PMC, Web search, RAG) based on query analysis. Neo4j knowledge graph search is included by default for biomedical queries.</p> <h2 id=next-steps>Next Steps<a class=headerlink href=#next-steps title="Anchor link to this section">&para;</a></h2> <ul> <li>Read the <a href=../../getting-started/installation/ >Installation Guide</a> for detailed setup</li> <li>Learn about <a href=../../configuration/ >Configuration</a></li> <li>Explore the <a href=../../architecture/graph_orchestration/ >Architecture</a></li> <li>Check out <a href=../../getting-started/examples/ >Examples</a></li> </ul> <aside class=md-source-file> <span class=md-source-file__fact> <span class=md-icon title="Last update"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="December 2, 2025 01:35:56 UTC"><span class=timeago datetime=2025-12-02T01:35:56+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="December 2, 2025 01:35:56 UTC">2025-12-02</span> </span> <span class=md-source-file__fact> <span class=md-icon title=Created> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M14.47 15.08 11 13V7h1.5v5.25l3.08 1.83c-.41.28-.79.62-1.11 1m-1.39 4.84c-.36.05-.71.08-1.08.08-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8c0 .37-.03.72-.08 1.08.69.1 1.33.32 1.92.64.1-.56.16-1.13.16-1.72 0-5.5-4.5-10-10-10S2 6.5 2 12s4.47 10 10 10c.59 0 1.16-.06 1.72-.16-.32-.59-.54-1.23-.64-1.92M18 15v3h-3v2h3v3h2v-3h3v-2h-3v-3z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="November 29, 2025 22:24:36 UTC"><span class=timeago datetime=2025-11-29T22:24:36+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="November 29, 2025 22:24:36 UTC">2025-11-29</span> </span> </aside> </article> </div> <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=GitHub class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://twitter.com/josephpollack target=_blank rel=noopener title=Twitter class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M459.4 151.7c.3 4.5.3 9.1.3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103v-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53C87.4 130.8 165 172.4 252.1 176.9c-1.6-7.8-2.6-15.9-2.6-24C249.5 95.1 296.3 48 354.4 48c30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title="Live Demo" class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> <a href=https://discord.gg/n8ytYeh25n target=_blank rel=noopener title=Discord class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 576 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M492.5 69.8c-.2-.3-.4-.6-.8-.7-38.1-17.5-78.4-30-119.7-37.1-.4-.1-.8 0-1.1.1s-.6.4-.8.8c-5.5 9.9-10.5 20.2-14.9 30.6-44.6-6.8-89.9-6.8-134.4 0-4.5-10.5-9.5-20.7-15.1-30.6-.2-.3-.5-.6-.8-.8s-.7-.2-1.1-.2C162.5 39 122.2 51.5 84.1 69c-.3.1-.6.4-.8.7C7.1 183.5-13.8 294.6-3.6 404.2c0 .3.1.5.2.8s.3.4.5.6c44.4 32.9 94 58 146.8 74.2.4.1.8.1 1.1 0s.7-.4.9-.7c11.3-15.4 21.4-31.8 30-48.8.1-.2.2-.5.2-.8s0-.5-.1-.8-.2-.5-.4-.6-.4-.3-.7-.4c-15.8-6.1-31.2-13.4-45.9-21.9-.3-.2-.5-.4-.7-.6s-.3-.6-.3-.9 0-.6.2-.9.3-.5.6-.7c3.1-2.3 6.2-4.7 9.1-7.1.3-.2.6-.4.9-.4s.7 0 1 .1c96.2 43.9 200.4 43.9 295.5 0 .3-.1.7-.2 1-.2s.7.2.9.4c2.9 2.4 6 4.9 9.1 7.2.2.2.4.4.6.7s.2.6.2.9-.1.6-.3.9-.4.5-.6.6c-14.7 8.6-30 15.9-45.9 21.8-.2.1-.5.2-.7.4s-.3.4-.4.7-.1.5-.1.8.1.5.2.8c8.8 17 18.8 33.3 30 48.8.2.3.6.6.9.7s.8.1 1.1 0c52.9-16.2 102.6-41.3 147.1-74.2.2-.2.4-.4.5-.6s.2-.5.2-.8c12.3-126.8-20.5-236.9-86.9-334.5zm-302 267.7c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.4 59.2-52.8 59.2m195.4 0c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.2 59.2-52.8 59.2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "navigation.indexes", "navigation.instant", "navigation.tracking", "navigation.smooth", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy", "content.tabs.link", "content.tooltips", "toc.integrate"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> <script src=../../js/timeago.min.js></script> <script src=../../js/timeago_mkdocs_material.js></script> </body> </html>
site/search/search_index.json CHANGED
The diff for this file is too large to render. See raw diff
 
site/sitemap.xml CHANGED
@@ -2,138 +2,126 @@
2
  <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
3
  <url>
4
  <loc>https://deepcritical.github.io/GradioDemo/</loc>
5
- <lastmod>2025-12-01</lastmod>
6
  </url>
7
  <url>
8
- <loc>https://deepcritical.github.io/GradioDemo/CONTRIBUTING/</loc>
9
- <lastmod>2025-12-01</lastmod>
10
  </url>
11
  <url>
12
- <loc>https://deepcritical.github.io/GradioDemo/LICENSE/</loc>
13
- <lastmod>2025-12-01</lastmod>
14
  </url>
15
  <url>
16
  <loc>https://deepcritical.github.io/GradioDemo/team/</loc>
17
- <lastmod>2025-12-01</lastmod>
18
  </url>
19
  <url>
20
  <loc>https://deepcritical.github.io/GradioDemo/api/agents/</loc>
21
- <lastmod>2025-12-01</lastmod>
22
  </url>
23
  <url>
24
  <loc>https://deepcritical.github.io/GradioDemo/api/models/</loc>
25
- <lastmod>2025-12-01</lastmod>
26
  </url>
27
  <url>
28
  <loc>https://deepcritical.github.io/GradioDemo/api/orchestrators/</loc>
29
- <lastmod>2025-12-01</lastmod>
30
  </url>
31
  <url>
32
  <loc>https://deepcritical.github.io/GradioDemo/api/services/</loc>
33
- <lastmod>2025-12-01</lastmod>
34
  </url>
35
  <url>
36
  <loc>https://deepcritical.github.io/GradioDemo/api/tools/</loc>
37
- <lastmod>2025-12-01</lastmod>
38
  </url>
39
  <url>
40
  <loc>https://deepcritical.github.io/GradioDemo/architecture/agents/</loc>
41
- <lastmod>2025-12-01</lastmod>
42
- </url>
43
- <url>
44
- <loc>https://deepcritical.github.io/GradioDemo/architecture/graph-orchestration/</loc>
45
- <lastmod>2025-12-01</lastmod>
46
  </url>
47
  <url>
48
  <loc>https://deepcritical.github.io/GradioDemo/architecture/graph_orchestration/</loc>
49
- <lastmod>2025-12-01</lastmod>
50
  </url>
51
  <url>
52
  <loc>https://deepcritical.github.io/GradioDemo/architecture/middleware/</loc>
53
- <lastmod>2025-12-01</lastmod>
54
  </url>
55
  <url>
56
  <loc>https://deepcritical.github.io/GradioDemo/architecture/orchestrators/</loc>
57
- <lastmod>2025-12-01</lastmod>
58
  </url>
59
  <url>
60
  <loc>https://deepcritical.github.io/GradioDemo/architecture/services/</loc>
61
- <lastmod>2025-12-01</lastmod>
62
  </url>
63
  <url>
64
  <loc>https://deepcritical.github.io/GradioDemo/architecture/tools/</loc>
65
- <lastmod>2025-12-01</lastmod>
66
  </url>
67
  <url>
68
  <loc>https://deepcritical.github.io/GradioDemo/architecture/workflow-diagrams/</loc>
69
- <lastmod>2025-12-01</lastmod>
70
- </url>
71
- <url>
72
- <loc>https://deepcritical.github.io/GradioDemo/architecture/workflows/</loc>
73
- <lastmod>2025-12-01</lastmod>
74
  </url>
75
  <url>
76
  <loc>https://deepcritical.github.io/GradioDemo/configuration/</loc>
77
- <lastmod>2025-12-01</lastmod>
78
- </url>
79
- <url>
80
- <loc>https://deepcritical.github.io/GradioDemo/configuration/CONFIGURATION/</loc>
81
- <lastmod>2025-12-01</lastmod>
82
  </url>
83
  <url>
84
  <loc>https://deepcritical.github.io/GradioDemo/contributing/</loc>
85
- <lastmod>2025-12-01</lastmod>
86
  </url>
87
  <url>
88
  <loc>https://deepcritical.github.io/GradioDemo/contributing/code-quality/</loc>
89
- <lastmod>2025-12-01</lastmod>
90
  </url>
91
  <url>
92
  <loc>https://deepcritical.github.io/GradioDemo/contributing/code-style/</loc>
93
- <lastmod>2025-12-01</lastmod>
94
  </url>
95
  <url>
96
  <loc>https://deepcritical.github.io/GradioDemo/contributing/error-handling/</loc>
97
- <lastmod>2025-12-01</lastmod>
98
  </url>
99
  <url>
100
  <loc>https://deepcritical.github.io/GradioDemo/contributing/implementation-patterns/</loc>
101
- <lastmod>2025-12-01</lastmod>
102
  </url>
103
  <url>
104
  <loc>https://deepcritical.github.io/GradioDemo/contributing/prompt-engineering/</loc>
105
- <lastmod>2025-12-01</lastmod>
106
  </url>
107
  <url>
108
  <loc>https://deepcritical.github.io/GradioDemo/contributing/testing/</loc>
109
- <lastmod>2025-12-01</lastmod>
110
  </url>
111
  <url>
112
  <loc>https://deepcritical.github.io/GradioDemo/getting-started/examples/</loc>
113
- <lastmod>2025-12-01</lastmod>
114
  </url>
115
  <url>
116
  <loc>https://deepcritical.github.io/GradioDemo/getting-started/installation/</loc>
117
- <lastmod>2025-12-01</lastmod>
118
  </url>
119
  <url>
120
  <loc>https://deepcritical.github.io/GradioDemo/getting-started/mcp-integration/</loc>
121
- <lastmod>2025-12-01</lastmod>
122
  </url>
123
  <url>
124
  <loc>https://deepcritical.github.io/GradioDemo/getting-started/quick-start/</loc>
125
- <lastmod>2025-12-01</lastmod>
126
  </url>
127
  <url>
128
  <loc>https://deepcritical.github.io/GradioDemo/overview/architecture/</loc>
129
- <lastmod>2025-12-01</lastmod>
130
  </url>
131
  <url>
132
  <loc>https://deepcritical.github.io/GradioDemo/overview/features/</loc>
133
- <lastmod>2025-12-01</lastmod>
134
  </url>
135
  <url>
136
  <loc>https://deepcritical.github.io/GradioDemo/overview/quick-start/</loc>
137
- <lastmod>2025-12-01</lastmod>
138
  </url>
139
  </urlset>
 
2
  <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
3
  <url>
4
  <loc>https://deepcritical.github.io/GradioDemo/</loc>
5
+ <lastmod>2025-12-02</lastmod>
6
  </url>
7
  <url>
8
+ <loc>https://deepcritical.github.io/GradioDemo/LICENSE/</loc>
9
+ <lastmod>2025-12-02</lastmod>
10
  </url>
11
  <url>
12
+ <loc>https://deepcritical.github.io/GradioDemo/MKDOCS_IMPROVEMENTS_ASSESSMENT/</loc>
13
+ <lastmod>2025-12-02</lastmod>
14
  </url>
15
  <url>
16
  <loc>https://deepcritical.github.io/GradioDemo/team/</loc>
17
+ <lastmod>2025-12-02</lastmod>
18
  </url>
19
  <url>
20
  <loc>https://deepcritical.github.io/GradioDemo/api/agents/</loc>
21
+ <lastmod>2025-12-02</lastmod>
22
  </url>
23
  <url>
24
  <loc>https://deepcritical.github.io/GradioDemo/api/models/</loc>
25
+ <lastmod>2025-12-02</lastmod>
26
  </url>
27
  <url>
28
  <loc>https://deepcritical.github.io/GradioDemo/api/orchestrators/</loc>
29
+ <lastmod>2025-12-02</lastmod>
30
  </url>
31
  <url>
32
  <loc>https://deepcritical.github.io/GradioDemo/api/services/</loc>
33
+ <lastmod>2025-12-02</lastmod>
34
  </url>
35
  <url>
36
  <loc>https://deepcritical.github.io/GradioDemo/api/tools/</loc>
37
+ <lastmod>2025-12-02</lastmod>
38
  </url>
39
  <url>
40
  <loc>https://deepcritical.github.io/GradioDemo/architecture/agents/</loc>
41
+ <lastmod>2025-12-02</lastmod>
 
 
 
 
42
  </url>
43
  <url>
44
  <loc>https://deepcritical.github.io/GradioDemo/architecture/graph_orchestration/</loc>
45
+ <lastmod>2025-12-02</lastmod>
46
  </url>
47
  <url>
48
  <loc>https://deepcritical.github.io/GradioDemo/architecture/middleware/</loc>
49
+ <lastmod>2025-12-02</lastmod>
50
  </url>
51
  <url>
52
  <loc>https://deepcritical.github.io/GradioDemo/architecture/orchestrators/</loc>
53
+ <lastmod>2025-12-02</lastmod>
54
  </url>
55
  <url>
56
  <loc>https://deepcritical.github.io/GradioDemo/architecture/services/</loc>
57
+ <lastmod>2025-12-02</lastmod>
58
  </url>
59
  <url>
60
  <loc>https://deepcritical.github.io/GradioDemo/architecture/tools/</loc>
61
+ <lastmod>2025-12-02</lastmod>
62
  </url>
63
  <url>
64
  <loc>https://deepcritical.github.io/GradioDemo/architecture/workflow-diagrams/</loc>
65
+ <lastmod>2025-12-02</lastmod>
 
 
 
 
66
  </url>
67
  <url>
68
  <loc>https://deepcritical.github.io/GradioDemo/configuration/</loc>
69
+ <lastmod>2025-12-02</lastmod>
 
 
 
 
70
  </url>
71
  <url>
72
  <loc>https://deepcritical.github.io/GradioDemo/contributing/</loc>
73
+ <lastmod>2025-12-02</lastmod>
74
  </url>
75
  <url>
76
  <loc>https://deepcritical.github.io/GradioDemo/contributing/code-quality/</loc>
77
+ <lastmod>2025-12-02</lastmod>
78
  </url>
79
  <url>
80
  <loc>https://deepcritical.github.io/GradioDemo/contributing/code-style/</loc>
81
+ <lastmod>2025-12-02</lastmod>
82
  </url>
83
  <url>
84
  <loc>https://deepcritical.github.io/GradioDemo/contributing/error-handling/</loc>
85
+ <lastmod>2025-12-02</lastmod>
86
  </url>
87
  <url>
88
  <loc>https://deepcritical.github.io/GradioDemo/contributing/implementation-patterns/</loc>
89
+ <lastmod>2025-12-02</lastmod>
90
  </url>
91
  <url>
92
  <loc>https://deepcritical.github.io/GradioDemo/contributing/prompt-engineering/</loc>
93
+ <lastmod>2025-12-02</lastmod>
94
  </url>
95
  <url>
96
  <loc>https://deepcritical.github.io/GradioDemo/contributing/testing/</loc>
97
+ <lastmod>2025-12-02</lastmod>
98
  </url>
99
  <url>
100
  <loc>https://deepcritical.github.io/GradioDemo/getting-started/examples/</loc>
101
+ <lastmod>2025-12-02</lastmod>
102
  </url>
103
  <url>
104
  <loc>https://deepcritical.github.io/GradioDemo/getting-started/installation/</loc>
105
+ <lastmod>2025-12-02</lastmod>
106
  </url>
107
  <url>
108
  <loc>https://deepcritical.github.io/GradioDemo/getting-started/mcp-integration/</loc>
109
+ <lastmod>2025-12-02</lastmod>
110
  </url>
111
  <url>
112
  <loc>https://deepcritical.github.io/GradioDemo/getting-started/quick-start/</loc>
113
+ <lastmod>2025-12-02</lastmod>
114
  </url>
115
  <url>
116
  <loc>https://deepcritical.github.io/GradioDemo/overview/architecture/</loc>
117
+ <lastmod>2025-12-02</lastmod>
118
  </url>
119
  <url>
120
  <loc>https://deepcritical.github.io/GradioDemo/overview/features/</loc>
121
+ <lastmod>2025-12-02</lastmod>
122
  </url>
123
  <url>
124
  <loc>https://deepcritical.github.io/GradioDemo/overview/quick-start/</loc>
125
+ <lastmod>2025-12-02</lastmod>
126
  </url>
127
  </urlset>
site/team/index.html CHANGED
@@ -1 +1 @@
1
- <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DETERMINATOR Team"><link href=https://deepcritical.github.io/GradioDemo/team/ rel=canonical><link href=../LICENSE/ rel=prev><link rel=icon href=../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Team - The DETERMINATOR</title><link rel=stylesheet href=../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#team class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Team </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../configuration/CONFIGURATION/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../LICENSE/ class=md-tabs__link> License </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=./ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Quick Start Guide </span> </a> </li> <li class=md-nav__item> <a href=../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <label class=md-nav__link for=__nav_4 id=__nav_4_label tabindex=0> <span class=md-ellipsis> Configuration </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../configuration/CONFIGURATION/ class=md-nav__link> <span class=md-ellipsis> Configuration Guide </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <label class=md-nav__link for=__nav_7 id=__nav_7_label tabindex=0> <span class=md-ellipsis> Contributing </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../contributing/ class=md-nav__link> <span class=md-ellipsis> Contributing to DeepCritical </span> </a> </li> <li class=md-nav__item> <a href=../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Team </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Team </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#team-members class=md-nav__link> <span class=md-ellipsis> Team Members </span> </a> <nav class=md-nav aria-label="Team Members"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#zj class=md-nav__link> <span class=md-ellipsis> ZJ </span> </a> </li> <li class=md-nav__item> <a href=#mario-aderman class=md-nav__link> <span class=md-ellipsis> Mario Aderman </span> </a> </li> <li class=md-nav__item> <a href=#joseph-pollack class=md-nav__link> <span class=md-ellipsis> Joseph Pollack </span> </a> </li> <li class=md-nav__item> <a href=#virat-chauran class=md-nav__link> <span class=md-ellipsis> Virat Chauran </span> </a> </li> <li class=md-nav__item> <a href=#anna-bossler class=md-nav__link> <span class=md-ellipsis> Anna Bossler </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#about class=md-nav__link> <span class=md-ellipsis> About </span> </a> </li> <li class=md-nav__item> <a href=#contributing class=md-nav__link> <span class=md-ellipsis> Contributing </span> </a> </li> <li class=md-nav__item> <a href=#links class=md-nav__link> <span class=md-ellipsis> Links </span> </a> </li> </ul> </nav> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=sidebar data-md-type=toc> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#team-members class=md-nav__link> <span class=md-ellipsis> Team Members </span> </a> <nav class=md-nav aria-label="Team Members"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#zj class=md-nav__link> <span class=md-ellipsis> ZJ </span> </a> </li> <li class=md-nav__item> <a href=#mario-aderman class=md-nav__link> <span class=md-ellipsis> Mario Aderman </span> </a> </li> <li class=md-nav__item> <a href=#joseph-pollack class=md-nav__link> <span class=md-ellipsis> Joseph Pollack </span> </a> </li> <li class=md-nav__item> <a href=#virat-chauran class=md-nav__link> <span class=md-ellipsis> Virat Chauran </span> </a> </li> <li class=md-nav__item> <a href=#anna-bossler class=md-nav__link> <span class=md-ellipsis> Anna Bossler </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#about class=md-nav__link> <span class=md-ellipsis> About </span> </a> </li> <li class=md-nav__item> <a href=#contributing class=md-nav__link> <span class=md-ellipsis> Contributing </span> </a> </li> <li class=md-nav__item> <a href=#links class=md-nav__link> <span class=md-ellipsis> Links </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=team>Team<a class=headerlink href=#team title="Permanent link">&para;</a></h1> <p>DeepCritical is developed by a team of researchers and developers working on AI-assisted research.</p> <h2 id=team-members>Team Members<a class=headerlink href=#team-members title="Permanent link">&para;</a></h2> <h3 id=zj>ZJ<a class=headerlink href=#zj title="Permanent link">&para;</a></h3> <ul> <li>💼 <a href=https://www.linkedin.com/in// >LinkedIn</a></li> </ul> <h3 id=mario-aderman>Mario Aderman<a class=headerlink href=#mario-aderman title="Permanent link">&para;</a></h3> <ul> <li>🤗 <a href=https://huggingface.co/SeasonalFall84>HuggingFace</a></li> <li>💼 <a href=https://www.linkedin.com/in/mario-aderman/ >LinkedIn</a></li> <li>𝕏 <a href=https://x.com/marioaderman>X</a></li> </ul> <h3 id=joseph-pollack>Joseph Pollack<a class=headerlink href=#joseph-pollack title="Permanent link">&para;</a></h3> <ul> <li>🤗 <a href=https://huggingface.co/Tonic>HuggingFace</a></li> <li>💼 <a href=https://www.linkedin.com/in/josephpollack/ >LinkedIn</a></li> <li>𝕏 <a href=https://x.com/josephpollack>X</a></li> </ul> <h3 id=virat-chauran>Virat Chauran<a class=headerlink href=#virat-chauran title="Permanent link">&para;</a></h3> <ul> <li>𝕏 <a href=https://x.com/viratzzs/ >X</a></li> <li>💼 <a href=https://www.linkedin.com/in/viratchauhan/ >LinkedIn</a></li> <li>🤗 <a href=https://huggingface.co/ViratChauhan>HuggingFace</a></li> </ul> <h3 id=anna-bossler>Anna Bossler<a class=headerlink href=#anna-bossler title="Permanent link">&para;</a></h3> <ul> <li>💼 <a href=https://www.linkedin.com/in/ana-bossler-07304717>LinkedIn</a></li> </ul> <h2 id=about>About<a class=headerlink href=#about title="Permanent link">&para;</a></h2> <p>The DeepCritical team met online in the Alzheimer's Critical Literature Review Group in the Hugging Science initiative. We're building the agent framework we want to use for AI-assisted research to turn the vast amounts of clinical data into cures.</p> <h2 id=contributing>Contributing<a class=headerlink href=#contributing title="Permanent link">&para;</a></h2> <p>We welcome contributions! See the <a href=../contributing/ >Contributing Guide</a> for details.</p> <h2 id=links>Links<a class=headerlink href=#links title="Permanent link">&para;</a></h2> <ul> <li><a href=https://github.com/DeepCritical/GradioDemo>GitHub Repository</a></li> <li><a href=https://huggingface.co/spaces/DataQuests/DeepCritical>HuggingFace Space</a></li> </ul> </article> </div> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=github.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title=huggingface.co class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy"], "search": "../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../assets/javascripts/bundle.e71a0d61.min.js></script> </body> </html>
 
1
+ <!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Generalist Deep Research Agent that Stops at Nothing"><meta name=author content="The DeepCritical Team"><link href=https://deepcritical.github.io/GradioDemo/team/ rel=canonical><link href=../LICENSE/ rel=prev><link rel=icon href=../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Team - The DETERMINATOR</title><link rel=stylesheet href=../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><link rel=stylesheet href=../css/timeago.css><script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#team class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=.. title="The DETERMINATOR" class="md-header__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> The DETERMINATOR </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Team </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=orange data-md-color-accent=red aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../overview/architecture/ class=md-tabs__link> Overview </a> </li> <li class=md-tabs__item> <a href=../getting-started/installation/ class=md-tabs__link> Getting Started </a> </li> <li class=md-tabs__item> <a href=../configuration/ class=md-tabs__link> Configuration </a> </li> <li class=md-tabs__item> <a href=../architecture/graph_orchestration/ class=md-tabs__link> Architecture </a> </li> <li class=md-tabs__item> <a href=../api/agents/ class=md-tabs__link> API Reference </a> </li> <li class=md-tabs__item> <a href=../contributing/ class=md-tabs__link> Contributing </a> </li> <li class=md-tabs__item> <a href=../LICENSE/ class=md-tabs__link> License </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=./ class=md-tabs__link> Team </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=.. title="The DETERMINATOR" class="md-nav__button md-logo" aria-label="The DETERMINATOR" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> The DETERMINATOR </label> <div class=md-nav__source> <a href=https://github.com/DeepCritical/GradioDemo title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> DeepCritical/GradioDemo </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex=0> <span class=md-ellipsis> Overview </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Overview </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../overview/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture Overview </span> </a> </li> <li class=md-nav__item> <a href=../overview/features/ class=md-nav__link> <span class=md-ellipsis> Features </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <label class=md-nav__link for=__nav_3 id=__nav_3_label tabindex=0> <span class=md-ellipsis> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../getting-started/quick-start/ class=md-nav__link> <span class=md-ellipsis> Single Command Deploy </span> </a> </li> <li class=md-nav__item> <a href=../getting-started/mcp-integration/ class=md-nav__link> <span class=md-ellipsis> MCP Integration </span> </a> </li> <li class=md-nav__item> <a href=../getting-started/examples/ class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_4> <div class="md-nav__link md-nav__container"> <a href=../configuration/ class="md-nav__link "> <span class=md-ellipsis> Configuration </span> </a> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Configuration </label> <ul class=md-nav__list data-md-scrollfix> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <label class=md-nav__link for=__nav_5 id=__nav_5_label tabindex=0> <span class=md-ellipsis> Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../architecture/graph_orchestration/ class=md-nav__link> <span class=md-ellipsis> Graph Orchestration </span> </a> </li> <li class=md-nav__item> <a href=../architecture/workflow-diagrams/ class=md-nav__link> <span class=md-ellipsis> Workflow Diagrams </span> </a> </li> <li class=md-nav__item> <a href=../architecture/agents/ class=md-nav__link> <span class=md-ellipsis> Agents </span> </a> </li> <li class=md-nav__item> <a href=../architecture/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators </span> </a> </li> <li class=md-nav__item> <a href=../architecture/tools/ class=md-nav__link> <span class=md-ellipsis> Tools </span> </a> </li> <li class=md-nav__item> <a href=../architecture/middleware/ class=md-nav__link> <span class=md-ellipsis> Middleware </span> </a> </li> <li class=md-nav__item> <a href=../architecture/services/ class=md-nav__link> <span class=md-ellipsis> Services </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> API Reference </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> API Reference </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../api/agents/ class=md-nav__link> <span class=md-ellipsis> Agents API Reference </span> </a> </li> <li class=md-nav__item> <a href=../api/tools/ class=md-nav__link> <span class=md-ellipsis> Tools API Reference </span> </a> </li> <li class=md-nav__item> <a href=../api/orchestrators/ class=md-nav__link> <span class=md-ellipsis> Orchestrators API Reference </span> </a> </li> <li class=md-nav__item> <a href=../api/services/ class=md-nav__link> <span class=md-ellipsis> Services API Reference </span> </a> </li> <li class=md-nav__item> <a href=../api/models/ class=md-nav__link> <span class=md-ellipsis> Models API Reference </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <div class="md-nav__link md-nav__container"> <a href=../contributing/ class="md-nav__link "> <span class=md-ellipsis> Contributing </span> </a> <label class="md-nav__link " for=__nav_7 id=__nav_7_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Contributing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../contributing/code-quality/ class=md-nav__link> <span class=md-ellipsis> Code Quality &amp; Documentation </span> </a> </li> <li class=md-nav__item> <a href=../contributing/code-style/ class=md-nav__link> <span class=md-ellipsis> Code Style &amp; Conventions </span> </a> </li> <li class=md-nav__item> <a href=../contributing/error-handling/ class=md-nav__link> <span class=md-ellipsis> Error Handling &amp; Logging </span> </a> </li> <li class=md-nav__item> <a href=../contributing/implementation-patterns/ class=md-nav__link> <span class=md-ellipsis> Implementation Patterns </span> </a> </li> <li class=md-nav__item> <a href=../contributing/prompt-engineering/ class=md-nav__link> <span class=md-ellipsis> Prompt Engineering &amp; Citation Validation </span> </a> </li> <li class=md-nav__item> <a href=../contributing/testing/ class=md-nav__link> <span class=md-ellipsis> Testing Requirements </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../LICENSE/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Team </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Team </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#team-members class=md-nav__link> <span class=md-ellipsis> Team Members </span> </a> <nav class=md-nav aria-label="Team Members"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#zj class=md-nav__link> <span class=md-ellipsis> ZJ </span> </a> </li> <li class=md-nav__item> <a href=#mario-aderman class=md-nav__link> <span class=md-ellipsis> Mario Aderman </span> </a> </li> <li class=md-nav__item> <a href=#joseph-pollack class=md-nav__link> <span class=md-ellipsis> Joseph Pollack </span> </a> </li> <li class=md-nav__item> <a href=#virat-chauran class=md-nav__link> <span class=md-ellipsis> Virat Chauran </span> </a> </li> <li class=md-nav__item> <a href=#anna-bossler class=md-nav__link> <span class=md-ellipsis> Anna Bossler </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#about class=md-nav__link> <span class=md-ellipsis> About </span> </a> </li> <li class=md-nav__item> <a href=#contributing class=md-nav__link> <span class=md-ellipsis> Contributing </span> </a> </li> <li class=md-nav__item> <a href=#links class=md-nav__link> <span class=md-ellipsis> Links </span> </a> </li> </ul> </nav> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=team>Team<a class=headerlink href=#team title="Anchor link to this section">&para;</a></h1> <p>DeepCritical is developed by a team of researchers and developers working on AI-assisted research.</p> <h2 id=team-members>Team Members<a class=headerlink href=#team-members title="Anchor link to this section">&para;</a></h2> <h3 id=zj>ZJ<a class=headerlink href=#zj title="Anchor link to this section">&para;</a></h3> <ul> <li>💼 <a href=https://www.linkedin.com/in// >LinkedIn</a></li> </ul> <h3 id=mario-aderman>Mario Aderman<a class=headerlink href=#mario-aderman title="Anchor link to this section">&para;</a></h3> <ul> <li>🤗 <a href=https://huggingface.co/SeasonalFall84>HuggingFace</a></li> <li>💼 <a href=https://www.linkedin.com/in/mario-aderman/ >LinkedIn</a></li> <li>𝕏 <a href=https://x.com/marioaderman>X</a></li> </ul> <h3 id=joseph-pollack>Joseph Pollack<a class=headerlink href=#joseph-pollack title="Anchor link to this section">&para;</a></h3> <ul> <li>🤗 <a href=https://huggingface.co/Tonic>HuggingFace</a></li> <li>💼 <a href=https://www.linkedin.com/in/josephpollack/ >LinkedIn</a></li> <li>𝕏 <a href=https://x.com/josephpollack>X</a></li> </ul> <h3 id=virat-chauran>Virat Chauran<a class=headerlink href=#virat-chauran title="Anchor link to this section">&para;</a></h3> <ul> <li>𝕏 <a href=https://x.com/viratzzs/ >X</a></li> <li>💼 <a href=https://www.linkedin.com/in/viratchauhan/ >LinkedIn</a></li> <li>🤗 <a href=https://huggingface.co/ViratChauhan>HuggingFace</a></li> </ul> <h3 id=anna-bossler>Anna Bossler<a class=headerlink href=#anna-bossler title="Anchor link to this section">&para;</a></h3> <ul> <li>💼 <a href=https://www.linkedin.com/in/ana-bossler-07304717>LinkedIn</a></li> </ul> <h2 id=about>About<a class=headerlink href=#about title="Anchor link to this section">&para;</a></h2> <p>The DeepCritical team met online in the Alzheimer's Critical Literature Review Group in the Hugging Science initiative. We're building the agent framework we want to use for AI-assisted research to turn the vast amounts of clinical data into cures.</p> <h2 id=contributing>Contributing<a class=headerlink href=#contributing title="Anchor link to this section">&para;</a></h2> <p>We welcome contributions! See the <a href=../contributing/ >Contributing Guide</a> for details.</p> <h2 id=links>Links<a class=headerlink href=#links title="Anchor link to this section">&para;</a></h2> <ul> <li><a href=https://github.com/DeepCritical/GradioDemo>GitHub Repository</a></li> <li><a href=https://huggingface.co/spaces/DataQuests/DeepCritical>HuggingFace Space</a></li> </ul> <aside class=md-source-file> <span class=md-source-file__fact> <span class=md-icon title="Last update"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="December 1, 2025 16:59:59 UTC"><span class=timeago datetime=2025-12-01T16:59:59+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="December 1, 2025 16:59:59 UTC">2025-12-01</span> </span> <span class=md-source-file__fact> <span class=md-icon title=Created> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M14.47 15.08 11 13V7h1.5v5.25l3.08 1.83c-.41.28-.79.62-1.11 1m-1.39 4.84c-.36.05-.71.08-1.08.08-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8c0 .37-.03.72-.08 1.08.69.1 1.33.32 1.92.64.1-.56.16-1.13.16-1.72 0-5.5-4.5-10-10-10S2 6.5 2 12s4.47 10 10 10c.59 0 1.16-.06 1.72-.16-.32-.59-.54-1.23-.64-1.92M18 15v3h-3v2h3v3h2v-3h3v-2h-3v-3z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago" title="November 29, 2025 21:40:26 UTC"><span class=timeago datetime=2025-11-29T21:40:26+00:00 locale=en></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date" title="November 29, 2025 21:40:26 UTC">2025-11-29</span> </span> </aside> </article> </div> <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2024 DeepCritical Team </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/DeepCritical/GradioDemo target=_blank rel=noopener title=GitHub class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href=https://twitter.com/josephpollack target=_blank rel=noopener title=Twitter class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M459.4 151.7c.3 4.5.3 9.1.3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103v-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53C87.4 130.8 165 172.4 252.1 176.9c-1.6-7.8-2.6-15.9-2.6-24C249.5 95.1 296.3 48 354.4 48c30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3"/></svg> </a> <a href=https://huggingface.co/spaces/DataQuests/DeepCritical target=_blank rel=noopener title="Live Demo" class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M14.34 14H9.66c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2M12 19.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96M8 8H5.08A7.92 7.92 0 0 1 9.4 4.44C8.8 5.55 8.35 6.75 8 8m-2.92 8H8c.35 1.25.8 2.45 1.4 3.56A8 8 0 0 1 5.08 16m-.82-2C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2M12 4.03c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97M18.92 8h-2.95a15.7 15.7 0 0 0-1.38-3.56c1.84.63 3.37 1.9 4.33 3.56M12 2C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg> </a> <a href=https://discord.gg/n8ytYeh25n target=_blank rel=noopener title=Discord class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 576 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M492.5 69.8c-.2-.3-.4-.6-.8-.7-38.1-17.5-78.4-30-119.7-37.1-.4-.1-.8 0-1.1.1s-.6.4-.8.8c-5.5 9.9-10.5 20.2-14.9 30.6-44.6-6.8-89.9-6.8-134.4 0-4.5-10.5-9.5-20.7-15.1-30.6-.2-.3-.5-.6-.8-.8s-.7-.2-1.1-.2C162.5 39 122.2 51.5 84.1 69c-.3.1-.6.4-.8.7C7.1 183.5-13.8 294.6-3.6 404.2c0 .3.1.5.2.8s.3.4.5.6c44.4 32.9 94 58 146.8 74.2.4.1.8.1 1.1 0s.7-.4.9-.7c11.3-15.4 21.4-31.8 30-48.8.1-.2.2-.5.2-.8s0-.5-.1-.8-.2-.5-.4-.6-.4-.3-.7-.4c-15.8-6.1-31.2-13.4-45.9-21.9-.3-.2-.5-.4-.7-.6s-.3-.6-.3-.9 0-.6.2-.9.3-.5.6-.7c3.1-2.3 6.2-4.7 9.1-7.1.3-.2.6-.4.9-.4s.7 0 1 .1c96.2 43.9 200.4 43.9 295.5 0 .3-.1.7-.2 1-.2s.7.2.9.4c2.9 2.4 6 4.9 9.1 7.2.2.2.4.4.6.7s.2.6.2.9-.1.6-.3.9-.4.5-.6.6c-14.7 8.6-30 15.9-45.9 21.8-.2.1-.5.2-.7.4s-.3.4-.4.7-.1.5-.1.8.1.5.2.8c8.8 17 18.8 33.3 30 48.8.2.3.6.6.9.7s.8.1 1.1 0c52.9-16.2 102.6-41.3 147.1-74.2.2-.2.4-.4.5-.6s.2-.5.2-.8c12.3-126.8-20.5-236.9-86.9-334.5zm-302 267.7c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.4 59.2-52.8 59.2m195.4 0c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.2 59.2-52.8 59.2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "..", "features": ["navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "navigation.indexes", "navigation.instant", "navigation.tracking", "navigation.smooth", "search.suggest", "search.highlight", "content.code.annotate", "content.code.copy", "content.tabs.link", "content.tooltips", "toc.integrate"], "search": "../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src=../assets/javascripts/bundle.e71a0d61.min.js></script> <script src=../js/timeago.min.js></script> <script src=../js/timeago_mkdocs_material.js></script> </body> </html>
uv.lock CHANGED
@@ -1226,6 +1226,7 @@ dependencies = [
1226
  dev = [
1227
  { name = "mkdocs" },
1228
  { name = "mkdocs-codeinclude-plugin" },
 
1229
  { name = "mkdocs-material" },
1230
  { name = "mkdocs-mermaid2-plugin" },
1231
  { name = "mkdocs-minify-plugin" },
@@ -1262,6 +1263,7 @@ modal = [
1262
  dev = [
1263
  { name = "mkdocs" },
1264
  { name = "mkdocs-codeinclude-plugin" },
 
1265
  { name = "mkdocs-material" },
1266
  { name = "mkdocs-mermaid2-plugin" },
1267
  { name = "mkdocs-minify-plugin" },
@@ -1300,6 +1302,7 @@ requires-dist = [
1300
  { name = "md2pdf", specifier = ">=1.0.1" },
1301
  { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6.0" },
1302
  { name = "mkdocs-codeinclude-plugin", marker = "extra == 'dev'", specifier = ">=0.2.0" },
 
1303
  { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.0.0" },
1304
  { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1.0" },
1305
  { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.8.0" },
@@ -1346,6 +1349,7 @@ provides-extras = ["dev", "magentic", "embeddings", "modal"]
1346
  dev = [
1347
  { name = "mkdocs", specifier = ">=1.6.1" },
1348
  { name = "mkdocs-codeinclude-plugin", specifier = ">=0.2.1" },
 
1349
  { name = "mkdocs-material", specifier = ">=9.7.0" },
1350
  { name = "mkdocs-mermaid2-plugin", specifier = ">=1.2.3" },
1351
  { name = "mkdocs-minify-plugin", specifier = ">=0.8.0" },
@@ -1805,6 +1809,30 @@ wheels = [
1805
  { url = "https://files.pythonhosted.org/packages/f7/ec/67fbef5d497f86283db54c22eec6f6140243aae73265799baaaa19cd17fb/ghp_import-2.1.0-py3-none-any.whl", hash = "sha256:8337dd7b50877f163d4c0289bc1f1c7f127550241988d568c1db512c4324a619", size = 11034, upload-time = "2022-05-02T15:47:14.552Z" },
1806
  ]
1807
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1808
  [[package]]
1809
  name = "google-auth"
1810
  version = "2.43.0"
@@ -3235,6 +3263,21 @@ wheels = [
3235
  { url = "https://files.pythonhosted.org/packages/9f/d4/029f984e8d3f3b6b726bd33cafc473b75e9e44c0f7e80a5b29abc466bdea/mkdocs_get_deps-0.2.0-py3-none-any.whl", hash = "sha256:2bf11d0b133e77a0dd036abeeb06dec8775e46efa526dc70667d8863eefc6134", size = 9521, upload-time = "2023-11-20T17:51:08.587Z" },
3236
  ]
3237
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3238
  [[package]]
3239
  name = "mkdocs-material"
3240
  version = "9.7.0"
@@ -5845,6 +5888,15 @@ wheels = [
5845
  { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" },
5846
  ]
5847
 
 
 
 
 
 
 
 
 
 
5848
  [[package]]
5849
  name = "sniffio"
5850
  version = "1.3.1"
 
1226
  dev = [
1227
  { name = "mkdocs" },
1228
  { name = "mkdocs-codeinclude-plugin" },
1229
+ { name = "mkdocs-git-revision-date-localized-plugin" },
1230
  { name = "mkdocs-material" },
1231
  { name = "mkdocs-mermaid2-plugin" },
1232
  { name = "mkdocs-minify-plugin" },
 
1263
  dev = [
1264
  { name = "mkdocs" },
1265
  { name = "mkdocs-codeinclude-plugin" },
1266
+ { name = "mkdocs-git-revision-date-localized-plugin" },
1267
  { name = "mkdocs-material" },
1268
  { name = "mkdocs-mermaid2-plugin" },
1269
  { name = "mkdocs-minify-plugin" },
 
1302
  { name = "md2pdf", specifier = ">=1.0.1" },
1303
  { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6.0" },
1304
  { name = "mkdocs-codeinclude-plugin", marker = "extra == 'dev'", specifier = ">=0.2.0" },
1305
+ { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2.0" },
1306
  { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.0.0" },
1307
  { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1.0" },
1308
  { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.8.0" },
 
1349
  dev = [
1350
  { name = "mkdocs", specifier = ">=1.6.1" },
1351
  { name = "mkdocs-codeinclude-plugin", specifier = ">=0.2.1" },
1352
+ { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2.0" },
1353
  { name = "mkdocs-material", specifier = ">=9.7.0" },
1354
  { name = "mkdocs-mermaid2-plugin", specifier = ">=1.2.3" },
1355
  { name = "mkdocs-minify-plugin", specifier = ">=0.8.0" },
 
1809
  { url = "https://files.pythonhosted.org/packages/f7/ec/67fbef5d497f86283db54c22eec6f6140243aae73265799baaaa19cd17fb/ghp_import-2.1.0-py3-none-any.whl", hash = "sha256:8337dd7b50877f163d4c0289bc1f1c7f127550241988d568c1db512c4324a619", size = 11034, upload-time = "2022-05-02T15:47:14.552Z" },
1810
  ]
1811
 
1812
+ [[package]]
1813
+ name = "gitdb"
1814
+ version = "4.0.12"
1815
+ source = { registry = "https://pypi.org/simple" }
1816
+ dependencies = [
1817
+ { name = "smmap" },
1818
+ ]
1819
+ sdist = { url = "https://files.pythonhosted.org/packages/72/94/63b0fc47eb32792c7ba1fe1b694daec9a63620db1e313033d18140c2320a/gitdb-4.0.12.tar.gz", hash = "sha256:5ef71f855d191a3326fcfbc0d5da835f26b13fbcba60c32c21091c349ffdb571", size = 394684, upload-time = "2025-01-02T07:20:46.413Z" }
1820
+ wheels = [
1821
+ { url = "https://files.pythonhosted.org/packages/a0/61/5c78b91c3143ed5c14207f463aecfc8f9dbb5092fb2869baf37c273b2705/gitdb-4.0.12-py3-none-any.whl", hash = "sha256:67073e15955400952c6565cc3e707c554a4eea2e428946f7a4c162fab9bd9bcf", size = 62794, upload-time = "2025-01-02T07:20:43.624Z" },
1822
+ ]
1823
+
1824
+ [[package]]
1825
+ name = "gitpython"
1826
+ version = "3.1.45"
1827
+ source = { registry = "https://pypi.org/simple" }
1828
+ dependencies = [
1829
+ { name = "gitdb" },
1830
+ ]
1831
+ sdist = { url = "https://files.pythonhosted.org/packages/9a/c8/dd58967d119baab745caec2f9d853297cec1989ec1d63f677d3880632b88/gitpython-3.1.45.tar.gz", hash = "sha256:85b0ee964ceddf211c41b9f27a49086010a190fd8132a24e21f362a4b36a791c", size = 215076, upload-time = "2025-07-24T03:45:54.871Z" }
1832
+ wheels = [
1833
+ { url = "https://files.pythonhosted.org/packages/01/61/d4b89fec821f72385526e1b9d9a3a0385dda4a72b206d28049e2c7cd39b8/gitpython-3.1.45-py3-none-any.whl", hash = "sha256:8908cb2e02fb3b93b7eb0f2827125cb699869470432cc885f019b8fd0fccff77", size = 208168, upload-time = "2025-07-24T03:45:52.517Z" },
1834
+ ]
1835
+
1836
  [[package]]
1837
  name = "google-auth"
1838
  version = "2.43.0"
 
3263
  { url = "https://files.pythonhosted.org/packages/9f/d4/029f984e8d3f3b6b726bd33cafc473b75e9e44c0f7e80a5b29abc466bdea/mkdocs_get_deps-0.2.0-py3-none-any.whl", hash = "sha256:2bf11d0b133e77a0dd036abeeb06dec8775e46efa526dc70667d8863eefc6134", size = 9521, upload-time = "2023-11-20T17:51:08.587Z" },
3264
  ]
3265
 
3266
+ [[package]]
3267
+ name = "mkdocs-git-revision-date-localized-plugin"
3268
+ version = "1.5.0"
3269
+ source = { registry = "https://pypi.org/simple" }
3270
+ dependencies = [
3271
+ { name = "babel" },
3272
+ { name = "gitpython" },
3273
+ { name = "mkdocs" },
3274
+ { name = "tzdata", marker = "sys_platform == 'win32'" },
3275
+ ]
3276
+ sdist = { url = "https://files.pythonhosted.org/packages/0f/c5/1d3c4e6ddae6230b89d09105cb79de711655e3ebd6745f7a92efea0f5160/mkdocs_git_revision_date_localized_plugin-1.5.0.tar.gz", hash = "sha256:17345ccfdf69a1905dc96fb1070dce82d03a1eb6b0d48f958081a7589ce3c248", size = 460697, upload-time = "2025-10-31T16:11:34.44Z" }
3277
+ wheels = [
3278
+ { url = "https://files.pythonhosted.org/packages/bc/51/fe0e3fdb16f6eed65c9459d12bae6a4e1f0bb4e2228cb037e7907b002678/mkdocs_git_revision_date_localized_plugin-1.5.0-py3-none-any.whl", hash = "sha256:933f9e35a8c135b113f21bb57610d82e9b7bcc71dd34fb06a029053c97e99656", size = 26153, upload-time = "2025-10-31T16:11:32.987Z" },
3279
+ ]
3280
+
3281
  [[package]]
3282
  name = "mkdocs-material"
3283
  version = "9.7.0"
 
5888
  { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" },
5889
  ]
5890
 
5891
+ [[package]]
5892
+ name = "smmap"
5893
+ version = "5.0.2"
5894
+ source = { registry = "https://pypi.org/simple" }
5895
+ sdist = { url = "https://files.pythonhosted.org/packages/44/cd/a040c4b3119bbe532e5b0732286f805445375489fceaec1f48306068ee3b/smmap-5.0.2.tar.gz", hash = "sha256:26ea65a03958fa0c8a1c7e8c7a58fdc77221b8910f6be2131affade476898ad5", size = 22329, upload-time = "2025-01-02T07:14:40.909Z" }
5896
+ wheels = [
5897
+ { url = "https://files.pythonhosted.org/packages/04/be/d09147ad1ec7934636ad912901c5fd7667e1c858e19d355237db0d0cd5e4/smmap-5.0.2-py3-none-any.whl", hash = "sha256:b30115f0def7d7531d22a0fb6502488d879e75b260a9db4d0819cfb25403af5e", size = 24303, upload-time = "2025-01-02T07:14:38.724Z" },
5898
+ ]
5899
+
5900
  [[package]]
5901
  name = "sniffio"
5902
  version = "1.3.1"