Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ Security campaigns are created and managed from the **{% data variables.product.

You choose the alerts that you want to include in the campaign by using either:

* **Campaign templates**: Campaign templates contain filters for the most common alert selections. {% ifversion security-campaigns-autofix %}For code campaigns, they also all include the requirement that {% data variables.copilot.copilot_autofix %} is supported for all the alert types included (that is, `autofix:supported`).{% endif %}
* **Campaign templates**: Campaign templates contain filters for the most common alert selections. {% ifversion security-campaigns-autofix %}When agentic autofix is disabled, they also use `autofix:supported` to include only alerts for rules supported by {% data variables.copilot.copilot_autofix %}.{% endif %}
* **Custom filters**: Creating a campaign using custom filters lets you define your own criteria for selecting alerts for the campaign, and lets you tailor your campaign to your organization's specific needs.

{% data reusables.code-scanning.campaigns-api %}
Expand Down Expand Up @@ -74,7 +74,11 @@ All the template filters use `is:open` to include only alerts that need to be re
Additional default filters for {% data variables.product.prodname_code_scanning %} alerts:

* `autofilter:true` includes only alerts that appear to be in application code. {% ifversion security-campaigns-autofix %}
* `autofix:supported` includes only alerts that are for rules that are supported for {% data variables.copilot.copilot_autofix %}.{% endif %}

> [!NOTE]
> When agentic autofix is enabled for your organization or enterprise, the `autofix` filter is unavailable, and adding `autofix:supported` does not change the results. For alerts in repositories where {% data variables.copilot.copilot_cloud_agent %} and {% data variables.copilot.copilot_autofix_short %} are available, you can use **Assign to {% data variables.product.prodname_copilot_short %}** for any {% data variables.product.prodname_code_scanning %} alert in a campaign.

{% endif %}

For more information about filtering alerts, see [AUTOTITLE](/code-security/tutorials/secure-your-organization/best-practice-fix-alerts-at-scale#2-select-alerts-for-your-campaign) and [AUTOTITLE](/code-security/how-tos/manage-security-alerts/remediate-alerts-at-scale/filtering-alerts-in-security-overview).

Expand All @@ -84,11 +88,11 @@ For more information about filtering alerts, see [AUTOTITLE](/code-security/tuto

{% endif %}

In addition to the core filters, you will usually want to add a filter to limit results to a specific rule name, severity, or tag.
Use `autofilter:true` with `rule:`, `tag:`, or `severity:` to scope your campaign.

* `is:open autofilter:true {% ifversion security-campaigns-autofix %}autofix:supported {% endif %}rule:java/log-injection` to show only alerts for log injection in Java code. See [AUTOTITLE](/code-security/reference/code-scanning/codeql/codeql-queries).
* `is:open autofilter:true {% ifversion security-campaigns-autofix %}autofix:supported {% endif %}tag:external/cwe/cwe-117` to show only alerts for "CWE 117: Improper Output Neutralization for Logs". This includes log injection in Java and other languages.
* `is:open autofilter:true {% ifversion security-campaigns-autofix %}autofix:supported {% endif %}severity:critical` to show only alerts with a security severity of critical.
* `is:open autofilter:true rule:java/log-injection` to show only alerts for log injection in Java code. See [AUTOTITLE](/code-security/reference/code-scanning/codeql/codeql-queries).
* `is:open autofilter:true tag:external/cwe/cwe-117` to show only alerts for "CWE 117: Improper Output Neutralization for Logs". This includes log injection in Java and other languages.
* `is:open autofilter:true severity:critical` to show only alerts with a security severity of critical.

{% ifversion security-campaigns-secrets %}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,10 @@ You can click any result to see full details of the relevant query and the line

| Qualifier | Description |
| -------- | -------- |
|`autofilter`|Display only alerts that appear to be in application code (`autofilter:true`).|
|{% ifversion code-scanning-autofix %}|
|`autofix`|Display only alerts for rules supported by {% data variables.copilot.copilot_autofix %} (`autofix:supported`). When agentic autofix is enabled for your organization or enterprise, this filter is unavailable and does not affect results.|
|{% endif %}|
|`is`|Display {% data variables.product.prodname_code_scanning %} alerts that are open (`open`) or closed (`closed`).|
|`resolution`| Display {% data variables.product.prodname_code_scanning %} alerts closed as "false positive" (`false-positive`), "fixed" (`fixed`), "used in tests" (`used-in-tests`), or "won't fix" (`wont-fix`).|
|`rule`|Display {% data variables.product.prodname_code_scanning %} alerts identified by the specified rule.|
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ The following third-party agents are supported on {% data variables.product.gith

When starting a task with a third-party agent, you can select the AI model used by the agent. You may find that different models perform better, or provide more useful responses, depending on the type of task. For help deciding which model to use, see [AUTOTITLE](/copilot/reference/ai-models/model-comparison).

You can also select **Auto**, which allows {% data variables.copilot.copilot_auto_model_selection %} to choose the best available model on your behalf. See [AUTOTITLE](/copilot/concepts/models/auto-model-selection).
You can also select **Auto**, which chooses between the supported models below. Choosing **Auto** with third-party agents does **not** leverage {% data variables.copilot.copilot_auto_model_selection %}. See [AUTOTITLE](/copilot/concepts/models/auto-model-selection).

The following models are available for each agent:

Expand Down
2 changes: 1 addition & 1 deletion content/copilot/concepts/agents/anthropic-claude.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,4 @@ When starting a task with the {% data variables.product.prodname_anthropic_claud
* Auto
{% data reusables.copilot.anthropic-claude-agent-models %}

If you select **Auto**, {% data variables.copilot.copilot_auto_model_selection %} will select the best model based on availability and to help reduce rate limiting. For more information, see [AUTOTITLE](/copilot/concepts/models/auto-model-selection).
If you select **Auto**, it will choose one of the available models listed above. **Auto** in {% data variables.product.prodname_anthropic_claude %} coding agent does **not** leverage {% data variables.copilot.copilot_auto_model_selection %}.
2 changes: 1 addition & 1 deletion content/copilot/concepts/agents/openai-codex.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ When starting a task with the {% data variables.product.prodname_openai_codex %}
* Auto
{% data reusables.copilot.openai-codex-agent-models %}

If you select **Auto**, {% data variables.copilot.copilot_auto_model_selection %} will select the best model based on availability and to help reduce rate limiting. For more information, see [AUTOTITLE](/copilot/concepts/models/auto-model-selection).
If you select **Auto**, it will choose one of the available models listed above. **Auto** in {% data variables.product.prodname_openai_codex %} coding agent does **not** leverage {% data variables.copilot.copilot_auto_model_selection %}.

## {% data variables.product.prodname_vscode_shortname %} extension

Expand Down
30 changes: 5 additions & 25 deletions content/copilot/concepts/models/auto-model-selection.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,12 @@ More than just a model picker, {% data variables.copilot.copilot_auto_model_sele

### Auto with task optimization

> [!NOTE] {% data variables.copilot.copilot_auto_model_selection_short_cap_a %} with task optimization is generally available in {% data variables.copilot.copilot_chat_short %} on the {% data variables.product.github %} website, in {% data variables.product.prodname_vscode_shortname %}, in {% data variables.copilot.copilot_cli_short %}, and in {% data variables.copilot.github_copilot_app %}.
> [!NOTE] {% data variables.copilot.copilot_auto_model_selection_short_cap_a %} with task optimization is generally available in {% data variables.copilot.copilot_chat_short %} on the {% data variables.product.github %} website, in {% data variables.product.prodname_vscode_shortname %}, in {% data variables.copilot.copilot_cli_short %}, in {% data variables.copilot.github_copilot_app %}, and in JetBrains IDEs.

{% data variables.copilot.copilot_auto_model_selection_short_cap_a %} with task optimization combines two systems to provide high quality results and better reliability. One system tracks real-time system health and availability, while the other evaluates task complexity. Putting these together, {% data variables.copilot.copilot_auto_model_selection_short %} routes the task to the optimal model.

Routing occurs along natural cache boundaries to avoid additional cache related costs. Switching models mid-session has shown increased cost without ample improvements in quality.
Routing occurs along natural cache boundaries and large drifts in conversation complexity to avoid additional cache related costs without quality improvements.

This helps you get more value from {% data variables.product.prodname_copilot_short %} since it matches each task to the model that can solve it most efficiently. That means reserving higher-cost reasoning models for problems that truly need it, while routing straightforward tasks to faster, lower-cost models that still deliver great results.

Benefits of using {% data variables.copilot.copilot_auto_model_selection_short %} include:
Expand Down Expand Up @@ -87,38 +88,17 @@ When you select **Auto**, {% data variables.copilot.copilot_auto_model_selection

> [!TIP]
> You can see which model was used for each {% data variables.product.prodname_copilot_short %} response.
> * In **{% data variables.copilot.copilot_chat_short %}**, hover over the response.
> * In **{% data variables.copilot.copilot_chat_short %}** and **{% data variables.copilot.github_copilot_app %}**, hover over the response.
> * In **{% data variables.copilot.copilot_cli_short %}**, the model used for each response displays in the terminal.
> * In **{% data variables.copilot.copilot_cloud_agent %}**, the model used for each response displays at the end of the response.
> * In **{% data variables.copilot.github_copilot_app %}**, the model used for each response is shown by the model picker next to **Auto**.

### {% data variables.copilot.copilot_chat_short %} in IDEs

{% data variables.copilot.copilot_auto_model_selection_short_cap_a %}, with task optimization, is generally available in the following IDEs:
* {% data variables.product.prodname_vscode_shortname %}
* JetBrains IDEs

{% data variables.copilot.copilot_auto_model_selection_short_cap_a %}, optimized for model reliability and availability, is generally available in the following IDEs:
* JetBrains IDEs
* Eclipse
* Xcode
* {% data variables.product.prodname_vs %}

## {% data variables.copilot.copilot_auto_model_selection_short_cap_a %} in third-party agents

When you select **Auto** in the {% data variables.product.prodname_openai_codex %} or {% data variables.product.prodname_anthropic_claude %} coding agents, {% data variables.copilot.copilot_auto_model_selection_short_cap_a %} chooses from the supported list of models, subject to your policies and subscription type.

### {% data variables.product.prodname_openai_codex %} supported models

These models are available for {% data variables.copilot.copilot_auto_model_selection_short_cap_a %} in the {% data variables.product.prodname_openai_codex %} coding agent.

{% data reusables.copilot.openai-codex-agent-models %}

For more information, see [AUTOTITLE](/copilot/concepts/agents/openai-codex).

### {% data variables.product.prodname_anthropic_claude %} supported models

These models are available for {% data variables.copilot.copilot_auto_model_selection_short_cap_a %} in the {% data variables.product.prodname_anthropic_claude %} coding agent.

{% data reusables.copilot.anthropic-claude-agent-models %}

For more information, see [AUTOTITLE](/copilot/concepts/agents/anthropic-claude).
4 changes: 2 additions & 2 deletions content/copilot/tutorials/optimize-ai-usage.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ See [AUTOTITLE](/copilot/reference/ai-models/supported-models#models-with-extend

A small router looks at your prompt and sends it to the model that can **handle it most efficiently**, reserving expensive reasoning models for complex problems. It also avoids models that burn through a token budget quickly.

{% data variables.copilot.copilot_auto_model_selection_short_cap_a %} also **protects your cache**. It only changes models at natural cache boundaries, when a new session starts or after you run `/compact`, never mid-task. To understand more about why this matters, see [4. Preserve the cache](#4-preserve-the-cache).
{% data variables.copilot.copilot_auto_model_selection_short_cap_a %} also **protects your cache**. It changes models at natural cache boundaries, when a new session starts or after you run `/compact`. As conversations evolve, it will re-route at points where quality improvements outweigh cache loss. To understand more about why this matters, see [4. Preserve the cache](#4-preserve-the-cache).

{% data variables.copilot.copilot_auto_model_selection_short_cap_a %} also routes around degraded or busy models, so you hit fewer rate limits and errors.

Expand Down Expand Up @@ -198,4 +198,4 @@ Teams that invest in these guardrails see fewer retries, faster task completion,
Monitor and manage your spending to get the most out of your {% data variables.product.prodname_ai_credits_short %}:

* **Use your dashboard and budget controls**. The "AI usage" page, under https://github.com/settings/billing, breaks down consumption across every feature and model, so you can see where your credits are actually going and adjust accordingly. See [AUTOTITLE](/copilot/how-tos/manage-and-track-spending/monitor-ai-usage).
* **Upgrade for a larger allowance**. If you regularly approach your monthly limit, a higher plan may be more economical than paying for additional usage, as higher plans have more {% data variables.product.prodname_ai_credit_singular %} allowance. See [AUTOTITLE](/copilot/get-started/plans#github-ai-credits-allowance-by-plan) and [AUTOTITLE](/copilot/how-tos/manage-your-account/view-and-change-your-copilot-plan).
* **Upgrade for a larger allowance**. If you regularly approach your monthly limit, a higher plan may be more economical than paying for additional usage, as higher plans have more {% data variables.product.prodname_ai_credit_singular %} allowance. See [AUTOTITLE](/copilot/get-started/plans#github-ai-credits-allowance-by-plan) and [AUTOTITLE](/copilot/how-tos/manage-your-account/view-and-change-your-copilot-plan).
18 changes: 18 additions & 0 deletions data/tables/copilot/auto-model-selection.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,18 @@
cli: true
app: true

- name: GPT-6 Luna
cloud_agent: true
chat: true
cli: true
app: true

- name: GPT-6 Sol
cloud_agent: true
chat: true
cli: true
app: true

# Anthropic
- name: Claude Haiku 4.5
cloud_agent: true
Expand All @@ -75,6 +87,12 @@
cli: true
app: true

- name: Claude Opus 5.5
cloud_agent: true
chat: true
cli: true
app: true

- name: Claude Sonnet 4.6
cloud_agent: false
chat: true
Expand Down
Loading
Loading