Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
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
2 changes: 2 additions & 0 deletions docs/agents/plugins.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ nemo services run
| Evaluator | Optional model and agent evaluation workflows |
| Auditor | Red-teaming against deployed agents |
| Anonymizer | PII handling for training data |
| Insights | Analyze agent telemetry and persist actionable insights |
| Experimentalist | Optimize agents and author evaluations |

## Coding-Agent Skills

Expand Down
2 changes: 2 additions & 0 deletions plugins/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,9 @@ The package name is the `name` field in the plugin's `pyproject.toml`, not the d
| `nemo-anonymizer/` | `nemo-anonymizer-plugin` |
| `nemo-data-designer/` | `nemo-data-designer-plugin` |
| `nemo-evaluator/` | `nemo-evaluator-plugin` |
| `nemo-experimentalist/` | `nemo-experimentalist-plugin` |
| `nemo-guardrails/` | `nemo-guardrails-plugin` |
| `nemo-insights/` | `nemo-insights-plugin` |
| `nemo-switchyard/` | `nemo-switchyard` |

Example:
Expand Down
8 changes: 4 additions & 4 deletions plugins/nemo-insights/README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# NeMo Insights

Optional NeMo Platform plugin for analyzing agent telemetry and persisting actionable insights.
NeMo Platform plugin for analyzing agent telemetry and persisting actionable insights.

## Install from the monorepo

```bash
uv sync --group insights
uv sync
```

The plugin is intentionally not part of `enabled-plugins`.
The plugin is installed by default through the root workspace's `enabled-plugins` group.

## CLI

Expand Down Expand Up @@ -86,7 +86,7 @@ export NEMO_INSIGHTS_ANALYST_TIMEZONE=America/Denver
## Development

```bash
uv run --group insights pytest plugins/nemo-insights/tests
uv run pytest plugins/nemo-insights/tests
uv run ruff check plugins/nemo-insights
```

