Skip to content

Commit 00160a7

Browse files
authored
Merge branch 'main' into feat/apify-tools
2 parents dec1d20 + 4392710 commit 00160a7

File tree

6 files changed

+165
-36
lines changed

6 files changed

+165
-36
lines changed

_snippets/compatibility-matrix.mdx

Lines changed: 81 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,16 @@
1515
| Groq |||||||
1616
| HuggingFace |||||||
1717
| IBM WatsonX |||||||
18+
| InternLM |||||||
19+
| LiteLLM |||||||
20+
| LiteLLMOpenAI |||||||
1821
| LM Studio |||||||
1922
| Mistral |||||||
2023
| Nvidia |||||||
2124
| Ollama |||||||
2225
| OllamaTools |||||||
23-
| OpenAI |||||||
26+
| OpenAIChat |||||||
27+
| OpenAIResponses |||||||
2428
| OpenRouter |||||||
2529
| Perplexity |||||||
2630
| Sambanova |||||||
@@ -44,33 +48,79 @@ be less reliable compared to other providers.
4448

4549
### Multimodal Support
4650

47-
| Agno Supported Models | Image Input | Audio Input | Audio Responses | Video Input |
48-
| --------------------- | :---------: | :---------: | :-------------: | :---------: |
49-
| Anthropic Claude || | | |
50-
| AWS Bedrock || | | |
51-
| AWS Bedrock Claude || | | |
52-
| Azure AI Foundry || | | |
53-
| Azure OpenAI || | | |
54-
| Cohere | | | | |
55-
| AWS Bedrock || | | |
56-
| AWS Bedrock Claude || | | |
57-
| Azure AI Foundry || | | |
58-
| Azure OpenAI || | | |
59-
| Cohere || | | |
60-
| DeepInfra | | | | |
61-
| DeepSeek | | | | |
62-
| Fireworks | | | | |
63-
| Gemini ||| ||
64-
| Groq || | | |
65-
| HuggingFace | | | | |
66-
| LM Studio || | | |
67-
| IBM WatsonX || | | |
68-
| Mistral || | | |
69-
| Nvidia | | | | |
70-
| Ollama || | | |
71-
| OllamaTools | | | | |
72-
| OpenAI |||| |
73-
| OpenRouter | | | | |
74-
| Sambanova | | | | |
75-
| Together || | | |
76-
| XAI || | | |
51+
| Agno Supported Models | Image Input | Audio Input | Audio Responses | Video Input | File Upload |
52+
| --------------------- | :---------: | :---------: | :-------------: | :---------: | :---------: |
53+
| Anthropic Claude || | | ||
54+
| AWS Bedrock || | | | |
55+
| AWS Bedrock Claude || | | | |
56+
| Azure AI Foundry || | | | |
57+
| Azure OpenAI || | | | |
58+
| Cohere | | | | | |
59+
| AWS Bedrock || | | | |
60+
| AWS Bedrock Claude || | | | |
61+
| Azure AI Foundry || | | | |
62+
| Azure OpenAI || | | | |
63+
| Cohere || | | | |
64+
| DeepInfra | | | | | |
65+
| DeepSeek | | | | | |
66+
| Fireworks | | | | | |
67+
| Gemini ||| |||
68+
| Groq || | | | |
69+
| HuggingFace || | | | |
70+
| IBM WatsonX || | | | |
71+
| InternLM | | | | | |
72+
| LiteLLM | | | | | |
73+
| LiteLLMOpenAI | | | | | |
74+
| LM Studio || | | | |
75+
| Mistral || | | | |
76+
| Nvidia | | | | | |
77+
| Ollama || | | | |
78+
| OllamaTools | | | | | |
79+
| OpenAIChat |||| | |
80+
| OpenAIResponses |||| ||
81+
| OpenRouter | | | | | |
82+
| Perplexity | | | | | |
83+
| Sambanova | | | | | |
84+
| Together || | | | |
85+
| XAI || | | | |
86+
87+
### Structured Outputs
88+
89+
| Agno Supported Models | Structured Outputs | JSON Mode |
90+
| --------------------- | :----------------: | :-------: |
91+
| Anthropic Claude | ||
92+
| AWS Bedrock | ||
93+
| AWS Bedrock Claude | ||
94+
| Azure AI Foundry | ||
95+
| Azure OpenAI |||
96+
| Cohere | ||
97+
| DeepInfra | ||
98+
| DeepSeek | ||
99+
| Fireworks |||
100+
| Gemini |||
101+
| Groq | ||
102+
| HuggingFace | ||
103+
| IBM WatsonX | ||
104+
| InternLM |||
105+
| LiteLLMOpenAI |||
106+
| LiteLLM | ||
107+
| LM Studio |||
108+
| Mistral |||
109+
| Nvidia | ||
110+
| Ollama |||
111+
| OllamaTools |||
112+
| OpenAIChat |||
113+
| OpenAIResponses |||
114+
| OpenRouter |||
115+
| Perplexity |||
116+
| Sambanova | ||
117+
| Together |||
118+
| XAI |||
119+
120+
<Note>
121+
122+
LM Studio supports JSON schema output, but not structured outputs.
123+
124+
</Note>
125+
126+
Read more about [Structured Outputs](/faq/structured-outputs) and [JSON Mode](/faq/json-mode).

