Skip to contents

rho.bio.agent exposes declared bioinformatics resources to an agent through the ordinary rho.ext and rho.ai tool contracts. It is downstream of the provider and agent core.

Register and call a bio tool

library(rho.async)
library(rho.ai)
library(rho.bio)
library(rho.ext)
library(rho.bio.agent)

registry <- rho_bio_registry()
rho_register_manifest(registry, rho_manifest(
  id = "example",
  version = "1.0.0",
  title = "Example manifest",
  description = "A registered manifest"
))

runtime <- rho_extension_runtime()
rho_register_bio_extension(rho_extension_api(runtime), registry)
tool <- get("bio_describe_manifest", runtime@state$tools)
result <- rho_execute_tool(
  tool,
  ToolCall("bio-1", "bio_describe_manifest", list()),
  context = NULL
) |>
  rho_await(timeout = 1000)

list(
  tool = tool@name,
  manifests = result@details$count
)
#> $tool
#> [1] "bio_describe_manifest"
#>
#> $manifests
#> [1] 1

The extension translates registry facts into tool results; it does not make the model the authority for those facts. Additional bio workflows can register tools without changing rho.agent.

See the rho.bio.agent reference and the underlying rho.bio substrate.