Skip to content
Merged
Show file tree
Hide file tree
Changes from 18 commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
aed0b16
Updating versions for v1.5.0
mnajafian-nv Dec 16, 2025
24764fa
feat: save root weave call ID in context state
thepatrickchin Oct 22, 2025
9cb5dd4
feat: set weave call id in response header for non-streaming endpoints
thepatrickchin Oct 22, 2025
26de5ea
feat: add automatic infrastructure route for Weave reaction feedbacks
thepatrickchin Nov 12, 2025
c34814b
feat: propagate weave call id to websocket messages and intermediate …
thepatrickchin Nov 12, 2025
80ce85e
chore: update tests for changes related to Weave call ID
thepatrickchin Nov 12, 2025
8475e45
docs: update documentation for Weave feedback integration
thepatrickchin Nov 13, 2025
dc474e5
refactor: implement coderabbit suggestions
thepatrickchin Nov 14, 2025
33d653c
refactor: rename and generalize weave_call_id to observability_trace_id
thepatrickchin Nov 14, 2025
6892299
refactor: move Weave /feedback route to separate FastAPI plugin
thepatrickchin Nov 14, 2025
065e2d6
refactor: send observability trace ID as separate SSE event instead o…
thepatrickchin Nov 19, 2025
1984727
refactor: send observability trace ID as separate websocket message
thepatrickchin Nov 20, 2025
edcf0e0
fix: resolve build errors and implement CodeRabbit suggestions
thepatrickchin Nov 20, 2025
60a23e3
fix: use session auth and async-safe weave calls in /feedback handler
thepatrickchin Dec 9, 2025
292410a
fix: update session manager initialization in Weave FastAPI plugin wo…
thepatrickchin Dec 16, 2025
970df5f
fix: update broken links in documentation
thepatrickchin Dec 17, 2025
02d9e01
refactor: apply coderabbit suggestion on exception handler
thepatrickchin Dec 17, 2025
15a99ce
refactor: apply coderabbit suggestion on type hints
thepatrickchin Dec 17, 2025
45857c1
fix: update weave feedback endpoint test
thepatrickchin Dec 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions docs/source/reference/rest-api/api-server-endpoints.md
Original file line number Diff line number Diff line change
Expand Up @@ -536,6 +536,26 @@ If you're migrating from OpenAI's API:
2. **Update Model Names**: Use your configured model identifiers
3. **Test Compatibility**: Verify all features work as expected

