Skip to content

test: add model-parameterized onboarding testcase#994

Open
denispetre wants to merge 2 commits into
mainfrom
feat/model-onboarding-testcase
Open

test: add model-parameterized onboarding testcase#994
denispetre wants to merge 2 commits into
mainfrom
feat/model-onboarding-testcase

Conversation

@denispetre

Copy link
Copy Markdown

What

Adds testcases/model-onboarding/ — a standalone LangGraph testcase that exercises one runtime-specified model across the distinct get_chat_model code paths it is expected to support, plus optional file attachments, rolling every path × file cell into a single success boolean.

Unlike multimodal-invoke (which hardcodes its model matrix), the model is supplied via input.json — onboarding a new model requires no code change.

How to use

Edit input.json:

{
  "prompt": "Describe the content of this file in one sentence.",
  "model_spec": {
    "model_name": "gpt-5.2-2025-12-11",
    "paths": ["azure_responses", "azure_chat_completions"],
    "agenthub_config": "agentsplayground",
    "files": ["image", "pdf"]
  }
}
  • paths — which get_chat_model code paths to exercise. Keys: azure_responses, azure_chat_completions, vertex, bedrock_converse, bedrock_invoke, anthropic_sdk. List only the paths the model actually ships on.
  • filesimage / pdf, or [] for a text-only reachability check (plain ainvoke).

Design notes

  • A PATH_REGISTRY maps each code-path key to a builder closure.
  • Uses the full-strength assert pattern (nupkg, status, non-empty summary, "Successful execution." in the local run log, and trace assertions via expected_traces.json) rather than multimodal-invoke's minimal assert.
  • Settings-construction failures (missing auth) surface as a legible settings: ✗ … summary instead of crashing the node.

Running it

Auto-discovered by integration_tests.yml and run across the alpha, staging, and cloud (prod) matrix with per-environment secrets. README.md documents both the local and CI run mechanisms.

Verified locally: graph compiles, input.json validates, all six paths + two files register, and the defensive branches produce legible failures. A live LLM run needs real tenant credentials (uipath auth), so it is exercised in CI.

🤖 Generated with Claude Code

Adds testcases/model-onboarding/, a standalone LangGraph testcase that
exercises a single runtime-specified model across the distinct
get_chat_model code paths it is expected to support, plus optional file
attachments, rolling every path x file cell into one success boolean.

Unlike multimodal-invoke (which hardcodes its model matrix), the model is
supplied via input.json — onboarding a new model requires no code change.
A PATH_REGISTRY maps six code-path keys (azure_responses,
azure_chat_completions, vertex, bedrock_converse, bedrock_invoke,
anthropic_sdk) to builder closures; files [] runs a text-only reachability
check via plain ainvoke.

Uses the full-strength assert pattern (nupkg, status, non-empty summary,
"Successful execution." in the local run log, and trace assertions via
expected_traces.json) rather than multimodal-invoke's minimal assert.

Auto-discovered by integration_tests.yml and run across the alpha, staging,
and cloud (prod) matrix with per-environment secrets. README documents both
the local and CI run mechanisms.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 16, 2026 08:34

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Adds .github/workflows/model_onboarding.yml, a workflow_dispatch workflow
that runs the model-onboarding testcase against a model named at dispatch
time. Inputs (model_name, paths, files, prompt, agenthub_config,
environments) are written into input.json at runtime via jq, so changing
the model under test no longer requires editing or committing a file.

Environments are selectable and fan out via matrix; each leg uses its own
ALPHA_*/STAGING_*/CLOUD_* secrets. The comma-separated path/file lists are
normalized in the shell before jq to avoid regex escaping hazards in YAML.

README documents this as Mechanism B (on-demand, no commit); the existing
push/PR integration matrix becomes Mechanism C (regression gate).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants