Documentation Index Fetch the complete documentation index at: https://mintlify.com/bio-xyz/BioAgents/llms.txt
Use this file to discover all available pages before exploring further.
The Analysis Agent performs data analysis on uploaded datasets using either Edison AI or BioAgents Data Analysis backends. It executes code, generates visualizations, and returns results with artifacts.
Function Signature
// src/agents/analysis/index.ts
export async function analysisAgent ( input : {
objective : string ;
datasets : Dataset [];
type : AnalysisType ;
userId : string ;
conversationStateId : string ;
onPollUpdate ?: OnPollUpdate ;
}) : Promise < AnalysisResult >;
type AnalysisType = "EDISON" | "BIO" ;
type Dataset = {
filename : string ;
id : string ;
description : string ;
content ?: Buffer ;
path ?: string ;
};
type AnalysisResult = {
objective : string ;
output : string ;
jobId ?: string ;
reasoning ?: string [];
start ?: string ;
end ?: string ;
artifacts ?: Array < AnalysisArtifact >;
};
Backends
Edison (Default)
Deep analysis via Edison AI agent with automatic file upload.
const result = await analysisAgent ({
objective: "Analyze gene expression patterns and identify key regulators" ,
datasets: [
{
filename: "expression_data.csv" ,
id: "dataset-123" ,
description: "RNA-seq gene expression matrix" ,
content: buffer
}
],
type: "EDISON" ,
userId: "user-456" ,
conversationStateId: "conv-789"
});
Configuration:
EDISON_API_URL = https://your-edison-api
EDISON_API_KEY = your_key
EDISON_TASK_TIMEOUT_MINUTES = 30
See Edison deployment .
BIO
BioAgents Data Analysis Agent with state-of-the-art performance.
const result = await analysisAgent ({
objective: "Perform statistical analysis of metabolite concentrations" ,
datasets: [
{
filename: "metabolites.xlsx" ,
id: "dataset-456" ,
description: "Metabolomics data from mass spectrometry" ,
path: "uploads/metabolites.xlsx"
}
],
type: "BIO" ,
userId: "user-456" ,
conversationStateId: "conv-789" ,
onPollUpdate : ( update ) => {
console . log ( update . reasoning ); // Real-time trace
}
});
Configuration:
PRIMARY_ANALYSIS_AGENT = bio
DATA_ANALYSIS_API_URL = https://your-analysis-api
DATA_ANALYSIS_API_KEY = your_key
BIO_ANALYSIS_TASK_TIMEOUT_MINUTES = 60
See BioAgents Data Analysis .
BioAgents Analysis Agent achieves state-of-the-art performance on BixBench:
Evaluation Mode Score Open-Answer 48.78% Multiple-Choice (with refusal) 55.12% Multiple-Choice (without refusal) 64.39%
Outperforms Kepler, GPT-5, and others across all modes. See research paper .
The agent returns:
output : Synthesized analysis results with inline citations
artifacts : Generated files (plots, tables, code)
jobId : External job ID for tracking
reasoning : Real-time reasoning trace (BIO backend only)
Example Response
{
"objective" : "Analyze gene expression" ,
"output" : "Analysis identified 342 differentially expressed genes (FDR < 0.05). Key regulators include TP53 and MYC with log2 fold changes of -2.3 and 1.8 respectively. See plot_volcano.png for visualization." ,
"jobId" : "bio-task-123" ,
"artifacts" : [
{
"id" : "artifact-1" ,
"filename" : "plot_volcano.png" ,
"type" : "image/png" ,
"path" : "artifacts/conv-789/artifact-1/plot_volcano.png"
},
{
"id" : "artifact-2" ,
"filename" : "deg_table.csv" ,
"type" : "text/csv" ,
"path" : "artifacts/conv-789/artifact-2/deg_table.csv"
}
]
}
Usage Example
// src/routes/deep-research/start.ts
const analysisTasks = plan . filter ( t => t . type === "ANALYSIS" );
for ( const task of analysisTasks ) {
const result = await analysisAgent ({
objective: task . objective ,
datasets: task . datasets ,
type: analysisType ,
userId ,
conversationStateId: conversationState . id ,
onPollUpdate : ( update ) => {
// Send real-time updates via WebSocket
notifyJobUpdate ( messageId , update );
}
});
task . output = result . output ;
task . jobId = result . jobId ;
task . artifacts = result . artifacts ;
}
Configuration
Primary agent: edison or bio
Edison API base URL (when PRIMARY_ANALYSIS_AGENT=edison or empty)
EDISON_TASK_TIMEOUT_MINUTES
Edison task timeout in minutes
BioAgents Analysis API base URL (when PRIMARY_ANALYSIS_AGENT=bio)
BioAgents Analysis API key
BIO_ANALYSIS_TASK_TIMEOUT_MINUTES
BioAgents Analysis task timeout in minutes
Error Handling
If analysis exceeds timeout, the agent returns an error: {
"output" : "Error: Analysis task timed out after 60 minutes" ,
"jobId" : "bio-task-123"
}
Increase BIO_ANALYSIS_TASK_TIMEOUT_MINUTES or EDISON_TASK_TIMEOUT_MINUTES.
If dataset path is invalid: {
"output" : "Error: Dataset 'data.csv' not found at path 'uploads/data.csv'"
}
Verify dataset was uploaded successfully and path is correct.
If external API is unreachable: {
"output" : "Error: Failed to connect to analysis API: ECONNREFUSED"
}
Check API URL and network connectivity.
File Upload Upload datasets for analysis
Planning Agent Generates analysis tasks
Discovery Agent Extracts discoveries from results