Thank you for your interest in contributing to Biomni! We're building the infrastructure layer for biomedical AI agents, and we welcome contributions from the community. Contributors with significant contributions will be invited to co-author publications in top-tier journals and conferences.
Before contributing, please ensure you:
- Have tested your changes locally
- Follow the existing code style and conventions
- Include appropriate documentation
Tools are implemented as Python functions in biomni/tool/XXX.py, organized by subject area.
Steps:
-
Implement and test your function locally. If it requires additional software, create installation script and append it into
biomni_env/new_software_{VERSION}.sh -
Choose the appropriate subject category (e.g. database, biochemistry, etc.)
-
Create a tool description in
biomni/tool/tool_description/XXX.pyfollowing the existing formatTip: Use this helper to auto-generate descriptions:
from biomni.utils import function_to_api_schema from biomni.llm import get_llm llm = get_llm('claude-sonnet-4-20250514') desc = function_to_api_schema(function_code, llm)
-
Create a test prompt that uses your tool and verify the agent works correctly
-
Submit a pull request for review, don't forget to include your test prompt as well
If the data source has web API, follow this process:
Steps:
- Verify uniqueness - ensure no overlap with existing data
- Add a new query_XX function to
biomni/tool/database.py, follow the format from the other functions. - Create a tool description in
biomni/tool/tool_description/database.pyfollowing the existing format
If the data source has no API access, follow the process below:
Steps:
- Verify uniqueness - ensure no overlap with existing data
- Prepare download link with verified redistribution rights
- Add entry to
data_lake_dictinbiomni/env_desc.py - Submit a pull request with the download link
Then, make a PR.
Steps:
- Test locally to ensure no conflicts with existing environments
- Create installation script and append it into
biomni_env/new_software_{VERSION}.sh - Add entry to
library_content_dictinbiomni/env_desc.py - Submit a pull request including:
- Installation bash script
- Screenshot demonstrating no environment conflicts
Create benchmarks in the biomni/task/ folder.
Required implementation:
class YourBenchmark:
def __init__(self):
# Initialize benchmark
pass
def __len__(self):
# Return dataset size
pass
def get_example(self, index):
# Return dataset item at index
pass
def evaluate(self):
# Evaluation logic (flexible input format)
pass
def output_class(self):
# Return expected agent output format
passSteps:
- Create benchmark file in
biomni/task/[benchmark_name].py - Implement required methods as shown above
- Provide data download link for associated datasets
- Submit a pull request
We welcome all bug fixes and enhancements to the existing codebase!
Create an issue to discuss with the Biomni team first.
Guidelines:
- Clearly describe the issue or enhancement
- Include tests when applicable
- Follow existing code patterns
- Update documentation if needed
- Fork the repository
- Create a feature branch from
main - Make your changes following the guidelines above
- Test thoroughly in your local environment
- Submit a pull request with a clear description
The Biomni team will review all pull requests promptly. We may request changes or provide feedback to ensure code quality and consistency.
If you have questions about contributing, please open an issue or reach out to the maintainers.
Together, let's build the future of biomedical AI agents!