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
-
Choose the appropriate subject category
-
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
Requirements:
- Data must not overlap with existing datasets
- Must have proper redistribution rights
- Accessible download link required
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
Steps:
- Test locally to ensure no conflicts with existing environments
- Create installation script as a bash file
- 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!
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!