├── .cursor └── rules │ ├── aiq-agents │ └── general.mdc │ ├── aiq-cli │ ├── aiq-eval.mdc │ ├── aiq-info.mdc │ ├── aiq-run-serve.mdc │ ├── aiq-workflow.mdc │ └── general.mdc │ ├── aiq-setup │ ├── aiq-toolkit-installation.mdc │ └── general.mdc │ ├── aiq-workflows │ ├── add-functions.mdc │ ├── add-tools.mdc │ └── general.mdc │ ├── cursor-rules.mdc │ ├── documentation │ ├── capitalization.mdc │ ├── formatting.mdc │ ├── general.mdc │ ├── lists-and-tables.mdc │ ├── numbers-and-dates.mdc │ ├── punctuation.mdc │ ├── voice-and-tone.mdc │ └── writing-process.mdc │ └── general.mdc ├── .devcontainer ├── Dockerfile ├── README.md ├── bin │ └── dev-start ├── cuda12.5-conda │ └── devcontainer.json ├── docker-compose.yml └── initialize-command.sh ├── .dockerignore ├── .gitattributes ├── .github ├── CODEOWNERS ├── ISSUE_TEMPLATE │ ├── bug_report.yml │ ├── config.yml │ ├── documentation_request_correction.yml │ ├── documentation_request_new.yml │ └── feature_request.yml ├── PULL_REQUEST_TEMPLATE.md ├── copy-pr-bot.yaml ├── ops-bot.yaml └── workflows │ ├── ci_pipe.yml │ └── pr.yaml ├── .gitignore ├── .gitlab-ci.yml ├── .gitmodules ├── .pre-commit-config.yaml ├── .tmp └── .gitkeep ├── .vale.ini ├── CHANGELOG.md ├── CODE-OF-CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE-3rd-party.txt ├── LICENSE.md ├── README.md ├── SECURITY.md ├── aiq.code-workspace ├── ci ├── markdown-link-check-config.json ├── release │ ├── pr_code_freeze_template.md │ ├── update-version.sh │ └── update_toml_dep.py ├── scripts │ ├── bootstrap_local_ci.sh │ ├── checks.sh │ ├── common.sh │ ├── copyright.py │ ├── documentation_checks.sh │ ├── github │ │ ├── build_wheel.sh │ │ ├── checks.sh │ │ ├── common.sh │ │ ├── docs.sh │ │ └── tests.sh │ ├── gitlab │ │ ├── artifactory_upload.sh │ │ ├── build_wheel.sh │ │ ├── checks.sh │ │ ├── common.sh │ │ ├── docs.sh │ │ └── tests.sh │ ├── gitutils.py │ ├── python_checks.sh │ └── run_ci_local.sh └── vale │ └── styles │ └── config │ └── vocabularies │ └── aiq │ ├── accept.txt │ └── reject.txt ├── docker ├── Dockerfile └── build_container.sh ├── docs ├── Makefile ├── README.md └── source │ ├── _static │ ├── agent_with_reasoning_wrapper.png │ ├── agent_without_reasoning_wrapper.png │ ├── aiq_multi_frameworks_agentic_schema.png │ ├── aiqtoolkit_banner.png │ ├── aiqtoolkit_gitdiagram.png │ ├── config_to_workflow.png │ ├── cursor_rules_demo │ │ ├── add_tool.gif │ │ ├── create_workflow.gif │ │ ├── find_tool.gif │ │ ├── install.gif │ │ ├── react_agent.gif │ │ └── run_workflow.gif │ ├── hitl_prompt.png │ ├── hitl_result.png │ ├── hitl_settings.png │ ├── llama3_70b_gantt_chart.png │ ├── main_nv_logo_square.png │ ├── mixtral_gantt_chart.png │ ├── observability.png │ ├── profiler-agent.png │ ├── profiler_ragas_metrics.png │ ├── profiler_runtimes.png │ ├── profiler_token_efficiency.png │ ├── profiler_token_scatter.png │ ├── running_workflows.png │ ├── ui_generate_example.png │ ├── ui_generate_example_settings.png │ ├── ui_generate_websocket_example.png │ ├── ui_home_page.png │ └── weave_tracing.png │ ├── conf.py │ ├── extend │ ├── adding-a-retriever.md │ ├── adding-an-llm-provider.md │ ├── cursor-rules-developer-guide.md │ ├── custom-evaluator.md │ ├── functions.md │ ├── integrating-aws-bedrock-models.md │ ├── memory.md │ ├── plugins.md │ └── sharing-components.md │ ├── index.md │ ├── quick-start │ ├── index.md │ ├── installing.md │ └── launching-ui.md │ ├── reference │ ├── api-server-endpoints.md │ ├── cli.md │ ├── cursor-rules-reference.md │ ├── evaluate-api.md │ ├── evaluate.md │ ├── interactive-models.md │ └── websockets.md │ ├── release-notes.md │ ├── resources │ ├── code-of-conduct.md │ ├── contributing.md │ ├── faq.md │ ├── licensing.md │ └── running-ci-locally.md │ ├── store-and-retrieve │ ├── memory.md │ └── retrievers.md │ ├── support.md │ ├── troubleshooting.md │ ├── tutorials │ ├── add-tools-to-a-workflow.md │ ├── build-a-demo-agent-workflow-using-cursor-rules.md │ ├── create-a-new-workflow.md │ ├── customize-a-workflow.md │ └── index.md │ └── workflows │ ├── about │ ├── index.md │ ├── react-agent.md │ ├── reasoning-agent.md │ ├── rewoo-agent.md │ └── tool-calling-agent.md │ ├── evaluate.md │ ├── functions │ ├── code-execution.md │ └── index.md │ ├── mcp │ ├── index.md │ ├── mcp-client.md │ └── mcp-server.md │ ├── observe │ ├── index.md │ ├── observe-workflow-with-phoenix.md │ └── observe-workflow-with-weave.md │ ├── profiler.md │ ├── run-workflows.md │ ├── using-local-llms.md │ └── workflow-configuration.md ├── examples ├── README.md ├── agents │ ├── README.md │ ├── data │ │ ├── rewoo.json │ │ ├── wikipedia.csv │ │ ├── wikipedia.json │ │ ├── wikipedia.xlsx │ │ └── wikipedia_generated.json │ ├── mixture_of_agents │ │ ├── README.md │ │ └── configs │ │ │ └── config.yml │ ├── react │ │ ├── README.md │ │ └── configs │ │ │ ├── config-reasoning.yml │ │ │ └── config.yml │ ├── rewoo │ │ ├── README.md │ │ ├── configs │ │ │ └── config.yml │ │ └── tests │ │ │ └── test_rewoo_agent.py │ └── tool_calling │ │ ├── README.md │ │ └── configs │ │ ├── config-reasoning.yml │ │ └── config.yml ├── agno_personal_finance │ ├── .dockerignore │ ├── Dockerfile │ ├── README.md │ ├── pyproject.toml │ ├── src │ │ └── aiq_agno_personal_finance │ │ │ ├── __init__.py │ │ │ ├── agno_personal_finance_function.py │ │ │ ├── configs │ │ │ └── config.yml │ │ │ └── register.py │ └── tests │ │ └── test_agno_personal_finance_workflow.py ├── alert_triage_agent │ ├── README.md │ ├── configs │ ├── data │ ├── pyproject.toml │ ├── src │ │ └── aiq_alert_triage_agent │ │ │ ├── __init__.py │ │ │ ├── categorizer.py │ │ │ ├── classification_evaluator.py │ │ │ ├── configs │ │ │ ├── config_live_mode.yml │ │ │ └── config_offline_mode.yml │ │ │ ├── data │ │ │ ├── ata_diagram.png │ │ │ ├── benign_fallback_offline_data.json │ │ │ ├── maintenance_static_dataset.csv │ │ │ ├── offline_data.csv │ │ │ └── offline_data.json │ │ │ ├── hardware_check_tool.py │ │ │ ├── host_performance_check_tool.py │ │ │ ├── maintenance_check.py │ │ │ ├── monitoring_process_check_tool.py │ │ │ ├── network_connectivity_check_tool.py │ │ │ ├── playbooks.py │ │ │ ├── prompts.py │ │ │ ├── register.py │ │ │ ├── run.py │ │ │ ├── telemetry_metrics_analysis_agent.py │ │ │ ├── telemetry_metrics_host_heartbeat_check_tool.py │ │ │ ├── telemetry_metrics_host_performance_check_tool.py │ │ │ └── utils.py │ └── tests │ │ ├── test_alert_triage_agent_workflow.py │ │ ├── test_categorizer.py │ │ ├── test_hardware_check_tool.py │ │ ├── test_host_performance_check_tool.py │ │ ├── test_maintenance_check.py │ │ ├── test_monitoring_process_check_tool.py │ │ ├── test_network_connectivity_check_tool.py │ │ ├── test_run.py │ │ ├── test_telemetry_metrics_host_heartbeat_check_tool.py │ │ ├── test_telemetry_metrics_host_performance_check_tool.py │ │ └── test_utils.py ├── automated_description_generation │ ├── README.md │ ├── configs │ ├── pyproject.toml │ └── src │ │ └── aiq_automated_description_generation │ │ ├── __init__.py │ │ ├── configs │ │ ├── config.yml │ │ └── config_no_auto.yml │ │ ├── register.py │ │ └── utils │ │ ├── __init__.py │ │ ├── description_generation.py │ │ ├── prompts.py │ │ └── workflow_utils.py ├── documentation_guides │ ├── README.md │ ├── locally_hosted_llms │ │ ├── nim_config.yml │ │ └── vllm_config.yml │ └── workflows │ │ ├── custom_workflow │ │ ├── custom_config.yml │ │ └── search_config.yml │ │ └── text_file_ingest │ │ ├── configs │ │ ├── data │ │ ├── pyproject.toml │ │ └── src │ │ └── text_file_ingest │ │ ├── __init__.py │ │ ├── configs │ │ └── config.yml │ │ ├── data │ │ ├── doca_overview.txt │ │ ├── gpunetio_blog_post.txt │ │ └── gpunetio_programming_guide.txt │ │ ├── register.py │ │ └── text_file_ingest_function.py ├── email_phishing_analyzer │ ├── .dockerignore │ ├── Dockerfile │ ├── README.md │ ├── configs │ │ ├── config-llama-3.1-8b-instruct.yml │ │ ├── config-llama-3.3-70b-instruct.yml │ │ ├── config-mixtral-8x22b-instruct-v0.1.yml │ │ ├── config-phi-3-medium-4k-instruct.yml │ │ ├── config-phi-3-mini-4k-instruct.yml │ │ ├── config-reasoning.yml │ │ └── config.yml │ ├── data │ │ └── smaller_test.csv │ ├── pyproject.toml │ ├── scripts │ │ └── run_phishing_evals_all.sh │ └── src │ │ └── aiq_email_phishing_analyzer │ │ ├── __init__.py │ │ ├── register.py │ │ └── utils.py ├── multi_frameworks │ ├── README.md │ ├── configs │ ├── pyproject.toml │ ├── src │ │ └── aiq_multi_frameworks │ │ │ ├── __init__.py │ │ │ ├── configs │ │ │ └── config.yml │ │ │ ├── haystack_agent.py │ │ │ ├── langchain_research_tool.py │ │ │ ├── llama_index_rag_tool.py │ │ │ └── register.py │ └── tests │ │ └── test_multi_frameworks_workflow.py ├── plot_charts │ ├── README.md │ ├── configs │ ├── data │ ├── example_data.json │ ├── pyproject.toml │ ├── src │ │ └── aiq_plot_charts │ │ │ ├── __init__.py │ │ │ ├── configs │ │ │ └── config.yml │ │ │ ├── create_plot.py │ │ │ ├── data │ │ │ └── plot_charts_questions.json │ │ │ ├── graph_instruction.py │ │ │ ├── plot_chain_agent.py │ │ │ └── register.py │ └── tests │ │ └── test_plot_charts_workflow.py ├── por_to_jiratickets │ ├── README.md │ ├── configs │ ├── data │ ├── pyproject.toml │ └── src │ │ └── aiq_por_to_jiratickets │ │ ├── __init__.py │ │ ├── configs │ │ └── config.yml │ │ ├── data │ │ └── por_requirements.txt │ │ ├── extract_por_tool.py │ │ ├── jira_tickets_tool.py │ │ └── register.py ├── profiler_agent │ ├── README.md │ ├── configs │ ├── pyproject.toml │ ├── src │ │ └── aiq_profiler_agent │ │ │ ├── __init__.py │ │ │ ├── agent.py │ │ │ ├── configs │ │ │ └── config.yml │ │ │ ├── data_models.py │ │ │ ├── prompts.py │ │ │ ├── register.py │ │ │ └── tool │ │ │ ├── __init__.py │ │ │ ├── flow_chart.py │ │ │ ├── px_query.py │ │ │ ├── response_composer.py │ │ │ ├── token_usage.py │ │ │ └── utils.py │ └── tests │ │ ├── test_profiler_agent.py │ │ └── test_spans.csv ├── semantic_kernel_demo │ ├── README.md │ ├── configs │ ├── data │ │ └── hotel_prices.json │ ├── pyproject.toml │ ├── src │ │ └── aiq_semantic_kernel_demo │ │ │ ├── __init__.py │ │ │ ├── configs │ │ │ └── config.yml │ │ │ ├── hotel_price_tool.py │ │ │ ├── local_events_tool.py │ │ │ └── register.py │ └── tests │ │ └── test_semantic_kernel_workflow.py ├── simple │ ├── Dockerfile │ ├── README.md │ ├── configs │ ├── data │ ├── pyproject.toml │ ├── src │ │ └── aiq_simple │ │ │ ├── __init__.py │ │ │ ├── configs │ │ │ ├── config.yml │ │ │ ├── eval_config.yml │ │ │ ├── eval_config_weave.yml │ │ │ ├── eval_only_config.yml │ │ │ └── eval_upload_config.yml │ │ │ ├── data │ │ │ ├── langsmith.csv │ │ │ ├── langsmith.json │ │ │ ├── langsmith.xlsx │ │ │ ├── langsmith_generated.json │ │ │ └── simple_questions.json │ │ │ ├── register.py │ │ │ └── scripts │ │ │ └── workflow_to_csv.py │ └── tests │ │ ├── test_simple_eval.py │ │ ├── test_simple_workflow.py │ │ └── test_web_query_tool.py ├── simple_calculator │ ├── .dockerignore │ ├── Dockerfile │ ├── README.md │ ├── configs │ ├── data │ ├── deploy_external_mcp │ │ ├── Dockerfile │ │ └── README.md │ ├── pyproject.toml │ ├── src │ │ └── aiq_simple_calculator │ │ │ ├── __init__.py │ │ │ ├── configs │ │ │ ├── config-langfuse.yml │ │ │ ├── config-langsmith.yml │ │ │ ├── config-mcp-date.yml │ │ │ ├── config-mcp-math.yml │ │ │ ├── config-metadata.yml │ │ │ ├── config-patronus.yml │ │ │ ├── config-reasoning.yml │ │ │ ├── config-tracing.yml │ │ │ ├── config-tunable-rag-eval.yml │ │ │ ├── config-weave.yml │ │ │ ├── config.yml │ │ │ ├── demo_config.yml │ │ │ └── demo_config_mcp.yml │ │ │ ├── data │ │ │ ├── simple_calculator.json │ │ │ └── simple_calculator_questions.json │ │ │ └── register.py │ └── tests │ │ └── test_simple_calculator_workflow.py ├── simple_rag │ ├── README.md │ ├── configs │ │ ├── milvus_memory_rag_config.yml │ │ ├── milvus_memory_rag_tools_config.yml │ │ ├── milvus_rag_config.yml │ │ └── milvus_rag_tools_config.yml │ ├── deploy │ │ ├── docker-compose-utils.yaml │ │ └── docker-compose.yaml │ └── pyproject.toml └── swe_bench │ ├── README.md │ ├── configs │ ├── data │ ├── pyproject.toml │ ├── src │ └── aiq_swe_bench │ │ ├── __init__.py │ │ ├── config.py │ │ ├── configs │ │ ├── config_gold.yml │ │ └── config_skeleton.yml │ │ ├── data │ │ ├── dev_dataset_lite.json │ │ ├── golden_dataset.json │ │ ├── test_dataset_lite.json │ │ └── test_dataset_verified.json │ │ ├── predictors │ │ ├── __init__.py │ │ ├── predict_abc.py │ │ ├── predict_full │ │ │ ├── __init__.py │ │ │ ├── predict_full.py │ │ │ └── tools │ │ │ │ ├── __init__.py │ │ │ │ ├── ast_tool.py │ │ │ │ ├── git_tool.py │ │ │ │ └── register.py │ │ ├── predict_gold │ │ │ ├── __init__.py │ │ │ └── predict_gold_stub.py │ │ ├── predict_skeleton │ │ │ ├── __init__.py │ │ │ └── predict_skeleton.py │ │ ├── predictor_registry.py │ │ └── register.py │ │ ├── register.py │ │ ├── register_tools.py │ │ └── scripts │ │ └── swe_dataset_downloader.py │ └── tests │ └── test_swe_bench_eval.py ├── manifest.yaml ├── packages ├── aiqtoolkit_agno │ ├── pyproject.toml │ ├── src │ │ └── aiq │ │ │ ├── meta │ │ │ └── pypi.md │ │ │ └── plugins │ │ │ └── agno │ │ │ ├── __init__.py │ │ │ ├── llm.py │ │ │ ├── register.py │ │ │ ├── tool_wrapper.py │ │ │ └── tools │ │ │ ├── __init__.py │ │ │ ├── register.py │ │ │ └── serp_api_tool.py │ └── tests │ │ ├── test_llm.py │ │ ├── test_tool_wrapper.py │ │ └── tools │ │ └── test_serp_api_tool.py ├── aiqtoolkit_crewai │ ├── pyproject.toml │ └── src │ │ └── aiq │ │ ├── meta │ │ └── pypi.md │ │ └── plugins │ │ └── crewai │ │ ├── __init__.py │ │ ├── crewai_callback_handler.py │ │ ├── llm.py │ │ ├── register.py │ │ └── tool_wrapper.py ├── aiqtoolkit_langchain │ ├── pyproject.toml │ └── src │ │ └── aiq │ │ ├── meta │ │ └── pypi.md │ │ └── plugins │ │ └── langchain │ │ ├── __init__.py │ │ ├── embedder.py │ │ ├── llm.py │ │ ├── register.py │ │ ├── retriever.py │ │ ├── tool_wrapper.py │ │ └── tools │ │ ├── __init__.py │ │ ├── code_generation_tool.py │ │ ├── register.py │ │ ├── tavily_internet_search.py │ │ └── wikipedia_search.py ├── aiqtoolkit_llama_index │ ├── pyproject.toml │ └── src │ │ └── aiq │ │ ├── meta │ │ └── pypi.md │ │ └── plugins │ │ └── llama_index │ │ ├── __init__.py │ │ ├── llm.py │ │ ├── register.py │ │ └── tool_wrapper.py ├── aiqtoolkit_mem0ai │ ├── pyproject.toml │ ├── src │ │ └── aiq │ │ │ ├── meta │ │ │ └── pypi.md │ │ │ └── plugins │ │ │ └── mem0ai │ │ │ ├── __init__.py │ │ │ ├── mem0_editor.py │ │ │ ├── memory.py │ │ │ └── register.py │ └── tests │ │ └── test_mem0_editor.py ├── aiqtoolkit_semantic_kernel │ ├── pyproject.toml │ ├── src │ │ └── aiq │ │ │ ├── meta │ │ │ └── pypi.md │ │ │ └── plugins │ │ │ └── semantic_kernel │ │ │ ├── __init__.py │ │ │ ├── llm.py │ │ │ ├── register.py │ │ │ └── tool_wrapper.py │ └── tests │ │ └── test_sk_decorator.py ├── aiqtoolkit_test │ ├── pyproject.toml │ └── src │ │ └── aiq │ │ ├── meta │ │ └── pypi.md │ │ └── test │ │ ├── __init__.py │ │ ├── embedder.py │ │ ├── functions.py │ │ ├── memory.py │ │ ├── plugin.py │ │ └── register.py ├── aiqtoolkit_weave │ ├── pyproject.toml │ └── src │ │ └── aiq │ │ ├── meta │ │ └── pypi.md │ │ └── plugins │ │ └── weave │ │ ├── __init__.py │ │ ├── register.py │ │ └── weave_sdk.py ├── aiqtoolkit_zep_cloud │ ├── pyproject.toml │ └── src │ │ └── aiq │ │ ├── meta │ │ └── pypi.md │ │ └── plugins │ │ └── zep_cloud │ │ ├── __init__.py │ │ ├── memory.py │ │ ├── register.py │ │ └── zep_editor.py └── compat │ ├── agentiq │ ├── pypi.md │ └── pyproject.toml │ ├── agentiq_agno │ ├── pypi.md │ └── pyproject.toml │ ├── agentiq_crewai │ ├── pypi.md │ └── pyproject.toml │ ├── agentiq_langchain │ ├── pypi.md │ └── pyproject.toml │ ├── agentiq_llama_index │ ├── pypi.md │ └── pyproject.toml │ ├── agentiq_mem0ai │ ├── pypi.md │ └── pyproject.toml │ ├── agentiq_semantic_kernel │ ├── pypi.md │ └── pyproject.toml │ ├── agentiq_test │ ├── pypi.md │ └── pyproject.toml │ └── agentiq_zep_cloud │ ├── pypi.md │ └── pyproject.toml ├── pyproject.toml ├── scripts ├── bootstrap_milvus.sh ├── langchain_web_ingest.py ├── setup_datasets.py ├── sitemap_scraper.py └── web_utils.py ├── src └── aiq │ ├── agent │ ├── __init__.py │ ├── base.py │ ├── dual_node.py │ ├── react_agent │ │ ├── __init__.py │ │ ├── agent.py │ │ ├── output_parser.py │ │ ├── prompt.py │ │ └── register.py │ ├── reasoning_agent │ │ ├── __init__.py │ │ └── reasoning_agent.py │ ├── register.py │ ├── rewoo_agent │ │ ├── __init__.py │ │ ├── agent.py │ │ ├── prompt.py │ │ └── register.py │ └── tool_calling_agent │ │ ├── __init__.py │ │ ├── agent.py │ │ └── register.py │ ├── builder │ ├── __init__.py │ ├── builder.py │ ├── component_utils.py │ ├── context.py │ ├── embedder.py │ ├── eval_builder.py │ ├── evaluator.py │ ├── framework_enum.py │ ├── front_end.py │ ├── function.py │ ├── function_base.py │ ├── function_info.py │ ├── intermediate_step_manager.py │ ├── llm.py │ ├── retriever.py │ ├── user_interaction_manager.py │ ├── workflow.py │ └── workflow_builder.py │ ├── cli │ ├── __init__.py │ ├── cli_utils │ │ ├── __init__.py │ │ ├── config_override.py │ │ └── validation.py │ ├── commands │ │ ├── __init__.py │ │ ├── configure │ │ │ ├── __init__.py │ │ │ ├── channel │ │ │ │ ├── __init__.py │ │ │ │ ├── add.py │ │ │ │ ├── channel.py │ │ │ │ ├── remove.py │ │ │ │ └── update.py │ │ │ └── configure.py │ │ ├── evaluate.py │ │ ├── info │ │ │ ├── __init__.py │ │ │ ├── info.py │ │ │ ├── list_channels.py │ │ │ ├── list_components.py │ │ │ └── list_mcp.py │ │ ├── registry │ │ │ ├── __init__.py │ │ │ ├── publish.py │ │ │ ├── pull.py │ │ │ ├── registry.py │ │ │ ├── remove.py │ │ │ └── search.py │ │ ├── start.py │ │ ├── uninstall.py │ │ ├── validate.py │ │ └── workflow │ │ │ ├── __init__.py │ │ │ ├── templates │ │ │ ├── __init__.py.j2 │ │ │ ├── config.yml.j2 │ │ │ ├── pyproject.toml.j2 │ │ │ ├── register.py.j2 │ │ │ └── workflow.py.j2 │ │ │ ├── workflow.py │ │ │ └── workflow_commands.py │ ├── entrypoint.py │ ├── main.py │ ├── register_workflow.py │ └── type_registry.py │ ├── data_models │ ├── __init__.py │ ├── api_server.py │ ├── common.py │ ├── component.py │ ├── component_ref.py │ ├── config.py │ ├── dataset_handler.py │ ├── discovery_metadata.py │ ├── embedder.py │ ├── evaluate.py │ ├── evaluator.py │ ├── front_end.py │ ├── function.py │ ├── function_dependencies.py │ ├── interactive.py │ ├── intermediate_step.py │ ├── invocation_node.py │ ├── llm.py │ ├── logging.py │ ├── memory.py │ ├── profiler.py │ ├── registry_handler.py │ ├── retriever.py │ ├── step_adaptor.py │ ├── streaming.py │ ├── swe_bench_model.py │ └── telemetry_exporter.py │ ├── embedder │ ├── __init__.py │ ├── langchain_client.py │ ├── nim_embedder.py │ ├── openai_embedder.py │ └── register.py │ ├── eval │ ├── __init__.py │ ├── config.py │ ├── dataset_handler │ │ ├── __init__.py │ │ ├── dataset_downloader.py │ │ ├── dataset_filter.py │ │ └── dataset_handler.py │ ├── evaluate.py │ ├── evaluator │ │ ├── __init__.py │ │ ├── base_evaluator.py │ │ └── evaluator_model.py │ ├── intermediate_step_adapter.py │ ├── rag_evaluator │ │ ├── __init__.py │ │ ├── evaluate.py │ │ └── register.py │ ├── register.py │ ├── remote_workflow.py │ ├── runtime_event_subscriber.py │ ├── swe_bench_evaluator │ │ ├── __init__.py │ │ ├── evaluate.py │ │ └── register.py │ ├── trajectory_evaluator │ │ ├── __init__.py │ │ ├── evaluate.py │ │ └── register.py │ ├── tunable_rag_evaluator │ │ ├── __init__.py │ │ ├── evaluate.py │ │ └── register.py │ └── utils │ │ ├── __init__.py │ │ ├── output_uploader.py │ │ ├── tqdm_position_registry.py │ │ └── weave_eval.py │ ├── front_ends │ ├── __init__.py │ ├── console │ │ ├── __init__.py │ │ ├── console_front_end_config.py │ │ ├── console_front_end_plugin.py │ │ └── register.py │ ├── cron │ │ └── __init__.py │ ├── fastapi │ │ ├── __init__.py │ │ ├── fastapi_front_end_config.py │ │ ├── fastapi_front_end_plugin.py │ │ ├── fastapi_front_end_plugin_worker.py │ │ ├── intermediate_steps_subscriber.py │ │ ├── job_store.py │ │ ├── main.py │ │ ├── message_handler.py │ │ ├── message_validator.py │ │ ├── register.py │ │ ├── response_helpers.py │ │ ├── step_adaptor.py │ │ └── websocket.py │ ├── mcp │ │ ├── __init__.py │ │ ├── mcp_front_end_config.py │ │ ├── mcp_front_end_plugin.py │ │ ├── register.py │ │ └── tool_converter.py │ ├── register.py │ └── simple_base │ │ ├── __init__.py │ │ └── simple_front_end_plugin_base.py │ ├── llm │ ├── __init__.py │ ├── aws_bedrock_llm.py │ ├── nim_llm.py │ ├── openai_llm.py │ ├── register.py │ └── utils │ │ ├── __init__.py │ │ ├── env_config_value.py │ │ └── error.py │ ├── memory │ ├── __init__.py │ ├── interfaces.py │ └── models.py │ ├── meta │ ├── module_to_distro.json │ └── pypi.md │ ├── observability │ ├── __init__.py │ ├── async_otel_listener.py │ └── register.py │ ├── plugins │ └── .namespace │ ├── profiler │ ├── __init__.py │ ├── callbacks │ │ ├── __init__.py │ │ ├── agno_callback_handler.py │ │ ├── base_callback_class.py │ │ ├── langchain_callback_handler.py │ │ ├── llama_index_callback_handler.py │ │ ├── semantic_kernel_callback_handler.py │ │ └── token_usage_base_model.py │ ├── data_frame_row.py │ ├── decorators │ │ ├── __init__.py │ │ ├── framework_wrapper.py │ │ └── function_tracking.py │ ├── forecasting │ │ ├── __init__.py │ │ ├── config.py │ │ ├── model_trainer.py │ │ └── models │ │ │ ├── __init__.py │ │ │ ├── forecasting_base_model.py │ │ │ ├── linear_model.py │ │ │ └── random_forest_regressor.py │ ├── inference_metrics_model.py │ ├── inference_optimization │ │ ├── __init__.py │ │ ├── bottleneck_analysis │ │ │ ├── __init__.py │ │ │ ├── nested_stack_analysis.py │ │ │ └── simple_stack_analysis.py │ │ ├── data_models.py │ │ ├── experimental │ │ │ ├── __init__.py │ │ │ ├── concurrency_spike_analysis.py │ │ │ └── prefix_span_analysis.py │ │ ├── llm_metrics.py │ │ ├── prompt_caching.py │ │ ├── token_uniqueness.py │ │ └── workflow_runtimes.py │ ├── intermediate_property_adapter.py │ ├── profile_runner.py │ └── utils.py │ ├── registry_handlers │ ├── __init__.py │ ├── local │ │ ├── __init__.py │ │ ├── local_handler.py │ │ └── register_local.py │ ├── metadata_factory.py │ ├── package_utils.py │ ├── pypi │ │ ├── __init__.py │ │ ├── pypi_handler.py │ │ └── register_pypi.py │ ├── register.py │ ├── registry_handler_base.py │ ├── rest │ │ ├── __init__.py │ │ ├── register_rest.py │ │ └── rest_handler.py │ └── schemas │ │ ├── __init__.py │ │ ├── headers.py │ │ ├── package.py │ │ ├── publish.py │ │ ├── pull.py │ │ ├── remove.py │ │ ├── search.py │ │ └── status.py │ ├── retriever │ ├── __init__.py │ ├── interface.py │ ├── milvus │ │ ├── __init__.py │ │ ├── register.py │ │ └── retriever.py │ ├── models.py │ ├── nemo_retriever │ │ ├── __init__.py │ │ ├── register.py │ │ └── retriever.py │ └── register.py │ ├── runtime │ ├── __init__.py │ ├── loader.py │ ├── runner.py │ ├── session.py │ └── user_metadata.py │ ├── settings │ ├── __init__.py │ └── global_settings.py │ ├── test │ └── .namespace │ ├── tool │ ├── __init__.py │ ├── code_execution │ │ ├── __init__.py │ │ ├── code_sandbox.py │ │ ├── local_sandbox │ │ │ ├── Dockerfile.sandbox │ │ │ ├── __init__.py │ │ │ ├── local_sandbox_server.py │ │ │ ├── sandbox.requirements.txt │ │ │ └── start_local_sandbox.sh │ │ ├── register.py │ │ └── utils.py │ ├── datetime_tools.py │ ├── document_search.py │ ├── github_tools │ │ ├── __init__.py │ │ ├── create_github_commit.py │ │ ├── create_github_issue.py │ │ ├── create_github_pr.py │ │ ├── get_github_file.py │ │ ├── get_github_issue.py │ │ ├── get_github_pr.py │ │ └── update_github_issue.py │ ├── mcp │ │ ├── __init__.py │ │ ├── mcp_client.py │ │ └── mcp_tool.py │ ├── memory_tools │ │ ├── __init__.py │ │ ├── add_memory_tool.py │ │ ├── delete_memory_tool.py │ │ └── get_memory_tool.py │ ├── nvidia_rag.py │ ├── register.py │ ├── retriever.py │ └── server_tools.py │ └── utils │ ├── __init__.py │ ├── data_models │ ├── __init__.py │ └── schema_validator.py │ ├── debugging_utils.py │ ├── exception_handlers │ ├── __init__.py │ └── schemas.py │ ├── io │ ├── __init__.py │ └── yaml_tools.py │ ├── metadata_utils.py │ ├── optional_imports.py │ ├── producer_consumer_queue.py │ ├── reactive │ ├── __init__.py │ ├── base │ │ ├── __init__.py │ │ ├── observable_base.py │ │ ├── observer_base.py │ │ └── subject_base.py │ ├── observable.py │ ├── observer.py │ ├── subject.py │ └── subscription.py │ ├── settings │ ├── __init__.py │ └── global_settings.py │ ├── type_converter.py │ ├── type_utils.py │ └── url_utils.py ├── tests ├── _utils │ └── configs.py ├── aiq │ ├── agent │ │ ├── test_react.py │ │ ├── test_reasoning_agent.py │ │ ├── test_rewoo.py │ │ └── test_tool_calling.py │ ├── builder │ │ ├── test_builder.py │ │ ├── test_component_utils.py │ │ ├── test_function.py │ │ ├── test_function_info.py │ │ ├── test_interactive.py │ │ └── test_intermediate_step_manager.py │ ├── cli │ │ ├── cli_utils │ │ │ ├── test_config_override.py │ │ │ └── test_validation.py │ │ ├── commands │ │ │ ├── info │ │ │ │ └── test_list_mcp.py │ │ │ └── test_validate.py │ │ ├── test_register_workflow.py │ │ └── test_type_registry.py │ ├── data_models │ │ ├── test_common.py │ │ ├── test_component_ref.py │ │ └── test_config.py │ ├── eval │ │ ├── conftest.py │ │ ├── dataset_handler │ │ │ ├── test_dataset_filter.py │ │ │ └── test_dataset_handler.py │ │ ├── evaluator │ │ │ └── test_custom_evaluator.py │ │ ├── rag_evaluator │ │ │ └── test_rag_evaluate.py │ │ ├── test_evaluate.py │ │ ├── test_intermediate_step_adapter.py │ │ ├── test_remote_evaluate.py │ │ ├── trajectory_evaluator │ │ │ └── test_trajectory_evaluate.py │ │ ├── tunable_rag_evaluator │ │ │ └── test_tunable_rag_evaluate.py │ │ └── utils │ │ │ └── test_output_uploader.py │ ├── front_ends │ │ ├── fastapi │ │ │ ├── test_evaluate_endpoints.py │ │ │ ├── test_fastapi_front_end_config.py │ │ │ ├── test_fastapi_front_end_plugin.py │ │ │ └── test_step_adaptor.py │ │ └── mcp │ │ │ ├── test_main.py │ │ │ ├── test_mcp_front_end_config.py │ │ │ ├── test_mcp_front_end_plugin.py │ │ │ └── test_register.py │ ├── llm_providers │ │ ├── test_langchain_agents.py │ │ └── test_llama_index_agents.py │ ├── observability │ │ └── test_async_otel_listener.py │ ├── profiler │ │ ├── forecasting │ │ │ └── test_model_trainer.py │ │ ├── metrics │ │ │ ├── test_common_prefixes.py │ │ │ ├── test_concurrency_spike.py │ │ │ ├── test_llm_metrics.py │ │ │ ├── test_nested_bottleneck.py │ │ │ ├── test_prefix_span.py │ │ │ ├── test_simple_bottleneck.py │ │ │ └── test_token_uniqueness.py │ │ ├── test_callback_handler.py │ │ ├── test_function_tracking.py │ │ ├── test_producer_consumer_queue.py │ │ └── test_profiler.py │ ├── reactive │ │ ├── test_observable.py │ │ ├── test_observer.py │ │ ├── test_subject.py │ │ └── test_subscription.py │ ├── registry_handlers │ │ ├── test_local_handler.py │ │ ├── test_metadata_factory.py │ │ ├── test_package_utils.py │ │ ├── test_pypi_handler.py │ │ └── test_rest_handler.py │ ├── retriever │ │ ├── test_configs.py │ │ ├── test_models.py │ │ └── test_retrievers.py │ ├── server │ │ ├── config.yml │ │ └── test_unified_api_server.py │ ├── tools │ │ ├── test_code_execution.py │ │ ├── test_mcp.py │ │ └── test_retriever.py │ └── utils │ │ ├── test_converter.py │ │ ├── test_metadata_utils.py │ │ └── test_yaml_tools.py ├── conftest.py ├── test_conftest.py └── test_data │ ├── config.yaml │ ├── invalid_yaml.yaml │ ├── missing_section_config.yaml │ └── missing_type_config.yaml └── uv.lock /.cursor/rules/aiq-cli/general.mdc: -------------------------------------------------------------------------------- 1 | --- 2 | description: Follow these rules when the user's request involves AIQ CLI commands, operations, or functionality 3 | globs: 4 | alwaysApply: false 5 | --- 6 | # General Rules for AIQ CLI commands 7 | 8 | ## Referenced Documentation 9 | 10 | - **CLI Documentation**: [cli.md](mdc:docs/source/reference/cli.md) - Comprehensive AIQ CLI command reference and usage guide 11 | 12 | ## Rules 13 | 14 | - For requests related to AIQ CLI commands, provide detailed information using the relevant sections from the CLI documentation listed in the Referenced Documentation section above. Encourage users to review the documentation themselves for a deeper understanding. 15 | 16 | - If CLI commands do not function as expected, refer back to the CLI documentation in the Referenced Documentation section and update any discrepancies in ts, as the documentation may have been updated without corresponding changes to the rules. 17 | -------------------------------------------------------------------------------- /.devcontainer/bin/dev-start: -------------------------------------------------------------------------------- 1 | chainlit run python/app.py --watch --debug --root-path ${REPO_ROOT} 2 | -------------------------------------------------------------------------------- /.devcontainer/initialize-command.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-FileCopyrightText: Copyright (c) 2022-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | set -e 18 | 19 | # create a docker network for aiq if it does not exist 20 | docker network inspect aiq >/dev/null 2>&1 || docker network create aiq 21 | -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | # Ignore temporary folders 2 | **/.*/* 3 | 4 | # Ignore vscode folder 5 | .vscode/ 6 | 7 | # Ignore git objects 8 | .git/ 9 | .gitignore 10 | .gitlab-ci.yml 11 | .gitmodules 12 | 13 | # Ignore all Dockerfiles 14 | **/*Dockerfile* 15 | 16 | # Ignore temperory volumes 17 | **/volumes 18 | 19 | # creating a docker image 20 | .dockerignore 21 | 22 | # Ignore all .env files 23 | **/*.env 24 | 25 | # Ignore any virtual environment configuration files 26 | .venv/ 27 | env/ 28 | 29 | # Ignore python bytecode files 30 | *.pyc 31 | __pycache__/ 32 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | examples/plot_charts/src/plot_charts/data/** filter=lfs diff=lfs merge=lfs -text 2 | examples/simple_calculator/src/aiq_simple_calculator/data/** filter=lfs diff=lfs merge=lfs -text 3 | examples/simple/src/aiq_simple/data/** filter=lfs diff=lfs merge=lfs -text 4 | examples/swe_bench/src/aiq_swe_bench/data/** filter=lfs diff=lfs merge=lfs -text 5 | docs/source/_static/*.png filter=lfs diff=lfs merge=lfs -text 6 | examples/alert_triage_agent/src/aiq_alert_triage_agent/data/** filter=lfs diff=lfs merge=lfs -text 7 | -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | # Default Approval rule 2 | * @nvidia/aiqtoolkit-developers 3 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | blank_issues_enabled: true 17 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ## Description 2 | 3 | 4 | 5 | Closes 6 | 7 | ## By Submitting this PR I confirm: 8 | - I am familiar with the [Contributing Guidelines](https://github.com/NVIDIA/NeMo-Agent-Toolkit/blob/develop/docs/source/resources/contributing.md). 9 | - We require that all contributors "sign-off" on their commits. This certifies that the contribution is your original work, or you have rights to submit it under the same license, or a compatible license. 10 | - Any contribution which contains commits that are not Signed-Off will not be accepted. 11 | - When the PR is ready for review, new or existing tests cover these changes. 12 | - When the PR is ready for review, the documentation is up to date with these changes. 13 | -------------------------------------------------------------------------------- /.github/copy-pr-bot.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | # Configuration file for `copy-pr-bot` GitHub App 17 | # https://docs.gha-runners.nvidia.com/apps/copy-pr-bot/ 18 | 19 | enabled: true 20 | -------------------------------------------------------------------------------- /.github/ops-bot.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | # This file controls which features from the `ops-bot` repository below are enabled. 17 | # - https://github.com/rapidsai/ops-bot 18 | 19 | auto_merger: true 20 | branch_checker: true 21 | label_checker: true 22 | release_drafter: true 23 | forward_merger: false # Disabled for now, re-enable if needed 24 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "external/aiqtoolkit-opensource-ui"] 2 | path = external/aiqtoolkit-opensource-ui 3 | url = https://github.com/NVIDIA/NeMo-Agent-Toolkit-UI.git 4 | -------------------------------------------------------------------------------- /.tmp/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/.tmp/.gitkeep -------------------------------------------------------------------------------- /.vale.ini: -------------------------------------------------------------------------------- 1 | StylesPath = ci/vale/styles 2 | 3 | MinAlertLevel = error 4 | 5 | Vocab = aiq 6 | 7 | # Configs for markdown and reStructuredText files 8 | [*{.md,.rst}] 9 | 10 | BasedOnStyles = Vale 11 | 12 | # Lower these checks to just 'suggestion' level. 13 | 14 | # This check enforces usage of contractions (ex: "it is" -> "it's") lowering to suggestion to allow it 15 | Microsoft.Contractions = suggestion 16 | 17 | # This check disallows the use of "there is" and "there are" at the start of a sentence, I tried looking this up to 18 | # determine the reasoning behind the rule but could not find one. Lowering to suggestion to allow it 19 | write-good.ThereIs = suggestion 20 | 21 | # Allow writing dates in numeric form 02/10/2022 22 | Microsoft.DateOrder = suggestion 23 | 24 | # reStructuredText specific configs 25 | [*.rst] 26 | # Ignore template items inside of curly braces 27 | TokenIgnores = ({.*}) 28 | -------------------------------------------------------------------------------- /CODE-OF-CONDUCT.md: -------------------------------------------------------------------------------- 1 | 17 | 18 | This project has adopted the [Contributor Covenant Code of Conduct](https://docs.rapids.ai/resources/conduct/). -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | 17 | 18 | Refer to the [Contributing to AIQ toolkit](./docs/source/resources/contributing.md) guide. 19 | -------------------------------------------------------------------------------- /ci/markdown-link-check-config.json: -------------------------------------------------------------------------------- 1 | { 2 | "ignorePatterns": [ 3 | {"pattern": "^https?://localhost:.*$"}, 4 | {"pattern": "^https?://$"}, 5 | {"pattern": "^https://(platform\\.)?openai\\.com"}, 6 | { 7 | "pattern": "^https://code\\.visualstudio\\.com$" 8 | } 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /ci/release/pr_code_freeze_template.md: -------------------------------------------------------------------------------- 1 | 17 | 18 | ## :snowflake: Code freeze for `${SOURCE_BRANCH}` and `v${RELEASE_VERSION}` release 19 | 20 | ### What does this mean? 21 | Only critical/hotfix level issues should be merged into `${SOURCE_BRANCH}` until release (merging of this PR). 22 | 23 | ### What is the purpose of this PR? 24 | - Update documentation 25 | - Allow testing for the new release 26 | - Enable a means to merge `${SOURCE_BRANCH}` into `main` for the release 27 | -------------------------------------------------------------------------------- /ci/scripts/checks.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 4 | # SPDX-License-Identifier: Apache-2.0 5 | # 6 | # Licensed under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. 8 | # You may obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, 14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | # See the License for the specific language governing permissions and 16 | # limitations under the License. 17 | 18 | set -e 19 | SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" 20 | source ${SCRIPT_DIR}/common.sh 21 | 22 | set +e 23 | pre-commit run --all-files --show-diff-on-failure 24 | PRE_COMMIT_RETVAL=$? 25 | 26 | ${SCRIPT_DIR}/python_checks.sh 27 | PY_CHECKS_RETVAL=$? 28 | 29 | if [[ ${PRE_COMMIT_RETVAL} -ne 0 || ${PY_CHECKS_RETVAL} -ne 0 ]]; then 30 | echo ">>>> FAILED: checks" 31 | exit 1 32 | fi 33 | -------------------------------------------------------------------------------- /ci/scripts/documentation_checks.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | set +e 18 | 19 | # Intentionally excluding CHANGELOG.md as it immutable 20 | DOC_FILES=$(git ls-files "*.md" "*.rst" | grep -v -E '^(CHANGELOG|LICENSE)\.md$' | grep -v -E '^nv_internal/') 21 | 22 | vale ${DOC_FILES} 23 | RETVAL=$? 24 | exit $RETVAL 25 | -------------------------------------------------------------------------------- /ci/scripts/github/checks.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | set -e 18 | 19 | GITHUB_SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" 20 | 21 | source ${GITHUB_SCRIPT_DIR}/common.sh 22 | 23 | create_env group:dev group:docs extra:examples 24 | 25 | rapids-logger "Running checks" 26 | ${SCRIPT_DIR}/checks.sh 27 | 28 | rapids-logger "Checking copyright headers" 29 | python ${SCRIPT_DIR}/copyright.py --verify-apache-v2 30 | 31 | 32 | rapids-logger "Runing Documentation checks" 33 | ${SCRIPT_DIR}/documentation_checks.sh 34 | -------------------------------------------------------------------------------- /ci/scripts/github/docs.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | set -e 18 | 19 | GITHUB_SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" 20 | 21 | source ${GITHUB_SCRIPT_DIR}/common.sh 22 | 23 | rapids-logger "Installing non-pip deps" 24 | get_lfs_files 25 | 26 | create_env group:dev group:docs 27 | 28 | rapids-logger "Building documentation" 29 | pushd ${PROJECT_ROOT}/docs 30 | make html 31 | 32 | DOCS_TAR=${WORKSPACE_TMP}/docs.tar.bz2 33 | rapids-logger "Archiving documentation to ${DOCS_TAR}" 34 | tar cvfj ${DOCS_TAR} build/html 35 | popd 36 | 37 | rapids-logger "Documentation build completed" 38 | -------------------------------------------------------------------------------- /ci/scripts/gitlab/docs.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | set -e 18 | 19 | GITLAB_SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" 20 | 21 | source ${GITLAB_SCRIPT_DIR}/common.sh 22 | 23 | rapids-logger "Installing non-pip deps" 24 | apt update 25 | apt install --no-install-recommends -y make 26 | 27 | create_env group:dev group:docs 28 | 29 | rapids-logger "Building documentation" 30 | pushd ${CI_PROJECT_DIR}/docs 31 | make html 32 | popd 33 | -------------------------------------------------------------------------------- /ci/scripts/gitlab/tests.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | set -e 18 | 19 | GITLAB_SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" 20 | 21 | source ${GITLAB_SCRIPT_DIR}/common.sh 22 | 23 | create_env group:dev extra:all 24 | rapids-logger "Git Version: $(git describe)" 25 | 26 | rapids-logger "Running tests" 27 | set +e 28 | 29 | pytest --junit-xml=${CI_PROJECT_DIR}/report_pytest.xml \ 30 | --cov=aiq --cov-report term-missing \ 31 | --cov-report=xml:${CI_PROJECT_DIR}/report_pytest_coverage.xml 32 | PYTEST_RESULTS=$? 33 | 34 | exit ${PYTEST_RESULTS} 35 | -------------------------------------------------------------------------------- /ci/vale/styles/config/vocabularies/aiq/reject.txt: -------------------------------------------------------------------------------- 1 | # List of regular expressions matching words we want to reject. Even though we don't have any words listed this 2 | # file needs to exitst in order for vale to pick up our accept.txt file 3 | # Regular expressions are parsed according to the Go syntax: https://golang.org/pkg/regexp/syntax/ 4 | (?i)Agent-IQ 5 | (?i)AgentIQ 6 | (?i)A-IQ 7 | (?i)AI-Q 8 | (?i)TODO 9 | -------------------------------------------------------------------------------- /docs/Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line. 5 | SPHINXOPTS = -j 4 --show-traceback -W 6 | SPHINXBUILD ?= sphinx-build 7 | SOURCEDIR = source 8 | BUILDDIR = build 9 | 10 | # By default clean and build the html documentation 11 | # Not cleaning doesn't save any time, and can lead to stale files 12 | default: clean linkcheck html 13 | 14 | # Put it first so that "make" without argument is like "make help". 15 | help: 16 | @$(SPHINXBUILD) -M help -v "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 17 | 18 | clean: 19 | rm -rf $(BUILDDIR) 20 | 21 | .PHONY: help Makefile 22 | 23 | linkcheck: 24 | @$(SPHINXBUILD) -b linkcheck "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 25 | 26 | html: Makefile 27 | @$(SPHINXBUILD) -M html "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 28 | -------------------------------------------------------------------------------- /docs/source/_static/agent_with_reasoning_wrapper.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:729af3f355f6ed31cac081e7ef33eb9b4931a8cad9f4682717d802468c23e677 3 | size 330830 4 | -------------------------------------------------------------------------------- /docs/source/_static/agent_without_reasoning_wrapper.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a7665f22bdcd275e456be8fad1de713da7011ff5a21170fe55dd72f0d363e7de 3 | size 225464 4 | -------------------------------------------------------------------------------- /docs/source/_static/aiq_multi_frameworks_agentic_schema.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:4565a6d53b62b03bb5885421dbe7bb0e8b14879ea2e8b22977ec546f7ccaed5b 3 | size 52167 4 | -------------------------------------------------------------------------------- /docs/source/_static/aiqtoolkit_banner.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:98e27002e89080c1b13b8b86f7bfde484a4b5d2e04dfc8d75c6dd194a48953e9 3 | size 829560 4 | -------------------------------------------------------------------------------- /docs/source/_static/aiqtoolkit_gitdiagram.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:126ddf715b21e3e934188be792c6f2f1b2e24f1b2a05ac330f297a01ae7a6c2b 3 | size 736819 4 | -------------------------------------------------------------------------------- /docs/source/_static/config_to_workflow.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e4fd1458026a0660d7609300cf607e3b7b1af14288508876f97209f757610cbd 3 | size 459579 4 | -------------------------------------------------------------------------------- /docs/source/_static/cursor_rules_demo/add_tool.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/docs/source/_static/cursor_rules_demo/add_tool.gif -------------------------------------------------------------------------------- /docs/source/_static/cursor_rules_demo/create_workflow.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/docs/source/_static/cursor_rules_demo/create_workflow.gif -------------------------------------------------------------------------------- /docs/source/_static/cursor_rules_demo/find_tool.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/docs/source/_static/cursor_rules_demo/find_tool.gif -------------------------------------------------------------------------------- /docs/source/_static/cursor_rules_demo/install.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/docs/source/_static/cursor_rules_demo/install.gif -------------------------------------------------------------------------------- /docs/source/_static/cursor_rules_demo/react_agent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/docs/source/_static/cursor_rules_demo/react_agent.gif -------------------------------------------------------------------------------- /docs/source/_static/cursor_rules_demo/run_workflow.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/docs/source/_static/cursor_rules_demo/run_workflow.gif -------------------------------------------------------------------------------- /docs/source/_static/hitl_prompt.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:027c9f8bf35801ef8866b2dea7febe3290047fcfb5f13fdc6f84882ad7296837 3 | size 22480 4 | -------------------------------------------------------------------------------- /docs/source/_static/hitl_result.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8f14db1a818c939eb923eaafcd8d7838f29bc429fee97460a33c0897a9a3eb52 3 | size 295837 4 | -------------------------------------------------------------------------------- /docs/source/_static/hitl_settings.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ec20dc02fe06673ef4dbcf0bf61f3121196b409374465cb733f178cb6b64d9ae 3 | size 81597 4 | -------------------------------------------------------------------------------- /docs/source/_static/llama3_70b_gantt_chart.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:cfbd093a7eefdbdc3bcbc9802178b27d8bdde333f4f00588bb86ec609bb4ef8e 3 | size 118430 4 | -------------------------------------------------------------------------------- /docs/source/_static/main_nv_logo_square.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:99cd3d358ff5cc186ad406caebc90b00547fbe6dd0049890df28df4285f49f15 3 | size 11074 4 | -------------------------------------------------------------------------------- /docs/source/_static/mixtral_gantt_chart.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:632e14ff525cf4189005ef5bd995d9d09f6794049e2075e2193863e3218dbf4b 3 | size 197773 4 | -------------------------------------------------------------------------------- /docs/source/_static/observability.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:eace90fdaa9e03cb7a61637d0fc163d376b3c81231d42747552710f74c6285ea 3 | size 823919 4 | -------------------------------------------------------------------------------- /docs/source/_static/profiler-agent.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3b7d8287adedc290aa47e97b0ca0674b9c28fc9d4362b2a768a4b11412cdc289 3 | size 123175 4 | -------------------------------------------------------------------------------- /docs/source/_static/profiler_ragas_metrics.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:fa0ebf0332d0d567c19d2e47306d0bb4ce2f23a8e00fd274306010796ce1b22c 3 | size 160661 4 | -------------------------------------------------------------------------------- /docs/source/_static/profiler_runtimes.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b00b19211676bf7e72b18ed859730821e77991f792a8c2524ce586f92f9e666b 3 | size 212603 4 | -------------------------------------------------------------------------------- /docs/source/_static/profiler_token_efficiency.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:123732efbc6974a301300d1fb1331bba1079e0aa9d5c637a37c0d3b14a3e3957 3 | size 257202 4 | -------------------------------------------------------------------------------- /docs/source/_static/profiler_token_scatter.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:166b7d0fa9ffc4fc9bb7bb05d4947da2a8e368093806dd4c8218aae836eb7340 3 | size 209081 4 | -------------------------------------------------------------------------------- /docs/source/_static/running_workflows.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d2467756817cf70974b72d1ca2f9bfe151eb5daf8f25d5b7df8c45f2fc31a272 3 | size 111697 4 | -------------------------------------------------------------------------------- /docs/source/_static/ui_generate_example.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:defefe003ff65c61e25f81b34aa66b01e8182e864d88bf71a9f503d2d97449ab 3 | size 174729 4 | -------------------------------------------------------------------------------- /docs/source/_static/ui_generate_example_settings.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a7ce9ea28bb4cc3a07f9d1d38af91ae4a6bd1be0dfd20750fdbe92acbe02cbe4 3 | size 80963 4 | -------------------------------------------------------------------------------- /docs/source/_static/ui_generate_websocket_example.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:70c730bd0209eda5e9e19e1918b13b325e8fcc702f3bd95b6f110ce6b50cc8bf 3 | size 774334 4 | -------------------------------------------------------------------------------- /docs/source/_static/ui_home_page.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1a60b50e85ce7cf2c7d383012725cd713337cfa4b61d6b951ef1f155cd2a78b1 3 | size 378874 4 | -------------------------------------------------------------------------------- /docs/source/_static/weave_tracing.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ba6bd321b017702237f4b8f9d8e9ee1e190f6ec877c45062fa54ca8d98c2d1e4 3 | size 496021 4 | -------------------------------------------------------------------------------- /docs/source/quick-start/index.md: -------------------------------------------------------------------------------- 1 | 17 | 18 | # NVIDIA Agent Intelligence Toolkit Quick Start Guide 19 | 20 | ```{toctree} 21 | :hidden: 22 | :caption: Quick Start Guide 23 | 24 | Installing Agent Intelligence Toolkit <./installing.md> 25 | Launching the API Server and UI <./launching-ui.md> 26 | ``` 27 | -------------------------------------------------------------------------------- /docs/source/resources/code-of-conduct.md: -------------------------------------------------------------------------------- 1 | 17 | 18 | # NVIDIA Agent Intelligence Toolkit Code of Conduct 19 | This project has adopted the [Contributor Covenant Code of Conduct](https://docs.rapids.ai/resources/conduct/). 20 | -------------------------------------------------------------------------------- /docs/source/support.md: -------------------------------------------------------------------------------- 1 | 17 | 18 | # Support 19 | 20 | * Refer to the [Known Issues](./release-notes.md#known-issues) section of the release notes for known issues and workarounds. 21 | * Refer to our [Troubleshooting](./troubleshooting.md) guide for common issues and their solutions. 22 | * Check the [open issues](https://github.com/NVIDIA/NeMo-Agent-Toolkit/issues) on GitHub to see if your issue has already been reported. 23 | * If you have a question or need help, please file an [issue](https://github.com/NVIDIA/NeMo-Agent-Toolkit/issues/new/choose). 24 | -------------------------------------------------------------------------------- /docs/source/tutorials/index.md: -------------------------------------------------------------------------------- 1 | 17 | 18 | # NVIDIA Agent Intelligence Toolkit Tutorials 19 | 20 | ```{toctree} 21 | :caption: Tutorials 22 | 23 | ./customize-a-workflow.md 24 | ./add-tools-to-a-workflow.md 25 | ./create-a-new-workflow.md 26 | ./build-a-demo-agent-workflow-using-cursor-rules.md 27 | ``` 28 | -------------------------------------------------------------------------------- /docs/source/workflows/mcp/index.md: -------------------------------------------------------------------------------- 1 | 17 | 18 | # Model Context Protocol (MCP) 19 | 20 | AIQ toolkit [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) integration includes: 21 | * An [MCP client](./mcp-client.md) to connect to and use tools served by remote MCP servers. 22 | * An [MCP server](./mcp-server.md) to publish tools using MCP to be used by any MCP client. 23 | 24 | 25 | ```{toctree} 26 | :caption: MCP 27 | 28 | Connecting to Remote Tools <./mcp-client.md> 29 | Serving AIQ Functions <./mcp-server.md> 30 | ``` 31 | -------------------------------------------------------------------------------- /examples/agents/data/rewoo.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": 1, 4 | "question": 5 | "Which city held the Olympic game in the year represented by the bigger number of 1996 and 2004?", 6 | "answer": 7 | "athens" 8 | }, 9 | { 10 | "id": 2, 11 | "question": "Which U.S. historical event occurred in the year obtained by multiplying 48 and 37?", 12 | "answer": "declaration of independence" 13 | }, 14 | { 15 | "id": 3, 16 | "question": "Which country hosted the FIFA World Cup in the year obtained by dividing 6054 by 3?", 17 | "answer": "russia" 18 | }, 19 | { 20 | "id": 4, 21 | "question": "Which renowned physicist was born in the year resulting from subtracting 21 from 1900?", 22 | "answer": "albert einstein" 23 | }, 24 | { 25 | "id": 5, 26 | "question": 27 | "Which city hosted the Summer Olympics in the year obtained by subtracting 4 from the larger number between 2008 and 2012?", 28 | "answer": "beijing" 29 | } 30 | ] 31 | -------------------------------------------------------------------------------- /examples/agents/data/wikipedia.csv: -------------------------------------------------------------------------------- 1 | id,question,answer 2 | 1,What are LLMs?,"""LLMs stand for Large Language Models, which are a type of machine learning model designed for natural language processing tasks such as language generation. They are trained with self-supervised learning on a vast amount of text and can acquire predictive power regarding syntax, semantics, and ontologies inherent in human language corpora.""" 3 | 2,who was Djikstra?,"""Djikstra was a Dutch computer scientist, programmer, software engineer, mathematician, and science essayist. He is best known for his work on the shortest path problem and his development of Dijkstra's algorithm, which is used to find the shortest path between nodes in a weighted graph.""" 4 | 3,what is the goldilocks zone?,"""The Goldilocks zone, also known as the habitable zone, is the region around a star where temperatures are just right for liquid water to exist on a planet's surface. It is called the Goldilocks zone because it is neither too hot nor too cold, but just right, much like the porridge in the children's story \""Goldilocks and the Three Bears\"".""" -------------------------------------------------------------------------------- /examples/agents/data/wikipedia.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "Adelanto", 4 | "question": "What are LLMs", 5 | "answer": "LLMs stand for Large Language Models, which are a type of machine learning model designed for natural language processing tasks such as language generation. They are trained with self-supervised learning on a vast amount of text and can acquire predictive power regarding syntax, semantics, and ontologies inherent in human language corpora." 6 | }, 7 | { 8 | "id": "Agoura Hills", 9 | "question": "who was Djikstra?", 10 | "answer": "Djikstra was a Dutch computer scientist, programmer, software engineer, mathematician, and science essayist. He is best known for his work on the shortest path problem and his development of Dijkstra's algorithm, which is used to find the shortest path between nodes in a weighted graph." 11 | }, 12 | { 13 | "id": "Alameda", 14 | "question": "what is the goldilocks zone?", 15 | "answer": "The Goldilocks zone, also known as the habitable zone, is the region around a star where temperatures are just right for liquid water to exist on a planet's surface. It is called the Goldilocks zone because it is neither too hot nor too cold, but just right, much like the porridge in the children's story \"Goldilocks and the Three Bears\"." 16 | } 17 | ] 18 | -------------------------------------------------------------------------------- /examples/agents/data/wikipedia.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/examples/agents/data/wikipedia.xlsx -------------------------------------------------------------------------------- /examples/agno_personal_finance/.dockerignore: -------------------------------------------------------------------------------- 1 | .git 2 | __pycache__ 3 | *.pyc 4 | *.pyo 5 | .DS_Store 6 | -------------------------------------------------------------------------------- /examples/agno_personal_finance/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | build-backend = "setuptools.build_meta" 3 | requires = ["setuptools >= 64", "setuptools-scm>=8"] 4 | 5 | [tool.setuptools_scm] 6 | root = "../.." 7 | 8 | [project] 9 | name = "aiq_agno_personal_finance" 10 | dynamic = ["version"] 11 | dependencies = [ 12 | "aiqtoolkit[agno]~=1.2", 13 | "openai~=1.66", 14 | "litellm~=1.63.14" 15 | ] 16 | requires-python = ">=3.11,<3.13" 17 | description = "Custom AIQ toolkit Workflow using Agno for personal finance" 18 | classifiers = ["Programming Language :: Python"] 19 | 20 | [tool.uv.sources] 21 | aiqtoolkit = { path = "../..", editable = true } 22 | 23 | [project.entry-points.'aiq.components'] 24 | aiq_agno_personal_finance = "aiq_agno_personal_finance.register" 25 | -------------------------------------------------------------------------------- /examples/agno_personal_finance/src/aiq_agno_personal_finance/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/examples/agno_personal_finance/src/aiq_agno_personal_finance/__init__.py -------------------------------------------------------------------------------- /examples/agno_personal_finance/src/aiq_agno_personal_finance/register.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | # pylint: disable=unused-import 17 | # flake8: noqa 18 | 19 | # Import any tools which need to be automatically registered here 20 | from . import agno_personal_finance_function -------------------------------------------------------------------------------- /examples/alert_triage_agent/configs: -------------------------------------------------------------------------------- 1 | src/aiq_alert_triage_agent/configs -------------------------------------------------------------------------------- /examples/alert_triage_agent/data: -------------------------------------------------------------------------------- 1 | src/aiq_alert_triage_agent/data -------------------------------------------------------------------------------- /examples/alert_triage_agent/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | build-backend = "setuptools.build_meta" 3 | requires = ["setuptools >= 64", "setuptools-scm>=8"] 4 | 5 | [tool.setuptools_scm] 6 | root = "../.." 7 | 8 | [project] 9 | name = "aiq_alert_triage_agent" 10 | dynamic = ["version"] 11 | dependencies = [ 12 | "aiqtoolkit[langchain]~=1.2", 13 | "langchain-core", # version determined by aiqtoolkit[langchain] 14 | "pandas>=2.0.0", 15 | "ansible-runner>=2.3.0", 16 | "langgraph>=0.0.10", # version determined by aiqtoolkit[langchain] 17 | "flask>=3.0.0" 18 | ] 19 | requires-python = ">=3.11,<3.13" 20 | description = "Alert Triage AIQ toolkit example" 21 | classifiers = ["Programming Language :: Python"] 22 | 23 | [tool.uv.sources] 24 | aiqtoolkit = { path = "../..", editable = true } 25 | 26 | [project.entry-points.'aiq.components'] 27 | aiq_alert_triage_agent = "aiq_alert_triage_agent.register" 28 | -------------------------------------------------------------------------------- /examples/alert_triage_agent/src/aiq_alert_triage_agent/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/examples/alert_triage_agent/src/aiq_alert_triage_agent/__init__.py -------------------------------------------------------------------------------- /examples/alert_triage_agent/src/aiq_alert_triage_agent/data/ata_diagram.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:87968174745b66440bcefd071d7c65109028e1f1a492a3007a7a56b99dbdc0f8 3 | size 492253 4 | -------------------------------------------------------------------------------- /examples/alert_triage_agent/src/aiq_alert_triage_agent/data/benign_fallback_offline_data.json: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3b56e271feef1025cc6e6282fdbc027a2190b46ea92098ed9d32a4d890ddfba1 3 | size 28911 4 | -------------------------------------------------------------------------------- /examples/alert_triage_agent/src/aiq_alert_triage_agent/data/maintenance_static_dataset.csv: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:84046bfde49f36d51d0e181bf37a1edca7f7d39422ec571b8e088996c14aff2c 3 | size 245 4 | -------------------------------------------------------------------------------- /examples/alert_triage_agent/src/aiq_alert_triage_agent/data/offline_data.csv: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:fb5b9d35bad1ba88bb397762a9b39055be52edd6da0520f02e93b0eecefb834d 3 | size 95542 4 | -------------------------------------------------------------------------------- /examples/alert_triage_agent/src/aiq_alert_triage_agent/data/offline_data.json: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:4c6fe991cadb94ccb50aa506e788dfdc89990b1a15bd88f7e5b9bbb0a3688feb 3 | size 4356 4 | -------------------------------------------------------------------------------- /examples/automated_description_generation/configs: -------------------------------------------------------------------------------- 1 | src/aiq_automated_description_generation/configs -------------------------------------------------------------------------------- /examples/automated_description_generation/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | build-backend = "setuptools.build_meta" 3 | requires = ["setuptools >= 64", "setuptools-scm>=8"] 4 | 5 | [tool.setuptools_scm] 6 | root = "../.." 7 | 8 | [project] 9 | name = "aiq_automated_description_generation" 10 | dynamic = ["version"] 11 | dependencies = [ 12 | "aiqtoolkit[ingestion, langchain]~=1.2" 13 | ] 14 | requires-python = ">=3.11,<3.13" 15 | description = "Automated Generation Description AI-Q example" 16 | keywords = ["ai", "rag", "agents"] 17 | classifiers = ["Programming Language :: Python"] 18 | 19 | [tool.uv.sources] 20 | aiqtoolkit = { path = "../../", editable = true } 21 | 22 | [project.entry-points.'aiq.components'] 23 | aiq_automated_description_generation = "aiq_automated_description_generation.register" 24 | -------------------------------------------------------------------------------- /examples/automated_description_generation/src/aiq_automated_description_generation/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/examples/automated_description_generation/src/aiq_automated_description_generation/__init__.py -------------------------------------------------------------------------------- /examples/automated_description_generation/src/aiq_automated_description_generation/utils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/examples/automated_description_generation/src/aiq_automated_description_generation/utils/__init__.py -------------------------------------------------------------------------------- /examples/documentation_guides/README.md: -------------------------------------------------------------------------------- 1 | 17 | 18 | # Documentation Examples 19 | 20 | This directory contains the code for examples used in documentation guides which are located under the `docs/source` directory. 21 | -------------------------------------------------------------------------------- /examples/documentation_guides/workflows/text_file_ingest/configs: -------------------------------------------------------------------------------- 1 | src/text_file_ingest/configs -------------------------------------------------------------------------------- /examples/documentation_guides/workflows/text_file_ingest/data: -------------------------------------------------------------------------------- 1 | src/text_file_ingest/data/ -------------------------------------------------------------------------------- /examples/documentation_guides/workflows/text_file_ingest/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | build-backend = "setuptools.build_meta" 3 | requires = ["setuptools >= 64"] 4 | 5 | [project] 6 | name = "text_file_ingest" 7 | version = "0.1.0" 8 | dependencies = [ 9 | "aiqtoolkit[langchain]~=1.2", 10 | "bs4==0.0.2", 11 | "faiss-cpu==1.9.0", 12 | ] 13 | requires-python = ">=3.11,<3.13" 14 | description = "Ingest data from text files" 15 | keywords = ["ai", "rag", "agents"] 16 | classifiers = ["Programming Language :: Python"] 17 | 18 | [tool.uv.sources] 19 | aiqtoolkit = { path = "../../../../", editable = true } 20 | 21 | [project.entry-points.'aiq.components'] 22 | text_file_ingest = "text_file_ingest.register" 23 | -------------------------------------------------------------------------------- /examples/documentation_guides/workflows/text_file_ingest/src/text_file_ingest/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/examples/documentation_guides/workflows/text_file_ingest/src/text_file_ingest/__init__.py -------------------------------------------------------------------------------- /examples/documentation_guides/workflows/text_file_ingest/src/text_file_ingest/register.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | # pylint: disable=unused-import 17 | # flake8: noqa 18 | 19 | # Import any tools which need to be automatically registered here 20 | from text_file_ingest import text_file_ingest_function 21 | -------------------------------------------------------------------------------- /examples/email_phishing_analyzer/.dockerignore: -------------------------------------------------------------------------------- 1 | .git 2 | __pycache__ 3 | *.pyc 4 | *.pyo 5 | .DS_Store 6 | -------------------------------------------------------------------------------- /examples/email_phishing_analyzer/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | build-backend = "setuptools.build_meta" 3 | requires = ["setuptools >= 64", "setuptools-scm>=8"] 4 | 5 | [tool.setuptools_scm] 6 | root = "../.." 7 | 8 | [project] 9 | name = "aiq_email_phishing_analyzer" 10 | dynamic = ["version"] 11 | dependencies = [ 12 | "aiqtoolkit[langchain]~=1.2", 13 | "arize-phoenix==6.1.*", 14 | "bs4==0.0.2", 15 | "networkx~=3.4", 16 | "openinference-instrumentation-langchain==0.1.29", 17 | ] 18 | requires-python = ">=3.11,<3.13" 19 | description = "Simple Phishing Email Analyzer AIQ toolkit example" 20 | keywords = ["ai", "rag", "agents"] 21 | classifiers = ["Programming Language :: Python"] 22 | 23 | [tool.uv.sources] 24 | aiqtoolkit = { path = "../../", editable = true } 25 | 26 | [project.entry-points.'aiq.components'] 27 | aiq_email_phishing_analyzer = "aiq_email_phishing_analyzer.register" 28 | -------------------------------------------------------------------------------- /examples/email_phishing_analyzer/src/aiq_email_phishing_analyzer/__init__.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /examples/multi_frameworks/configs: -------------------------------------------------------------------------------- 1 | src/aiq_multi_frameworks/configs -------------------------------------------------------------------------------- /examples/multi_frameworks/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | build-backend = "setuptools.build_meta" 3 | requires = ["setuptools >= 64", "setuptools-scm>=8"] 4 | 5 | [tool.setuptools_scm] 6 | root = "../.." 7 | 8 | [project] 9 | name = "aiq_multi_frameworks" 10 | dynamic = ["version"] 11 | dependencies = [ 12 | "aiqtoolkit[langchain,llama-index]~=1.2", 13 | "arxiv~=2.1.3", 14 | "bs4==0.0.2", 15 | "markdown-it-py~=3.0", 16 | "nvidia-haystack==0.1.2", 17 | ] 18 | requires-python = ">=3.11,<3.13" 19 | description = "Custom AIQ toolkit Workflow" 20 | classifiers = ["Programming Language :: Python"] 21 | 22 | [tool.uv.sources] 23 | aiqtoolkit = { path = "../../", editable = true } 24 | 25 | [project.entry-points.'aiq.components'] 26 | aiq_multi_frameworks = "aiq_multi_frameworks.register" 27 | -------------------------------------------------------------------------------- /examples/multi_frameworks/src/aiq_multi_frameworks/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/examples/multi_frameworks/src/aiq_multi_frameworks/__init__.py -------------------------------------------------------------------------------- /examples/plot_charts/configs: -------------------------------------------------------------------------------- 1 | src/aiq_plot_charts/configs -------------------------------------------------------------------------------- /examples/plot_charts/data: -------------------------------------------------------------------------------- 1 | src/aiq_plot_charts/data -------------------------------------------------------------------------------- /examples/plot_charts/example_data.json: -------------------------------------------------------------------------------- 1 | { 2 | "xValues": [ 3 | "2020", 4 | "2021", 5 | "2022", 6 | "2023", 7 | "2024" 8 | ], 9 | "yValues": [ 10 | { 11 | "data": [ 12 | 2, 13 | 5, 14 | 2.2, 15 | 7.5, 16 | 3 17 | ], 18 | "label": "USA" 19 | }, 20 | { 21 | "data": [ 22 | 2, 23 | 5.5, 24 | 2, 25 | 8.5, 26 | 1.5 27 | ], 28 | "label": "EMEA" 29 | } 30 | ] 31 | } 32 | -------------------------------------------------------------------------------- /examples/plot_charts/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | build-backend = "setuptools.build_meta" 3 | requires = ["setuptools >= 64", "setuptools-scm>=8"] 4 | 5 | [tool.setuptools_scm] 6 | root = "../.." 7 | 8 | [project] 9 | name = "aiq_plot_charts" 10 | dynamic = ["version"] 11 | dependencies = [ 12 | "aiqtoolkit[langchain]~=1.2", 13 | "matplotlib==3.9.*", 14 | "seaborn==0.13.*", 15 | ] 16 | requires-python = ">=3.11,<3.13" 17 | description = "Simple Plot Chart Agent example" 18 | keywords = ["ai", "rag", "agents"] 19 | classifiers = ["Programming Language :: Python"] 20 | 21 | [tool.uv.sources] 22 | aiqtoolkit = { path = "../../", editable = true } 23 | 24 | [project.entry-points.'aiq.components'] 25 | aiq_plot_charts = "aiq_plot_charts.register" 26 | -------------------------------------------------------------------------------- /examples/plot_charts/src/aiq_plot_charts/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/examples/plot_charts/src/aiq_plot_charts/__init__.py -------------------------------------------------------------------------------- /examples/plot_charts/src/aiq_plot_charts/configs/config.yml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | 17 | general: 18 | use_uvloop: true 19 | 20 | 21 | functions: {} 22 | 23 | llms: 24 | nim_llm: 25 | _type: nim 26 | model_name: meta/llama-3.1-70b-instruct 27 | temperature: 0.0 28 | 29 | workflow: 30 | _type: plot_charts 31 | llm_name: nim_llm 32 | -------------------------------------------------------------------------------- /examples/por_to_jiratickets/configs: -------------------------------------------------------------------------------- 1 | src/aiq_por_to_jiratickets/configs -------------------------------------------------------------------------------- /examples/por_to_jiratickets/data: -------------------------------------------------------------------------------- 1 | src/aiq_por_to_jiratickets/data -------------------------------------------------------------------------------- /examples/por_to_jiratickets/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | build-backend = "setuptools.build_meta" 3 | requires = ["setuptools >= 64", "setuptools-scm>=8"] 4 | 5 | [tool.setuptools_scm] 6 | root = "../.." 7 | 8 | [project] 9 | name = "aiq_por_to_jiratickets" 10 | dynamic = ["version"] 11 | dependencies = [ 12 | "aiqtoolkit[langchain]~=1.2", 13 | ] 14 | requires-python = ">=3.10" 15 | description = "Custom AIQ toolkit Workflow" 16 | classifiers = ["Programming Language :: Python"] 17 | 18 | [tool.uv.sources] 19 | aiqtoolkit = { path = "../../", editable = true } 20 | 21 | [project.entry-points.'aiq.components'] 22 | aiq_por_to_jiratickets = "aiq_por_to_jiratickets.register" 23 | -------------------------------------------------------------------------------- /examples/por_to_jiratickets/src/aiq_por_to_jiratickets/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/examples/por_to_jiratickets/src/aiq_por_to_jiratickets/__init__.py -------------------------------------------------------------------------------- /examples/por_to_jiratickets/src/aiq_por_to_jiratickets/register.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | # pylint: disable=unused-import 17 | # flake8: noqa 18 | 19 | # Import any tools which need to be automatically registered here 20 | from . import extract_por_tool 21 | from . import jira_tickets_tool 22 | -------------------------------------------------------------------------------- /examples/profiler_agent/configs: -------------------------------------------------------------------------------- 1 | src/aiq_profiler_agent/configs/ -------------------------------------------------------------------------------- /examples/profiler_agent/src/aiq_profiler_agent/__init__.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /examples/profiler_agent/src/aiq_profiler_agent/tool/__init__.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | from .flow_chart import FlowChartConfig, flow_chart 17 | from .px_query import PxQueryConfig, px_query 18 | from .response_composer import ResponseComposerConfig, response_composer 19 | from .token_usage import TokenUsageConfig, token_usage 20 | 21 | __all__ = [ 22 | "PxQueryConfig", 23 | "px_query", 24 | "FlowChartConfig", 25 | "flow_chart", 26 | "ResponseComposerConfig", 27 | "response_composer", 28 | "TokenUsageConfig", 29 | "token_usage", 30 | ] 31 | -------------------------------------------------------------------------------- /examples/semantic_kernel_demo/configs: -------------------------------------------------------------------------------- 1 | ./src/aiq_semantic_kernel_demo/configs/ -------------------------------------------------------------------------------- /examples/semantic_kernel_demo/data/hotel_prices.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name": "Budget Inn", "price_per_night": 75 4 | }, 5 | { 6 | "name": "Midrange Suites", "price_per_night": 120 7 | }, 8 | { 9 | "name": "Luxury Penthouse", "price_per_night": 250 10 | }, 11 | { 12 | "name": "Boutique Hotel", "price_per_night": 180 13 | } 14 | ] -------------------------------------------------------------------------------- /examples/semantic_kernel_demo/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | build-backend = "setuptools.build_meta" 3 | requires = ["setuptools >= 64", "setuptools-scm>=8"] 4 | 5 | [tool.setuptools_scm] 6 | root = "../.." 7 | 8 | [project] 9 | name = "aiq_semantic_kernel_demo" 10 | dynamic = ["version"] 11 | dependencies = [ 12 | "aiqtoolkit[langchain,semantic-kernel]~=1.2", 13 | "faiss-cpu==1.9.0", 14 | ] 15 | requires-python = ">=3.11,<3.13" 16 | description = "Semantic Kernel Example" 17 | keywords = ["ai", "rag", "agents"] 18 | classifiers = ["Programming Language :: Python"] 19 | 20 | [tool.uv.sources] 21 | aiqtoolkit = { path = "../../", editable = true } 22 | 23 | [project.entry-points.'aiq.components'] 24 | aiq_semantic_kernel_demo = "aiq_semantic_kernel_demo.register" 25 | -------------------------------------------------------------------------------- /examples/semantic_kernel_demo/src/aiq_semantic_kernel_demo/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/examples/semantic_kernel_demo/src/aiq_semantic_kernel_demo/__init__.py -------------------------------------------------------------------------------- /examples/simple/configs: -------------------------------------------------------------------------------- 1 | src/aiq_simple/configs -------------------------------------------------------------------------------- /examples/simple/data: -------------------------------------------------------------------------------- 1 | src/aiq_simple/data -------------------------------------------------------------------------------- /examples/simple/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | build-backend = "setuptools.build_meta" 3 | requires = ["setuptools >= 64", "setuptools-scm>=8"] 4 | 5 | [tool.setuptools_scm] 6 | root = "../.." 7 | 8 | [project] 9 | name = "aiq_simple" 10 | dynamic = ["version"] 11 | dependencies = [ 12 | "aiqtoolkit[langchain]~=1.2", 13 | "faiss-cpu==1.9.0", 14 | ] 15 | requires-python = ">=3.11,<3.13" 16 | description = "Simple AIQ toolkit example" 17 | keywords = ["ai", "rag", "agents"] 18 | classifiers = ["Programming Language :: Python"] 19 | 20 | [tool.uv.sources] 21 | aiqtoolkit = { path = "../../", editable = true } 22 | 23 | [project.entry-points.'aiq.components'] 24 | aiq_simple = "aiq_simple.register" 25 | -------------------------------------------------------------------------------- /examples/simple/src/aiq_simple/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/examples/simple/src/aiq_simple/__init__.py -------------------------------------------------------------------------------- /examples/simple/src/aiq_simple/data/langsmith.csv: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2fa8eef8f109ec9007f335c2c5f09759059142238abb0353c2bd3d1f9479ce77 3 | size 601 4 | -------------------------------------------------------------------------------- /examples/simple/src/aiq_simple/data/langsmith.json: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ffff946ef4383c48ce7b68ed4d85ccedbaa1a3eb13ceb3afe3fce3eb2c663317 3 | size 1856 4 | -------------------------------------------------------------------------------- /examples/simple/src/aiq_simple/data/langsmith.xlsx: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:813feb15115915d2ff6c2da08695501309a65e759133fa85fa755c582dafc57a 3 | size 5262 4 | -------------------------------------------------------------------------------- /examples/simple/src/aiq_simple/data/langsmith_generated.json: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0e8dcf65a0ba52858196ab28e1fe0e72d5654e383708ada5e6f1ceac0efb124b 3 | size 1865 4 | -------------------------------------------------------------------------------- /examples/simple/src/aiq_simple/data/simple_questions.json: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:68d7f8a71125d16356589df6a06d24b3d72e4a2e6cb09b9fcad0a73fc1f58434 3 | size 6916 4 | -------------------------------------------------------------------------------- /examples/simple_calculator/.dockerignore: -------------------------------------------------------------------------------- 1 | .git 2 | __pycache__ 3 | *.pyc 4 | *.pyo 5 | .DS_Store 6 | -------------------------------------------------------------------------------- /examples/simple_calculator/configs: -------------------------------------------------------------------------------- 1 | src/aiq_simple_calculator/configs -------------------------------------------------------------------------------- /examples/simple_calculator/data: -------------------------------------------------------------------------------- 1 | src/aiq_simple_calculator/data -------------------------------------------------------------------------------- /examples/simple_calculator/deploy_external_mcp/Dockerfile: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | FROM ubuntu:22.04 17 | 18 | # Install Python and pip 19 | RUN apt-get update && apt-get upgrade -y && apt install -y python3 python3-pip 20 | 21 | # Install MCP proxy and tools 22 | RUN pip3 install uv uvx 23 | 24 | RUN pip3 install "mcp==1.5.0" 25 | RUN pip3 install "mcp-proxy==0.5.1" 26 | 27 | # Create directory for scripts 28 | RUN mkdir /scripts 29 | 30 | # Set the entrypoint to run the MCP proxy 31 | ENTRYPOINT [ "mcp-proxy", "--pass-environment"] 32 | -------------------------------------------------------------------------------- /examples/simple_calculator/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | build-backend = "setuptools.build_meta" 3 | requires = ["setuptools >= 64", "setuptools-scm>=8"] 4 | 5 | [tool.setuptools_scm] 6 | root = "../.." 7 | 8 | [project] 9 | name = "aiq_simple_calculator" 10 | dynamic = ["version"] 11 | dependencies = [ 12 | "aiqtoolkit[langchain]~=1.2", 13 | ] 14 | requires-python = ">=3.11,<3.13" 15 | description = "Simple Calculator AIQ toolkit example" 16 | keywords = ["ai", "rag", "agents"] 17 | classifiers = ["Programming Language :: Python"] 18 | 19 | [tool.uv.sources] 20 | aiqtoolkit = { path = "../../", editable = true } 21 | 22 | [project.entry-points.'aiq.components'] 23 | aiq_simple_calculator = "aiq_simple_calculator.register" 24 | -------------------------------------------------------------------------------- /examples/simple_calculator/src/aiq_simple_calculator/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/examples/simple_calculator/src/aiq_simple_calculator/__init__.py -------------------------------------------------------------------------------- /examples/simple_calculator/src/aiq_simple_calculator/data/simple_calculator.json: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8524bb9ccb3492db603a3db4eaedf519c7e31ecf19e0bd3a104224e7e55735ba 3 | size 2678 4 | -------------------------------------------------------------------------------- /examples/simple_calculator/src/aiq_simple_calculator/data/simple_calculator_questions.json: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7e01c8210ca11e23403afd25b8c46f829900c14608f2012172602c4f3a04a2a0 3 | size 7846 4 | -------------------------------------------------------------------------------- /examples/simple_rag/deploy/docker-compose-utils.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | services: 17 | kibana: 18 | container_name: kibana 19 | image: docker.elastic.co/kibana/kibana:8.12.0 20 | environment: 21 | # - ELASTICSEARCH_USERNAME=elastic 22 | - ELASTICSEARCH_PASSWORD=elastic 23 | ports: 24 | - 5601:5601 25 | 26 | attu: 27 | image: zilliz/attu:v2.3.5 28 | container_name: attu 29 | hostname: attu 30 | environment: 31 | MILVUS_URL: http://milvus:19530 32 | ports: 33 | - "8000:3000" 34 | 35 | networks: 36 | default: 37 | name: nvidia-rag-test 38 | 39 | -------------------------------------------------------------------------------- /examples/simple_rag/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | build-backend = "setuptools.build_meta" 3 | requires = ["setuptools >= 64", "setuptools-scm>=8"] 4 | 5 | [tool.setuptools] 6 | packages = [] 7 | 8 | [tool.setuptools_scm] 9 | root = "../.." 10 | 11 | [project] 12 | name = "aiq_simple_rag" 13 | dynamic = ["version"] 14 | dependencies = [ 15 | "aiqtoolkit[ingestion, langchain, mem0ai]~=1.1" 16 | ] 17 | requires-python = ">=3.11,<3.13" 18 | description = "Simple Rag AIQ example" 19 | keywords = ["ai", "rag", "agents"] 20 | classifiers = ["Programming Language :: Python"] 21 | 22 | [tool.uv.sources] 23 | aiqtoolkit = { path = "../../", editable = true } 24 | 25 | -------------------------------------------------------------------------------- /examples/swe_bench/configs: -------------------------------------------------------------------------------- 1 | src/aiq_swe_bench/configs -------------------------------------------------------------------------------- /examples/swe_bench/data: -------------------------------------------------------------------------------- 1 | src/aiq_swe_bench/data/ -------------------------------------------------------------------------------- /examples/swe_bench/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | build-backend = "setuptools.build_meta" 3 | requires = ["setuptools >= 64", "setuptools-scm>=8"] 4 | 5 | [tool.setuptools_scm] 6 | root = "../.." 7 | 8 | [project] 9 | name = "aiq_swe_bench" 10 | dynamic = ["version"] 11 | dependencies = [ 12 | "aiqtoolkit[langchain]~=1.2", 13 | "swebench==3.0.3" 14 | ] 15 | requires-python = ">=3.11,<3.13" 16 | description = "Example for solving SWE bench problems" 17 | classifiers = ["Programming Language :: Python"] 18 | 19 | [tool.uv.sources] 20 | aiqtoolkit = { path = "../../", editable = true } 21 | 22 | [project.entry-points.'aiq.components'] 23 | aiq_swe_bench = "aiq_swe_bench.register" 24 | -------------------------------------------------------------------------------- /examples/swe_bench/src/aiq_swe_bench/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/examples/swe_bench/src/aiq_swe_bench/__init__.py -------------------------------------------------------------------------------- /examples/swe_bench/src/aiq_swe_bench/data/dev_dataset_lite.json: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0cca24fb4da371dd817eafec050a8c6327634aa293cc4e8aa40165d75ee1a81e 3 | size 246160 4 | -------------------------------------------------------------------------------- /examples/swe_bench/src/aiq_swe_bench/data/golden_dataset.json: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0dcae7098cc47218bf4b73fe62a9aea1a997833c0f70affb8555f58c199f4e8e 3 | size 18382 4 | -------------------------------------------------------------------------------- /examples/swe_bench/src/aiq_swe_bench/data/test_dataset_lite.json: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c594e7a638f8a77a2497b3d6eabd058a9871bb1c54bb4f95790191fc289810db 3 | size 3717841 4 | -------------------------------------------------------------------------------- /examples/swe_bench/src/aiq_swe_bench/data/test_dataset_verified.json: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:78aab9460a3cecc5dcf4bc50345abcf8541b7bcf264f5b572697576f3ddd913c 3 | size 8126807 4 | -------------------------------------------------------------------------------- /examples/swe_bench/src/aiq_swe_bench/predictors/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/examples/swe_bench/src/aiq_swe_bench/predictors/__init__.py -------------------------------------------------------------------------------- /examples/swe_bench/src/aiq_swe_bench/predictors/predict_full/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/examples/swe_bench/src/aiq_swe_bench/predictors/predict_full/__init__.py -------------------------------------------------------------------------------- /examples/swe_bench/src/aiq_swe_bench/predictors/predict_full/tools/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/examples/swe_bench/src/aiq_swe_bench/predictors/predict_full/tools/__init__.py -------------------------------------------------------------------------------- /examples/swe_bench/src/aiq_swe_bench/predictors/predict_gold/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/examples/swe_bench/src/aiq_swe_bench/predictors/predict_gold/__init__.py -------------------------------------------------------------------------------- /examples/swe_bench/src/aiq_swe_bench/predictors/predict_skeleton/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/examples/swe_bench/src/aiq_swe_bench/predictors/predict_skeleton/__init__.py -------------------------------------------------------------------------------- /examples/swe_bench/src/aiq_swe_bench/predictors/register.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | # flake8: noqa: F401, pylint: disable=unused-import 17 | 18 | # Import the predictor classes to register them 19 | from aiq_swe_bench.predictors.predict_gold.predict_gold_stub import SweBenchPredictor as GoldPredictor 20 | -------------------------------------------------------------------------------- /examples/swe_bench/src/aiq_swe_bench/register_tools.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | # flake8: noqa: F401, pylint: disable=unused-import 17 | 18 | # imports tools to register them 19 | from aiq_swe_bench.predictors.predict_full.tools.register import git_repo_tool 20 | -------------------------------------------------------------------------------- /manifest.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | x-git-defaults: &git_defaults 17 | host: github.com 18 | tag: develop 19 | upstream: NVIDIA 20 | 21 | repos: 22 | 23 | - name: AIQToolkit 24 | path: dev/AIQToolkit 25 | python: 26 | - name: aiq 27 | sub_dir: python 28 | depends: [] 29 | git: 30 | <<: *git_defaults 31 | repo: AIQToolkit 32 | -------------------------------------------------------------------------------- /packages/aiqtoolkit_agno/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | build-backend = "setuptools.build_meta" 3 | requires = ["setuptools >= 64", "setuptools-scm>=8"] 4 | 5 | 6 | [tool.setuptools.packages.find] 7 | where = ["src"] 8 | include = ["aiq.*"] 9 | 10 | 11 | [tool.setuptools_scm] 12 | root = "../.." 13 | 14 | 15 | [project] 16 | name = "aiqtoolkit-agno" 17 | dynamic = ["version"] 18 | dependencies = [ 19 | # Keep package version constraints as open as possible to avoid conflicts with other packages. Always define a minimum 20 | # version when adding a new package. If unsure, default to using `~=` instead of `==`. Does not apply to aiq packages. 21 | # Keep sorted!!! 22 | "aiqtoolkit~=1.2", 23 | "agno~=1.2.3", 24 | "openai~=1.66", 25 | "google-search-results~=2.4.2", 26 | ] 27 | requires-python = ">=3.11,<3.13" 28 | readme = "src/aiq/meta/pypi.md" 29 | description = "Subpackage for Agno integration in AIQtoolkit" 30 | keywords = ["ai", "rag", "agents"] 31 | classifiers = ["Programming Language :: Python"] 32 | 33 | 34 | [tool.uv] 35 | config-settings = { editable_mode = "compat" } 36 | 37 | 38 | [tool.uv.sources] 39 | aiqtoolkit = { workspace = true } 40 | 41 | 42 | [project.entry-points.'aiq.components'] 43 | aiq_agno = "aiq.plugins.agno.register" 44 | aiq_agno_tools = "aiq.plugins.agno.tools.register" 45 | -------------------------------------------------------------------------------- /packages/aiqtoolkit_agno/src/aiq/meta/pypi.md: -------------------------------------------------------------------------------- 1 | 17 | 18 | ![NVIDIA Agent Intelligence Toolkit](https://media.githubusercontent.com/media/NVIDIA/NeMo-Agent-Toolkit/refs/heads/main/docs/source/_static/aiqtoolkit_banner.png "AIQ toolkit banner image") 19 | 20 | # NVIDIA Agent Intelligence Toolkit Subpackage 21 | 22 | 23 | This is a subpackage for `Agno` integration in AIQ toolkit. 24 | 25 | For more information about AIQ toolkit, please visit the [AIQ toolkit package](https://pypi.org/project/aiqtoolkit/). 26 | -------------------------------------------------------------------------------- /packages/aiqtoolkit_agno/src/aiq/plugins/agno/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/packages/aiqtoolkit_agno/src/aiq/plugins/agno/__init__.py -------------------------------------------------------------------------------- /packages/aiqtoolkit_agno/src/aiq/plugins/agno/register.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | # pylint: disable=unused-import 17 | # flake8: noqa 18 | # isort:skip_file 19 | 20 | from . import llm 21 | from . import tool_wrapper 22 | from .tools import register 23 | -------------------------------------------------------------------------------- /packages/aiqtoolkit_agno/src/aiq/plugins/agno/tools/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/packages/aiqtoolkit_agno/src/aiq/plugins/agno/tools/__init__.py -------------------------------------------------------------------------------- /packages/aiqtoolkit_agno/src/aiq/plugins/agno/tools/register.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | # pylint: disable=unused-import 17 | # flake8: noqa 18 | # isort:skip_file 19 | 20 | from . import serp_api_tool 21 | -------------------------------------------------------------------------------- /packages/aiqtoolkit_crewai/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | build-backend = "setuptools.build_meta" 3 | requires = ["setuptools >= 64", "setuptools-scm>=8"] 4 | 5 | 6 | [tool.setuptools.packages.find] 7 | where = ["src"] 8 | include = ["aiq.*"] 9 | 10 | 11 | [tool.setuptools_scm] 12 | root = "../.." 13 | 14 | 15 | [project] 16 | name = "aiqtoolkit-crewai" 17 | dynamic = ["version"] 18 | dependencies = [ 19 | # Keep package version constraints as open as possible to avoid conflicts with other packages. Always define a minimum 20 | # version when adding a new package. If unsure, default to using `~=` instead of `==`. Does not apply to aiq packages. 21 | # Keep sorted!!! 22 | "aiqtoolkit~=1.2", 23 | "crewai~=0.95.0", 24 | ] 25 | requires-python = ">=3.11,<3.13" 26 | readme = "src/aiq/meta/pypi.md" 27 | description = "Subpackage for CrewAI integration in AIQtoolkit" 28 | keywords = ["ai", "rag", "agents"] 29 | classifiers = ["Programming Language :: Python"] 30 | 31 | 32 | [tool.uv] 33 | config-settings = { editable_mode = "compat" } 34 | 35 | 36 | [tool.uv.sources] 37 | aiqtoolkit = { workspace = true } 38 | 39 | 40 | [project.entry-points.'aiq.components'] 41 | aiq_crewai = "aiq.plugins.crewai.register" 42 | -------------------------------------------------------------------------------- /packages/aiqtoolkit_crewai/src/aiq/meta/pypi.md: -------------------------------------------------------------------------------- 1 | 17 | 18 | ![NVIDIA Agent Intelligence Toolkit](https://media.githubusercontent.com/media/NVIDIA/NeMo-Agent-Toolkit/refs/heads/main/docs/source/_static/aiqtoolkit_banner.png "AIQ toolkit banner image") 19 | 20 | # NVIDIA Agent Intelligence Toolkit Subpackage 21 | This is a subpackage for CrewAI integration in AIQ toolkit. 22 | 23 | For more information about AIQ toolkit, please visit the [AIQ toolkit package](https://pypi.org/project/aiqtoolkit/). 24 | -------------------------------------------------------------------------------- /packages/aiqtoolkit_crewai/src/aiq/plugins/crewai/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/packages/aiqtoolkit_crewai/src/aiq/plugins/crewai/__init__.py -------------------------------------------------------------------------------- /packages/aiqtoolkit_crewai/src/aiq/plugins/crewai/register.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | # pylint: disable=unused-import 17 | # flake8: noqa 18 | # isort:skip_file 19 | 20 | # Import any providers which need to be automatically registered here 21 | 22 | from . import llm 23 | from . import tool_wrapper 24 | -------------------------------------------------------------------------------- /packages/aiqtoolkit_langchain/src/aiq/meta/pypi.md: -------------------------------------------------------------------------------- 1 | 17 | 18 | ![NVIDIA Agent Intelligence Toolkit](https://media.githubusercontent.com/media/NVIDIA/NeMo-Agent-Toolkit/refs/heads/main/docs/source/_static/aiqtoolkit_banner.png "AIQ toolkit banner image") 19 | 20 | # NVIDIA Agent Intelligence Toolkit Subpackage 21 | This is a subpackage for Langchain/Langgraph integration in AIQ toolkit. 22 | 23 | For more information about AIQ toolkit, please visit the [AIQ toolkit package](https://pypi.org/project/aiqtoolkit/). 24 | -------------------------------------------------------------------------------- /packages/aiqtoolkit_langchain/src/aiq/plugins/langchain/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/packages/aiqtoolkit_langchain/src/aiq/plugins/langchain/__init__.py -------------------------------------------------------------------------------- /packages/aiqtoolkit_langchain/src/aiq/plugins/langchain/register.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | # pylint: disable=unused-import 17 | # flake8: noqa 18 | # isort:skip_file 19 | 20 | # Import any providers which need to be automatically registered here 21 | 22 | from . import embedder 23 | from . import llm 24 | from . import tool_wrapper 25 | from . import retriever 26 | from .tools import register 27 | -------------------------------------------------------------------------------- /packages/aiqtoolkit_langchain/src/aiq/plugins/langchain/tools/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/packages/aiqtoolkit_langchain/src/aiq/plugins/langchain/tools/__init__.py -------------------------------------------------------------------------------- /packages/aiqtoolkit_langchain/src/aiq/plugins/langchain/tools/register.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | # pylint: disable=unused-import 17 | # flake8: noqa 18 | # isort:skip_file 19 | 20 | # Import any providers which need to be automatically registered here 21 | 22 | from . import code_generation_tool 23 | from . import tavily_internet_search 24 | from . import wikipedia_search 25 | -------------------------------------------------------------------------------- /packages/aiqtoolkit_llama_index/src/aiq/meta/pypi.md: -------------------------------------------------------------------------------- 1 | 17 | 18 | ![NVIDIA Agent Intelligence Toolkit](https://media.githubusercontent.com/media/NVIDIA/NeMo-Agent-Toolkit/refs/heads/main/docs/source/_static/aiqtoolkit_banner.png "AIQ toolkit banner image") 19 | 20 | # NVIDIA Agent Intelligence Toolkit Subpackage 21 | This is a subpackage for Llama-Index integration in AIQ toolkit. 22 | 23 | For more information about AIQ toolkit, please visit the [AIQ toolkit package](https://pypi.org/project/aiqtoolkit/). 24 | -------------------------------------------------------------------------------- /packages/aiqtoolkit_llama_index/src/aiq/plugins/llama_index/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/packages/aiqtoolkit_llama_index/src/aiq/plugins/llama_index/__init__.py -------------------------------------------------------------------------------- /packages/aiqtoolkit_llama_index/src/aiq/plugins/llama_index/register.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | # pylint: disable=unused-import 17 | # flake8: noqa 18 | # isort:skip_file 19 | 20 | # Import any providers which need to be automatically registered here 21 | 22 | from . import llm 23 | from . import tool_wrapper 24 | -------------------------------------------------------------------------------- /packages/aiqtoolkit_mem0ai/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | build-backend = "setuptools.build_meta" 3 | requires = ["setuptools >= 64", "setuptools-scm>=8"] 4 | 5 | 6 | [tool.setuptools.packages.find] 7 | where = ["src"] 8 | include = ["aiq.*"] 9 | 10 | 11 | [tool.setuptools_scm] 12 | root = "../.." 13 | 14 | 15 | [project] 16 | name = "aiqtoolkit-mem0ai" 17 | dynamic = ["version"] 18 | dependencies = [ 19 | # Keep package version constraints as open as possible to avoid conflicts with other packages. Always define a minimum 20 | # version when adding a new package. If unsure, default to using `~=` instead of `==`. Does not apply to aiq packages. 21 | # Keep sorted!!! 22 | "aiqtoolkit~=1.2", 23 | "mem0ai~=0.1.30", 24 | ] 25 | requires-python = ">=3.11,<3.13" 26 | description = "Subpackage for Mem0 memory integration in AIQtoolkit" 27 | readme = "src/aiq/meta/pypi.md" 28 | keywords = ["ai", "agents", "memory"] 29 | classifiers = ["Programming Language :: Python"] 30 | 31 | 32 | [tool.uv] 33 | config-settings = { editable_mode = "compat" } 34 | 35 | 36 | [tool.uv.sources] 37 | aiqtoolkit = { workspace = true } 38 | 39 | 40 | [project.entry-points.'aiq.components'] 41 | aiq_mem0ai = "aiq.plugins.mem0ai.register" 42 | -------------------------------------------------------------------------------- /packages/aiqtoolkit_mem0ai/src/aiq/meta/pypi.md: -------------------------------------------------------------------------------- 1 | 17 | 18 | ![NVIDIA Agent Intelligence Toolkit](https://media.githubusercontent.com/media/NVIDIA/NeMo-Agent-Toolkit/refs/heads/main/docs/source/_static/aiqtoolkit_banner.png "AIQ toolkit banner image") 19 | 20 | # NVIDIA Agent Intelligence Toolkit Subpackage 21 | This is a subpackage for Mem0 memory integration in AIQ toolkit. 22 | 23 | For more information about AIQ toolkit, please visit the [AIQ toolkit package](https://pypi.org/project/aiqtoolkit/). 24 | -------------------------------------------------------------------------------- /packages/aiqtoolkit_mem0ai/src/aiq/plugins/mem0ai/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/packages/aiqtoolkit_mem0ai/src/aiq/plugins/mem0ai/__init__.py -------------------------------------------------------------------------------- /packages/aiqtoolkit_mem0ai/src/aiq/plugins/mem0ai/register.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | # pylint: disable=unused-import 17 | # flake8: noqa 18 | # isort:skip_file 19 | 20 | # Import any providers which need to be automatically registered here 21 | 22 | from . import memory 23 | -------------------------------------------------------------------------------- /packages/aiqtoolkit_semantic_kernel/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | build-backend = "setuptools.build_meta" 3 | requires = ["setuptools >= 64", "setuptools-scm>=8"] 4 | 5 | 6 | [tool.setuptools.packages.find] 7 | where = ["src"] 8 | include = ["aiq.*"] 9 | 10 | 11 | [tool.setuptools_scm] 12 | root = "../.." 13 | 14 | 15 | [project] 16 | name = "aiqtoolkit-semantic-kernel" 17 | dynamic = ["version"] 18 | dependencies = [ 19 | # Keep package version constraints as open as possible to avoid conflicts with other packages. Always define a minimum 20 | # version when adding a new package. If unsure, default to using `~=` instead of `==`. Does not apply to aiq packages. 21 | # Keep sorted!!! 22 | "aiqtoolkit~=1.2", 23 | "semantic-kernel~=1.24.0", 24 | ] 25 | requires-python = ">=3.11,<3.13" 26 | description = "Subpackage for Semantic-Kernel integration in AIQtoolkit" 27 | readme = "src/aiq/meta/pypi.md" 28 | keywords = ["ai", "rag", "agents"] 29 | classifiers = ["Programming Language :: Python"] 30 | 31 | 32 | [tool.uv] 33 | config-settings = { editable_mode = "compat" } 34 | 35 | 36 | [tool.uv.sources] 37 | aiqtoolkit = { workspace = true } 38 | 39 | 40 | [project.entry-points.'aiq.components'] 41 | aiq_semantic_kernel = "aiq.plugins.semantic_kernel.register" 42 | -------------------------------------------------------------------------------- /packages/aiqtoolkit_semantic_kernel/src/aiq/meta/pypi.md: -------------------------------------------------------------------------------- 1 | 17 | 18 | ![NVIDIA Agent Intelligence Toolkit](https://media.githubusercontent.com/media/NVIDIA/NeMo-Agent-Toolkit/refs/heads/main/docs/source/_static/aiqtoolkit_banner.png "AIQ toolkit banner image") 19 | 20 | # NVIDIA Agent Intelligence Toolkit Subpackage 21 | This is a subpackage for Semantic-Kernel integration in AIQ toolkit. 22 | 23 | For more information about AIQ toolkit, please visit the [AIQ toolkit package](https://pypi.org/project/aiqtoolkit/). 24 | -------------------------------------------------------------------------------- /packages/aiqtoolkit_semantic_kernel/src/aiq/plugins/semantic_kernel/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/packages/aiqtoolkit_semantic_kernel/src/aiq/plugins/semantic_kernel/__init__.py -------------------------------------------------------------------------------- /packages/aiqtoolkit_semantic_kernel/src/aiq/plugins/semantic_kernel/register.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | # pylint: disable=unused-import 17 | # flake8: noqa 18 | # isort:skip_file 19 | 20 | # Import any providers which need to be automatically registered here 21 | 22 | from . import llm 23 | from . import tool_wrapper 24 | -------------------------------------------------------------------------------- /packages/aiqtoolkit_test/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | build-backend = "setuptools.build_meta" 3 | requires = ["setuptools >= 64", "setuptools-scm>=8"] 4 | 5 | 6 | [tool.setuptools.packages.find] 7 | where = ["src"] 8 | include = ["aiq.*"] 9 | 10 | 11 | [tool.setuptools_scm] 12 | root = "../.." 13 | 14 | 15 | [project] 16 | name = "aiqtoolkit-test" 17 | dynamic = ["version"] 18 | dependencies = [ 19 | # Keep package version constraints as open as possible to avoid conflicts with other packages. Always define a minimum 20 | # version when adding a new package. If unsure, default to using `~=` instead of `==`. Does not apply to aiq packages. 21 | # Keep sorted!!! 22 | "aiqtoolkit~=1.2", 23 | "langchain-community~=0.3", 24 | "pytest~=8.3", 25 | ] 26 | requires-python = ">=3.11,<3.13" 27 | description = "Testing utilities for AIQtoolkit" 28 | readme = "src/aiq/meta/pypi.md" 29 | keywords = ["ai", "rag", "agents"] 30 | classifiers = ["Programming Language :: Python"] 31 | 32 | 33 | [tool.uv] 34 | config-settings = { editable_mode = "compat" } 35 | 36 | 37 | [tool.uv.sources] 38 | aiqtoolkit = { workspace = true } 39 | 40 | 41 | [project.entry-points.pytest11] 42 | aiqtoolkit-test = "aiq.test.plugin" 43 | 44 | 45 | [project.entry-points.'aiq.components'] 46 | aiqtoolkit-test = "aiq.test.register" 47 | -------------------------------------------------------------------------------- /packages/aiqtoolkit_test/src/aiq/meta/pypi.md: -------------------------------------------------------------------------------- 1 | 17 | 18 | ![NVIDIA Agent Intelligence Toolkit](https://media.githubusercontent.com/media/NVIDIA/NeMo-Agent-Toolkit/refs/heads/main/docs/source/_static/aiqtoolkit_banner.png "AIQ toolkit banner image") 19 | 20 | # NVIDIA Agent Intelligence Toolkit Subpackage 21 | This is a subpackage for AIQ toolkit test utilities. 22 | 23 | For more information about AIQ toolkit, please visit the [AIQ toolkit package](https://pypi.org/project/aiqtoolkit/). 24 | -------------------------------------------------------------------------------- /packages/aiqtoolkit_test/src/aiq/test/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/packages/aiqtoolkit_test/src/aiq/test/__init__.py -------------------------------------------------------------------------------- /packages/aiqtoolkit_test/src/aiq/test/register.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | # pylint: disable=unused-import 17 | # flake8: noqa 18 | # isort:skip_file 19 | 20 | # Import any providers which need to be automatically registered here 21 | 22 | from . import embedder 23 | from . import functions 24 | from . import memory 25 | -------------------------------------------------------------------------------- /packages/aiqtoolkit_weave/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | build-backend = "setuptools.build_meta" 3 | requires = ["setuptools >= 64", "setuptools-scm>=8"] 4 | 5 | 6 | [tool.setuptools.packages.find] 7 | where = ["src"] 8 | include = ["aiq.*"] 9 | 10 | 11 | [tool.setuptools_scm] 12 | root = "../.." 13 | 14 | 15 | [project] 16 | name = "aiqtoolkit-weave" 17 | dynamic = ["version"] 18 | dependencies = [ 19 | # Keep package version constraints as open as possible to avoid conflicts with other packages. Always define a minimum 20 | # version when adding a new package. If unsure, default to using `~=` instead of `==`. Does not apply to aiq packages. 21 | # Keep sorted!!! 22 | "aiqtoolkit~=1.2", 23 | "weave>=0.51.44" 24 | ] 25 | requires-python = ">=3.11,<3.13" 26 | description = "Subpackage for Weave integration in AIQtoolkit" 27 | readme = "src/aiq/meta/pypi.md" 28 | keywords = ["ai", "observability", "wandb"] 29 | classifiers = ["Programming Language :: Python"] 30 | 31 | 32 | [tool.uv] 33 | config-settings = { editable_mode = "compat" } 34 | 35 | 36 | [tool.uv.sources] 37 | aiqtoolkit = { workspace = true } 38 | 39 | 40 | [project.entry-points.'aiq.components'] 41 | aiqtoolkit_weave = "aiq.plugins.weave.register" 42 | -------------------------------------------------------------------------------- /packages/aiqtoolkit_weave/src/aiq/meta/pypi.md: -------------------------------------------------------------------------------- 1 | 17 | 18 | ![NVIDIA Agent Intelligence Toolkit](https://media.githubusercontent.com/media/NVIDIA/NeMo-Agent-Toolkit/refs/heads/main/docs/source/_static/aiqtoolkit_banner.png "AIQ toolkit banner image" 19 | 20 | # NVIDIA Agent Intelligence Toolkit Subpackage 21 | This is a subpackage for Weights and Biases Weave integration for observability. 22 | 23 | For more information about AIQ toolkit, please visit the [AIQ toolkit package](https://pypi.org/project/aiqtoolkit/). 24 | -------------------------------------------------------------------------------- /packages/aiqtoolkit_weave/src/aiq/plugins/weave/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/packages/aiqtoolkit_weave/src/aiq/plugins/weave/__init__.py -------------------------------------------------------------------------------- /packages/aiqtoolkit_weave/src/aiq/plugins/weave/register.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | # pylint: disable=unused-import 17 | # flake8: noqa 18 | # isort:skip_file 19 | 20 | from . import weave_sdk 21 | -------------------------------------------------------------------------------- /packages/aiqtoolkit_zep_cloud/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | build-backend = "setuptools.build_meta" 3 | requires = ["setuptools >= 64", "setuptools-scm>=8"] 4 | 5 | 6 | [tool.setuptools.packages.find] 7 | where = ["src"] 8 | include = ["aiq.*"] 9 | 10 | 11 | [tool.setuptools_scm] 12 | root = "../.." 13 | 14 | 15 | [project] 16 | name = "aiqtoolkit-zep-cloud" 17 | dynamic = ["version"] 18 | dependencies = [ 19 | # Keep package version constraints as open as possible to avoid conflicts with other packages. Always define a minimum 20 | # version when adding a new package. If unsure, default to using `~=` instead of `==`. Does not apply to aiq packages. 21 | # Keep sorted!!! 22 | "aiqtoolkit~=1.2", 23 | "zep-cloud~=2.2.0", 24 | ] 25 | requires-python = ">=3.11,<3.13" 26 | description = "Subpackage for Zep memory integration in AIQtoolkit" 27 | readme = "src/aiq/meta/pypi.md" 28 | keywords = ["ai", "agents", "memory"] 29 | classifiers = ["Programming Language :: Python"] 30 | 31 | 32 | [tool.uv] 33 | config-settings = { editable_mode = "compat" } 34 | 35 | 36 | [tool.uv.sources] 37 | aiqtoolkit = { workspace = true } 38 | 39 | 40 | [project.entry-points.'aiq.components'] 41 | aiq_zep_cloud = "aiq.plugins.zep_cloud.register" 42 | -------------------------------------------------------------------------------- /packages/aiqtoolkit_zep_cloud/src/aiq/meta/pypi.md: -------------------------------------------------------------------------------- 1 | 17 | 18 | ![NVIDIA Agent Intelligence Toolkit](https://media.githubusercontent.com/media/NVIDIA/NeMo-Agent-Toolkit/refs/heads/main/docs/source/_static/aiqtoolkit_banner.png "AIQ toolkit banner image") 19 | 20 | # NVIDIA Agent Intelligence Toolkit Subpackage 21 | This is a subpackage for Zep memory integration in AIQ toolkit. 22 | 23 | For more information about AIQ toolkit, please visit the [AIQ toolkit package](https://pypi.org/project/aiqtoolkit/). 24 | -------------------------------------------------------------------------------- /packages/aiqtoolkit_zep_cloud/src/aiq/plugins/zep_cloud/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/packages/aiqtoolkit_zep_cloud/src/aiq/plugins/zep_cloud/__init__.py -------------------------------------------------------------------------------- /packages/aiqtoolkit_zep_cloud/src/aiq/plugins/zep_cloud/register.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | # pylint: disable=unused-import 17 | # flake8: noqa 18 | # isort:skip_file 19 | 20 | # Import any providers which need to be automatically registered here 21 | 22 | from . import memory 23 | -------------------------------------------------------------------------------- /packages/compat/agentiq/pypi.md: -------------------------------------------------------------------------------- 1 | 17 | 18 | # Transitional Package for `aiqtoolkit` 19 | This is a transitional package for `aiqtoolkit` to help ease the migration to `aiqtoolkit`, and will be removed in a future release. It is recommended to use `aiqtoolkit` directly for new projects. 20 | 21 | For more information about AIQ toolkit, please visit the [AIQ toolkit package](https://pypi.org/project/aiqtoolkit/). 22 | -------------------------------------------------------------------------------- /packages/compat/agentiq/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | build-backend = "setuptools.build_meta" 3 | requires = ["setuptools >= 64", "setuptools-scm>=8"] 4 | 5 | [tool.setuptools_scm] 6 | root = "../../.." 7 | 8 | [project] 9 | name = "agentiq" 10 | dynamic = ["version"] 11 | dependencies = [ 12 | "aiqtoolkit~=1.2" 13 | ] 14 | readme = "pypi.md" 15 | description = "Transitional package for aiqtoolkit, this package is deprecated and will be removed in the future." 16 | classifiers = ["Programming Language :: Python"] 17 | -------------------------------------------------------------------------------- /packages/compat/agentiq_agno/pypi.md: -------------------------------------------------------------------------------- 1 | 17 | 18 | # Transitional Package for `aiqtoolkit-agno` 19 | This is a transitional package for `aiqtoolkit-agno` to help ease the migration to `aiqtoolkit-agno`, and will be removed in a future release. It is recommended to use `aiqtoolkit-agno` directly for new projects. 20 | 21 | For more information about AIQ toolkit, please visit the [AIQ toolkit package](https://pypi.org/project/aiqtoolkit-agno/). 22 | -------------------------------------------------------------------------------- /packages/compat/agentiq_agno/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | build-backend = "setuptools.build_meta" 3 | requires = ["setuptools >= 64", "setuptools-scm>=8"] 4 | 5 | [tool.setuptools_scm] 6 | root = "../../.." 7 | 8 | 9 | [project] 10 | name = "agentiq-agno" 11 | dynamic = ["version"] 12 | dependencies = [ 13 | "aiqtoolkit[agno]~=1.2" 14 | ] 15 | readme = "pypi.md" 16 | description = "Transitional package for aiqtoolkit-agno, this package is deprecated and will be removed in the future." 17 | classifiers = ["Programming Language :: Python"] 18 | -------------------------------------------------------------------------------- /packages/compat/agentiq_crewai/pypi.md: -------------------------------------------------------------------------------- 1 | 17 | 18 | # Transitional Package for `aiqtoolkit-crewai` 19 | This is a transitional package for `aiqtoolkit-crewai` to help ease the migration to `aiqtoolkit-crewai`, and will be removed in a future release. It is recommended to use `aiqtoolkit-crewai` directly for new projects. 20 | 21 | For more information about AIQ toolkit, please visit the [AIQ toolkit package](https://pypi.org/project/aiqtoolkit-crewai/). 22 | -------------------------------------------------------------------------------- /packages/compat/agentiq_crewai/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | build-backend = "setuptools.build_meta" 3 | requires = ["setuptools >= 64", "setuptools-scm>=8"] 4 | 5 | [tool.setuptools_scm] 6 | root = "../../.." 7 | 8 | [project] 9 | name = "agentiq-crewai" 10 | dynamic = ["version"] 11 | dependencies = [ 12 | "aiqtoolkit[crewai]~=1.2", 13 | ] 14 | readme = "pypi.md" 15 | description = "Transitional package for aiqtoolkit-crewai, this package is deprecated and will be removed in the future." 16 | classifiers = ["Programming Language :: Python"] 17 | -------------------------------------------------------------------------------- /packages/compat/agentiq_langchain/pypi.md: -------------------------------------------------------------------------------- 1 | 17 | 18 | # Transitional Package for `aiqtoolkit-langchain` 19 | This is a transitional package for `aiqtoolkit-langchain` to help ease the migration to `aiqtoolkit-langchain`, and will be removed in a future release. It is recommended to use `aiqtoolkit-langchain` directly for new projects. 20 | 21 | For more information about AIQ toolkit, please visit the [AIQ toolkit package](https://pypi.org/project/aiqtoolkit-langchain/). 22 | -------------------------------------------------------------------------------- /packages/compat/agentiq_langchain/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | build-backend = "setuptools.build_meta" 3 | requires = ["setuptools >= 64", "setuptools-scm>=8"] 4 | 5 | [tool.setuptools_scm] 6 | root = "../../.." 7 | 8 | 9 | [project] 10 | name = "agentiq-langchain" 11 | dynamic = ["version"] 12 | dependencies = [ 13 | # Keep package version constraints as open as possible to avoid conflicts with other packages. Always define a minimum 14 | # version when adding a new package. If unsure, default to using `~=` instead of `==`. Does not apply to aiq packages. 15 | # Keep sorted!!! 16 | "aiqtoolkit[langchain]~=1.2" 17 | ] 18 | readme = "pypi.md" 19 | description = "Transitional package for aiqtoolkit-langchain, this package is deprecated and will be removed in the future." 20 | classifiers = ["Programming Language :: Python"] 21 | -------------------------------------------------------------------------------- /packages/compat/agentiq_llama_index/pypi.md: -------------------------------------------------------------------------------- 1 | 17 | 18 | # Transitional Package for `aiqtoolkit-llama-index` 19 | This is a transitional package for `aiqtoolkit-llama-index` to help ease the migration to `aiqtoolkit-llama-index`, and will be removed in a future release. It is recommended to use `aiqtoolkit-llama-index` directly for new projects. 20 | 21 | For more information about AIQ toolkit, please visit the [AIQ toolkit package](https://pypi.org/project/aiqtoolkit-llama-index/). 22 | -------------------------------------------------------------------------------- /packages/compat/agentiq_llama_index/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | build-backend = "setuptools.build_meta" 3 | requires = ["setuptools >= 64", "setuptools-scm>=8"] 4 | 5 | 6 | [tool.setuptools_scm] 7 | root = "../../.." 8 | 9 | 10 | 11 | [project] 12 | name = "agentiq-llama-index" 13 | dynamic = ["version"] 14 | dependencies = [ 15 | "aiqtoolkit-llama-index" 16 | ] 17 | readme = "pypi.md" 18 | description = "Transitional package for aiqtoolkit-llama-index, this package is deprecated and will be removed in the future." 19 | classifiers = ["Programming Language :: Python"] 20 | -------------------------------------------------------------------------------- /packages/compat/agentiq_mem0ai/pypi.md: -------------------------------------------------------------------------------- 1 | 17 | 18 | # Transitional Package for `aiqtoolkit-mem0ai` 19 | This is a transitional package for `aiqtoolkit-mem0ai` to help ease the migration to `aiqtoolkit-mem0ai`, and will be removed in a future release. It is recommended to use `aiqtoolkit-mem0ai` directly for new projects. 20 | 21 | For more information about AIQ toolkit, please visit the [AIQ toolkit package](https://pypi.org/project/aiqtoolkit-mem0ai/). 22 | -------------------------------------------------------------------------------- /packages/compat/agentiq_mem0ai/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | build-backend = "setuptools.build_meta" 3 | requires = ["setuptools >= 64", "setuptools-scm>=8"] 4 | 5 | 6 | [tool.setuptools_scm] 7 | root = "../../.." 8 | 9 | [project] 10 | name = "agentiq-mem0ai" 11 | dynamic = ["version"] 12 | dependencies = [ 13 | "aiqtoolkit[mem0ai]~=1.2" 14 | ] 15 | readme = "pypi.md" 16 | description = "Transitional package for aiqtoolkit-mem0ai, this package is deprecated and will be removed in the future." 17 | classifiers = ["Programming Language :: Python"] 18 | -------------------------------------------------------------------------------- /packages/compat/agentiq_semantic_kernel/pypi.md: -------------------------------------------------------------------------------- 1 | 17 | 18 | # Transitional Package for `aiqtoolkit-semantic-kernel` 19 | This is a transitional package for `aiqtoolkit-semantic-kernel` to help ease the migration to `aiqtoolkit-semantic-kernel`, and will be removed in a future release. It is recommended to use `aiqtoolkit-semantic-kernel` directly for new projects. 20 | 21 | For more information about AIQ toolkit, please visit the [AIQ toolkit package](https://pypi.org/project/aiqtoolkit-semantic-kernel/). 22 | -------------------------------------------------------------------------------- /packages/compat/agentiq_semantic_kernel/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | build-backend = "setuptools.build_meta" 3 | requires = ["setuptools >= 64", "setuptools-scm>=8"] 4 | 5 | [tool.setuptools_scm] 6 | root = "../../.." 7 | 8 | [project] 9 | name = "agentiq-semantic-kernel" 10 | dynamic = ["version"] 11 | dependencies = [ 12 | "aiqtoolkit-semantic-kernel" 13 | ] 14 | readme = "pypi.md" 15 | description = "Transitional package for aiqtoolkit-semantic-kernel, this package is deprecated and will be removed in the future." 16 | classifiers = ["Programming Language :: Python"] 17 | -------------------------------------------------------------------------------- /packages/compat/agentiq_test/pypi.md: -------------------------------------------------------------------------------- 1 | 17 | 18 | # Transitional Package for `aiqtoolkit-test` 19 | This is a transitional package for `aiqtoolkit-test` to help ease the migration to `aiqtoolkit-test`, and will be removed in a future release. It is recommended to use `aiqtoolkit-test` directly for new projects. 20 | 21 | For more information about AIQ toolkit, please visit the [AIQ toolkit package](https://pypi.org/project/aiqtoolkit-test/). 22 | -------------------------------------------------------------------------------- /packages/compat/agentiq_test/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | build-backend = "setuptools.build_meta" 3 | requires = ["setuptools >= 64", "setuptools-scm>=8"] 4 | 5 | [tool.setuptools_scm] 6 | root = "../../.." 7 | 8 | [project] 9 | name = "agentiq-test" 10 | dynamic = ["version"] 11 | dependencies = [ 12 | "aiqtoolkit[test]~=1.2" 13 | ] 14 | readme = "pypi.md" 15 | description = "Transitional package for aiqtoolkit-test, this package is deprecated and will be removed in the future." 16 | classifiers = ["Programming Language :: Python"] 17 | -------------------------------------------------------------------------------- /packages/compat/agentiq_zep_cloud/pypi.md: -------------------------------------------------------------------------------- 1 | 17 | 18 | # Transitional Package for `aiqtoolkit-zep-cloud` 19 | This is a transitional package for `aiqtoolkit-zep-cloud` to help ease the migration to `aiqtoolkit-zep-cloud`, and will be removed in a future release. It is recommended to use `aiqtoolkit-zep-cloud` directly for new projects. 20 | 21 | For more information about AIQ toolkit, please visit the [AIQ toolkit package](https://pypi.org/project/aiqtoolkit-zep-cloud/). 22 | -------------------------------------------------------------------------------- /packages/compat/agentiq_zep_cloud/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | build-backend = "setuptools.build_meta" 3 | requires = ["setuptools >= 64", "setuptools-scm>=8"] 4 | 5 | [tool.setuptools_scm] 6 | root = "../../.." 7 | 8 | [project] 9 | name = "agentiq-zep-cloud" 10 | dynamic = ["version"] 11 | dependencies = [ 12 | "aiqtoolkit-zep-cloud" 13 | ] 14 | readme = "pypi.md" 15 | description = "Transitional package for aiqtoolkit-zep-cloud, this package is deprecated and will be removed in the future." 16 | classifiers = ["Programming Language :: Python"] 17 | -------------------------------------------------------------------------------- /scripts/bootstrap_milvus.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 4 | # SPDX-License-Identifier: Apache-2.0 5 | # 6 | # Licensed under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. 8 | # You may obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, 14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | # See the License for the specific language governing permissions and 16 | # limitations under the License. 17 | 18 | CUR_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" 19 | 20 | python ${CUR_DIR}/langchain_web_ingest.py 21 | python ${CUR_DIR}/langchain_web_ingest.py --urls https://github.com/modelcontextprotocol/python-sdk \ 22 | --urls https://modelcontextprotocol.io/introduction \ 23 | --urls https://modelcontextprotocol.io/quickstart/server \ 24 | --urls https://modelcontextprotocol.io/quickstart/client --urls https://modelcontextprotocol.io/examples --urls https://modelcontextprotocol.io/docs/concepts/architecture --collection_name=mcp_docs 25 | -------------------------------------------------------------------------------- /src/aiq/agent/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/agent/__init__.py -------------------------------------------------------------------------------- /src/aiq/agent/react_agent/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/agent/react_agent/__init__.py -------------------------------------------------------------------------------- /src/aiq/agent/reasoning_agent/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/agent/reasoning_agent/__init__.py -------------------------------------------------------------------------------- /src/aiq/agent/register.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | # pylint: disable=unused-import 17 | # flake8: noqa 18 | 19 | # Import any workflows which need to be automatically registered here 20 | from .react_agent import register as react_agent 21 | from .reasoning_agent import reasoning_agent 22 | from .rewoo_agent import register as rewoo_agent 23 | from .tool_calling_agent import register as tool_calling_agent 24 | -------------------------------------------------------------------------------- /src/aiq/agent/rewoo_agent/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/agent/rewoo_agent/__init__.py -------------------------------------------------------------------------------- /src/aiq/agent/tool_calling_agent/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/agent/tool_calling_agent/__init__.py -------------------------------------------------------------------------------- /src/aiq/builder/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/builder/__init__.py -------------------------------------------------------------------------------- /src/aiq/builder/embedder.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | from aiq.data_models.embedder import EmbedderBaseConfig 17 | 18 | 19 | class EmbedderProviderInfo: 20 | 21 | def __init__(self, *, config: EmbedderBaseConfig, description: str): 22 | self.config = config 23 | self.provider_type = type(config).static_type() 24 | self.description = description 25 | -------------------------------------------------------------------------------- /src/aiq/builder/evaluator.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | from collections.abc import Callable 17 | 18 | from aiq.data_models.evaluator import EvaluatorBaseConfig 19 | from aiq.eval.evaluator.evaluator_model import EvalInput 20 | from aiq.eval.evaluator.evaluator_model import EvalOutput 21 | 22 | 23 | class EvaluatorInfo: 24 | 25 | def __init__(self, *, config: EvaluatorBaseConfig, evaluate_fn: Callable[[EvalInput], EvalOutput], 26 | description: str): 27 | self.config = config 28 | self.evaluate_fn = evaluate_fn 29 | self.description = description 30 | -------------------------------------------------------------------------------- /src/aiq/builder/framework_enum.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | from enum import Enum 17 | 18 | 19 | class LLMFrameworkEnum(str, Enum): 20 | LANGCHAIN = "langchain" 21 | LLAMA_INDEX = "llama_index" 22 | CREWAI = "crewai" 23 | SEMANTIC_KERNEL = "semantic_kernel" 24 | AGNO = "agno" 25 | -------------------------------------------------------------------------------- /src/aiq/builder/llm.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | from aiq.data_models.llm import LLMBaseConfig 17 | 18 | 19 | class LLMProviderInfo: 20 | 21 | def __init__(self, *, config: LLMBaseConfig, description: str): 22 | 23 | self.config = config 24 | self.provider_type = type(config).static_type() 25 | self.description = description 26 | -------------------------------------------------------------------------------- /src/aiq/builder/retriever.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | from aiq.data_models.retriever import RetrieverBaseConfig 17 | 18 | 19 | class RetrieverProviderInfo: 20 | 21 | def __init__(self, *, config: RetrieverBaseConfig, description: str): 22 | 23 | self.config = config 24 | self.provider_type = type(config).static_type() 25 | self.description = description 26 | -------------------------------------------------------------------------------- /src/aiq/cli/__init__.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /src/aiq/cli/cli_utils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/cli/cli_utils/__init__.py -------------------------------------------------------------------------------- /src/aiq/cli/commands/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/cli/commands/__init__.py -------------------------------------------------------------------------------- /src/aiq/cli/commands/configure/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/cli/commands/configure/__init__.py -------------------------------------------------------------------------------- /src/aiq/cli/commands/configure/channel/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/cli/commands/configure/channel/__init__.py -------------------------------------------------------------------------------- /src/aiq/cli/commands/configure/channel/add.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | import logging 17 | 18 | import click 19 | 20 | logger = logging.getLogger(__name__) 21 | 22 | 23 | @click.group(name=__name__, invoke_without_command=True, help="Utility to add an AIQ Toolkit remote registry channel.") 24 | @click.argument("channel_type", type=str) 25 | def add(channel_type: str) -> None: 26 | from aiq.utils.settings.global_settings import add_channel_interative 27 | 28 | add_channel_interative(channel_type=channel_type) 29 | -------------------------------------------------------------------------------- /src/aiq/cli/commands/configure/channel/remove.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | import logging 17 | 18 | import click 19 | 20 | logger = logging.getLogger(__name__) 21 | 22 | 23 | @click.group(name=__name__, 24 | invoke_without_command=True, 25 | help="Utility to remove a configured AIQ Toolkit remote registry channel.") 26 | @click.argument("channel", type=str) 27 | def remove(channel: str): 28 | from aiq.utils.settings.global_settings import remove_channel_interactive 29 | 30 | remove_channel_interactive(channel_name=channel) 31 | -------------------------------------------------------------------------------- /src/aiq/cli/commands/configure/channel/update.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | import logging 17 | 18 | import click 19 | 20 | logger = logging.getLogger(__name__) 21 | 22 | 23 | @click.group(name="update", 24 | invoke_without_command=True, 25 | help="Utility to update an AIQ Toolkit remote registry channel's settings.") 26 | @click.argument("channel", type=str) 27 | def update(channel): 28 | from aiq.utils.settings.global_settings import update_channel_interactive 29 | 30 | update_channel_interactive(channel_name=channel) 31 | -------------------------------------------------------------------------------- /src/aiq/cli/commands/configure/configure.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | import logging 17 | 18 | import click 19 | 20 | from aiq.cli.commands.configure.channel.channel import channel 21 | 22 | logger = logging.getLogger(__name__) 23 | 24 | 25 | @click.group(name=__name__, invoke_without_command=False, help="Configure AIQ Toolkit developer preferences.") 26 | def configure_command(**kwargs): 27 | """ 28 | Publish AIQ Toolkit artifacts with the specified configuration 29 | """ 30 | pass 31 | 32 | 33 | configure_command.add_command(channel, name="channel") 34 | -------------------------------------------------------------------------------- /src/aiq/cli/commands/info/__init__.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /src/aiq/cli/commands/registry/__init__.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /src/aiq/cli/commands/workflow/__init__.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /src/aiq/cli/commands/workflow/templates/__init__.py.j2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/cli/commands/workflow/templates/__init__.py.j2 -------------------------------------------------------------------------------- /src/aiq/cli/commands/workflow/templates/config.yml.j2: -------------------------------------------------------------------------------- 1 | general: 2 | use_uvloop: true 3 | logging: 4 | console: 5 | _type: console 6 | level: WARN 7 | 8 | front_end: 9 | _type: fastapi 10 | 11 | front_end: 12 | _type: console 13 | 14 | workflow: 15 | _type: {{workflow_name}} 16 | parameter: default_value 17 | -------------------------------------------------------------------------------- /src/aiq/cli/commands/workflow/templates/pyproject.toml.j2: -------------------------------------------------------------------------------- 1 | [build-system] 2 | build-backend = "setuptools.build_meta" 3 | {% if editable %}requires = ["setuptools >= 64", "setuptools-scm>=8"] 4 | 5 | [tool.setuptools_scm] 6 | root = "{{ rel_path_to_repo_root}}"{% else %}requires = ["setuptools >= 64"]{% endif %} 7 | 8 | [project] 9 | name = "{{ package_name }}" 10 | {% if editable %}dynamic = ["version"]{% else %}version = "0.1.0"{% endif %} 11 | dependencies = [ 12 | "aiqtoolkit[langchain]", 13 | ] 14 | requires-python = ">=3.11,<3.13" 15 | description = "Custom AIQ Toolkit Workflow" 16 | classifiers = ["Programming Language :: Python"] 17 | 18 | {% if editable %}[tool.uv.sources] 19 | aiqtoolkit = { path = "{{ rel_path_to_repo_root}}", editable = true }{% endif %} 20 | 21 | [project.entry-points.'aiq.components'] 22 | {{ package_name }} = "{{ package_name }}.register" 23 | -------------------------------------------------------------------------------- /src/aiq/cli/commands/workflow/templates/register.py.j2: -------------------------------------------------------------------------------- 1 | # pylint: disable=unused-import 2 | # flake8: noqa 3 | 4 | # Import any tools which need to be automatically registered here 5 | from {{package_name}} import {{workflow_name}}_function 6 | -------------------------------------------------------------------------------- /src/aiq/data_models/__init__.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /src/aiq/data_models/embedder.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | import typing 17 | 18 | from .common import BaseModelRegistryTag 19 | from .common import TypedBaseModel 20 | 21 | 22 | class EmbedderBaseConfig(TypedBaseModel, BaseModelRegistryTag): 23 | pass 24 | 25 | 26 | EmbedderBaseConfigT = typing.TypeVar("EmbedderBaseConfigT", bound=EmbedderBaseConfig) 27 | -------------------------------------------------------------------------------- /src/aiq/data_models/evaluator.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | import typing 17 | 18 | from .common import BaseModelRegistryTag 19 | from .common import TypedBaseModel 20 | 21 | 22 | class EvaluatorBaseConfig(TypedBaseModel, BaseModelRegistryTag): 23 | pass 24 | 25 | 26 | EvaluatorBaseConfigT = typing.TypeVar("EvaluatorBaseConfigT", bound=EvaluatorBaseConfig) 27 | -------------------------------------------------------------------------------- /src/aiq/data_models/front_end.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | import typing 17 | 18 | from .common import BaseModelRegistryTag 19 | from .common import TypedBaseModel 20 | 21 | 22 | class FrontEndBaseConfig(TypedBaseModel, BaseModelRegistryTag): 23 | pass 24 | 25 | 26 | FrontEndConfigT = typing.TypeVar("FrontEndConfigT", bound=FrontEndBaseConfig) 27 | -------------------------------------------------------------------------------- /src/aiq/data_models/function.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | import typing 17 | 18 | from .common import BaseModelRegistryTag 19 | from .common import TypedBaseModel 20 | 21 | 22 | class FunctionBaseConfig(TypedBaseModel, BaseModelRegistryTag): 23 | pass 24 | 25 | 26 | class EmptyFunctionConfig(FunctionBaseConfig, name="EmptyFunctionConfig"): 27 | pass 28 | 29 | 30 | FunctionConfigT = typing.TypeVar("FunctionConfigT", bound=FunctionBaseConfig) 31 | -------------------------------------------------------------------------------- /src/aiq/data_models/llm.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | import typing 17 | 18 | from .common import BaseModelRegistryTag 19 | from .common import TypedBaseModel 20 | 21 | 22 | class LLMBaseConfig(TypedBaseModel, BaseModelRegistryTag): 23 | pass 24 | 25 | 26 | LLMBaseConfigT = typing.TypeVar("LLMBaseConfigT", bound=LLMBaseConfig) 27 | -------------------------------------------------------------------------------- /src/aiq/data_models/logging.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | import typing 17 | 18 | from .common import BaseModelRegistryTag 19 | from .common import TypedBaseModel 20 | 21 | 22 | class LoggingBaseConfig(TypedBaseModel, BaseModelRegistryTag): 23 | pass 24 | 25 | 26 | LoggingMethodConfigT = typing.TypeVar("LoggingMethodConfigT", bound=LoggingBaseConfig) 27 | -------------------------------------------------------------------------------- /src/aiq/data_models/memory.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | import typing 17 | 18 | from .common import BaseModelRegistryTag 19 | from .common import TypedBaseModel 20 | 21 | 22 | class MemoryBaseConfig(TypedBaseModel, BaseModelRegistryTag): 23 | pass 24 | 25 | 26 | MemoryBaseConfigT = typing.TypeVar("MemoryBaseConfigT", bound=MemoryBaseConfig) 27 | -------------------------------------------------------------------------------- /src/aiq/data_models/registry_handler.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | import typing 17 | 18 | from .common import BaseModelRegistryTag 19 | from .common import TypedBaseModel 20 | 21 | 22 | class RegistryHandlerBaseConfig(TypedBaseModel, BaseModelRegistryTag): 23 | pass 24 | 25 | 26 | RegistryHandlerBaseConfigT = typing.TypeVar("RegistryHandlerBaseConfigT", bound=RegistryHandlerBaseConfig) 27 | -------------------------------------------------------------------------------- /src/aiq/data_models/streaming.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | import inspect 17 | import typing 18 | from collections.abc import Callable 19 | 20 | _T = typing.TypeVar("_T") 21 | 22 | 23 | class Streaming(typing.Generic[_T]): 24 | 25 | def __init__(self, *, convert: Callable[[typing.Any], _T] = None): 26 | self.convert = convert 27 | 28 | sig = inspect.signature(self.convert) 29 | 30 | if (sig.return_annotation == inspect.Parameter.empty): 31 | raise ValueError("convert must have a return annotation") 32 | 33 | self.single_output_type = sig.return_annotation 34 | -------------------------------------------------------------------------------- /src/aiq/data_models/telemetry_exporter.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | import typing 17 | 18 | from .common import BaseModelRegistryTag 19 | from .common import TypedBaseModel 20 | 21 | 22 | class TelemetryExporterBaseConfig(TypedBaseModel, BaseModelRegistryTag): 23 | pass 24 | 25 | 26 | TelemetryExporterConfigT = typing.TypeVar("TelemetryExporterConfigT", bound=TelemetryExporterBaseConfig) 27 | -------------------------------------------------------------------------------- /src/aiq/embedder/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/embedder/__init__.py -------------------------------------------------------------------------------- /src/aiq/embedder/register.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | # pylint: disable=unused-import 17 | # flake8: noqa 18 | # isort:skip_file 19 | 20 | # Import any providers which need to be automatically registered here 21 | from . import nim_embedder 22 | from . import openai_embedder 23 | # Import any clients which need to be automatically registered here 24 | from . import langchain_client 25 | -------------------------------------------------------------------------------- /src/aiq/eval/__init__.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /src/aiq/eval/dataset_handler/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/eval/dataset_handler/__init__.py -------------------------------------------------------------------------------- /src/aiq/eval/evaluator/__init__.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /src/aiq/eval/rag_evaluator/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/eval/rag_evaluator/__init__.py -------------------------------------------------------------------------------- /src/aiq/eval/register.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | # flake8: noqa 17 | # pylint: disable=unused-import 18 | 19 | # Import evaluators which need to be automatically registered here 20 | from .rag_evaluator.register import register_ragas_evaluator 21 | from .swe_bench_evaluator.register import register_swe_bench_evaluator 22 | from .trajectory_evaluator.register import register_trajectory_evaluator 23 | from .tunable_rag_evaluator.register import register_tunable_rag_evaluator 24 | -------------------------------------------------------------------------------- /src/aiq/eval/swe_bench_evaluator/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/eval/swe_bench_evaluator/__init__.py -------------------------------------------------------------------------------- /src/aiq/eval/trajectory_evaluator/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/eval/trajectory_evaluator/__init__.py -------------------------------------------------------------------------------- /src/aiq/eval/tunable_rag_evaluator/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/eval/tunable_rag_evaluator/__init__.py -------------------------------------------------------------------------------- /src/aiq/eval/utils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/eval/utils/__init__.py -------------------------------------------------------------------------------- /src/aiq/front_ends/__init__.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /src/aiq/front_ends/console/__init__.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /src/aiq/front_ends/console/register.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | from aiq.cli.register_workflow import register_front_end 17 | from aiq.data_models.config import AIQConfig 18 | from aiq.front_ends.console.console_front_end_config import ConsoleFrontEndConfig 19 | 20 | 21 | @register_front_end(config_type=ConsoleFrontEndConfig) 22 | async def register_fastapi_front_end(config: ConsoleFrontEndConfig, full_config: AIQConfig): 23 | from aiq.front_ends.console.console_front_end_plugin import ConsoleFrontEndPlugin 24 | 25 | yield ConsoleFrontEndPlugin(full_config=full_config) 26 | -------------------------------------------------------------------------------- /src/aiq/front_ends/cron/__init__.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /src/aiq/front_ends/fastapi/__init__.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /src/aiq/front_ends/fastapi/register.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | from aiq.cli.register_workflow import register_front_end 17 | from aiq.data_models.config import AIQConfig 18 | from aiq.front_ends.fastapi.fastapi_front_end_config import FastApiFrontEndConfig 19 | 20 | 21 | @register_front_end(config_type=FastApiFrontEndConfig) 22 | async def register_fastapi_front_end(config: FastApiFrontEndConfig, full_config: AIQConfig): 23 | from aiq.front_ends.fastapi.fastapi_front_end_plugin import FastApiFrontEndPlugin 24 | 25 | yield FastApiFrontEndPlugin(full_config=full_config) 26 | -------------------------------------------------------------------------------- /src/aiq/front_ends/mcp/__init__.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /src/aiq/front_ends/mcp/register.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | from collections.abc import AsyncIterator 17 | 18 | from aiq.cli.register_workflow import register_front_end 19 | from aiq.data_models.config import AIQConfig 20 | from aiq.front_ends.mcp.mcp_front_end_config import MCPFrontEndConfig 21 | 22 | 23 | @register_front_end(config_type=MCPFrontEndConfig) 24 | async def register_mcp_front_end(config: MCPFrontEndConfig, full_config: AIQConfig) -> AsyncIterator: 25 | from aiq.front_ends.mcp.mcp_front_end_plugin import MCPFrontEndPlugin 26 | 27 | yield MCPFrontEndPlugin(full_config=full_config) 28 | -------------------------------------------------------------------------------- /src/aiq/front_ends/register.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | # pylint: disable=unused-import 17 | # flake8: noqa 18 | # isort:skip_file 19 | 20 | from .console import register as console_register 21 | from .fastapi import register as fastapi_register 22 | from .mcp import register as mcp_register 23 | -------------------------------------------------------------------------------- /src/aiq/front_ends/simple_base/__init__.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /src/aiq/llm/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/llm/__init__.py -------------------------------------------------------------------------------- /src/aiq/llm/register.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | # pylint: disable=unused-import 17 | # flake8: noqa 18 | # isort:skip_file 19 | 20 | # Import any providers which need to be automatically registered here 21 | from . import aws_bedrock_llm 22 | from . import nim_llm 23 | from . import openai_llm 24 | -------------------------------------------------------------------------------- /src/aiq/llm/utils/__init__.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /src/aiq/llm/utils/error.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | IMPORT_ERROR_MESSAGE = ( 17 | "{package} not found. Install it and other additional dependencies by running the following command:\n") 18 | -------------------------------------------------------------------------------- /src/aiq/memory/__init__.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | """ 16 | AIQ Toolkit Memory Module 17 | 18 | This package provides foundational classes and interfaces 19 | for managing text-based memory in AIQ Toolkit's LLM-based agents. 20 | """ 21 | -------------------------------------------------------------------------------- /src/aiq/meta/module_to_distro.json: -------------------------------------------------------------------------------- 1 | { 2 | "aiq": "aiqtoolkit" 3 | } 4 | -------------------------------------------------------------------------------- /src/aiq/observability/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/observability/__init__.py -------------------------------------------------------------------------------- /src/aiq/plugins/.namespace: -------------------------------------------------------------------------------- 1 | Note: This is a python namespace package and this directory should remain empty. Do NOT add a `__init__.py` file or any other files to this directory. This file is also needed to ensure the directory exists in git. 2 | -------------------------------------------------------------------------------- /src/aiq/profiler/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/profiler/__init__.py -------------------------------------------------------------------------------- /src/aiq/profiler/callbacks/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/profiler/callbacks/__init__.py -------------------------------------------------------------------------------- /src/aiq/profiler/callbacks/base_callback_class.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | from abc import ABC 17 | 18 | 19 | class BaseProfilerCallback(ABC): 20 | pass 21 | -------------------------------------------------------------------------------- /src/aiq/profiler/callbacks/token_usage_base_model.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | from pydantic import BaseModel 17 | from pydantic import Field 18 | 19 | 20 | class TokenUsageBaseModel(BaseModel): 21 | """ 22 | Base model for token usage callbacks. 23 | """ 24 | 25 | prompt_tokens: int = Field(default=0, description="Number of tokens in the prompt.") 26 | completion_tokens: int = Field(default=0, description="Number of tokens in the completion.") 27 | total_tokens: int = Field(default=0, description="Number of tokens total.") 28 | -------------------------------------------------------------------------------- /src/aiq/profiler/decorators/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/profiler/decorators/__init__.py -------------------------------------------------------------------------------- /src/aiq/profiler/forecasting/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/profiler/forecasting/__init__.py -------------------------------------------------------------------------------- /src/aiq/profiler/forecasting/config.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | # If you have any global constants or defaults 17 | DEFAULT_MODEL_TYPE = "randomforest" 18 | DEFAULT_MATRIX_LENGTH = 10 19 | -------------------------------------------------------------------------------- /src/aiq/profiler/forecasting/models/__init__.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | # forecasting/models/__init__.py 17 | 18 | from .forecasting_base_model import ForecastingBaseModel 19 | from .linear_model import LinearModel 20 | from .random_forest_regressor import RandomForestModel 21 | 22 | __all__ = ["ForecastingBaseModel", "LinearModel", "RandomForestModel"] 23 | -------------------------------------------------------------------------------- /src/aiq/profiler/inference_optimization/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/profiler/inference_optimization/__init__.py -------------------------------------------------------------------------------- /src/aiq/profiler/inference_optimization/bottleneck_analysis/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/profiler/inference_optimization/bottleneck_analysis/__init__.py -------------------------------------------------------------------------------- /src/aiq/profiler/inference_optimization/experimental/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/profiler/inference_optimization/experimental/__init__.py -------------------------------------------------------------------------------- /src/aiq/registry_handlers/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/registry_handlers/__init__.py -------------------------------------------------------------------------------- /src/aiq/registry_handlers/local/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/registry_handlers/local/__init__.py -------------------------------------------------------------------------------- /src/aiq/registry_handlers/pypi/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/registry_handlers/pypi/__init__.py -------------------------------------------------------------------------------- /src/aiq/registry_handlers/register.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | # pylint: disable=unused-import 17 | # flake8: noqa 18 | 19 | from .local import register_local # pylint: disable=E0611 20 | from .pypi import register_pypi # pylint: disable=E0611 21 | from .rest import register_rest # pylint: disable=E0611 22 | -------------------------------------------------------------------------------- /src/aiq/registry_handlers/rest/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/registry_handlers/rest/__init__.py -------------------------------------------------------------------------------- /src/aiq/registry_handlers/schemas/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/registry_handlers/schemas/__init__.py -------------------------------------------------------------------------------- /src/aiq/retriever/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/retriever/__init__.py -------------------------------------------------------------------------------- /src/aiq/retriever/milvus/__init__.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /src/aiq/retriever/nemo_retriever/__init__.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /src/aiq/retriever/register.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | # pylint: disable=unused-import 17 | # flake8: noqa 18 | # isort:skip_file 19 | 20 | # Import any providers which need to be automatically registered here 21 | import aiq.retriever.milvus.register 22 | import aiq.retriever.nemo_retriever.register 23 | -------------------------------------------------------------------------------- /src/aiq/runtime/__init__.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /src/aiq/settings/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/settings/__init__.py -------------------------------------------------------------------------------- /src/aiq/test/.namespace: -------------------------------------------------------------------------------- 1 | Note: This is a python namespace package and this directory should remain empty. Do NOT add a `__init__.py` file or any other files to this directory. This file is also needed to ensure the directory exists in git. 2 | -------------------------------------------------------------------------------- /src/aiq/tool/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/tool/__init__.py -------------------------------------------------------------------------------- /src/aiq/tool/code_execution/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/tool/code_execution/__init__.py -------------------------------------------------------------------------------- /src/aiq/tool/code_execution/local_sandbox/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024-2025, NVIDIA CORPORATION. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | -------------------------------------------------------------------------------- /src/aiq/tool/code_execution/local_sandbox/sandbox.requirements.txt: -------------------------------------------------------------------------------- 1 | numpy 2 | pandas 3 | scipy 4 | ipython -------------------------------------------------------------------------------- /src/aiq/tool/code_execution/local_sandbox/start_local_sandbox.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Copyright (c) 2024-2025, NVIDIA CORPORATION. All rights reserved. 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | # NOTE: needs to run from the root of the repo! 18 | 19 | SANDBOX_NAME=${1:-'local-sandbox'} 20 | NUM_THREADS=10 21 | 22 | 23 | docker build --tag=${SANDBOX_NAME} --build-arg="UWSGI_PROCESSES=$((${NUM_THREADS} * 10))" --build-arg="UWSGI_CHEAPER=${NUM_THREADS}" -f Dockerfile.sandbox . 24 | 25 | docker run --network=host --rm --name=local-sandbox ${SANDBOX_NAME} 26 | -------------------------------------------------------------------------------- /src/aiq/tool/github_tools/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/tool/github_tools/__init__.py -------------------------------------------------------------------------------- /src/aiq/tool/mcp/__init__.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | -------------------------------------------------------------------------------- /src/aiq/tool/memory_tools/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/tool/memory_tools/__init__.py -------------------------------------------------------------------------------- /src/aiq/utils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/utils/__init__.py -------------------------------------------------------------------------------- /src/aiq/utils/data_models/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/utils/data_models/__init__.py -------------------------------------------------------------------------------- /src/aiq/utils/exception_handlers/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/utils/exception_handlers/__init__.py -------------------------------------------------------------------------------- /src/aiq/utils/io/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/utils/io/__init__.py -------------------------------------------------------------------------------- /src/aiq/utils/reactive/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/utils/reactive/__init__.py -------------------------------------------------------------------------------- /src/aiq/utils/reactive/base/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/utils/reactive/base/__init__.py -------------------------------------------------------------------------------- /src/aiq/utils/settings/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/NeMo-Agent-Toolkit/74503fa2e6d80397da0e17f8bd48e9d7b0071241/src/aiq/utils/settings/__init__.py -------------------------------------------------------------------------------- /src/aiq/utils/url_utils.py: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | 17 | def url_join(*parts): 18 | """ 19 | Functionally similar to `os.path.join` but for URLs. This function will join the parts of a URL together, ensuring 20 | that the resulting URL is valid and all `/` have been deduped. 21 | 22 | Returns 23 | ------- 24 | str 25 | The joined URL. 26 | """ 27 | return "/".join(str(part).strip("/") for part in parts) 28 | -------------------------------------------------------------------------------- /tests/aiq/server/config.yml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | app: 17 | host: "localhost" 18 | ws: "websocket" 19 | port: 8000 20 | config_filepath: 'examples/simple/configs/config.yml' 21 | input: "Can you provide me with the most read content about LangSmith?" 22 | 23 | endpoint: 24 | generate: "/generate" 25 | chat: "/chat" 26 | generate_stream: "/generate/stream" 27 | chat_stream: "/chat/stream" 28 | -------------------------------------------------------------------------------- /tests/test_data/config.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | general: 17 | use_uvloop: false 18 | 19 | functions: {} 20 | 21 | llms: {} 22 | 23 | workflow: 24 | _type: test_workflow 25 | llm_name: test 26 | functions: [] 27 | prompt: test 28 | -------------------------------------------------------------------------------- /tests/test_data/invalid_yaml.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | general: 17 | use_uvloop: false 18 | 19 | functions: [ 20 | 21 | llms: [] 22 | 23 | workflow: 24 | _type: 25 | llm_name: test 26 | functions: [] 27 | prompt: test 28 | -------------------------------------------------------------------------------- /tests/test_data/missing_section_config.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | 17 | functions: {} 18 | 19 | llms: {} 20 | 21 | workflow: 22 | _type: fake 23 | llm_name: test 24 | functions: [] 25 | prompt: test 26 | -------------------------------------------------------------------------------- /tests/test_data/missing_type_config.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | general: 17 | use_uvloop: false 18 | 19 | functions: [] 20 | 21 | llms: [] 22 | 23 | workflow: 24 | llm_name: test 25 | functions: [] 26 | prompt: test 27 | --------------------------------------------------------------------------------