| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- ---
- title: "Running an Agency"
- description: "How to run an Agency."
- icon: "rocket"
- ---
- When it comes to running your agency, Agency Swarm provides 3 main methods:
- 1. **CopilotKit/AG-UI Interface**: The most modern and recommended way to get started.
- 2. **Get Response**: For backend or custom integrations.
- 3. **Terminal Version**: Best for quick debugging and testing.
- ## Pre-requisites for CopilotKit/AG-UI Demo
- To use the CopilotKit/AG-UI demo (`copilot_demo()`), make sure you have the following installed:
- - **Node.js** (v18 or newer recommended): [Download Node.js](https://nodejs.org/)
- - **npm** (comes with Node.js)
- If these requirements are not met, the demo will not start and you will see an error message.
- ## CopilotKit/AG-UI Interface
- To open a CopilotKit interface, use the `copilot_demo` method:
- ```python
- agency.copilot_demo()
- ```
- This will launch both the backend and a Next.js frontend. Simply follow the `localhost` link from the terminal to start using your agency in a chat-based UI.
- ## Get Response
- To get a response from your agency directly in code, use the async `get_response` method:
- ```python
- import asyncio
- async def main():
- result = await agency.get_response("I want you to build me a website")
- print(result.final_output)
- asyncio.run(main())
- ```
- **With additional parameters:**
- ```python
- async def main():
- result = await agency.get_response(
- message="I want you to build me a website",
- additional_instructions="This is an additional instruction for the task.",
- recipient_agent=dev # Optional: specify which agent to send to
- )
- print(result.final_output)
- asyncio.run(main())
- ```
- **Synchronous version:**
- ```python
- result = agency.get_response_sync(
- message="I want you to build me a website",
- additional_instructions="This is an additional instruction for the task.",
- recipient_agent=dev # Optional: specify which agent to send to
- )
- print(result.final_output)
- ```
- **Parameters**:
- - `message`: The message to send to the agency.
- - `additional_instructions` (optional): Additional instructions that will be appended at the end of instructions for the recipient agent.
- - `recipient_agent` (optional): The agent to which the message should be sent.
- ## Track Usage and Cost
- <Tip>
- Use the `/cost` command in the TUI to see the current session usage and cost.
- </Tip>
- 
- To understand what's inside the `usage` object, see [Observability](/additional-features/observability#usage-payload).
- If you're running your agency as an HTTP API, see [Serving Agencies as APIs](/additional-features/fastapi-integration).
- ## Terminal UI
- The recommended terminal launch path is:
- ```bash
- npx @vrsen/agentswarm
- ```
- Run it from your project root when you want the launcher to handle first-run setup and open the terminal UI for you.
- This path lets the launcher detect the agency from your project and open the TUI connected to it. Use it when you want the easiest setup path.
- For the full launch flow, first-run auth, and the optional terminal launch paths, see [Agent Swarm TUI](/core-framework/agencies/agent-swarm-cli).
- <Note>
- If you already launch from Python, `agency.tui()` is still supported:
- ```python
- agency.tui()
- ```
- Use `agency.tui(reload=False)` if you want to turn off hot reload on file changes.
- This Python path stays bound to the `Agency` instance you launch from code by starting the local bridge automatically.
- </Note>
- <Tip>
- When using the terminal to run the agency, you can send messages directly to any top-level agent by using the "mentions" feature. To do this, start your message with the agent's name preceded by an @ symbol (for example, `@Developer I want you to build me a website`). This directs your message to the specified agent instead of the CEO. You can also press the tab key to autocomplete the agent's name.
- </Tip>
- `tui(show_reasoning=False)` is not supported in the new TUI yet.
|