![Astra banner image](https://github.com/TEN-framework/docs/blob/main/assets/jpg/astra_banner.jpg?raw=true)
[![Follow on X](https://img.shields.io/twitter/follow/AstraAIAgent?logo=X&color=%20%23f5f5f5)](https://twitter.com/intent/follow?screen_name=AstraAIAgent) ![Product fee](https://img.shields.io/badge/pricing-free-blue.svg?labelColor=%20%239b8afb&color=%20%237a5af8) [![Discussion posts](https://img.shields.io/github/discussions/TEN-framework/astra.ai?labelColor=%20%23FDB062&color=%20%23f79009)](https://github.com/TEN-framework/astra.ai/discussions/) [![Commits](https://img.shields.io/github/commit-activity/m/TEN-framework/astra.ai?labelColor=%20%237d89b0&color=%20%235d6b98)](https://github.com/TEN-framework/astra.ai/graphs/commit-activity) [![Issues closed](https://img.shields.io/github/issues-search?query=repo%3ATEN-framework%2Fastra.ai%20is%3Aclosed&label=issues%20closed&labelColor=green&color=green)](https://github.com/TEN-framework/ASTRA.ai/issues) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](https://github.com/TEN-framework/ASTRA.ai/pulls) [![GitHub license](https://img.shields.io/badge/License-Apache_2.0-blue.svg?labelColor=%20%23155EEF&color=%20%23528bff)](https://github.com/TEN-framework/ASTRA.ai/blob/main/LICENSE) [![Discord TEN Community](https://dcbadge.vercel.app/api/server/VnPftUzAMJ)](https://discord.gg/VnPftUzAMJ) [![GitHub watchers](https://img.shields.io/github/watchers/TEN-framework/astra.ai?style=social&label=Watch)](https://GitHub.com/TEN-framework/astra.ai/watchers/?WT.mc_id=academic-105485-koreyst) [![GitHub forks](https://img.shields.io/github/forks/TEN-framework/astra.ai?style=social&label=Fork)](https://GitHub.com/TEN-framework/astra.ai/network/?WT.mc_id=academic-105485-koreyst) [![GitHub stars](https://img.shields.io/github/stars/TEN-framework/astra.ai?style=social&label=Star)](https://GitHub.com/TEN-framework/astra.ai/stargazers/?WT.mc_id=academic-105485-koreyst) README in English 简体中文操作指南 日本語のREADME README in 한국어 README en Español README en Français README in Italiano [Documentation](https://doc.theten.ai)   •   [Getting Started](https://doc.theten.ai/getting-started/quickstart)   •   [Tutorials](https://doc.theten.ai/getting-started/create-a-hello-world-extension)

Astra Agent

[Astra multimodal agent](https://theastra.ai) Astra is a multimodal agent powered by [ TEN ](https://doc.theten.ai), demonstrating its capabilities in speech, vision, and reasoning through RAG from local documentation. [![Showcase Astra multimodal agent](https://github.com/TEN-framework/docs/blob/main/assets/gif/astra_voice_agent.gif?raw=true)](https://theastra.ai)

How to build Astra locally ### Prerequisites #### Keys - Agora [ App ID ](https://docs.agora.io/en/video-calling/get-started/manage-agora-account?platform=web#create-an-agora-project) and [ App Certificate ](https://docs.agora.io/en/video-calling/get-started/manage-agora-account?platform=web#create-an-agora-project)(certificate is not required) - Azure [SST](https://azure.microsoft.com/en-us/products/ai-services/speech-to-text) and [TTS](https://azure.microsoft.com/en-us/products/ai-services/text-to-speech) API keys (feel free to use another provider) - [OpenAI](https://openai.com/index/openai-api/) API key #### Installation - [Docker](https://www.docker.com/) / [Docker Compose](https://docs.docker.com/compose/) - [Node.js(LTS) v18](https://nodejs.org/en) #### Minimum system requirements - CPU >= 2 Core - RAM >= 4 GB #### Docker setting on Apple Silicon You will need to uncheck "Use Rosetta for x86_64/amd64 emulation on Apple Silicon" option for Docker if you are on Apple Silicon, otherwise the server is not going to work. ![Docker Setting](https://github.com/TEN-framework/docs/blob/main/assets/gif/docker_setting.gif?raw=true) ### Next step #### 1. Modify config files In the root of the project, use `cp` command to create `.env` from the example. It will be used to store information for `docker compose` later. ```bash cp ./.env.example ./.env ``` #### 2. Setup API keys Open the `.env` file and fill in the `keys` and `regions`. This is also where you can choose to use any different `extensions`: ```bash # Agora App ID and Agora App Certificate AGORA_APP_ID= # Leave empty unless you have enabled the certificate within the Agora account. AGORA_APP_CERTIFICATE= # Azure STT key and region AZURE_STT_KEY= AZURE_STT_REGION= # Azure TTS key and region AZURE_TTS_KEY= AZURE_TTS_REGION= # OpenAI API key OPENAI_API_KEY= ``` #### 3. Start agent development containers In the same directory, run the `docker compose up` command to compose containers: ```bash docker compose up ``` #### 4. Enter container and build agent Open up a separate terminal window, enter the container and build the agent: ```bash docker exec -it astra_agents_dev bash make build ``` #### 5. Start the server Once the build is done, `make run-server` on port `8080`: ```bash make run-server ``` ### Finish and verify 🎉 #### Astra multimodal agent Open up http://localhost:3000 in browser to play and test the Astra agent. #### Graph designer Open up another tab go to http://localhost:3001, and use Graph Designer to create, connect and edit extensions on canvas. ![TEN Graph Designer](https://github.com/TEN-framework/docs/blob/main/assets/gif/graph_designer.gif?raw=true)

Astra Agent Comparison

| **Features** | **Astra Agent** | **Pipecat** | **LiveKit:KITT** | **Vapi.ai** | **DailyBots** | **Play.ai** | |:----------------------------------------:|:-------:|:--------:|:-------------:|:----------------:|:----------------:|:----------------:| | **Vision** | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | | **Rich TTS Support for different languages** | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | | **Go support for extension** | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | | **C++ support for extension** | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | | **RAG support** | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | | **Workflow builder for extension** | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | | **Rich LLM Support** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | **Python support for extension** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | **Open source** | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |

Stay Tuned

Before we dive further, be sure to star our repository and get instant notifications for all new releases! ![TEN star us gif](https://github.com/TEN-framework/docs/blob/main/assets/gif/star_the_repo_confetti_higher_quality.gif?raw=true)

Join Community

- [Discord](https://discord.gg/VnPftUzAMJ): Ideal for sharing your applications and engaging with the community. - [GitHub Discussion](https://github.com/TEN-framework/astra.ai/discussions): Perfect for providing feedback and asking questions. - [GitHub Issues](https://github.com/TEN-framework/astra.ai/issues): Best for reporting bugs and proposing new features. Refer to our [contribution guidelines](./docs/code-of-conduct/contributing.md) for more details. - [X (formerly Twitter)](https://img.shields.io/twitter/follow/AstraAIAgent?logo=X&color=%20%23f5f5f5): Great for sharing your agents and interacting with the community.

Code Contributors

[![TEN](https://contrib.rocks/image?repo=TEN-framework/astra.ai)](https://github.com/TEN-framework/astra.ai/graphs/contributors)

Contribution Guidelines

Contributions are welcome! Please read the [contribution guidelines](./docs/code-of-conduct/contributing.md) first.

License

This project is licensed under the Apache 2.0 License - see the [LICENSE](LICENSE) file for details.