<h1 align="center">
<a href="https://prompts.chat">
Agno is an open-source project and we welcome contributions.
Loading actions...
<a href="https://prompts.chat">
TypeScript and ESLint rules that MUST be followed when creating, modifying, or reviewing any file under apps/frontend/, including .ts, .tsx, .js, and .jsx files. Also apply when discussing frontend linting, type safety, or ESLint configuration.
risks
Agno is an open-source project and we welcome contributions.
Please follow the fork and pull request workflow:
To maintain a clear and organized project history, please adhere to the following guidelines when submitting Pull Requests:
[feat] Add user authentication[feat], [fix], [cookbook], [test], [refactor], [chore], [style], [revert], [release].fixes #<issue_number>, closes #<issue_number>, or resolves #<issue_number>.
This PR fixes #42 by implementing the new login flow.These guidelines are enforced automatically by our PR Lint workflow.
uv installed by running uv --version.
uv installed, you can skip this step.uv installed, you can install it by running pip install uv../scripts/dev_setup.sh..\scripts\dev_setup.bat..venv virtual environment in the current directory.agno package in editable mode.source .venv/bin/activate.venv\Scripts\activateFrom here on you have to use
uv pip installto install missing packages
Ensure your code meets our quality standards by running the appropriate formatting and validation script before submitting a pull request:
./scripts/format.sh./scripts/validate.sh.\scripts\format.bat.\scripts\validate.batThese scripts will perform code formatting with ruff and static type checks with mypy.
Before submitting a pull request, ensure all tests pass locally:
Do the development setup above.
Run the test suite ./scripts/test.sh
Run specific test files or test cases: pytest ./libs/agno/tests/unit/utils/test_string.py or whatever file you want to test.
Make sure all tests pass before submitting your pull request. If you add new features, include appropriate test coverage.
libs/agno/agno/vectordb for the new vector database.VectorDb interface
libs/agno/agno/vectordb/<your_db>/<your_db>.py file.VectorDb interface is defined in libs/agno/agno/vectordb/base.pyVectorDb Class in libs/agno/agno/vectordb/<your_db>/__init__.py.libs/agno/agno/vectordb/pgvector/pgvector file for an example.VectorDb under cookbook/07_knowledge/vector_db/<your_db>.
cookbook/07_knowledge/vector_db/pgvector/pgvector_db for an example../scripts/format.sh and ./scripts/validate.sh.libs/agno/agno/models for the new Model provider.OpenAILike Class from libs/agno/agno/models/openai/like.py.libs/agno/agno/models/<your_model>/<your_model>.py file.libs/agno/agno/models/<your_model>/__init__.py file.agno/models/together/together.py file for an example.agno/models/anthropic/claude.py or agno/models/cohere/chat.py for inspiration.libs/agno/agno/models/utils.py:
elif clause in the get_model() function with your provider namemodels/meta/)model_idmodel="yourprovider:model-name"elif provider == "yourprovider":
from agno.models.yourprovider import YourModel
return YourModel(id=model_id)
cookbook/models/<your_model>.
agno/cookbook/90_models/aws/claude for an example../scripts/format.sh and ./scripts/validate.sh.libs/agno/agno/tools for the new Tool.Toolkit Class from libs/agno/agno/tools/toolkit/toolkit.py.
libs/agno/agno/tools/<your_tool>.py.agno/tools/youtube.py file for an example.agno/tools/serpapi_tools.py as well.cookbook/tools/<your_tool>.
agno/cookbook/91_tools/youtube_tools for an example../scripts/format.sh and ./scripts/validate.sh.Message us on Discord or post on Discourse if you have any questions or need help with credits.
This project is licensed under the terms of the Apache-2.0 license