https://github.com/dptech-corp/bohr-agent-sdk

https://github.com/dptech-corp/bohr-agent-sdk

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    1 of 14 committers (7.1%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.0%) to scientific vocabulary
Last synced: 6 months ago · JSON representation

Repository

Basic Info
  • Host: GitHub
  • Owner: dptech-corp
  • Language: Python
  • Default Branch: master
  • Size: 4.5 MB
Statistics
  • Stars: 5
  • Watchers: 4
  • Forks: 10
  • Open Issues: 2
  • Releases: 0
Created about 1 year ago · Last pushed 7 months ago
Metadata Files
Readme

README.md

Bohrium Science Agent SDK

English | 简体中文

Transform Scientific Software into AI Assistants — 3 Steps to Intelligent Transformation

📖 Introduction

The Bohrium platform introduces the bohr-agent-sdk Scientific Agent Development Kit, enabling AI systems to truly execute professional scientific tasks and helping developers quickly build their own specialized research agents. Through a three-step process — Invoking MCP Tools, Orchestrating Agent Workflows, and Deploying Services — any scientific software can be rapidly transformed into an AI assistant.

✨ Core Features

🎯 Intelligent Task Management: Simplified Development, Standardized Output

With a decorator pattern, just a few annotations can quickly transform scientific computing programs into MCP standard services. Built-in application templates turn scattered research code into standardized, reusable intelligent components.

🔧 Multi-Backend Framework Support

Supports mainstream Agent open frameworks including Google ADK, Langraph, and Camel, providing flexible choices for developers familiar with different technology stacks.

☁️ Flexible Deployment: Local Development, Cloud Production

Dual-mode architecture supports seamless transition between development and production. Local environments enable rapid iteration and feature validation, while Bohrium's cloud GPU clusters handle production-grade computing tasks. The SDK automatically manages the complete workflow of task scheduling, status monitoring, and result collection, with built-in file transfer mechanisms for handling large-scale data uploads and downloads. Developers focus on core algorithm implementation while infrastructure management is fully automated.

🖼️ Visual Interactive Interface: Professional Presentation, Intuitive Operation

Based on the modern React framework, deploy fully-featured web applications with one click. Built-in 3D molecular visualization engine supports multiple structure formats and rendering modes for interactive molecular structure display. Real-time data synchronization ensures instant computing status updates, while multi-session management supports parallel task processing. Integrated with enterprise-grade features including file management, project switching, and permission control. Transform command-line tools into professional visual applications, significantly enhancing user experience and tool usability.

🖼️ Interface Showcase

Scientific Computing Master Console

![SCIMaster](image/SCIMaster.PNG) *Powerful scientific computing task management and monitoring platform*

Visual Interactive Interface

![UI](image/UI.png) *Modern web application interface providing intuitive user experience*

🚀 Quick Start

Installation

bash pip install bohr-agent-sdk -i https://pypi.org/simple --upgrade

Build Your Research Agent in 3 Steps

Step 1: Get Project Templates

```bash

Get calculation project template

dp-agent fetch scaffolding --type=calculation

Get device control project template

dp-agent fetch scaffolding --type=device

Get configuration file

dp-agent fetch config ```

Step 2: Develop Your Agent

Lab Mode Development Example

```python from typing import Dict, TypedDict from dp.agent.device.device import Device, action, BaseParams, SuccessResult

class TakePictureParams(BaseParams): """Picture taking parameters""" horizontal_width: str # Image horizontal width

class PictureData(TypedDict): """Picture data structure""" image_id: str

class PictureResult(SuccessResult): """Picture taking result""" data: PictureData

class MyDevice(Device): """Custom device class""" devicename = "mydevice"

@action("take_picture")
def take_picture(self, params: TakePictureParams) -> PictureResult:
    """
    Execute picture taking action

    Through the @action decorator, automatically register this method as an MCP standard service
    """
    hw = params.get("horizontal_width", "default")
    # Execute actual device control logic
    return PictureResult(
        message=f"Picture taken with {self.device_name}",
        data={"image_id": "image_123"}
    )

```

Cloud Mode Development Example

```python """ MCP protocol-based cloud device control example """ import signal import sys from dp.agent.cloud import mcp, getmqttcloudinstance from dp.agent.device.device import TescanDevice, registermcp_tools

def signalhandler(sig, frame): """Graceful shutdown handling""" print("Shutting down...") getmqttcloudinstance().stop() sys.exit(0)

def main(): """Start cloud services""" print("Starting Tescan Device Twin Cloud Services...")

# Register signal handler
signal.signal(signal.SIGINT, signal_handler)

# Create device instance
device = TescanDevice(mcp, device)

# Automatically register device tools to MCP server
# register_mcp_tools implements automatic registration through Python introspection
register_mcp_tools(device)

# Start MCP server
print("Starting MCP server...")
mcp.run(transport="sse")

if name == "main": main() ```

Step 3: Run and Deploy

```bash

Local lab environment

dp-agent run tool device

Cloud computing environment

dp-agent run tool cloud

Scientific calculation mode

dp-agent run tool calculation

Start agent (with Web UI)

dp-agent run agent --config

Debug mode

dp-agent run debug ```

🏗️ Project Structure

After running dp-agent fetch scaffolding, you'll get a standardized project structure:

your-project/ ├── lab/ # Lab mode │ ├── __init__.py │ └── tescan_device.py # Device control implementation ├── cloud/ # Cloud mode │ ├── __init__.py │ └── mcp_server.py # MCP service implementation ├── calculation/ # Calculation mode │ └── __init__.py ├── .env # Environment configuration └── main.py # Main program entry

⚙️ Configuration

Configure necessary environment variables in the .env file:

```bash

MQTT connection configuration

MQTTINSTANCEID=yourinstanceid MQTTENDPOINT=yourendpoint MQTTDEVICEID=yourdeviceid MQTTGROUPID=yourgroupid MQTTAK=youraccesskey MQTTSK=yoursecretkey

Computing resource configuration

BOHRIUMUSERNAME=yourusername BOHRIUMPASSWORD=yourpassword ```

Note: The dp-agent fetch config command automatically downloads configuration files and replaces dynamic variables (such as MQTTDEVICEID). For security reasons, this feature is only available in internal network environments.

🎯 Application Scenarios

  • Materials Science Computing: Molecular dynamics simulation, first-principles calculations
  • Bioinformatics Analysis: Gene sequence analysis, protein structure prediction
  • Laboratory Equipment Control: Intelligent control of research equipment such as electron microscopes and X-ray diffractometers
  • Data Processing Workflows: Automated data cleaning, analysis, and visualization
  • Machine Learning Training: Model training, hyperparameter optimization, result evaluation

🔧 Advanced Features

File Management

```bash

Upload files to cloud

dp-agent artifact upload

Download cloud files

dp-agent artifact download ```

Task Monitoring

The SDK provides real-time task status monitoring, supporting: - Task queue management - Computing resource scheduling - Automatic result collection - Exception handling and retry mechanisms

📚 Documentation & Support

Owner

  • Name: DP Technology
  • Login: dptech-corp
  • Kind: organization
  • Location: China

GitHub Events

Total
  • Watch event: 2
  • Push event: 28
  • Pull request review event: 1
  • Pull request event: 37
  • Fork event: 7
  • Create event: 9
Last Year
  • Watch event: 2
  • Push event: 28
  • Pull request review event: 1
  • Pull request event: 37
  • Fork event: 7
  • Create event: 9

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 222
  • Total Committers: 14
  • Avg Commits per committer: 15.857
  • Development Distribution Score (DDS): 0.608
Past Year
  • Commits: 222
  • Committers: 14
  • Avg Commits per committer: 15.857
  • Development Distribution Score (DDS): 0.608
Top Committers
Name Email Commits
lhapppppy 1****y@u****m 87
zjgemi l****n@1****m 64
hzt z****g@g****m 25
liupeng l****g@d****h 16
FingerLiu l****n@g****m 9
Devin AI 1****]@u****m 5
Tuosheng Jiao t****o@u****u 4
DP dp@D****l 3
J 1****o@u****m 2
YiTian Yang 7****0@u****m 2
duanzhifeng 1****4@q****m 2
Rasic2 1****1@q****m 1
SchrodingersCattt g****2@1****m 1
lhappy l****y@M****l 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 1
  • Total pull requests: 28
  • Average time to close issues: N/A
  • Average time to close pull requests: about 5 hours
  • Total issue authors: 1
  • Total pull request authors: 5
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 15
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 28
  • Average time to close issues: N/A
  • Average time to close pull requests: about 5 hours
  • Issue authors: 1
  • Pull request authors: 5
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 15
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • lhhhappy (1)
Pull Request Authors
  • zjgemi (20)
  • lhhhappy (5)
  • Lonya0 (1)
  • Rasic2 (1)
  • SchrodingersCattt (1)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 554 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 23
  • Total maintainers: 1
pypi.org: bohr-agent-sdk

SDK for scientific agents

  • Versions: 23
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 554 Last month
Rankings
Dependent packages count: 9.0%
Forks count: 18.4%
Average: 27.1%
Stargazers count: 30.0%
Dependent repos count: 50.9%
Maintainers (1)
Last synced: 6 months ago

Dependencies

pyproject.toml pypi
  • click >=8.0.0
  • mcp *
  • python-dotenv >=1.0.0
  • typing-extensions >=4.8.0
setup.py pypi
  • aiohttp >=3.9.1
  • click *
  • mcp *
  • paho-mqtt >=1.6.1
  • python-dotenv >=1.0.0
  • redis >=5.0.1
  • typing-extensions >=4.8.0
uv.lock pypi
  • annotated-types 0.7.0
  • anyio 4.9.0
  • certifi 2025.1.31
  • click 8.1.8
  • colorama 0.4.6
  • exceptiongroup 1.2.2
  • h11 0.14.0
  • httpcore 1.0.8
  • httpx 0.28.1
  • httpx-sse 0.4.0
  • idna 3.10
  • mcp 1.6.0
  • pydantic 2.11.3
  • pydantic-core 2.33.1
  • pydantic-settings 2.8.1
  • python-dotenv 1.1.0
  • science-agent-sdk *
  • sniffio 1.3.1
  • sse-starlette 2.2.1
  • starlette 0.46.2
  • typing-extensions 4.13.2
  • typing-inspection 0.4.0
  • uvicorn 0.34.1