Expand Down
12 changes: 7 additions & 5 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -66,10 +66,10 @@ dependencies = [
version = "0.0.0"

[dependency-groups]
# Optional Insights analyst plugin.
# Insights analyst plugin convenience group.
insights = ["nemo-insights-plugin"]
# Optional Experimentalist agent-optimization plugin.
experimentalist = ["nemo-experimentalist-plugin"]
# Experimentalist and its nooa framework currently support Python 3.12 and 3.13.
experimentalist = ["nemo-experimentalist-plugin ; python_full_version < '3.14'"]
dev = [
"pre-commit>=3.8.0",
"pydantic-settings>=2.6.1",
Expand Down Expand Up @@ -170,6 +170,8 @@ enabled-plugins = [
"nemo-anonymizer-plugin",
"nemo-data-designer-plugin",
"nemo-evaluator-plugin",
"nemo-insights-plugin",
"nemo-experimentalist-plugin ; python_full_version < '3.14'",
"nemo-guardrails-plugin",
"nemo-auditor-plugin",
"nemo-safe-synthesizer-plugin",
Expand Down Expand Up @@ -555,9 +557,9 @@ extra-paths = [
# nemo-evaluator plugin is not a workspace member; add its src so ty can
# resolve nemo_evaluator imports when checking plugin test files.
"plugins/nemo-evaluator/src",
# The optional Insights analyst is not part of the default environment.
# Source path for the Insights analyst plugin.
"plugins/nemo-insights/src",
# Same for the optional Experimentalist; its tests also import the benchmark runner.
# Source path for Experimentalist; its tests also import the benchmark runner.
"plugins/nemo-experimentalist/src",
# Agentic-use tests place both tests/agentic-use and tests/agentic-use/shared
# on sys.path in tests/conftest.py.
Expand Down
4 changes: 2 additions & 2 deletions services/studio/src/nmp/studio/env_mappings.py
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ class EnvMapping:
default="true",
),
EnvMapping(
marker="STUDIO_UI_VITE_FF_INTAKE_ENABLED", config_path="studio.feature_flags.intake_enabled", default="false"
marker="STUDIO_UI_VITE_FF_INTAKE_ENABLED", config_path="studio.feature_flags.intake_enabled", default="true"
),
EnvMapping(
marker="STUDIO_UI_VITE_FF_JOBS_ENABLED", config_path="studio.feature_flags.jobs_enabled", default="true"
Expand All @@ -146,7 +146,7 @@ class EnvMapping:
EnvMapping(
marker="STUDIO_UI_VITE_FF_OPTIMIZER_ENABLED",
config_path="studio.feature_flags.optimizer_enabled",
default="false",
default="true",
),
EnvMapping(
marker="STUDIO_UI_VITE_FF_SAFE_SYNTHESIZER_ENABLED",
Expand Down
28 changes: 28 additions & 0 deletions third_party/licenses.jsonl
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,10 @@
{"name": "dataclasses-json", "license": "MIT", "compatible": true}
{"name": "datasets", "license": "APACHE-2.0", "compatible": true}
{"name": "defusedxml", "license": "PSF-2.0", "compatible": true}
{"name": "deprecation", "license": "APACHE-2.0", "compatible": true}
{"name": "diff-cover", "license": "APACHE-2.0", "compatible": true}
{"name": "dill", "license": "BSD-3-CLAUSE", "compatible": true}
{"name": "dirhash", "license": "MIT", "compatible": true}
{"name": "distro", "license": "APACHE-2.0", "compatible": true}
{"name": "dnspython", "license": "ISC", "compatible": true}
{"name": "docker", "license": "APACHE-2.0", "compatible": true}
Expand All @@ -72,22 +74,30 @@
{"name": "flatbuffers", "license": "APACHE-2.0", "compatible": true}
{"name": "frozenlist", "license": "APACHE-2.0", "compatible": true}
{"name": "fsspec", "license": "BSD-3-CLAUSE", "compatible": true}
{"name": "genai-prices", "license": "MIT", "compatible": true}
{"name": "gitdb", "license": "BSD-3-CLAUSE", "compatible": true}
{"name": "gitpython", "license": "BSD-3-CLAUSE", "compatible": true}
{"name": "google-auth", "license": "APACHE-2.0", "compatible": true}
{"name": "googleapis-common-protos", "license": "APACHE-2.0", "compatible": true}
{"name": "greenlet", "license": "MIT", "compatible": true}
{"name": "griffelib", "license": "ISC", "compatible": true}
{"name": "grpcio", "license": "APACHE-2.0", "compatible": true}
{"name": "gunicorn", "license": "MIT", "compatible": true}
{"name": "h11", "license": "MIT", "compatible": true}
{"name": "h2", "license": "MIT", "compatible": true}
{"name": "harbor", "license": "APACHE-2.0", "compatible": true}
{"name": "hf-xet", "license": "APACHE-2.0", "compatible": true}
{"name": "hpack", "license": "MIT", "compatible": true}
{"name": "httpcore", "license": "BSD-3-CLAUSE", "compatible": true}
{"name": "httpcore2", "license": "BSD-3-CLAUSE", "compatible": true}
{"name": "httptools", "license": "MIT", "compatible": true}
{"name": "httpx", "license": "BSD-3-CLAUSE", "compatible": true}
{"name": "httpx-retries", "license": "MIT", "compatible": true}
{"name": "httpx-sse", "license": "MIT", "compatible": true}
{"name": "httpx2", "license": "BSD-3-CLAUSE", "compatible": true}
{"name": "huggingface-hub", "license": "APACHE-2.0", "compatible": true}
{"name": "hvac", "license": "APACHE-2.0", "compatible": true}
{"name": "hyperframe", "license": "MIT", "compatible": true}
{"name": "idna", "license": "BSD-3-CLAUSE", "compatible": true}
{"name": "importlib-metadata", "license": "APACHE-2.0", "compatible": true}
{"name": "instructor", "license": "MIT", "compatible": true}
Expand Down Expand Up @@ -133,6 +143,7 @@
{"name": "langsmith", "license": "MIT", "compatible": true}
{"name": "lark", "license": "MIT", "compatible": true}
{"name": "litellm", "license": "MIT", "compatible": true}
{"name": "logfire-api", "license": "MIT", "compatible": true}
{"name": "loguru", "license": "MIT", "compatible": true}
{"name": "lxml", "license": "BSD-3-CLAUSE", "compatible": true}
{"name": "lz4", "license": "BSD-3-CLAUSE", "compatible": true}
Expand All @@ -159,6 +170,7 @@
{"name": "networkx", "license": "BSD-3-CLAUSE", "compatible": true}
{"name": "ngcsdk", "license": "APACHE-2.0", "compatible": true}
{"name": "nltk", "license": "APACHE-2.0", "compatible": true}
{"name": "nooa", "license": "APACHE-2.0", "compatible": true}
{"name": "numpy", "license": "BSD-3-CLAUSE", "compatible": true}
{"name": "nvidia-ml-py", "license": "BSD-3-CLAUSE", "compatible": true}
{"name": "nvidia-nat-atif", "license": "APACHE-2.0", "compatible": true}
Expand All @@ -174,6 +186,8 @@
{"name": "openai", "license": "APACHE-2.0", "compatible": true}
{"name": "openapi-pydantic", "license": "MIT", "compatible": true}
{"name": "openevals", "license": "MIT", "compatible": true}
{"name": "openinference-instrumentation", "license": "APACHE-2.0", "compatible": true}
{"name": "openinference-instrumentation-litellm", "license": "APACHE-2.0", "compatible": true}
{"name": "openinference-semantic-conventions", "license": "APACHE-2.0", "compatible": true}
{"name": "opentelemetry-api", "license": "APACHE-2.0", "compatible": true}
{"name": "opentelemetry-distro", "license": "APACHE-2.0", "compatible": true}
Expand Down Expand Up @@ -209,6 +223,7 @@
{"name": "pluggy", "license": "MIT", "compatible": true}
{"name": "polling2", "license": "MIT", "compatible": true}
{"name": "portalocker", "license": "BSD-3-CLAUSE", "compatible": true}
{"name": "postgrest", "license": "MIT", "compatible": true}
{"name": "prettytable", "license": "BSD-3-CLAUSE", "compatible": true}
{"name": "prometheus-client", "license": "APACHE-2.0", "compatible": true}
{"name": "prometheus-fastapi-instrumentator", "license": "ISC", "compatible": true}
Expand All @@ -224,8 +239,12 @@
{"name": "pyasn1-modules", "license": "BSD-3-CLAUSE", "compatible": true}
{"name": "pycparser", "license": "BSD-3-CLAUSE", "compatible": true}
{"name": "pydantic", "license": "MIT", "compatible": true}
{"name": "pydantic-ai-harness", "license": "MIT", "compatible": true}
{"name": "pydantic-ai-slim", "license": "MIT", "compatible": true}
{"name": "pydantic-core", "license": "MIT", "compatible": true}
{"name": "pydantic-extra-types", "license": "MIT", "compatible": true}
{"name": "pydantic-graph", "license": "MIT", "compatible": true}
{"name": "pydantic-monty", "license": "MIT", "compatible": true}
{"name": "pydantic-settings", "license": "MIT", "compatible": true}
{"name": "pygments", "license": "BSD-2-CLAUSE", "compatible": true}
{"name": "pyjwt", "license": "MIT", "compatible": true}
Expand All @@ -240,6 +259,7 @@
{"name": "pytz", "license": "MIT", "compatible": true}
{"name": "pyyaml", "license": "MIT", "compatible": true}
{"name": "ragas", "license": "APACHE-2.0", "compatible": true}
{"name": "realtime", "license": "MIT", "compatible": true}
{"name": "referencing", "license": "MIT", "compatible": true}
{"name": "regex", "license": "APACHE-2.0", "compatible": true}
{"name": "requests", "license": "APACHE-2.0", "compatible": true}
Expand All @@ -256,6 +276,7 @@
{"name": "s3transfer", "license": "APACHE-2.0", "compatible": true}
{"name": "sacrebleu", "license": "APACHE-2.0", "compatible": true}
{"name": "safetensors", "license": "APACHE-2.0", "compatible": true}
{"name": "scantree", "license": "MIT", "compatible": true}
{"name": "scikit-network", "license": "BSD-3-CLAUSE", "compatible": true}
{"name": "scipy", "license": "BSD-3-CLAUSE", "compatible": true}
{"name": "secretstorage", "license": "BSD-3-CLAUSE", "compatible": true}
Expand All @@ -275,18 +296,25 @@
{"name": "sqlparse", "license": "BSD-3-CLAUSE", "compatible": true}
{"name": "sse-starlette", "license": "BSD-3-CLAUSE", "compatible": true}
{"name": "starlette", "license": "BSD-3-CLAUSE", "compatible": true}
{"name": "storage3", "license": "MIT", "compatible": true}
{"name": "streaming-form-data", "license": "MIT", "compatible": true}
{"name": "strenum", "license": "MIT", "compatible": true}
{"name": "structlog", "license": "APACHE-2.0", "compatible": true}
{"name": "supabase", "license": "MIT", "compatible": true}
{"name": "supabase-auth", "license": "MIT", "compatible": true}
{"name": "supabase-functions", "license": "MIT", "compatible": true}
{"name": "sympy", "license": "BSD-3-CLAUSE", "compatible": true}
{"name": "tabulate", "license": "MIT", "compatible": true}
{"name": "tblib", "license": "BSD-2-CLAUSE", "compatible": true}
{"name": "tenacity", "license": "APACHE-2.0", "compatible": true}
{"name": "tiktoken", "license": "MIT", "compatible": true}
{"name": "tokenizers", "license": "APACHE-2.0", "compatible": true}
{"name": "toml", "license": "MIT", "compatible": true}
{"name": "tomlkit", "license": "MIT", "compatible": true}
{"name": "tornado", "license": "APACHE-2.0", "compatible": true}
{"name": "tqdm", "license": "MIT", "compatible": true}
{"name": "transformers", "license": "APACHE-2.0", "compatible": true}
{"name": "truststore", "license": "MIT", "compatible": true}
{"name": "typer", "license": "MIT", "compatible": true}
{"name": "types-aioboto3", "license": "MIT", "compatible": true}
{"name": "types-aiobotocore", "license": "MIT", "compatible": true}
Expand Down
Loading
Loading