> ## Documentation Index
> Fetch the complete documentation index at: https://phidatainc.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Serve and embed

> Serve research agents, teams, and workflows through one AgentOS API.

Serve the research workflow with AgentOS to make it available to Slack, scheduled jobs, dashboards, and backend services. Register the individual analysts, research teams, and workflow in one runtime.

```python theme={null}
from agno.os import AgentOS

agent_os = AgentOS(
    agents=[market_analyst, financial_analyst, risk_officer, committee_chair],
    teams=[coordinate_team, broadcast_team],
    workflows=[investment_workflow],
)
app = agent_os.get_app()

if __name__ == "__main__":
    agent_os.serve(app="main:app", port=8000)
```

Every registered agent, team, and workflow gets a run endpoint. Sessions are served from a shared `/sessions` router, filterable by component and session type. A surface calls the workflow for the auditable review or a team for an open-ended question, with the same request shape.

```bash theme={null}
curl -X POST http://localhost:8000/workflows/investment-workflow/runs \
  -F 'message=Run a full review on NVDA' \
  -F 'user_id=pm@fund.com' \
  -F 'session_id=q4-review' \
  -F 'stream=false'
```

## Delivery surfaces

| Surface          | Shape                                                                        |
| ---------------- | ---------------------------------------------------------------------------- |
| Slack channel    | An analyst asks "review NVDA"; the pipeline replies in-thread with the memo  |
| Scheduled review | A cron runs the workflow nightly on a watchlist and posts the decisions      |
| Dashboard        | A widget triggers a review and renders the structured decision               |
| Backend gate     | A pipeline calls the workflow before a position changes and blocks on a PASS |

[Product agents](/use-cases/product-agents/serve-as-an-api), [data agents](/use-cases/data-agents/serve-and-embed), and research systems use the same AgentOS run endpoints. Each surface selects the registered component that matches the request.

## Choose an entry point

| Caller wants                   | Hit                                                              |
| ------------------------------ | ---------------------------------------------------------------- |
| The decision of record         | The `Workflow` (explicit control flow, inspectable step results) |
| An open-ended question         | A coordinate `Team`                                              |
| An independent multi-view read | A broadcast `Team`                                               |

One AgentOS exposes all three. The surface chooses the shape per request.

## Scheduled research

Use an AgentOS schedule to run a watchlist review at a fixed interval. Each run produces the workflow's memos and decisions for the team.

AgentOS ships the scheduler. Start it with `AgentOS(..., scheduler=True)` and register a cron against the workflow's run endpoint with `ScheduleManager`. See [Scheduling](/features/scheduling).

## Next steps

| Task                           | Guide                                              |
| ------------------------------ | -------------------------------------------------- |
| Add Slack or a browser surface | [Interfaces](/use-cases/product-agents/interfaces) |
| Lock down the endpoints        | [Security and auth](/features/security-and-auth)   |

## Developer Resources

* [Serve as an API](/features/api)
* [AgentOS cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/05_agent_os)
* [Scheduling](/features/scheduling)
