Skip to content

Latest commit

 

History

History
486 lines (462 loc) · 23.9 KB

File metadata and controls

486 lines (462 loc) · 23.9 KB
title Welcome to Agno
description Build, run, and manage agentic software at scale.
mode custom

export const CodeTabs = ({ tabs, defaultTab }) => { const [activeTab, setActiveTab] = React.useState(defaultTab || tabs[0]?.id); const currentTab = tabs.find((tab) => tab.id === activeTab) || tabs[0];

return (

<style dangerouslySetInnerHTML={{__html: ` .code-tab-btn { padding: 0; border: none; background: transparent; cursor: pointer; font-family: inherit; font-size: 14px; transition: color 0.2s ease; color: #71717a; font-weight: 400; } .code-tab-btn.active { color: #18181b; font-weight: 600; } .dark .code-tab-btn.active { color: #f4f4f5; } .code-tab-bracket { margin-right: 4px; visibility: hidden; } .code-tab-bracket-right { margin-left: 4px; visibility: hidden; } .code-tab-btn.active .code-tab-bracket, .code-tab-btn.active .code-tab-bracket-right { visibility: visible; } .kw { color: #ff4017; } .str { color: #c3e88d; } .num { color: #c792ea; } .cmt { color: #71717a; } `}} />
{tabs.map((tab) => { const isActive = activeTab === tab.id; return ( setActiveTab(tab.id)} className={isActive ? 'code-tab-btn active' : 'code-tab-btn'} > [ {tab.label} ] ); })}
  <style dangerouslySetInnerHTML={{__html: `
    .code-box {
      position: relative;
      border-radius: 16px;
      border: 1px solid #27272a;
      background: #09090b;
      padding: 20px;
      overflow: auto;
    }
    .code-box pre {
      margin: 0;
      padding: 0;
      overflow: auto;
      font-size: 13px;
      line-height: 1.8;
      font-family: "JetBrains Mono", "Fira Code", Monaco, Consolas, monospace;
    }
    .code-box code {
      color: #e5e7eb;
      white-space: pre;
    }
    .code-lang {
      display: block;
      font-size: 10px;
      text-transform: uppercase;
      letter-spacing: 0.15em;
      color: #ff4017;
      margin-bottom: 16px;
      font-weight: 600;
    }
  `}} />
  <div className="code-box">
    <pre>
      <code>
        {currentTab?.language && (
          <span className="code-lang">{currentTab.language}</span>
        )}
        {currentTab?.code}
      </code>
    </pre>
  </div>
</div>

); };

export const highlightStyle = { backgroundColor: "rgba(255, 64, 23, 0.2)", display: "block", };

