-
Notifications
You must be signed in to change notification settings - Fork 3.3k
docs: add model capabilities guide and update provider documentation with tool_use #6901
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
16 commits
Select commit
Hold shift + click to select a range
d2cd9b3
docs: add model capabilities guide and update provider documentation
bdougie ced7170
docs: add model-capabilities to navigation menu
bdougie 2de4a4c
docs: add model compatibility matrix to model capabilities guide
bdougie 53cc34d
docs: refactor troubleshooting content for model capabilities
bdougie 5572f29
docs: improve model capabilities guide formatting and structure
bdougie d781605
fix: remove css fix
bdougie a23cd28
docs: update model capabilities and setup documentation
bdougie 2762484
docs: add more context to model setup bdougie/con-3178
bdougie 1c67770
fix: update naming
bdougie 6f50cf4
fix: response to pr review
bdougie 0adbf9c
Update docs/customize/deep-dives/model-capabilities.mdx
bdougie f778c40
Update docs/customize/deep-dives/model-capabilities.mdx
bdougie d21cca6
Update docs/customize/model-providers/top-level/ollama.mdx
bdougie ed19565
fix: remove note
bdougie cd27c8a
docs: clarify model capabilities configuration and detection
bdougie 3280391
fix: update columns
bdougie File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,246 @@ | ||
--- | ||
title: Model Capabilities | ||
description: Understanding and configuring model capabilities for tools and image support | ||
keywords: [capabilities, tools, function calling, image input, config] | ||
--- | ||
|
||
Continue needs to know what features your models support to provide the best experience. This guide explains how model capabilities work and how to configure them. | ||
|
||
## What are Model Capabilities? | ||
|
||
Model capabilities tell Continue what features a model supports: | ||
|
||
- **`tool_use`** - Whether the model can use tools and functions | ||
- **`image_input`** - Whether the model can process images | ||
|
||
Without proper capability configuration, you may encounter issues like: | ||
|
||
- Agent mode being unavailable (requires tools) | ||
- Tools not working at all | ||
- Image uploads being disabled | ||
|
||
## How Continue Detects Capabilities | ||
|
||
Continue uses a two-tier system for determining model capabilities: | ||
|
||
### 1. Automatic Detection (Default) | ||
bdougie marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
Continue automatically detects capabilities based on your provider and model name. For example: | ||
|
||
- **OpenAI**: GPT-4 and GPT-3.5 Turbo models support tools | ||
- **Anthropic**: Claude 3.5+ models support both tools and images | ||
- **Ollama**: Most models support tools, vision models support images | ||
- **Google**: All Gemini models support function calling | ||
|
||
This works well for popular models, but may not cover custom deployments or newer models. | ||
|
||
For implementation details, see: | ||
|
||
- [toolSupport.ts](https://github.com/continuedev/continue/blob/main/core/llm/toolSupport.ts) - Tool capability detection logic | ||
- [@continuedev/llm-info](https://www.npmjs.com/package/@continuedev/llm-info) - Image support detection | ||
|
||
### 2. Manual Configuration | ||
|
||
You can add capabilities to models that Continue doesn't automatically detect in your `config.yaml`. | ||
|
||
<Note> | ||
You cannot override autodetection - you can only add capabilities. Continue will always use its built-in knowledge about your model in addition to any capabilities you specify. | ||
</Note> | ||
|
||
```yaml | ||
models: | ||
- name: my-custom-gpt4 | ||
provider: openai | ||
apiBase: https://my-deployment.com/v1 | ||
model: gpt-4-custom | ||
capabilities: | ||
- tool_use | ||
- image_input | ||
``` | ||
|
||
## When to Add Capabilities | ||
|
||
Add capabilities when: | ||
|
||
1. **Using custom deployments** - Your API endpoint serves a model with different capabilities than the standard version | ||
2. **Using newer models** - Continue doesn't yet recognize a newly released model | ||
bdougie marked this conversation as resolved.
Show resolved
Hide resolved
|
||
3. **Experiencing issues** - Autodetection isn't working correctly for your setup | ||
4. **Using proxy services** - Some proxy services modify model capabilities | ||
|
||
## Configuration Examples | ||
|
||
### Basic Configuration | ||
|
||
Add tool support for a model that Continue doesn't recognize: | ||
|
||
```yaml | ||
models: | ||
- name: custom-model | ||
provider: openai | ||
model: my-fine-tuned-gpt4 | ||
capabilities: | ||
- tool_use | ||
``` | ||
|
||
<Info> | ||
The `tool_use` capability is for native tool/function calling support. The | ||
model must actually support tools for this to work. | ||
</Info> | ||
|
||
<Warning> | ||
**Experimental**: System message tools are available as an experimental feature | ||
for models without native tool support. These are not automatically used as a | ||
fallback and must be explicitly configured. Most models are trained for native | ||
tools, so system message tools may not work as well. | ||
</Warning> | ||
|
||
### Disable Capabilities | ||
|
||
Explicitly set no capabilities (autodetection will still apply): | ||
|
||
```yaml | ||
models: | ||
- name: limited-claude | ||
provider: anthropic | ||
model: claude-4.0-sonnet | ||
capabilities: [] # Empty array doesn't disable autodetection | ||
``` | ||
|
||
<Warning> | ||
An empty capabilities array does not disable autodetection. Continue will | ||
still detect and use the model's actual capabilities. To truly limit a model's | ||
capabilities, you would need to use a model that doesn't support those | ||
features. | ||
</Warning> | ||
|
||
### Multiple Capabilities | ||
|
||
Enable both tools and image support: | ||
|
||
```yaml | ||
models: | ||
- name: multimodal-gpt | ||
provider: openai | ||
model: gpt-4-vision-preview | ||
capabilities: | ||
- tool_use | ||
- image_input | ||
``` | ||
|
||
## Common Scenarios | ||
|
||
Some providers and custom deployments may require explicit capability configuration: | ||
|
||
- **OpenRouter**: May not preserve the original model's capabilities | ||
- **Custom API endpoints**: May have different capabilities than standard models | ||
- **Local models**: May need explicit capabilities if using non-standard model names | ||
|
||
Example configuration: | ||
|
||
```yaml | ||
models: | ||
- name: custom-deployment | ||
provider: openai | ||
apiBase: https://custom-api.company.com/v1 | ||
model: custom-gpt | ||
capabilities: | ||
- tool_use # If supports function calling | ||
- image_input # If supports vision | ||
``` | ||
|
||
## Troubleshooting | ||
|
||
For troubleshooting capability-related issues like Agent mode being unavailable or tools not working, see the [Troubleshooting guide](/troubleshooting#agent-mode-is-unavailable-or-tools-arent-working). | ||
|
||
## Best Practices | ||
|
||
1. **Start with autodetection** - Only override if you experience issues | ||
2. **Test after changes** - Verify tools and images work as expected | ||
3. **Keep Continue updated** - Newer versions improve autodetection | ||
|
||
Remember: Setting capabilities only adds to autodetection. Continue will still use its built-in knowledge about your model in addition to your specified capabilities. | ||
|
||
## Model Capability Support | ||
|
||
This matrix shows which models support tool use and image input capabilities. Continue auto-detects these capabilities, but you can override them if needed. | ||
|
||
### OpenAI | ||
|
||
| Model | Tool Use | Image Input | Context Window | | ||
| :------------ | -------- | ----------- | -------------- | | ||
| o3 | Yes | No | 128k | | ||
| o3-mini | Yes | No | 128k | | ||
| GPT-4o | Yes | Yes | 128k | | ||
| GPT-4 Turbo | Yes | Yes | 128k | | ||
| GPT-4 | Yes | No | 8k | | ||
| GPT-3.5 Turbo | Yes | No | 16k | | ||
|
||
### Anthropic | ||
|
||
| Model | Tool Use | Image Input | Context Window | | ||
| :---------------- | -------- | ----------- | -------------- | | ||
| Claude 4 Sonnet | Yes | Yes | 200k | | ||
| Claude 3.5 Sonnet | Yes | Yes | 200k | | ||
| Claude 3.5 Haiku | Yes | Yes | 200k | | ||
|
||
|
||
| Model | Tool Use | Image Input | Context Window | | ||
| :--------------- | -------- | ----------- | -------------- | | ||
| Gemini 2.5 Pro | Yes | Yes | 2M | | ||
| Gemini 2.0 Flash | Yes | Yes | 1M | | ||
|
||
### Mistral | ||
|
||
| Model | Tool Use | Image Input | Context Window | | ||
| :-------------- | -------- | ----------- | -------------- | | ||
| Devstral Medium | Yes | No | 32k | | ||
| Mistral | Yes | No | 32k | | ||
|
||
### DeepSeek | ||
|
||
| Model | Tool Use | Image Input | Context Window | | ||
| :---------------- | -------- | ----------- | -------------- | | ||
| DeepSeek V3 | Yes | No | 128k | | ||
| DeepSeek Coder V2 | Yes | No | 128k | | ||
| DeepSeek Chat | Yes | No | 64k | | ||
|
||
### xAI | ||
|
||
| Model | Tool Use | Image Input | Context Window | | ||
| :----- | -------- | ----------- | -------------- | | ||
| Grok 4 | Yes | Yes | 128k | | ||
|
||
### Moonshot AI | ||
|
||
| Model | Tool Use | Image Input | Context Window | | ||
| :------ | -------- | ----------- | -------------- | | ||
| Kimi K2 | Yes | Yes | 128k | | ||
|
||
### Qwen | ||
|
||
| Model | Tool Use | Image Input | Context Window | | ||
| :---------------- | -------- | ----------- | -------------- | | ||
| Qwen Coder 3 480B | Yes | No | 128k | | ||
|
||
### Ollama (Local Models) | ||
|
||
| Model | Tool Use | Image Input | Context Window | | ||
| :------------- | -------- | ----------- | -------------- | | ||
| Qwen 3 Coder | Yes | No | 32k | | ||
| Devstral Small | Yes | No | 32k | | ||
| Llama 3.1 | Yes | No | 128k | | ||
| Llama 3 | Yes | No | 8k | | ||
| Mistral | Yes | No | 32k | | ||
| Codestral | Yes | No | 32k | | ||
| Gemma 3 4B | Yes | No | 8k | | ||
|
||
### Notes | ||
|
||
- **Tool Use**: Function calling support (tools are required for Agent mode) | ||
- **Image Input**: Processing images | ||
- **Context Window**: Maximum number of tokens the model can process in a single request | ||
|
||
--- | ||
|
||
**Is your model missing or incorrect?** Help improve this documentation! You can edit this page on GitHub using the link below. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,37 @@ | ||
The models you set up for Chat mode will be used with Agent mode if the model supports tool calling. | ||
The models you set up for Chat mode will be used with Agent mode if the model supports tool calling. The recommended models and how to set them up can be found [here](/features/chat/model-setup). | ||
|
||
The recommended models and how to set them up can be found [here](/features/chat/model-setup). | ||
## System Message Tools | ||
|
||
<Info> | ||
System message tools are experimental and may change in future releases. | ||
</Info> | ||
|
||
Continue implements an innovative approach called **system message tools** that ensures consistent tool functionality across all models, regardless of their native capabilities. This allows Agent mode to work seamlessly with a wider range of models and providers. | ||
|
||
### How It Works | ||
|
||
Instead of relying solely on native tool calling APIs (which vary between providers), Continue converts tools into XML format and includes them in the system message. The model generates tool calls as structured XML within its response, which Continue then parses and executes. This approach provides: | ||
|
||
- **Universal compatibility** - Any model capable of following instructions can use tools, not just those with native tool support | ||
- **Consistent behavior** - Tool calls work identically across OpenAI, Anthropic, local models, and others | ||
- **Better reliability** - Models that struggle with native tools often perform better with system message tools | ||
- **Seamless switching** - Change between providers without modifying your workflow | ||
|
||
### Recommended Models | ||
|
||
For the best Agent mode experience, we recommend models with strong reasoning and instruction-following capabilities: | ||
|
||
**Premium Models:** | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I might recommend against using these models with system message tools because they are trained to use native tools and very effective with them. Besides deepseek |
||
- **Claude Sonnet 4** (Anthropic) - Our top recommendation for its exceptional tool use and reasoning | ||
- **GPT-4** models (OpenAI) - Excellent native tool support | ||
- **DeepSeek** models - Strong performance with competitive pricing | ||
|
||
**Local Models:** | ||
While more limited in capabilities, these models can work with system message tools: | ||
- Qwen2.5-Coder 32B - Best local option for Agent mode | ||
- Devstral 27B - Good for code-specific tasks | ||
- Smaller models (7B-13B) - May struggle with complex tool interactions | ||
|
||
### Configuration | ||
|
||
Agent mode automatically determines whether to use native or system message tools based on the model's capabilities. No additional configuration is required - simply select your model and Continue handles the rest. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.