Thank you for your interest in contributing to the Adala Project's agent development! The robustness and versatility of our system primarily stem from the diverse agents and skills we deploy. This guide focuses on agent-related contributions, highlighting the importance of domain and task specificity.
Adala welcomes agents equipped with a wide range of skills, each offering unique capabilities. From tasks such as classification, anomaly detection, and regression to specialized roles like sentiment analysis or recommendation systems, there's endless potential to broaden our agent spectrum. Skills designed for specific domains (like medical, finance, or nature) or tailored tasks within these areas can considerably amplify the system's efficacy.
Start with the foundational Skill class and extend it to facilitate Adala in acquiring new skills. To understand better, examine how the Classification skills were implemented.
Example:
class
Customize skills to particular domains, providing more profound insights and actionable feedback.
Example:
- Uniqueness: Focus on specificity. What unique problem does your skill resolve?
- Integration: Ensure your skill aligns well with the existing Adala framework.
- Documentation: Offer comprehensive documentation, usage instances for your agent, and a testing environment (with a ground truth dataset).
- Testing: Incorporate both unit and integration tests to guarantee a seamless integration with the Adala system.
Introduce runtimes utilizing varying language models or even distinct model types for labeling tasks. Enhancing current implementations through performance optimization or new feature introduction is also encouraged.
To introduce a new runtime, adhere to the structure delineated by the Runtime abstract class. Below is a rudimentary example:
The environment offers a unique method for collecting user feedback, which assists Adala agents in learning. For instance, you can create a setting where it attempts to call your phone using Twilio integration, seeking your oversight.
Contributions that align with the items detailed in our roadmap, found in the main README, are not only welcome but are greatly encouraged. Adhering to this roadmap ensures that all efforts are in synergy with project's vision.
- Fork the Repository: Create a fork of the Adala repository on your GitHub account.
- Clone, Branch, and Develop: Clone your fork, spawn a new branch for your contribution, and commence development.
- Test and Commit: After modifications, conduct comprehensive testing. Once content, commit with an informative message.
- Push and Pull Request: Push your amendments and formulate a pull request detailing your contribution's value.
Adala uses PDM to manage dependencies (both application and development) and packaging. To create an development environment, install PDM, navigate to the repository root and run:
pdm install --dev
to specifically install Adala development only dependencies (using pdm
's direct support for such).
After this, activate the environment by running
eval $(pdm venv activate)
And run the test suite with
pytest --cov
You can expand with additional test dependencies using pdm
with
pdm add -dG test <package-name>
Happy developing, we're excited to review your contributions!
Interested in contributing to our docs? Wonderful! Docs are located in ./docs
. After installing dev dependecies (including docs
group), you can build and serve docs dynamically with
mkdocs serve -f ./docs/mkdocs.yml
All doc dependencies are managed by pdm
, and similar to test development dependenices, can be expanded upon with
pdm add -dG doc <package-name>
While diverse contributions invigorate our project, it's paramount to sustain a harmonious and cooperative environment. Please adhere to our code of conduct.
For inquiries or discussions concerning particular features, agents, or modifications, please open an issue. Your feedback propels the project's advancement.