export const codeTabs = [ { id: "agents", label: "Agents", language: "python", code: ( <> <span style={{ color: "#ff4017" }}>from agno.agent{" "} <span style={{ color: "#ff4017" }}>import Agent{"\n"} <span style={{ color: "#ff4017" }}>from agno.models.anthropic{" "} <span style={{ color: "#ff4017" }}>import Claude{"\n"} <span style={{ color: "#ff4017" }}>from agno.tools.coding{" "} <span style={{ color: "#ff4017" }}>import CodingTools{"\n"} {"\n"} agent = Agent({"\n"} {" "}model=Claude(id= <span style={{ color: "#c3e88d" }}>"claude-sonnet-4-5"),{"\n"} {" "}tools=[CodingTools()],{"\n"} {" "}add_history_to_context= <span style={{ color: "#ff4017" }}>True,{"\n"} {" "}markdown=<span style={{ color: "#ff4017" }}>True,{"\n"} ){"\n"} {"\n"} agent.print_response( <span style={{ color: "#c3e88d" }}> "Build a todo app with tests." , stream=<span style={{ color: "#ff4017" }}>True) </> ), }, { id: "teams", label: "Teams", language: "python", code: ( <> <span style={{ color: "#ff4017" }}>from agno.team{" "} <span style={{ color: "#ff4017" }}>import Team{"\n"} <span style={{ color: "#ff4017" }}>from agno.agent{" "} <span style={{ color: "#ff4017" }}>import Agent{"\n"} <span style={{ color: "#ff4017" }}> from agno.models.anthropic{" "} <span style={{ color: "#ff4017" }}>import Claude{"\n"} <span style={{ color: "#ff4017" }}> from agno.tools.hackernews{" "} <span style={{ color: "#ff4017" }}>import HackerNewsTools{"\n"} <span style={{ color: "#ff4017" }}> from agno.tools.newspaper4k{" "} <span style={{ color: "#ff4017" }}>import Newspaper4kTools{"\n"} {"\n"} hn_researcher = Agent(name= <span style={{ color: "#c3e88d" }}>"HackerNews Researcher", tools=[HackerNewsTools()]){"\n"} article_reader = Agent(name= <span style={{ color: "#c3e88d" }}>"Article Reader", tools=[Newspaper4kTools()]){"\n"} {"\n"} team = Team({"\n"} {" "}model=Claude(id= <span style={{ color: "#c3e88d" }}>"claude-sonnet-4-5"),{"\n"} {" "}members=[hn_researcher, article_reader],{"\n"} {" "}add_history_to_context= <span style={{ color: "#ff4017" }}>True,{"\n"}){"\n"} team.print_response( <span style={{ color: "#c3e88d" }}> "Research AI trends and summarize the top articles" ) </> ), }, { id: "workflows", label: "Workflows", language: "python", code: ( <> <span style={{ color: "#ff4017" }}>from agno.agent{" "} <span style={{ color: "#ff4017" }}>import Agent{"\n"} <span style={{ color: "#ff4017" }}>from agno.workflow{" "} <span style={{ color: "#ff4017" }}>import Workflow{"\n"} <span style={{ color: "#ff4017" }}> from agno.models.anthropic{" "} <span style={{ color: "#ff4017" }}>import Claude{"\n"} <span style={{ color: "#ff4017" }}> from agno.tools.duckduckgo{" "} <span style={{ color: "#ff4017" }}>import DuckDuckGoTools{"\n"} {"\n"} researcher = Agent(name= <span style={{ color: "#c3e88d" }}>"Researcher", model=Claude(id= <span style={{ color: "#c3e88d" }}>"claude-sonnet-4-5"), tools=[DuckDuckGoTools()]){"\n"} writer = Agent(name=<span style={{ color: "#c3e88d" }}>"Writer", model=Claude(id= <span style={{ color: "#c3e88d" }}>"claude-sonnet-4-5"), instructions= <span style={{ color: "#c3e88d" }}>"Write engaging content") {"\n"} {"\n"} workflow = Workflow({"\n"} {" "}name= <span style={{ color: "#c3e88d" }}>"Content Workflow",{"\n"} {" "}steps=[researcher, writer],{"\n"}){"\n"} workflow.print_response( <span style={{ color: "#c3e88d" }}> "Create a blog post about AI agents" , stream=<span style={{ color: "#ff4017" }}>True) </> ), }, { id: "agentos", label: "AgentOS", language: "python", code: ( <> <span style={{ color: "#ff4017" }}>from agno.os{" "} <span style={{ color: "#ff4017" }}>import AgentOS{"\n"} <span style={{ color: "#ff4017" }}>from agno.agent{" "} <span style={{ color: "#ff4017" }}>import Agent{"\n"} <span style={{ color: "#ff4017" }}>from agno.db.sqlite{" "} <span style={{ color: "#ff4017" }}>import SqliteDb{"\n"} <span style={{ color: "#ff4017" }}>from agno.tools.mcp{" "} <span style={{ color: "#ff4017" }}>import MCPTools{"\n"} <span style={{ color: "#ff4017" }}> from agno.models.anthropic{" "} <span style={{ color: "#ff4017" }}>import Claude{"\n"} {"\n"} agent = Agent({"\n"} {" "}name=<span style={{ color: "#c3e88d" }}>"Support Agent", {"\n"} {" "}model=Claude(id= <span style={{ color: "#c3e88d" }}>"claude-sonnet-4-5"),{"\n"} {" "}db=SqliteDb(db_file= <span style={{ color: "#c3e88d" }}>"agno.db"),{"\n"} {" "}tools=[MCPTools(url= <span style={{ color: "#c3e88d" }}>"https://docs.agno.com/mcp")], {"\n"} {" "}add_history_to_context= <span style={{ color: "#ff4017" }}>True,{"\n"} {" "}markdown=<span style={{ color: "#ff4017" }}>True,{"\n"}) {"\n"} {"\n"} agent_os = AgentOS(agents=[agent]){"\n"} app = agent_os.get_app(){" "} <span style={{ color: "#71717a" }}># FastAPI app ready to deploy </> ), }, ];

{/* Background Grid Pattern */}
{/* ============================================
    HEADER NAVIGATION
    ============================================ */}
<header className="flex flex-col gap-3 rounded-full border border-[#e5e7eb] dark:border-zinc-700 bg-white dark:bg-zinc-900 px-5 py-3 shadow-sm sm:flex-row sm:items-center sm:justify-between">
  <div className="flex items-center gap-3">
    <span className="text-lg font-semibold tracking-tight text-zinc-900 dark:text-zinc-100">Agno</span>
    <span className="rounded-full border border-[#e5e7eb] dark:border-zinc-700 px-3 py-1 text-xs font-semibold uppercase tracking-[0.2em] text-zinc-500 dark:text-zinc-400">
      Docs
    </span>
  </div>
  <div className="flex items-center gap-3">
    <a
      href="/introduction"
      className="rounded-full border border-[#d1d5db] dark:border-zinc-600 bg-white dark:bg-zinc-800 px-4 py-2 text-sm font-semibold text-zinc-800 dark:text-zinc-100 transition hover:bg-zinc-50 dark:hover:bg-zinc-700"
    >
      Read the docs
    </a>
    <a
      href="https://os.agno.com"
      className="rounded-full border border-[#ff4017] bg-[#ff4017] px-4 py-2 text-sm font-semibold text-white shadow-[0_10px_20px_rgba(255,64,23,0.25)] transition hover:bg-[#ff2e00]"
    >
      Try AgentOS
    </a>
  </div>
</header>

{/* ============================================
    HERO SECTION
    ============================================ */}
<section className="mt-20 flex flex-col items-center gap-6 text-center">
  <h1 className="text-4xl font-semibold leading-[1.05] text-zinc-900 dark:text-zinc-100 sm:text-5xl md:text-[64px]">
    Build. Run. Manage.<br />
    Agentic Software at Scale
    {/* Blinking Cursor Animation */}
    {(() => {
      const [visible, setVisible] = React.useState(true);
      React.useEffect(() => {
        const interval = setInterval(() => setVisible(v => !v), 600);
        return () => clearInterval(interval);
      }, []);
      return (
        <span style={{
          display: 'inline-block',
          width: '0.5em',
          height: '0.1em',
          backgroundColor: '#ff4017',
          marginLeft: '0.1em',
          verticalAlign: 'baseline',
          position: 'relative',
          top: '0.10em',
          opacity: visible ? 1 : 0,
          transition: 'opacity 0.5s ease-in-out',
        }} />
      );
    })()}
  </h1>

  {/* ============================================
      QUICK START CARDS
      ============================================ */}
  <div className="mt-12 grid w-full max-w-5xl grid-cols-1 gap-4 md:grid-cols-3">
    {/* Getting Started Card */}
    <a
      href="/introduction"
      className="group relative flex flex-col gap-2 rounded-xl bg-[#f6f7f9] dark:bg-zinc-900 border border-[#e5e7eb] dark:border-zinc-700 p-5 transition hover:border-[#e5e7eb] dark:hover:border-zinc-600"
    >
      <span className="pointer-events-none absolute -left-2 -top-2 h-4 w-4 border-l-2 border-t-2 border-[#ff4017] opacity-0 transition-opacity group-hover:opacity-100" />
      <span className="pointer-events-none absolute -right-2 -top-2 h-4 w-4 border-r-2 border-t-2 border-[#ff4017] opacity-0 transition-opacity group-hover:opacity-100" />
      <span className="pointer-events-none absolute -bottom-2 -left-2 h-4 w-4 border-b-2 border-l-2 border-[#ff4017] opacity-0 transition-opacity group-hover:opacity-100" />
      <span className="pointer-events-none absolute -bottom-2 -right-2 h-4 w-4 border-b-2 border-r-2 border-[#ff4017] opacity-0 transition-opacity group-hover:opacity-100" />

      <h3 className="text-base font-semibold text-start text-zinc-900 dark:text-zinc-100">Get Started</h3>
      <p className="text-xs leading-relaxed text-start text-zinc-500 dark:text-zinc-400">
        Explore the SDK and build your first Agent.
      </p>
    </a>

    {/* AgentOS Card */}
    <a
      href="/agent-os/introduction"
      className="group relative flex flex-col gap-2 rounded-xl border border-[#e5e7eb] dark:border-zinc-700 bg-[#f6f7f9] dark:bg-zinc-900 p-5 transition hover:border-[#e5e7eb] dark:hover:border-zinc-600"
    >
      <span className="pointer-events-none absolute -left-2 -top-2 h-4 w-4 border-l-2 border-t-2 border-[#ff4017] opacity-0 transition-opacity group-hover:opacity-100" />
      <span className="pointer-events-none absolute -right-2 -top-2 h-4 w-4 border-r-2 border-t-2 border-[#ff4017] opacity-0 transition-opacity group-hover:opacity-100" />
      <span className="pointer-events-none absolute -bottom-2 -left-2 h-4 w-4 border-b-2 border-l-2 border-[#ff4017] opacity-0 transition-opacity group-hover:opacity-100" />
      <span className="pointer-events-none absolute -bottom-2 -right-2 h-4 w-4 border-b-2 border-r-2 border-[#ff4017] opacity-0 transition-opacity group-hover:opacity-100" />

      <h3 className="text-base font-semibold text-start text-zinc-900 dark:text-zinc-100">AgentOS</h3>
      <p className="text-xs leading-relaxed text-start text-zinc-500 dark:text-zinc-400">
        Turn your Agents into a production API.
      </p>
    </a>

    {/* Production Card */}
    <a
      href="/production/overview"
      className="group relative flex flex-col gap-2 rounded-xl border border-[#e5e7eb] dark:border-zinc-700 bg-[#f6f7f9] dark:bg-zinc-900 p-5 transition hover:border-[#e5e7eb] dark:hover:border-zinc-600"
    >
      <span className="pointer-events-none absolute -left-2 -top-2 h-4 w-4 border-l-2 border-t-2 border-[#ff4017] opacity-0 transition-opacity group-hover:opacity-100" />
      <span className="pointer-events-none absolute -right-2 -top-2 h-4 w-4 border-r-2 border-t-2 border-[#ff4017] opacity-0 transition-opacity group-hover:opacity-100" />
      <span className="pointer-events-none absolute -bottom-2 -left-2 h-4 w-4 border-b-2 border-l-2 border-[#ff4017] opacity-0 transition-opacity group-hover:opacity-100" />
      <span className="pointer-events-none absolute -bottom-2 -right-2 h-4 w-4 border-b-2 border-r-2 border-[#ff4017] opacity-0 transition-opacity group-hover:opacity-100" />

      <h3 className="text-base font-semibold text-start text-zinc-900 dark:text-zinc-100">Deploy</h3>
      <p className="text-xs leading-relaxed text-start text-zinc-500 dark:text-zinc-400">
        Production patterns for deploying your AgentOS.
      </p>
    </a>
  </div>
</section>

{/* ============================================
    CODE EXAMPLES SECTION
    ============================================ */}
<section className="mt-20 flex flex-col gap-6">
  <div className="flex flex-col gap-2 text-center">
    <p className="text-xs font-semibold uppercase tracking-[0.35em] text-zinc-500 dark:text-zinc-400">Build with agno</p>
  </div>
  <div className="lg:p-10">
    <CodeTabs tabs={codeTabs} defaultTab="agents" />
  </div>
</section>

{/* ============================================
    FOOTER SECTION
    ============================================ */}
<section className="mt-20 pb-12">
  {/* Footer Links Grid */}
  <div className="mx-auto grid max-w-6xl grid-cols-2 gap-8 px-5 sm:px-8 lg:grid-cols-5 lg:px-10">
    <div>
      <h3 className="mb-4 text-xs font-semibold uppercase tracking-wider text-zinc-900 dark:text-zinc-100">Get Started</h3>
      <ul className="space-y-3">
        <li><a href="/introduction" className="text-sm text-zinc-500 dark:text-zinc-400 transition hover:text-[#ff4017]">What is Agno?</a></li>
        <li><a href="/first-agent" className="text-sm text-zinc-500 dark:text-zinc-400 transition hover:text-[#ff4017]">Your First Agent</a></li>
      </ul>
    </div>

    <div>
      <h3 className="mb-4 text-xs font-semibold uppercase tracking-wider text-zinc-900 dark:text-zinc-100">SDK</h3>
      <ul className="space-y-3">
        <li><a href="/agents/overview" className="text-sm text-zinc-500 dark:text-zinc-400 transition hover:text-[#ff4017]">Agents</a></li>
        <li><a href="/teams/overview" className="text-sm text-zinc-500 dark:text-zinc-400 transition hover:text-[#ff4017]">Teams</a></li>
        <li><a href="/workflows/overview" className="text-sm text-zinc-500 dark:text-zinc-400 transition hover:text-[#ff4017]">Workflows</a></li>
      </ul>
    </div>

    <div>
      <h3 className="mb-4 text-xs font-semibold uppercase tracking-wider text-zinc-900 dark:text-zinc-100">Agent OS</h3>
      <ul className="space-y-3">
        <li><a href="/agent-os/introduction" className="text-sm text-zinc-500 dark:text-zinc-400 transition hover:text-[#ff4017]">Introduction</a></li>
        <li><a href="/agent-os/control-plane" className="text-sm text-zinc-500 dark:text-zinc-400 transition hover:text-[#ff4017]">Control Plane</a></li>
        <li><a href="/agent-os/overview" className="text-sm text-zinc-500 dark:text-zinc-400 transition hover:text-[#ff4017]">Configuration</a></li>
      </ul>
    </div>

    <div>
      <h3 className="mb-4 text-xs font-semibold uppercase tracking-wider text-zinc-900 dark:text-zinc-100">Production</h3>
      <ul className="space-y-3">
        <li><a href="/deploy/introduction" className="text-sm text-zinc-500 dark:text-zinc-400 transition hover:text-[#ff4017]">Overview</a></li>
        <li><a href="deploy/templates" className="text-sm text-zinc-500 dark:text-zinc-400 transition hover:text-[#ff4017]">Templates</a></li>
        <li><a href="/deploy/apps" className="text-sm text-zinc-500 dark:text-zinc-400 transition hover:text-[#ff4017]">Applications</a></li>
        <li><a href="/deploy/interfaces" className="text-sm text-zinc-500 dark:text-zinc-400 transition hover:text-[#ff4017]">Interfaces</a></li>
      </ul>
    </div>

    <div>
      <h3 className="mb-4 text-xs font-semibold uppercase tracking-wider text-zinc-900 dark:text-zinc-100">Reference</h3>
      <ul className="space-y-3">
        <li><a href="/reference" className="text-sm text-zinc-500 dark:text-zinc-400 transition hover:text-[#ff4017]">APIs</a></li>
        <li><a href="/examples/introduction" className="text-sm text-zinc-500 dark:text-zinc-400 transition hover:text-[#ff4017]">Cookbook</a></li>
        <li><a href="https://github.com/agno-agi/dash" className="text-sm text-zinc-500 dark:text-zinc-400 transition hover:text-[#ff4017]">Dash</a></li>
        <li><a href="https://github.com/agno-agi/scout" className="text-sm text-zinc-500 dark:text-zinc-400 transition hover:text-[#ff4017]">Scout</a></li>
      </ul>
    </div>
  </div>

  {/* Footer Bottom - Copyright & Social Links */}
  <div className="mx-auto mt-12 flex max-w-6xl items-center justify-between px-5 pt-8 sm:px-8 lg:px-10">
    <p className="text-xs text-zinc-400 dark:text-zinc-500">© 2025 Agno Inc. All rights reserved.</p>
    <div className="flex items-center gap-4">
      <a href="https://x.com/AgnoAgi" className="text-zinc-400 dark:text-zinc-500 transition hover:text-[#ff4017]">
        <svg className="h-5 w-5" fill="currentColor" viewBox="0 0 24 24"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"/></svg>
      </a>
      <a href="https://github.com/agno-agi/agno" className="text-zinc-400 dark:text-zinc-500 transition hover:text-[#ff4017]">
        <svg className="h-5 w-5" fill="currentColor" viewBox="0 0 24 24"><path d="M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z"/></svg>
      </a>
      <a href="https://agno.com/discord" className="text-zinc-400 dark:text-zinc-500 transition hover:text-[#ff4017]">
        <svg className="h-5 w-5" fill="currentColor" viewBox="0 0 24 24"><path d="M20.317 4.37a19.791 19.791 0 00-4.885-1.515.074.074 0 00-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 00-5.487 0 12.64 12.64 0 00-.617-1.25.077.077 0 00-.079-.037A19.736 19.736 0 003.677 4.37a.07.07 0 00-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 00.031.057 19.9 19.9 0 005.993 3.03.078.078 0 00.084-.028 14.09 14.09 0 001.226-1.994.076.076 0 00-.041-.106 13.107 13.107 0 01-1.872-.892.077.077 0 01-.008-.128 10.2 10.2 0 00.372-.292.074.074 0 01.077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 01.078.01c.12.098.246.198.373.292a.077.077 0 01-.006.127 12.299 12.299 0 01-1.873.892.077.077 0 00-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 00.084.028 19.839 19.839 0 006.002-3.03.077.077 0 00.032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 00-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.956-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.955-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.946 2.418-2.157 2.418z"/></svg>
      </a>
      <a href="https://www.youtube.com/@agno-agi" className="text-zinc-400 dark:text-zinc-500 transition hover:text-[#ff4017]">
        <svg className="h-5 w-5" fill="currentColor" viewBox="0 0 24 24"><path d="M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z"/></svg>
      </a>
    </div>
  </div>
</section>