agents/knowledge.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ docker run -d \
6868
-v pgvolume:/var/lib/postgresql/data \
6969
-p 5532:5432 \
7070
--name pgvector \
71-
agno/pgvector:16
71+
agnohq/pgvector:16
7272
```
7373

7474
### Step 2: Traditional RAG

examples/models/groq/tool_use.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ from agno.tools.duckduckgo import DuckDuckGoTools
1111
from agno.tools.newspaper4k import Newspaper4kTools
1212

1313
agent = Agent(
14-
model=Groq(id="llama-3.3-70b-versatile"),
14+
model=Groq(id="llama-3.1-8b-instant"),
1515
tools=[DuckDuckGoTools(), Newspaper4kTools()],
1616
description="You are a senior NYT researcher writing an article on a topic.",
1717
instructions=[
@@ -54,4 +54,4 @@ agent.print_response("Simulation theory", stream=True)
5454
```
5555
</CodeGroup>
5656
</Step>
57-
</Steps>
57+
</Steps>

faq/structured-outputs.mdx

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
---
2+
title: Structured outputs
3+
sidebarTitle: Structured outputs
4+
---
5+
6+
## Structured Outputs vs. JSON Mode
7+
8+
When working with language models, generating responses that match a specific structure is crucial for building reliable applications. Agno Agents support two methods to achieve this: **Structured Outputs** and **JSON mode**.
9+
10+
---
11+
12+
### Structured Outputs (Default if supported)
13+
14+
"Structured Outputs" is the **preferred** and most **reliable** way to extract well-formed, schema-compliant responses from a Model. If a model class supports it, Agno Agents use Structured Outputs by default.
15+
16+
With structured outputs, we provide a schema to the model (using Pydantic or JSON Schema), and the model’s response is guaranteed to **strictly follow** that schema. This eliminates many common issues like missing fields, invalid enum values, or inconsistent formatting. Structured Outputs are ideal when you need high-confidence, well-structured responses—like entity extraction, content generation for UI rendering, and more.
17+
18+
In this case, the response model is passed as a keyword argument to the model.
19+
20+
## Example
21+
22+
```python
23+
from pydantic import BaseModel
24+
from agno.agent import Agent
25+
from agno.models.openai import OpenAIChat
26+
27+
class User(BaseModel):
28+
name: str
29+
age: int
30+
email: str
31+
32+
agent = Agent(
33+
model=OpenAIChat(id="gpt-4o"),
34+
description="You are a helpful assistant that can extract information from a user's profile.",
35+
response_model=User,
36+
)
37+
```
38+
39+
In the example above, the model will generate a response that matches the `User` schema using structured outputs via OpenAI's `gpt-4o` model. The agent will then return the `User` object as-is.
40+
41+
---
42+
43+
### JSON Mode
44+
45+
Some model classes **do not support Structured Outputs**, or you may want to fall back to JSON mode even when the model supports both options. In such cases, you can enable **JSON mode** by setting `use_json_mode=True`.
46+
47+
JSON mode works by injecting a detailed description of the expected JSON structure into the system prompt. The model is then instructed to return a valid JSON object that follows this structure. Unlike Structured Outputs, the response is **not automatically validated** against the schema at the API level.
48+
49+
## Example
50+
51+
```python
52+
from pydantic import BaseModel
53+
from agno.agent import Agent
54+
from agno.models.openai import OpenAIChat
55+
56+
class User(BaseModel):
57+
name: str
58+
age: int
59+
email: str
60+
61+
agent = Agent(
62+
model=OpenAIChat(id="gpt-4o"),
63+
description="You are a helpful assistant that can extract information from a user's profile.",
64+
response_model=User,
65+
use_json_mode=True,
66+
)
67+
68+
```
69+
70+
### When to use
71+
72+
Use **Structured Outputs** if the model supports it — it’s reliable, clean, and validated automatically.
73+
74+
Use **JSON mode**:
75+
76+
- When the model doesn't support structured outputs. Agno agents do this by default on your behalf.
77+
- When you need broader compatibility, but are okay validating manually.
78+
- When the model does not support tools with structured outputs.

mint.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1117,7 +1117,8 @@
11171117
"faq/cli-auth",
11181118
"faq/connecting-to-tableplus",
11191119
"faq/could-not-connect-to-docker",
1120-
"faq/openai_key_request_for_other_models"
1120+
"faq/openai_key_request_for_other_models",
1121+
"faq/structured-outputs"
11211122
]
11221123
},
11231124
{

tools/toolkits/jira.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ pip install -U jira
1515
```shell
1616
export JIRA_SERVER_URL="YOUR_JIRA_SERVER_URL"
1717
export JIRA_USERNAME="YOUR_USERNAME"
18-
export JIRA_API_TOKEN="YOUR_API_TOKEN"
18+
export JIRA_TOKEN="YOUR_API_TOKEN"
1919
```
2020

2121
## Example

0 commit comments

Comments
 (0)