## Feedback Endpoint
- **Route:** `/feedback`
- **Description:** Add reaction feedback for an assistant message through observability trace ID. This endpoint is available when using the Weave FastAPI plugin worker. For setup instructions, see the [Weave observability guide](../../run-workflows/observe/observe-workflow-with-weave.md#user-feedback-integration).
- **HTTP Request Example:**
```bash
curl --request POST \
--url http://localhost:8000/feedback \
--header 'Content-Type: application/json' \
--data '{
"observability_trace_id": "01933b2e-1234-5678-9abc-def012345678",
"reaction_type": "👍"
}'
```
- **HTTP Response Example:**
```json
{
"message": "Added reaction '👍' to call 01933b2e-1234-5678-9abc-def012345678"
}
```

## Evaluation Endpoint
You can also evaluate workflows via the NeMo Agent toolkit `evaluate` endpoint. For more information, refer to the [NeMo Agent toolkit Evaluation Endpoint](./evaluate-api.md) documentation.

Expand Down
17 changes: 17 additions & 0 deletions docs/source/reference/rest-api/websockets.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ to the client.
- `system_response_message`
- `system_interaction_message`
- `user_interaction_message`
- `observability_trace_message`
- `error_message`
- `schema_type`: Defines the response schema for a given workflow
- `id`: A unique identifier for the message.
Expand Down Expand Up @@ -386,3 +387,19 @@ System Human Interaction messages are sent from the server to the client contain
"timestamp": "2025-01-13T10:00:03Z"
}
```

### System Observability Trace Message
Definition: This message contains the observability trace ID for tracking requests across services.
#### System Observability Trace Message Example:
```json
{
"type": "observability_trace_message",
"id": "trace_001",
"parent_id": "id from user message",
"conversation_id": "string",
"content": {
"observability_trace_id": "019a9f4d-072a-77b0-aff1-262550329c13"
},
"timestamp": "2025-01-20T10:00:00Z"
}
```
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,28 @@ See the [Microsoft Presidio documentation](https://microsoft.github.io/presidio/

Additionally, the `redact_keys` parameter allows you to specify custom keys that should be redacted beyond the default sensitive keys (`api_key`, `auth_headers`, `authorization`).

## User Feedback Integration

When using Weave telemetry with the FastAPI front end, you can enable a `/feedback` endpoint that allows users to provide thumbs-up and thumbs-down feedback on agent responses. This feedback is linked to specific traces in your Weave project for analysis.

### Enabling the Feedback Endpoint

To enable the feedback endpoint, configure your workflow to use the `WeaveFastAPIPluginWorker`:

```yaml
general:
front_end:
_type: fastapi
runner_class: nat.plugins.weave.fastapi_plugin_worker.WeaveFastAPIPluginWorker
telemetry:
tracing:
weave:
_type: weave
project: "nat-demo"
```

The `WeaveFastAPIPluginWorker` registers the `/feedback` endpoint when Weave telemetry is configured. For more details on the feedback API, see the [API Server Endpoints](../../reference/rest-api/api-server-endpoints.md#feedback-endpoint) documentation.

## Resources

- Learn more about tracing [here](https://weave-docs.wandb.ai/guides/tracking/tracing).
Expand Down
6 changes: 5 additions & 1 deletion docs/source/versions1.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
[
{
"version": "1.4",
"version": "1.5",
"preferred": true,
"url": "../1.5/"
},
{
"version": "1.4",
"url": "https://docs.nvidia.com/nemo/agent-toolkit/1.3/"
},
{
Expand Down
4 changes: 2 additions & 2 deletions examples/A2A/currency_agent_a2a/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ root = "../../.."
name = "nat_currency_agent_a2a"
dynamic = ["version"]
dependencies = [
"nvidia-nat[a2a]~=1.4",
"nvidia-nat[mcp]~=1.4",
"nvidia-nat[a2a]~=1.5",
"nvidia-nat[mcp]~=1.5",
"mcp-server-time~=2025.8"
]
requires-python = ">=3.11,<3.14"
Expand Down
4 changes: 2 additions & 2 deletions examples/A2A/math_assistant_a2a/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ root = "../../.."
name = "nat_math_assistant_a2a"
dynamic = ["version"]
dependencies = [
"nvidia-nat[a2a]~=1.4",
"nvidia-nat[mcp]~=1.4",
"nvidia-nat[a2a]~=1.5",
"nvidia-nat[mcp]~=1.5",
"mcp-server-time~=2025.8"
]
requires-python = ">=3.11,<3.14"
Expand Down
2 changes: 1 addition & 1 deletion examples/HITL/por_to_jiratickets/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ root = "../../.."
[project]
name = "nat_por_to_jiratickets"
dynamic = ["version"]
dependencies = ["nvidia-nat[langchain]~=1.4"]
dependencies = ["nvidia-nat[langchain]~=1.5"]
requires-python = ">=3.11,<3.14"
description = "Custom NeMo Agent toolkit Workflow"
classifiers = ["Programming Language :: Python"]
Expand Down
2 changes: 1 addition & 1 deletion examples/HITL/simple_calculator_hitl/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ root = "../../.."
name = "nat_simple_calculator_hitl"
dynamic = ["version"]
dependencies = [
"nvidia-nat[langchain]~=1.4",
"nvidia-nat[langchain]~=1.5",
"nat_simple_calculator",
"nat_por_to_jiratickets",
]
Expand Down
2 changes: 1 addition & 1 deletion examples/MCP/kaggle_mcp/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ root = "../../.."
name = "nat_kaggle_mcp"
dynamic = ["version"]
dependencies = [
"nvidia-nat[mcp]~=1.4",
"nvidia-nat[mcp]~=1.5",
]
requires-python = ">=3.11,<3.14"
description = "Kaggle MCP integration example with bearer token authentication"
Expand Down
2 changes: 1 addition & 1 deletion examples/MCP/service_account_auth_mcp/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ root = "../../.."
name = "nat_service_account_auth_mcp"
dynamic = ["version"]
dependencies = [
"nvidia-nat[mcp]~=1.4",
"nvidia-nat[mcp]~=1.5",
]
requires-python = ">=3.11,<3.14"
description = "MCP Service Account Authentication - demonstrates headless OAuth2 service account authentication for MCP servers"
Expand Down
2 changes: 1 addition & 1 deletion examples/MCP/simple_auth_mcp/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ root = "../../.."
name = "nat_simple_auth_mcp"
dynamic = ["version"]
dependencies = [
"nvidia-nat[mcp]~=1.4",
"nvidia-nat[mcp]~=1.5",
]
requires-python = ">=3.11,<3.14"
description = "Simple MCP authentication example"
Expand Down
4 changes: 2 additions & 2 deletions examples/MCP/simple_calculator_mcp/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ root = "../../.."
name = "nat_simple_calculator_mcp"
dynamic = ["version"]
dependencies = [
"nvidia-nat[langchain]~=1.4",
"nvidia-nat[mcp]~=1.4",
"nvidia-nat[langchain]~=1.5",
"nvidia-nat[mcp]~=1.5",
"nat_simple_calculator",
"mcp-server-time~=2025.8"
]
Expand Down
2 changes: 1 addition & 1 deletion examples/RAG/simple_rag/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ root = "../../.."
name = "nat_simple_rag"
dynamic = ["version"]
dependencies = [
"nvidia-nat[ingestion,langchain,mem0ai]~=1.4",
"nvidia-nat[ingestion,langchain,mem0ai]~=1.5",
]
requires-python = ">=3.11,<3.14"
description = "Simple NeMo Agent toolkit Rag example"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ root = "../../.."
name = "nat_alert_triage_agent"
dynamic = ["version"]
dependencies = [
"nvidia-nat[langchain]~=1.4",
"nvidia-nat[langchain]~=1.5",
"langchain-core", # version determined by nvidia-nat[langchain]
"pandas>=2.0.0",
"ansible-runner>=2.3.0",
Expand Down
2 changes: 1 addition & 1 deletion examples/advanced_agents/profiler_agent/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ dependencies = [
# of precision in the version specifier. For example, use `~=1.2` instead of `~=1.2.3` and `~=0.1.3` instead of
# `~=0.1.3.5`.
# Keep sorted!!!
"nvidia-nat[langchain,profiling,telemetry]~=1.4",
"nvidia-nat[langchain,profiling,telemetry]~=1.5",
"arize-phoenix-client~=1.21.0",
"pydantic", # version determined by nvidia-nat
]
Expand Down
2 changes: 1 addition & 1 deletion examples/config_inheritance/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ root = "../.."
name = "config_inheritance"
dynamic = ["version"]
dependencies = [
"nvidia-nat[langchain]~=1.4",
"nvidia-nat[langchain]~=1.5",
]
requires-python = ">=3.11,<3.14"
description = "Example workflows demonstrating NAT config inheritance"
Expand Down
2 changes: 1 addition & 1 deletion examples/control_flow/router_agent/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ root = "../../.."
name = "nat_router_agent"
dynamic = ["version"]
dependencies = [
"nvidia-nat[langchain]~=1.4"
"nvidia-nat[langchain]~=1.5"
]
requires-python = ">=3.11,<3.14"
description = "Router Agent for NeMo Agent toolkit"
Expand Down
2 changes: 1 addition & 1 deletion examples/control_flow/sequential_executor/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ root = "../../.."
name = "nat_sequential_executor"
dynamic = ["version"]
dependencies = [
"nvidia-nat[langchain]~=1.4",
"nvidia-nat[langchain]~=1.5",
]
requires-python = ">=3.11,<3.14"
description = "Sequential executor for NeMo Agent toolkit"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ root = "../../.."
name = "nat_automated_description_generation"
dynamic = ["version"]
dependencies = [
"nvidia-nat[ingestion,langchain]~=1.4",
"nvidia-nat[ingestion,langchain]~=1.5",
"usearch~=2.21.0",
]
requires-python = ">=3.11,<3.14"
Expand Down
2 changes: 1 addition & 1 deletion examples/custom_functions/plot_charts/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ root = "../../.."
name = "nat_plot_charts"
dynamic = ["version"]
dependencies = [
"nvidia-nat[langchain]~=1.4",
"nvidia-nat[langchain]~=1.5",
"matplotlib~=3.9",
"seaborn==0.13.*",
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ root = "../../../.."
name = "text_file_ingest"
dynamic = ["version"]
dependencies = [
"nvidia-nat[langchain]~=1.4",
"nvidia-nat[langchain]~=1.5",
"beautifulsoup4~=4.13",
"usearch~=2.21.0",
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ root = "../../.."
name = "nat_email_phishing_analyzer"
dynamic = ["version"]
dependencies = [
"nvidia-nat[langchain,phoenix]~=1.4",
"nvidia-nat[langchain,phoenix]~=1.5",
"beautifulsoup4~=4.13",
"networkx~=3.4",
"openinference-instrumentation-langchain==0.1.29",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ root = "../../.."
name = "nat_simple_calculator_eval"
dynamic = ["version"]
dependencies = [
"nvidia-nat[langchain]~=1.4",
"nvidia-nat[langchain]~=1.5",
"nat_simple_calculator",
]
requires-python = ">=3.11,<3.14"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ root = "../../.."
name = "nat_simple_web_query_eval"
dynamic = ["version"]
dependencies = [
"nvidia-nat[langchain,profiling]~=1.4",
"nvidia-nat[langchain,profiling]~=1.5",
"nat_simple_web_query",
]
requires-python = ">=3.11,<3.14"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ root = "../../.."
name = "nat_swe_bench"
dynamic = ["version"]
dependencies = [
"nvidia-nat[langchain]~=1.4",
"nvidia-nat[langchain]~=1.5",
"swebench==3.0.3",
]

Expand Down
2 changes: 1 addition & 1 deletion examples/finetuning/dpo_tic_tac_toe/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ root = "../../.."
name = "nat_dpo_tic_tac_toe"
dynamic = ["version"]
dependencies = [
"nvidia-nat[langchain]~=1.4",
"nvidia-nat[langchain]~=1.5",
# langchain-aws pins numpy to 1.* for Python <3.12 -- remove once package is updated
"numpy~=1.26; python_version < '3.12'",
"numpy~=2.3; python_version >= '3.12'",
Expand Down
4 changes: 2 additions & 2 deletions examples/finetuning/rl_with_openpipe_art/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ root = "../../.."
name = "nat_rl_with_openpipe_art"
dynamic = ["version"]
dependencies = [
"nvidia-nat[langchain]~=1.4",
"nvidia-nat[openpipe-art]~=1.4"
"nvidia-nat[langchain]~=1.5",
"nvidia-nat[openpipe-art]~=1.5"
]
requires-python = ">=3.11,<3.14"
description = "NeMo Agent Toolkit Workflow Demonstrating GRPO with OpenPipe ART"
Expand Down
2 changes: 1 addition & 1 deletion examples/frameworks/adk_demo/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ requires-python = ">=3.11,<3.14"
dependencies = [
"zstandard",
"matplotlib~=3.9",
"nvidia-nat[adk]~=1.4"
"nvidia-nat[adk]~=1.5"
]
description = "Google ADK Example"
keywords = ["ai", "agents", "tools", "adk"]
Expand Down
4 changes: 2 additions & 2 deletions examples/frameworks/agno_personal_finance/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ root = "../../.."
name = "nat_agno_personal_finance"
dynamic = ["version"]
dependencies = [
"nvidia-nat[agno]~=1.4",
"nvidia-nat[litellm,openai]~=1.4",
"nvidia-nat[agno]~=1.5",
"nvidia-nat[litellm,openai]~=1.5",
]
requires-python = ">=3.11,<3.14"
description = "Custom NeMo Agent toolkit Workflow using Agno for personal finance"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ root = "../../.."
name = "nat_haystack_deep_research_agent"
dynamic = ["version"]
dependencies = [
"nvidia-nat[nvidia_haystack]~=1.4",
"nvidia-nat[nvidia_haystack]~=1.5",
"haystack-ai~=2.18.1",
"opensearch-haystack~=4.2.0",
"trafilatura~=2.0.0",
Expand Down
2 changes: 1 addition & 1 deletion examples/frameworks/multi_frameworks/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ root = "../../.."
name = "nat_multi_frameworks"
dynamic = ["version"]
dependencies = [
"nvidia-nat[langchain,llama-index,openai,nvidia_haystack]~=1.4",
"nvidia-nat[langchain,llama-index,nvidia_haystack,openai]~=1.5",
"arxiv~=2.1.3",
"beautifulsoup4~=4.13",
"markdown-it-py~=3.0",
Expand Down
2 changes: 1 addition & 1 deletion examples/frameworks/semantic_kernel_demo/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ root = "../../.."
name = "nat_semantic_kernel_demo"
dynamic = ["version"]
dependencies = [
"nvidia-nat[langchain,mem0ai,semantic-kernel]~=1.4",
"nvidia-nat[langchain,mem0ai,semantic-kernel]~=1.5",
"usearch==2.21.0",
]
requires-python = ">=3.11,<3.14"
Expand Down
2 changes: 1 addition & 1 deletion examples/frameworks/strands_demo/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ root = "../../.."
name = "nat_strands_demo"
dynamic = ["version"]
dependencies = [
"nvidia-nat[strands,langchain,profiling]~=1.4",
"nvidia-nat[langchain,profiling,strands]~=1.5",
]
requires-python = ">=3.11,<3.14"
description = "Strands example using NeMo Agent toolkit"
Expand Down
2 changes: 1 addition & 1 deletion examples/front_ends/per_user_workflow/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ root = "../../.."
name = "nat_per_user_workflow"
dynamic = ["version"]
dependencies = [
"nvidia-nat~=1.4",
"nvidia-nat~=1.5",
]
requires-python = ">=3.11,<3.14"
description = "Per-User Workflow NeMo Agent Toolkit example"
Expand Down
2 changes: 1 addition & 1 deletion examples/front_ends/simple_auth/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ root = "../../.."
name = "nat_simple_auth"
dynamic = ["version"]
dependencies = [
"nvidia-nat[langchain]~=1.4",
"nvidia-nat[langchain]~=1.5",
"httpx",
]
requires-python = ">=3.11,<3.14"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ root = "../../.."
name = "nat_simple_calculator_custom_routes"
dynamic = ["version"]
dependencies = [
"nvidia-nat[langchain]~=1.4",
"nvidia-nat[langchain]~=1.5",
"nat_simple_calculator",
]
requires-python = ">=3.11,<3.14"
Expand Down
Loading
Loading