cookbook: update GPT-4o models to GPT-5.6 Luna (#8939)

## Summary

- Replace exact `gpt-4o`, `gpt-4o-mini`, and existing `gpt-5.4-mini`
model IDs with `gpt-5.6-luna` throughout `cookbook/`.
- Update matching README, test-log, comment, and example references.
- Update the root `CLAUDE.md` cookbook guidance from `gpt-5.5` to
`gpt-5.6-luna`.
- Preserve distinct specialized models such as `gpt-4o-transcribe`,
`gpt-4o-search-preview`, and dated snapshots.
- Add no new tests.

## Type of change

- [ ] Bug fix
- [ ] New feature
- [ ] Breaking change
- [ ] Improvement
- [x] Model update
- [ ] Other:

---

## Checklist

- [x] Code complies with style guidelines
- [x] Ran format/validation scripts (`./scripts/format.sh` and
`./scripts/validate.sh`)
- [x] Self-review completed
- [x] Documentation updated (comments, docstrings)
- [x] Examples and guides: Relevant cookbook examples have been included
or updated (if applicable)
- [x] Tested with a live model response
- [ ] Tests added/updated (not requested)

### Duplicate and AI-Generated PR Check

- [x] I have searched existing [open pull requests](../../pulls) and
confirmed that no other PR already addresses this issue
- [ ] If a similar PR exists, I have explained below why this PR is a
better approach
- [x] Check if this PR was entirely AI-generated (by Copilot, Claude
Code, Cursor, etc.)

---

## Additional Notes

This updates 860 model references across 447 cookbook files, plus the
root `CLAUDE.md` model instruction.

Validation performed:

- Official OpenAI model catalog: `gpt-5.6-luna` is listed as the GPT-5.6
model for cost-sensitive workloads
- Live Responses API smoke run: `gpt-5.6-luna` returned `OK`
successfully on the first and only request
- `./scripts/format.sh`: passed
- Cookbook Ruff check: passed
- Cookbook pattern check: passed
- `git diff --check`: passed
- Raw `5.4 mini` scan under `cookbook/`: zero remaining matches
- `./scripts/validate.sh`: cookbook and agnoctl checks passed; the
unchanged core Agno mypy check reports 43 environment/dependency type
errors in 10 files outside this PR's scope

This PR was generated with Codex in an isolated `nst` workspace.

---------

Co-authored-by: Sannya Singal <[email protected]>
This commit is contained in:
Anurag
2026-08-26 18:33:20 +05:30
committed by GitHub
co-authored by Sannya Singal
parent 42fa22dfde
commit 0ef048bb45
356 changed files with 666 additions and 650 deletions
+1 -1
View File
@@ -241,7 +241,7 @@ gh api repos/agno-agi/agno/pulls/<PR_NUMBER> -X PATCH -f body="$(cat /path/to/bo
- Don't push code without running `./scripts/format.sh` and `./scripts/validate.sh`
- Don't submit a PR without a detailed PR description. Always follow the PR template provided in `.github/pull_request_template.md`.
- Don't use `OpenAIChat` in cookbooks or examples — use `OpenAIResponses` instead
- Don't use `gpt-4o` or `gpt-4o-mini` in cookbooks or examples — use `gpt-5.5` instead
- Don't use `gpt-4o` or `gpt-4o-mini` in cookbooks or examples — use `gpt-5.6-luna` instead
---
@@ -28,13 +28,13 @@ from agno.models.openai import OpenAIResponses
# Create the Agent — just set followups=True
# ---------------------------------------------------------------------------
agent = Agent(
model=OpenAIResponses(id="gpt-4o"),
model=OpenAIResponses(id="gpt-5.6-luna"),
instructions="You are a knowledgeable assistant. Answer questions thoroughly.",
# Enable built-in followups
followups=True,
num_followups=3,
# Optionally use a cheaper model for followups
# followup_model=OpenAIResponses(id="gpt-4o-mini"),
# followup_model=OpenAIResponses(id="gpt-5.6-luna"),
markdown=True,
)
@@ -23,7 +23,7 @@ db = SqliteDb(db_file="tmp/agents.db")
# Create the Agent
# ---------------------------------------------------------------------------
agent = Agent(
model=OpenAIResponses(id="gpt-4o"),
model=OpenAIResponses(id="gpt-5.6-luna"),
instructions="You are a knowledgeable assistant. Answer questions thoroughly.",
session_id="test-session",
followups=True,
@@ -59,7 +59,7 @@ def standalone_tool(
def main():
# Create an agent with both toolkit and standalone tool
agent = Agent(
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[FileOperationsToolkit(), standalone_tool],
instructions="You are a helpful assistant that can manage files and services.",
markdown=True,
@@ -34,7 +34,7 @@ db = AsyncSqliteDb(db_file=DB_FILE)
# Create Agent
# ---------------------------------------------------------------------------
agent = Agent(
model=OpenAIResponses(id="gpt-4o"),
model=OpenAIResponses(id="gpt-5.6-luna"),
db=db,
search_past_sessions=True,
num_past_sessions_to_search=10,
@@ -31,7 +31,7 @@ def main():
agent = Agent(
name="Privacy-Protected Agent",
model=OpenAIResponses(id="gpt-4o-mini"),
model=OpenAIResponses(id="gpt-5.6-luna"),
pre_hooks=[log_request, PIIDetectionGuardrail()],
instructions="You are a helpful assistant that protects user privacy.",
)
@@ -37,7 +37,7 @@ def get_weather(city: str) -> str:
agent = Agent(
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[get_weather],
instructions=["Use the tools to help the user."],
)
@@ -43,7 +43,7 @@ def add_to_watchlist(run_context: RunContext, symbol: str) -> str:
# Create Agent
# ---------------------------------------------------------------------------
agent = Agent(
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[add_to_watchlist],
session_state={"watchlist": []},
instructions="You MUST use the add_to_watchlist tool when the user asks to add a stock. The user's watchlist is: {watchlist}",
@@ -19,7 +19,7 @@ cwd = Path(__file__).parent.resolve()
# ---------------------------------------------------------------------------
# Create Agent
# ---------------------------------------------------------------------------
image_agent = Agent(model=OpenAIChat(id="gpt-4o"))
image_agent = Agent(model=OpenAIChat(id="gpt-5.6-luna"))
image_path = Path(__file__).parent.joinpath("sample.jpg")
@@ -22,7 +22,7 @@ openai_tools = OpenAITools()
video_caption_agent = Agent(
name="Video Caption Generator Agent",
model=OpenAIResponses(
id="gpt-4o",
id="gpt-5.6-luna",
),
tools=[video_tools, openai_tools],
description="You are an AI agent that can generate and embed captions for videos.",
@@ -32,7 +32,7 @@ db = PostgresDb(
# ---------------------------------------------------------------------------
agent = Agent(
name="BackgroundMetricsAgent",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[YFinanceTools(enable_stock_price=True)],
db=db,
)
@@ -13,7 +13,7 @@ from agno.models.openai import OpenAIResponses
# ---------------------------------------------------------------------------
# Create Agent
# ---------------------------------------------------------------------------
agent = Agent(model=OpenAIResponses(id="gpt-4o", cache_response=True))
agent = Agent(model=OpenAIResponses(id="gpt-5.6-luna", cache_response=True))
# ---------------------------------------------------------------------------
# Run Agent
@@ -29,7 +29,7 @@ def main() -> None:
db = PostgresDb(db_url)
agent = Agent(
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
db=db,
add_history_to_context=True,
num_history_runs=10,
@@ -53,7 +53,7 @@ def main() -> None:
agent.print_response("What is the weather in New York?")
# Turn 5 — Back to OpenAI Chat to summarize all history
agent.model = OpenAIChat(id="gpt-4o")
agent.model = OpenAIChat(id="gpt-5.6-luna")
agent.print_response("Summarize all the weather we checked.")
# Turn 6 — Claude summarizes (sees history from all providers)
@@ -18,7 +18,7 @@ def main() -> None:
db = PostgresDb(db_url)
agent = Agent(
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
db=db,
add_history_to_context=True,
num_history_runs=10,
@@ -33,7 +33,7 @@ def main() -> None:
agent.print_response("What is the weather in London?")
# Turn 3 — OpenAI with tool call (works fine on its own)
agent.model = OpenAIChat(id="gpt-4o")
agent.model = OpenAIChat(id="gpt-5.6-luna")
agent.print_response("What is the weather in Tokyo?")
# Turn 4 — OpenAI Responses summary
@@ -19,7 +19,7 @@ def main() -> None:
db = PostgresDb(db_url)
agent = Agent(
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
db=db,
add_history_to_context=True,
num_history_runs=10,
@@ -34,7 +34,7 @@ def main() -> None:
agent.print_response("What is the weather in London?")
# Turn 3 — OpenAI with tool call (works fine on its own)
agent.model = OpenAIChat(id="gpt-4o")
agent.model = OpenAIChat(id="gpt-5.6-luna")
agent.print_response("What is the weather in Tokyo?")
# Turn 4 — Claude summary
@@ -19,7 +19,7 @@ def main() -> None:
db = PostgresDb(db_url)
agent = Agent(
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
db=db,
add_history_to_context=True,
num_history_runs=10,
@@ -34,7 +34,7 @@ def main() -> None:
agent.print_response("What is the weather in London?")
# Turn 3 — OpenAI with tool call (works fine on its own)
agent.model = OpenAIChat(id="gpt-4o")
agent.model = OpenAIChat(id="gpt-5.6-luna")
agent.print_response("What is the weather in Tokyo?")
# Turn 4 — Gemini summary
@@ -20,8 +20,8 @@ from rich.pretty import pprint
db = PostgresDb(db_url="postgresql+psycopg://ai:ai@localhost:5532/ai")
agent = Agent(
model=OpenAIChat(id="gpt-4o-mini"),
memory_manager=MemoryManager(model=OpenAIChat(id="gpt-4o-mini"), db=db),
model=OpenAIChat(id="gpt-5.6-luna"),
memory_manager=MemoryManager(model=OpenAIChat(id="gpt-5.6-luna"), db=db),
update_memory_on_run=True,
db=db,
)
@@ -17,7 +17,7 @@ db = PostgresDb(db_url=db_url, session_table="agent_metrics_sessions")
# Create Agent
# ---------------------------------------------------------------------------
agent = Agent(
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
db=db,
session_id="session_metrics_demo",
add_history_to_context=True,
@@ -26,7 +26,7 @@ db = PostgresDb(db_url="postgresql+psycopg://ai:ai@localhost:5532/ai")
agent = Agent(
model=OpenAIChat(id="gpt-5.1"),
session_summary_manager=SessionSummaryManager(
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
),
enable_session_summaries=True,
db=db,
@@ -15,7 +15,7 @@ from rich.pretty import pprint
# Create Agent
# ---------------------------------------------------------------------------
agent = Agent(
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
)
# ---------------------------------------------------------------------------
@@ -15,7 +15,7 @@ from rich.pretty import pprint
# Create Agent
# ---------------------------------------------------------------------------
agent = Agent(
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[YFinanceTools()],
markdown=True,
)
@@ -16,7 +16,7 @@ from agno.models.openai import OpenAIChat
# with a connection error, then the fallback (Claude) handles the request.
# ---------------------------------------------------------------------------
agent = Agent(
model=OpenAIChat(id="gpt-4o", base_url="http://localhost:1/v1", retries=0),
model=OpenAIChat(id="gpt-5.6-luna", base_url="http://localhost:1/v1", retries=0),
fallback_models=[Claude(id="claude-sonnet-4-20250514")],
)
@@ -21,11 +21,11 @@ from agno.models.openai import OpenAIChat
# Create Agent with error-specific fallbacks
# ---------------------------------------------------------------------------
agent = Agent(
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
fallback_config=FallbackConfig(
# On rate-limit errors, try these models (in order)
on_rate_limit=[
OpenAIChat(id="gpt-4o-mini"),
OpenAIChat(id="gpt-5.6-luna"),
Claude(id="claude-sonnet-4-20250514"),
],
# On context-window-exceeded errors, try a model with a larger window
@@ -5,7 +5,7 @@ Fallback Models — Mid-Run Failure
Tests what happens when the primary model fails AFTER a tool call (and or within a run).
Flow:
1. gpt-4o receives the request and makes a tool call
1. gpt-5.6-luna receives the request and makes a tool call
2. The tool mutates the model instance's id to something invalid
3. The next API call inside Model.response()'s while-loop fails
4. The error bubbles up to call_model_with_fallback
@@ -27,7 +27,7 @@ def break_model(agent: Agent) -> str:
agent = Agent(
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[break_model],
fallback_models=[Claude(id="claude-sonnet-4-20250514")],
)
@@ -29,7 +29,7 @@ def on_fallback(
# Create Agent with callback
# ---------------------------------------------------------------------------
agent = Agent(
model=OpenAIChat(id="gpt-4o", base_url="http://localhost:1/v1", retries=0),
model=OpenAIChat(id="gpt-5.6-luna", base_url="http://localhost:1/v1", retries=0),
fallback_config=FallbackConfig(
on_error=[Claude(id="claude-sonnet-4-20250514")],
callback=on_fallback,
+3 -3
View File
@@ -75,14 +75,14 @@ def main():
researcher = Agent(
name="Researcher",
role="Research specialist",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="You research topics and provide information.",
)
writer = Agent(
name="Writer",
role="Content writer",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="You write content based on research.",
)
@@ -90,7 +90,7 @@ def main():
team = Team(
name="Content Team",
mode=TeamMode.tasks,
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
members=[researcher, writer],
instructions=[
"You are a content creation team leader.",
@@ -47,7 +47,7 @@ def get_weather(city: str) -> str:
weather_agent = Agent(
name="Weather Agent",
role="Get weather information for cities",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[get_weather],
tool_hooks=[context_aware_hook],
instructions=["Use the tools to help the user."],
@@ -58,7 +58,7 @@ weather_agent = Agent(
# ---------------------------------------------------------------------------
team = Team(
name="Travel Team",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
members=[weather_agent],
mode="coordinate",
)
@@ -35,7 +35,7 @@ db = AsyncSqliteDb(db_file=DB_FILE)
# Create Team
# ---------------------------------------------------------------------------
team = Team(
model=OpenAIResponses(id="gpt-4o"),
model=OpenAIResponses(id="gpt-5.6-luna"),
members=[],
db=db,
search_past_sessions=True,
+3 -3
View File
@@ -61,15 +61,15 @@ DEBUG You coordinate a team of specialized AI agents t
**Result:** INFO Setting default model to OpenAI Chat
DEBUG ****** Team ID: afed51f9-7928-4a60-848a-11b071aa87e5 *******
INFO Agent 'Sarah' inheriting model from Team: gpt-4o
INFO Agent 'Mike' inheriting model from Team: gpt-4o
INFO Agent 'Sarah' inheriting model from Team: gpt-5.6-luna
INFO Agent 'Mike' inheriting model from Team: gpt-5.6-luna
DEBUG ***** Session ID: 373b904d-3f70-4b17-aaac-c4be5b4be980 *****
DEBUG Creating new TeamSession: 373b904d-3f70-4b17-aaac-c4be5b4be980
DEBUG *** Team Run Start: fbd7af19-51e4-44aa-bc67-17a2a81c83b6 ***
DEBUG Processing tools for model
DEBUG Added tool delegate_task_to_member
DEBUG --------------- OpenAI Response Stream Start ---------------
DEBUG ---------------------- Model: gpt-4o -----------------------
DEBUG ---------------------- Model: gpt-5.6-luna -----------------------
DEBUG ========================== system ==========================
DEBUG You coordinate a team of specialized AI agents to fulfill the user's
request. Delegate to members when their expertise or tools are needed. For
@@ -33,14 +33,14 @@ db = PostgresDb(
# ---------------------------------------------------------------------------
stock_searcher = Agent(
name="Stock Searcher",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
role="Searches for stock information.",
tools=[YFinanceTools(enable_stock_price=True)],
)
team = Team(
name="Stock Research Team",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
members=[stock_searcher],
db=db,
show_members_responses=True,
@@ -14,18 +14,18 @@ from agno.team import Team
researcher = Agent(
name="Researcher",
role="You research topics and provide detailed findings.",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
)
writer = Agent(
name="Writer",
role="You write clear, concise summaries from research findings.",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
)
team = Team(
name="Research Team",
model=OpenAIChat(id="gpt-4o", base_url="http://localhost:1/v1", retries=0),
model=OpenAIChat(id="gpt-5.6-luna", base_url="http://localhost:1/v1", retries=0),
fallback_models=[Claude(id="claude-sonnet-4-20250514")],
members=[researcher, writer],
instructions=[
@@ -18,21 +18,21 @@ from agno.team import Team
researcher = Agent(
name="Researcher",
role="You research topics and provide detailed findings.",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
)
writer = Agent(
name="Writer",
role="You write clear, concise summaries from research findings.",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
)
team = Team(
name="Research Team",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
fallback_config=FallbackConfig(
on_rate_limit=[
OpenAIChat(id="gpt-4o-mini"),
OpenAIChat(id="gpt-5.6-luna"),
Claude(id="claude-sonnet-4-20250514"),
],
on_context_overflow=[
@@ -17,7 +17,7 @@ from rich.pretty import pprint
# ---------------------------------------------------------------------------
assistant = Agent(
name="Assistant",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
role="Helpful assistant that answers questions.",
)
@@ -26,7 +26,7 @@ assistant = Agent(
# ---------------------------------------------------------------------------
team = Team(
name="Streaming Team",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
members=[assistant],
markdown=True,
)
@@ -25,7 +25,7 @@ db = PostgresDb(db_url=db_url, session_table="team_metrics_sessions")
# ---------------------------------------------------------------------------
assistant = Agent(
name="Assistant",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
role="Helpful assistant that answers questions.",
)
@@ -34,7 +34,7 @@ assistant = Agent(
# ---------------------------------------------------------------------------
team = Team(
name="Research Team",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
members=[assistant],
db=db,
session_id="team_session_metrics_demo",
@@ -17,7 +17,7 @@ from rich.pretty import pprint
# ---------------------------------------------------------------------------
stock_searcher = Agent(
name="Stock Searcher",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
role="Searches for stock information.",
tools=[YFinanceTools()],
)
@@ -27,7 +27,7 @@ stock_searcher = Agent(
# ---------------------------------------------------------------------------
team = Team(
name="Stock Research Team",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
members=[stock_searcher],
markdown=True,
show_members_responses=True,
@@ -21,7 +21,7 @@ from rich.pretty import pprint
# ---------------------------------------------------------------------------
eval_hook = AgentAsJudgeEval(
name="Quality Check",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
criteria="Response should be accurate, well-structured, and concise",
scoring_strategy="binary",
)
@@ -31,13 +31,13 @@ eval_hook = AgentAsJudgeEval(
# ---------------------------------------------------------------------------
researcher = Agent(
name="Researcher",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
role="Research topics and provide factual information.",
)
team = Team(
name="Research Team",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
members=[researcher],
post_hooks=[eval_hook],
show_members_responses=True,
@@ -28,7 +28,7 @@ async def main():
# 1. Create a local agent
summarizer = Agent(
name="Summarizer",
model=OpenAIResponses(id="gpt-4o-mini"),
model=OpenAIResponses(id="gpt-5.6-luna"),
instructions="You summarize information concisely in 2-3 sentences.",
)
@@ -43,7 +43,7 @@ async def main():
# 3. Create a team with both local and remote agents
team = Team(
name="Hybrid Research Team",
model=OpenAIResponses(id="gpt-4o-mini"),
model=OpenAIResponses(id="gpt-5.6-luna"),
members=[summarizer, remote_explorer],
instructions="""\
You are a research team leader. You have access to:
@@ -25,21 +25,21 @@ from agno.workflow.workflow import Workflow
# ---------------------------------------------------------------------------
hackernews_agent = Agent(
name="Hackernews Agent",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[HackerNewsTools()],
role="Extract key insights and content from Hackernews posts",
)
web_agent = Agent(
name="Web Agent",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[WebSearchTools()],
role="Search the web for the latest news and trends",
)
content_planner = Agent(
name="Content Planner",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions=[
"Plan a content schedule over 4 weeks for the provided topic and research content",
"Ensure that I have posts for 3 posts per week",
@@ -48,7 +48,7 @@ content_planner = Agent(
writer_agent = Agent(
name="Writer Agent",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="Write a blog post on the topic",
)
@@ -23,21 +23,21 @@ from agno.workflow.workflow import Workflow
# ---------------------------------------------------------------------------
web_agent = Agent(
name="Web Agent",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[WebSearchTools()],
role="Search the web for the latest news and trends",
)
hackernews_agent = Agent(
name="Hackernews Agent",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[HackerNewsTools()],
role="Extract key insights and content from Hackernews posts",
)
writer_agent = Agent(
name="Writer Agent",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="Write a blog post on the topic",
)
@@ -19,20 +19,20 @@ from agno.workflow.workflow import Workflow
# ---------------------------------------------------------------------------
researcher = Agent(
name="Research Agent",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[WebSearchTools()],
instructions="Research the given topic and provide key facts and insights.",
)
writer = Agent(
name="Writing Agent",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="Write a comprehensive article based on the research provided. Make it engaging and well-structured.",
)
editor = Agent(
name="Editor Agent",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="Review and edit the article for clarity, grammar, and flow. Provide a polished final version.",
)
@@ -21,40 +21,40 @@ from agno.workflow.workflow import Workflow
# ---------------------------------------------------------------------------
researcher = Agent(
name="Research Agent",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[WebSearchTools()],
instructions="Research the given topic and provide key facts and insights.",
)
tech_researcher = Agent(
name="Tech Research Agent",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[HackerNewsTools()],
instructions="Research tech-related topics from Hacker News and provide latest developments.",
)
news_researcher = Agent(
name="News Research Agent",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[ExaTools()],
instructions="Research current news and trends using Exa search.",
)
writer = Agent(
name="Writing Agent",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="Write a comprehensive article based on the research provided. Make it engaging and well-structured.",
)
editor = Agent(
name="Editor Agent",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="Review and edit the article for clarity, grammar, and flow. Provide a polished final version.",
)
content_agent = Agent(
name="Content Agent",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="Prepare and format content for writing based on research inputs.",
)
@@ -24,7 +24,7 @@ read_agent = Agent(
summarize_agent = Agent(
name="Summarize Agent",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions=[
"Summarize the contents of the attached file.",
],
@@ -21,21 +21,21 @@ from rich.pretty import pprint
# ---------------------------------------------------------------------------
hackernews_agent = Agent(
name="Hackernews Agent",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[HackerNewsTools()],
role="Extract key insights and content from Hackernews posts",
)
web_agent = Agent(
name="Web Agent",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[WebSearchTools()],
role="Search the web for the latest news and trends",
)
content_planner = Agent(
name="Content Planner",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions=[
"Plan a content schedule over 4 weeks for the provided topic and research content",
"Ensure that I have posts for 3 posts per week",
@@ -23,21 +23,21 @@ from agno.workflow.workflow import Workflow
# ---------------------------------------------------------------------------
hackernews_agent = Agent(
name="Hackernews Agent",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[HackerNewsTools()],
instructions="Extract key insights and content from Hackernews posts",
)
web_agent = Agent(
name="Web Agent",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[WebSearchTools()],
instructions="Search the web for the latest news and trends",
)
content_planner = Agent(
name="Content Planner",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions=[
"Plan a content schedule over 4 weeks for the provided topic and research content",
"Ensure that I have posts for 3 posts per week",
@@ -24,21 +24,21 @@ from agno.workflow.workflow import Workflow
# ---------------------------------------------------------------------------
hackernews_agent = Agent(
name="Hackernews Agent",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[HackerNewsTools()],
instructions="Extract key insights and content from Hackernews posts",
)
web_agent = Agent(
name="Web Agent",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[WebSearchTools()],
instructions="Search the web for the latest news and trends",
)
content_planner = Agent(
name="Content Planner",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions=[
"Plan a content schedule over 4 weeks for the provided topic and research content",
"Ensure that I have posts for 3 posts per week",
@@ -47,7 +47,7 @@ content_planner = Agent(
streaming_content_planner = Agent(
name="Content Planner",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions=[
"Plan a content schedule over 4 weeks for the provided topic and research content",
"Ensure that I have posts for 3 posts per week",
@@ -24,21 +24,21 @@ from agno.workflow.workflow import Workflow
# ---------------------------------------------------------------------------
hackernews_agent = Agent(
name="Hackernews Agent",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[HackerNewsTools()],
instructions="Extract key insights and content from Hackernews posts",
)
web_agent = Agent(
name="Web Agent",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[WebSearchTools()],
instructions="Search the web for the latest news and trends",
)
content_planner = Agent(
name="Content Planner",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions=[
"Plan a content schedule over 4 weeks for the provided topic and research content",
"Ensure that I have posts for 3 posts per week",
@@ -47,7 +47,7 @@ content_planner = Agent(
streaming_content_planner = Agent(
name="Content Planner",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions=[
"Plan a content schedule over 4 weeks for the provided topic and research content",
"Ensure that I have posts for 3 posts per week",
@@ -22,14 +22,14 @@ from agno.workflow.workflow import Workflow
# ---------------------------------------------------------------------------
hackernews_agent = Agent(
name="Hackernews Agent",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[HackerNewsTools()],
role="Extract key insights and content from Hackernews posts",
)
web_agent = Agent(
name="Web Agent",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[WebSearchTools()],
role="Search the web for the latest news and trends",
)
@@ -43,7 +43,7 @@ streaming_hackernews_agent = Agent(
content_planner = Agent(
name="Content Planner",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions=[
"Plan a content schedule over 4 weeks for the provided topic and research content",
"Ensure that I have posts for 3 posts per week",
@@ -8,7 +8,7 @@ Generated: 2026-02-08 16:39:09
**Description:** Executed with `.venvs/demo/bin/python` (mode: normal, timeout: 35s).
**Result:** Timed out after 35s. DEBUG Creating new sync OpenAI client for model gpt-4o
**Result:** Timed out after 35s. DEBUG Creating new sync OpenAI client for model gpt-5.6-luna
---
@@ -28,7 +28,7 @@ Generated: 2026-02-08 16:39:09
**Description:** Executed with `.venvs/demo/bin/python` (mode: normal, timeout: 35s).
**Result:** Timed out after 35s. DEBUG Creating new async OpenAI client for model gpt-4o-mini
**Result:** Timed out after 35s. DEBUG Creating new async OpenAI client for model gpt-5.6-luna
---
@@ -78,7 +78,7 @@ Generated: 2026-02-08 16:39:09
**Description:** Executed with `.venvs/demo/bin/python` (mode: normal, timeout: 35s).
**Result:** Timed out after 35s. DEBUG Creating new sync OpenAI client for model gpt-4o
**Result:** Timed out after 35s. DEBUG Creating new sync OpenAI client for model gpt-5.6-luna
---
@@ -98,6 +98,6 @@ Generated: 2026-02-08 16:39:09
**Description:** Executed with `.venvs/demo/bin/python` (mode: normal, timeout: 35s).
**Result:** Timed out after 35s. DEBUG Creating new sync OpenAI client for model gpt-4o
**Result:** Timed out after 35s. DEBUG Creating new sync OpenAI client for model gpt-5.6-luna
---
@@ -8,7 +8,7 @@ Generated: 2026-02-08 16:39:09
**Description:** Executed with `.venvs/demo/bin/python` (mode: normal, timeout: 35s).
**Result:** Timed out after 35s. DEBUG Creating new sync OpenAI client for model gpt-4o
**Result:** Timed out after 35s. DEBUG Creating new sync OpenAI client for model gpt-5.6-luna
---
@@ -18,6 +18,6 @@ Generated: 2026-02-08 16:39:09
**Description:** Executed with `.venvs/demo/bin/python` (mode: normal, timeout: 35s).
**Result:** Timed out after 35s. DEBUG Creating new sync OpenAI client for model gpt-4o
**Result:** Timed out after 35s. DEBUG Creating new sync OpenAI client for model gpt-5.6-luna
---
@@ -38,7 +38,7 @@ Generated: 2026-02-08 16:39:09
**Description:** Executed with `.venvs/demo/bin/python` (mode: normal, timeout: 35s).
**Result:** Timed out after 35s. DEBUG Creating new async OpenAI client for model gpt-4o
**Result:** Timed out after 35s. DEBUG Creating new async OpenAI client for model gpt-5.6-luna
---
@@ -20,13 +20,13 @@ from agno.workflow.workflow import Workflow
# ---------------------------------------------------------------------------
draft_writer = Agent(
name="draft_writer",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="Write a draft on the given topic. Keep it concise.",
)
refiner = Agent(
name="refiner",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="Refine and improve the given draft. Make it more polished.",
)
@@ -17,9 +17,15 @@ from agno.workflow.workflow import Workflow
# ---------------------------------------------------------------------------
# Create Agents
# ---------------------------------------------------------------------------
step_a = Agent(name="step_a", model=OpenAIChat(id="gpt-4o-mini"), instructions="Step A")
step_b = Agent(name="step_b", model=OpenAIChat(id="gpt-4o-mini"), instructions="Step B")
step_c = Agent(name="step_c", model=OpenAIChat(id="gpt-4o-mini"), instructions="Step C")
step_a = Agent(
name="step_a", model=OpenAIChat(id="gpt-5.6-luna"), instructions="Step A"
)
step_b = Agent(
name="step_b", model=OpenAIChat(id="gpt-5.6-luna"), instructions="Step B"
)
step_c = Agent(
name="step_c", model=OpenAIChat(id="gpt-5.6-luna"), instructions="Step C"
)
# ---------------------------------------------------------------------------
@@ -37,7 +37,7 @@ class MediaRequest(BaseModel):
# ---------------------------------------------------------------------------
image_generator = Agent(
name="Image Generator",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[OpenAITools(image_model="gpt-image-1")],
instructions="""You are an expert image generation specialist.
When users request image creation, you should ACTUALLY GENERATE the image using your available image generation tools.
@@ -50,7 +50,7 @@ image_generator = Agent(
image_describer = Agent(
name="Image Describer",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="""You are an expert image analyst and describer.
When you receive an image (either as input or from a previous step), analyze and describe it in vivid detail, including:
- Visual elements and composition
@@ -64,7 +64,7 @@ image_describer = Agent(
video_generator = Agent(
name="Video Generator",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[GeminiTools(vertexai=True)],
instructions="""You are an expert video production specialist.
Create detailed video generation prompts and storyboards based on user requests.
@@ -75,7 +75,7 @@ video_generator = Agent(
video_describer = Agent(
name="Video Describer",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="""You are an expert video analyst and critic.
Analyze and describe videos comprehensively, including:
- Scene composition and cinematography
@@ -19,19 +19,19 @@ from agno.workflow.workflow import Workflow
# ---------------------------------------------------------------------------
tech_expert = Agent(
name="tech_expert",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="You are a tech expert. Provide technical analysis.",
)
biz_expert = Agent(
name="biz_expert",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="You are a business expert. Provide business insights.",
)
generalist = Agent(
name="generalist",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="You are a generalist. Provide general information.",
)
@@ -72,19 +72,19 @@ workflow_string_selector = Workflow(
# ---------------------------------------------------------------------------
researcher = Agent(
name="researcher",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="You are a researcher.",
)
writer = Agent(
name="writer",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="You are a writer.",
)
reviewer = Agent(
name="reviewer",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="You are a reviewer.",
)
@@ -124,9 +124,15 @@ workflow_step_choices = Workflow(
# ---------------------------------------------------------------------------
# Create Agents For Nested Choices Selector
# ---------------------------------------------------------------------------
step_a = Agent(name="step_a", model=OpenAIChat(id="gpt-4o-mini"), instructions="Step A")
step_b = Agent(name="step_b", model=OpenAIChat(id="gpt-4o-mini"), instructions="Step B")
step_c = Agent(name="step_c", model=OpenAIChat(id="gpt-4o-mini"), instructions="Step C")
step_a = Agent(
name="step_a", model=OpenAIChat(id="gpt-5.6-luna"), instructions="Step A"
)
step_b = Agent(
name="step_b", model=OpenAIChat(id="gpt-5.6-luna"), instructions="Step B"
)
step_c = Agent(
name="step_c", model=OpenAIChat(id="gpt-5.6-luna"), instructions="Step C"
)
def nested_selector(
@@ -19,19 +19,19 @@ from agno.workflow.workflow import Workflow
# ---------------------------------------------------------------------------
researcher = Agent(
name="researcher",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="You are a researcher.",
)
writer = Agent(
name="writer",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="You are a writer.",
)
reviewer = Agent(
name="reviewer",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="You are a reviewer.",
)
@@ -19,19 +19,19 @@ from agno.workflow.workflow import Workflow
# ---------------------------------------------------------------------------
tech_expert = Agent(
name="tech_expert",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="You are a tech expert. Provide technical analysis.",
)
biz_expert = Agent(
name="biz_expert",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="You are a business expert. Provide business insights.",
)
generalist = Agent(
name="generalist",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="You are a generalist. Provide general information.",
)
@@ -208,7 +208,7 @@ Generated: 2026-02-08 16:39:09
**Description:** Executed with `.venvs/demo/bin/python` (mode: normal, timeout: 35s).
**Result:** Timed out after 35s. DEBUG Creating new sync OpenAI client for model gpt-4o
**Result:** Timed out after 35s. DEBUG Creating new sync OpenAI client for model gpt-5.6-luna
---
@@ -268,7 +268,7 @@ Generated: 2026-02-08 16:39:09
**Description:** Executed with `.venvs/demo/bin/python` (mode: normal, timeout: 35s).
**Result:** Timed out after 35s. DEBUG Creating new sync OpenAI client for model gpt-4o
**Result:** Timed out after 35s. DEBUG Creating new sync OpenAI client for model gpt-5.6-luna
---
@@ -22,21 +22,21 @@ from agno.workflow.workflow import Workflow
# ---------------------------------------------------------------------------
hackernews_agent = Agent(
name="Hackernews Agent",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[HackerNewsTools()],
role="Extract key insights and content from Hackernews posts",
)
web_agent = Agent(
name="Web Agent",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[WebSearchTools()],
role="Search the web for the latest news and trends",
)
content_planner = Agent(
name="Content Planner",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions=[
"Plan a content schedule over 4 weeks for the provided topic and research content",
"Ensure that I have posts for 3 posts per week",
@@ -29,14 +29,14 @@ SECURITY_KEY = os.getenv("SECURITY_KEY", "your-secret-key") # Set your key here
# ---------------------------------------------------------------------------
hackernews_agent = Agent(
name="HackerNews Researcher",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[HackerNewsTools()],
instructions="Research tech news and trends from HackerNews",
)
search_agent = Agent(
name="Search Agent",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[WebSearchTools()],
instructions="Search for additional information on the web",
)
@@ -76,26 +76,26 @@ security_workflow = Workflow(
# ---------------------------------------------------------------------------
content_creator = Agent(
name="Content Creator",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[WebSearchTools()],
instructions="Create engaging content on the given topic. Research and write comprehensive articles.",
)
fact_checker = Agent(
name="Fact Checker",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="Verify facts and check accuracy of content. Flag any misinformation.",
)
editor = Agent(
name="Editor",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="Edit and polish content for publication. Ensure clarity and flow.",
)
publisher = Agent(
name="Publisher",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="Prepare content for publication and handle final formatting.",
)
@@ -10,7 +10,7 @@ from agno.workflow.workflow import Workflow
# ---------------------------------------------------------------------------
report_generator = Agent(
name="Report Generator",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[FileGenerationTools(enable_pdf_generation=True)],
instructions=[
"You are a data analyst that generates reports.",
@@ -30,7 +30,7 @@ generate_report_step = Step(
# ---------------------------------------------------------------------------
report_analyzer = Agent(
name="Report Analyzer",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions=[
"You are a business analyst.",
"Analyze the attached PDF report and provide insights.",
@@ -21,7 +21,7 @@ from agno.workflow.workflow import Workflow
# ---------------------------------------------------------------------------
input_validator = Agent(
name="Input Validator Agent",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
pre_hooks=[PromptInjectionGuardrail()],
description="Validates and processes user input while blocking prompt injection attacks.",
instructions=[
@@ -34,7 +34,7 @@ input_validator = Agent(
content_processor = Agent(
name="Content Processor Agent",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[WebSearchTools()],
description="Processes validated content and provides helpful information.",
instructions=[
@@ -16,7 +16,7 @@ from agno.workflow.workflow import Workflow
# ---------------------------------------------------------------------------
tutor_agent = Agent(
name="AI Tutor",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions=[
"You are an expert tutor who provides personalized educational support.",
"You have access to our full conversation history.",
@@ -160,7 +160,7 @@ def create_content_workflow() -> Workflow:
name="Content Research",
agent=Agent(
name="Research Specialist",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions=[
"You are an expert research specialist for content creation.",
"Conduct thorough research on the requested topic.",
@@ -182,7 +182,7 @@ def create_content_workflow() -> Workflow:
name="Strategic Content Creation",
agent=Agent(
name="Content Strategist",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions=[
"You are a strategic content writer who creates high-quality, unique content.",
"Use the research and strategic analysis to create compelling content.",
@@ -20,7 +20,7 @@ from agno.workflow.workflow import Workflow
# ---------------------------------------------------------------------------
tech_support_agent = Agent(
name="Technical Support Specialist",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions=[
"You are a technical support specialist with deep product knowledge.",
"You have access to the full conversation history with this customer.",
@@ -32,7 +32,7 @@ tech_support_agent = Agent(
billing_agent = Agent(
name="Billing & Account Specialist",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions=[
"You are a billing and account specialist.",
"You have access to the full conversation history with this customer.",
@@ -44,7 +44,7 @@ billing_agent = Agent(
general_support_agent = Agent(
name="General Customer Support",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions=[
"You are a general customer support representative.",
"You have access to the full conversation history with this customer.",
@@ -16,7 +16,7 @@ from agno.workflow.workflow import Workflow
# ---------------------------------------------------------------------------
meal_suggester = Agent(
name="Meal Suggester",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions=[
"You are a friendly meal planning assistant who suggests meal categories and cuisines.",
"Consider the time of day, day of the week, and any context from the conversation.",
@@ -27,7 +27,7 @@ meal_suggester = Agent(
recipe_specialist = Agent(
name="Recipe Specialist",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions=[
"You are a recipe expert who provides specific, detailed recipe recommendations.",
"Pay close attention to the full conversation to understand user preferences and restrictions.",
@@ -133,7 +133,7 @@ meal_workflow = Workflow(
# ---------------------------------------------------------------------------
research_agent = Agent(
name="Research Specialist",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions=[
"You are a research specialist who gathers information on topics.",
"Conduct thorough research and provide key facts, trends, and insights.",
@@ -145,7 +145,7 @@ research_agent = Agent(
content_creator = Agent(
name="Content Creator",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions=[
"You are an expert content creator who writes engaging content.",
"Use the research provided and CREATE UNIQUE content that stands out.",
@@ -162,7 +162,7 @@ content_creator = Agent(
publisher_agent = Agent(
name="Content Publisher",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions=[
"You are a content publishing specialist.",
"Review the created content and prepare it for publication.",
@@ -48,7 +48,7 @@ Generated: 2026-02-08 16:39:09
**Description:** Executed with `.venvs/demo/bin/python` (mode: normal, timeout: 35s).
**Result:** Timed out after 35s. DEBUG Creating new sync OpenAI client for model gpt-4o
**Result:** Timed out after 35s. DEBUG Creating new sync OpenAI client for model gpt-5.6-luna
---
@@ -122,14 +122,14 @@ def cancel_after_delay(
def main() -> None:
researcher = Agent(
name="Research Agent",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[WebSearchTools()],
instructions="Research the given topic and provide key facts and insights.",
)
writer = Agent(
name="Writing Agent",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="Write a comprehensive article based on the research provided. Make it engaging and well-structured.",
)
@@ -15,7 +15,7 @@ from agno.workflow.workflow import Workflow
# ---------------------------------------------------------------------------
agent = Agent(
name="ResearchAgent",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="You are a helpful research assistant. Be concise.",
)
@@ -22,21 +22,21 @@ from agno.workflow.workflow import Workflow
# ---------------------------------------------------------------------------
hackernews_agent = Agent(
name="Hackernews Agent",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[HackerNewsTools()],
role="Extract key insights and content from Hackernews posts",
)
web_agent = Agent(
name="Web Agent",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[WebSearchTools()],
role="Search the web for the latest news and trends",
)
content_planner = Agent(
name="Content Planner",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions=[
"Plan a content schedule over 4 weeks for the provided topic and research content",
"Ensure that I have posts for 3 posts per week",
@@ -24,7 +24,7 @@ from agno.workflow.workflow import Workflow
# ---------------------------------------------------------------------------
researcher = Agent(
name="Content Researcher",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions=[
"You are a content researcher.",
"Research the given topic and provide 3-5 key points.",
@@ -36,7 +36,7 @@ researcher = Agent(
writer = Agent(
name="Content Writer",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions=[
"You are a content writer.",
"Take the research from the previous step and write a short article.",
@@ -25,7 +25,7 @@ from agno.workflow.workflow import Workflow
# ---------------------------------------------------------------------------
config_aware_agent = Agent(
name="Config-Aware Agent",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions=[
"You are a helpful assistant that operates based on the provided configuration.",
"Check your additional context for configuration details.",
@@ -28,7 +28,7 @@ Generated: 2026-02-08 16:39:09
**Description:** Executed with `.venvs/demo/bin/python` (mode: normal, timeout: 35s).
**Result:** Timed out after 35s. DEBUG Creating new sync OpenAI client for model gpt-4o
**Result:** Timed out after 35s. DEBUG Creating new sync OpenAI client for model gpt-5.6-luna
---
@@ -18,14 +18,14 @@ from agno.workflow.workflow import Workflow
# ---------------------------------------------------------------------------
researcher = Agent(
name="Research Agent",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[WebSearchTools()],
instructions="Research the given topic and provide key facts and insights.",
)
writer = Agent(
name="Writing Agent",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="Write a comprehensive article based on the research provided. Make it engaging and well-structured.",
)
@@ -24,21 +24,21 @@ from agno.workflow.workflow import Workflow
# ---------------------------------------------------------------------------
hackernews_agent = Agent(
name="Hackernews Agent",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[HackerNewsTools()],
instructions="Extract key insights and content from Hackernews posts",
)
web_agent = Agent(
name="Web Agent",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[WebSearchTools()],
instructions="Search the web for the latest news and trends",
)
content_planner = Agent(
name="Content Planner",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions=[
"Plan a content schedule over 4 weeks for the provided topic and research content",
"Ensure that I have posts for 3 posts per week",
@@ -47,7 +47,7 @@ content_planner = Agent(
streaming_content_planner = Agent(
name="Content Planner",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions=[
"Plan a content schedule over 4 weeks for the provided topic and research content",
"Ensure that I have posts for 3 posts per week",
@@ -60,7 +60,7 @@ streaming_content_planner = Agent(
# ---------------------------------------------------------------------------
research_team = Team(
name="Research Team",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
members=[hackernews_agent, web_agent],
instructions="Analyze content and create comprehensive social media strategy",
)
@@ -18,13 +18,13 @@ from agno.workflow.workflow import Workflow
# ---------------------------------------------------------------------------
image_analyzer = Agent(
name="Image Analyzer",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="Analyze the provided image and extract key details, objects, and context.",
)
news_researcher = Agent(
name="News Researcher",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[WebSearchTools()],
instructions="Search for latest news and information related to the analyzed image content.",
)
@@ -37,21 +37,21 @@ class ResearchTopic(BaseModel):
# ---------------------------------------------------------------------------
hackernews_agent = Agent(
name="Hackernews Agent",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[HackerNewsTools()],
role="Extract key insights and content from Hackernews posts",
)
web_agent = Agent(
name="Web Agent",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[WebSearchTools()],
role="Search the web for the latest news and trends",
)
content_planner = Agent(
name="Content Planner",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions=[
"Plan a content schedule over 4 weeks for the provided topic and research content",
"Ensure that I have posts for 3 posts per week",
@@ -33,21 +33,21 @@ class ResearchTopic(BaseModel):
# ---------------------------------------------------------------------------
hackernews_agent = Agent(
name="Hackernews Agent",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[HackerNewsTools()],
role="Extract key insights and content from Hackernews posts",
)
web_agent = Agent(
name="Web Agent",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[WebSearchTools()],
role="Search the web for the latest news and trends",
)
content_planner = Agent(
name="Content Planner",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions=[
"Plan a content schedule over 4 weeks for the provided topic and research content",
"Ensure that I have posts for 3 posts per week",
@@ -73,7 +73,7 @@ class FinalContentPlan(BaseModel):
# ---------------------------------------------------------------------------
research_agent = Agent(
name="AI Research Specialist",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[HackerNewsTools(), WebSearchTools()],
role="Research AI trends and extract structured insights",
output_schema=ResearchFindings,
@@ -87,7 +87,7 @@ research_agent = Agent(
strategy_agent = Agent(
name="Content Strategy Expert",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
role="Create content strategies based on research findings",
output_schema=ContentStrategy,
instructions=[
@@ -100,7 +100,7 @@ strategy_agent = Agent(
planning_agent = Agent(
name="Content Planning Specialist",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
role="Create detailed content plans and calendars",
output_schema=FinalContentPlan,
instructions=[
@@ -273,7 +273,7 @@ def simple_data_processor(step_input: StepInput) -> StepOutput:
# ---------------------------------------------------------------------------
research_agent = Agent(
name="AI Research Specialist",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[HackerNewsTools(), WebSearchTools()],
role="Research AI trends and extract structured insights",
output_schema=ResearchFindings,
@@ -287,7 +287,7 @@ research_agent = Agent(
strategy_agent = Agent(
name="Content Strategy Expert",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
role="Create content strategies based on research findings",
output_schema=ContentStrategy,
instructions=[
@@ -300,7 +300,7 @@ strategy_agent = Agent(
planning_agent = Agent(
name="Content Planning Specialist",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
role="Create detailed content plans and calendars",
output_schema=FinalContentPlan,
instructions=[
@@ -118,7 +118,7 @@ marketing_expert = Agent(
project_manager = Agent(
name="Project Manager",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
role="Create detailed project plans and timelines",
instructions=[
"Develop comprehensive implementation plans",
@@ -129,7 +129,7 @@ project_manager = Agent(
budget_analyst = Agent(
name="Budget Analyst",
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
role="Analyze costs and provide budget recommendations",
instructions=[
"Estimate project costs and resource requirements",
@@ -145,7 +145,7 @@ research_team = Team(
name="AI Research Team",
members=[research_specialist, data_analyst],
delegate_to_all_members=True,
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
description="A collaborative team that researches AI trends and extracts structured insights",
output_schema=ResearchFindings,
instructions=[
@@ -160,7 +160,7 @@ strategy_team = Team(
name="Content Strategy Team",
members=[content_strategist, marketing_expert],
delegate_to_all_members=True,
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
description="A strategic team that creates comprehensive content strategies",
output_schema=ContentStrategy,
instructions=[
@@ -175,7 +175,7 @@ planning_team = Team(
name="Content Planning Team",
members=[project_manager, budget_analyst],
delegate_to_all_members=True,
model=OpenAIChat(id="gpt-4o"),
model=OpenAIChat(id="gpt-5.6-luna"),
description="A planning team that creates detailed implementation plans",
output_schema=FinalContentPlan,
instructions=[
@@ -39,21 +39,21 @@ FEW_SHOT_EXAMPLES = dedent(
# ---------------------------------------------------------------------------
web_agent = Agent(
name="Web Agent",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[WebSearchTools()],
role="Search the web for the latest news and trends",
)
hackernews_agent = Agent(
name="Hackernews Agent",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[HackerNewsTools()],
role="Extract key insights and content from Hackernews posts",
)
writer_agent = Agent(
name="Writer Agent",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="Write a blog post on the topic",
)
@@ -24,14 +24,14 @@ if not CEL_AVAILABLE:
# ---------------------------------------------------------------------------
high_priority_agent = Agent(
name="High Priority Agent",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="You handle high-priority tasks. Be thorough and detailed.",
markdown=True,
)
low_priority_agent = Agent(
name="Low Priority Agent",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="You handle standard tasks. Be helpful and concise.",
markdown=True,
)
@@ -24,14 +24,14 @@ if not CEL_AVAILABLE:
# ---------------------------------------------------------------------------
urgent_handler = Agent(
name="Urgent Handler",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="You handle urgent requests with high priority. Be concise and action-oriented.",
markdown=True,
)
normal_handler = Agent(
name="Normal Handler",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="You handle normal requests thoroughly and thoughtfully.",
markdown=True,
)
@@ -24,7 +24,7 @@ if not CEL_AVAILABLE:
# ---------------------------------------------------------------------------
classifier = Agent(
name="Classifier",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions=(
"Classify the request as either TECHNICAL or GENERAL. "
"Respond with exactly one word: TECHNICAL or GENERAL."
@@ -34,14 +34,14 @@ classifier = Agent(
technical_agent = Agent(
name="Technical Support",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="You are a technical support specialist. Provide detailed technical help.",
markdown=True,
)
general_agent = Agent(
name="General Support",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="You handle general inquiries. Be friendly and helpful.",
markdown=True,
)
@@ -24,21 +24,21 @@ if not CEL_AVAILABLE:
# ---------------------------------------------------------------------------
researcher = Agent(
name="Researcher",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="Research the topic. If the topic involves safety risks, include SAFETY_REVIEW_NEEDED in your response.",
markdown=True,
)
safety_reviewer = Agent(
name="Safety Reviewer",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="Review the research for safety concerns and provide recommendations.",
markdown=True,
)
publisher = Agent(
name="Publisher",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="Prepare the research for publication.",
markdown=True,
)
@@ -53,14 +53,14 @@ def reset_retry_count(step_input: StepInput, run_context: RunContext) -> StepOut
# ---------------------------------------------------------------------------
retry_agent = Agent(
name="Retry Handler",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="You are handling a retry attempt. Acknowledge this is a retry and try a different approach.",
markdown=True,
)
max_retries_agent = Agent(
name="Max Retries Handler",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="Maximum retries reached. Provide a helpful fallback response and suggest alternatives.",
markdown=True,
)
@@ -24,14 +24,14 @@ if not CEL_AVAILABLE:
# ---------------------------------------------------------------------------
researcher = Agent(
name="Researcher",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="Research the given topic and provide detailed findings.",
markdown=True,
)
reviewer = Agent(
name="Reviewer",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="Review the research for completeness and accuracy.",
markdown=True,
)
@@ -24,7 +24,7 @@ if not CEL_AVAILABLE:
# ---------------------------------------------------------------------------
editor = Agent(
name="Editor",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions=(
"Edit and refine the text. When the text is polished and ready, "
"include the word DONE at the end of your response."
@@ -24,7 +24,7 @@ if not CEL_AVAILABLE:
# ---------------------------------------------------------------------------
writer = Agent(
name="Writer",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="Write a short paragraph expanding on the topic. Build on previous content.",
markdown=True,
)
@@ -24,14 +24,14 @@ if not CEL_AVAILABLE:
# ---------------------------------------------------------------------------
researcher = Agent(
name="Researcher",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="Research the given topic.",
markdown=True,
)
reviewer = Agent(
name="Reviewer",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions=(
"Review the research. If the research is thorough and complete, "
"include APPROVED in your response."
@@ -25,21 +25,21 @@ if not CEL_AVAILABLE:
# ---------------------------------------------------------------------------
email_agent = Agent(
name="Email Writer",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="You write professional emails. Be concise and polished.",
markdown=True,
)
blog_agent = Agent(
name="Blog Writer",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="You write engaging blog posts with clear structure and headings.",
markdown=True,
)
tweet_agent = Agent(
name="Tweet Writer",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="You write punchy tweets. Keep it under 280 characters.",
markdown=True,
)
@@ -25,7 +25,7 @@ if not CEL_AVAILABLE:
# ---------------------------------------------------------------------------
classifier = Agent(
name="Classifier",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions=(
"Classify the request into exactly one category. "
"Respond with only one word: BILLING, TECHNICAL, or GENERAL."
@@ -35,21 +35,21 @@ classifier = Agent(
billing_agent = Agent(
name="Billing Support",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="You handle billing inquiries. Help with invoices, payments, and subscriptions.",
markdown=True,
)
technical_agent = Agent(
name="Technical Support",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="You handle technical issues. Help with debugging and configuration.",
markdown=True,
)
general_agent = Agent(
name="General Support",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="You handle general inquiries.",
markdown=True,
)
@@ -25,14 +25,14 @@ if not CEL_AVAILABLE:
# ---------------------------------------------------------------------------
detailed_agent = Agent(
name="Detailed Analyst",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="You provide detailed, in-depth analysis with examples and data.",
markdown=True,
)
brief_agent = Agent(
name="Brief Analyst",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="You provide brief, executive-summary style analysis. Keep it short.",
markdown=True,
)
@@ -25,14 +25,14 @@ if not CEL_AVAILABLE:
# ---------------------------------------------------------------------------
video_agent = Agent(
name="Video Specialist",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="You specialize in video content creation and editing advice.",
markdown=True,
)
image_agent = Agent(
name="Image Specialist",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="You specialize in image design, photography, and visual content.",
markdown=True,
)
@@ -30,14 +30,14 @@ if not CEL_AVAILABLE:
# ---------------------------------------------------------------------------
quick_analyzer = Agent(
name="Quick Analyzer",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="Provide a brief, concise analysis of the topic.",
markdown=True,
)
detailed_analyzer = Agent(
name="Detailed Analyzer",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="Provide a comprehensive, in-depth analysis of the topic.",
markdown=True,
)
@@ -36,7 +36,7 @@ db = PostgresDb(db_url="postgresql+psycopg://ai:ai@localhost:5532/ai")
greeting_agent = Agent(
name="GreetingAgent",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
instructions="You greet people warmly. Keep it to one sentence.",
db=db,
telemetry=False,
@@ -45,7 +45,7 @@ def book_flight(origin: str, destination: str) -> str:
travel_agent = Agent(
name="TravelAgent",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[book_flight],
instructions=(
"You are a travel agent. Use the book_flight tool to book flights. "
@@ -54,7 +54,7 @@ def deploy_to_staging(service: str) -> str:
prod_agent = Agent(
name="ProdDeployer",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[deploy_to_production],
instructions="You deploy services to production. Always use deploy_to_production.",
db=db,
@@ -63,7 +63,7 @@ prod_agent = Agent(
staging_agent = Agent(
name="StagingDeployer",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[deploy_to_staging],
instructions="You deploy services to staging. Always use deploy_to_staging.",
db=db,
@@ -66,7 +66,7 @@ def post_to_slack(channel: str, message: str) -> str:
email_agent = Agent(
name="EmailAgent",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[send_email],
instructions="Send email notifications. Always use send_email.",
db=db,
@@ -75,7 +75,7 @@ email_agent = Agent(
sms_agent = Agent(
name="SMSAgent",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[send_sms],
instructions="Send SMS notifications. Always use send_sms.",
db=db,
@@ -84,7 +84,7 @@ sms_agent = Agent(
slack_agent = Agent(
name="SlackAgent",
model=OpenAIChat(id="gpt-4o-mini"),
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[post_to_slack],
instructions="Post to Slack. Always use post_to_slack.",
db=db,

Some files were not shown because too many files have changed in this diff Show More