Skip to content

Job Pharmaceutical

job_pharmaceutical — G6 Pharmaceutical job agent.

Cluster: Job Agents | Type: component | MCP Tools: 26

Overview

Domain-specialist job agent for pharmaceutical scientists and regulatory affairs professionals. Analyses chemical compounds, reviews clinical trial data, checks drug-drug interactions, assesses therapeutic efficacy, documents research findings, and performs pharmacokinetic modelling — all within a safety-first, human-review-flagged JobAgentBlock framework appropriate for regulated environments.

When to use:

  • Reviewing Phase II or Phase III trial results and generating a structured efficacy and safety summary
  • Checking a proposed drug combination for clinically significant interaction risks
  • Performing pharmacokinetic analysis (AUC, Cmax, t½) from plasma concentration data
  • Drafting regulatory submission documents aligned to TGA, FDA, or EMA requirements

Example:

from mvp.job_pharmaceutical import JobPharmaceuticalBlock, JobPharmaceuticalInput

block = JobPharmaceuticalBlock()
result = block.infer(JobPharmaceuticalInput(
    task="Assess the drug-drug interaction risk between the investigational compound XR-402 and warfarin based on CYP2C9 inhibition data",
    context={"compound": "XR-402", "co-medication": "warfarin", "enzyme": "CYP2C9"},
))
# result.ok → True; result.value → JobPharmaceuticalOutput with result, artifacts

Works well with: job_framework, job_scientist, job_medical_surgical

Public API

JobPharmaceuticalBlock(JobAgentBlock)

G6 Pharmaceutical job agent — Tier 1 block with MCP delegation and two safety floors.

Field Type Default
name str 'job_pharmaceutical'
sector SectorClassification field(default_factory=lambda: _SECTOR)
toolkit ToolkitSpec \| None field(default_factory=lambda: JOB_TOOLKITS.get('pharmaceutical'))
mcp_module str 'mvp.job_pharmaceutical.pharmaceutical_mcp.server'
capabilities ClassVar[set[type]] {Extensible, HumanLearnable, Collaborative, ProblemSolvable, KnowledgeGrounded, Memorable, AgentCommunicable}

JobPharmaceuticalInput(JobInput)

Input for the Pharmaceutical job agent.

JobPharmaceuticalOutput(JobOutput)

Output from the Pharmaceutical job agent.

JobPharmaceuticalMCPBlock(AIBlock[MCPJobPharmaceuticalInput, MCPJobPharmaceuticalOutput, dict])

26-op MCP block for the Pharmaceutical job agent.

Field Type Default
name str 'job_pharmaceutical_mcp'
state dict field(default_factory=dict)
db_path str ':memory:'
resource_bounds ResourceBounds field(default_factory=ResourceBounds)
usage ResourceUsage field(default_factory=ResourceUsage)

Methods:

infer(data: MCPJobPharmaceuticalInput) -> Result[MCPJobPharmaceuticalOutput]

MCPJobPharmaceuticalInput(BaseModel)

Input to JobPharmaceuticalMCPBlock — 26-op dispatch.

Field Type Default
op Literal['analyze_compound', 'review_trial', 'check_interaction', 'assess_efficacy', 'document_findings', 'analyze_pharmacokinetics', 'evaluate_safety', 'assess_dosage', 'benchmark_bioavailability', 'audit_protocol', 'create_proposal', 'review_deliverable', 'delegate_task', 'report_status', 'request_feedback', 'store_artifact', 'retrieve_artifact', 'list_artifacts', 'search_artifacts', 'archive', 'plan_sprint', 'track_progress', 'reflect_on_outcome', 'get_capabilities', 'info', 'list_patterns'] required
task str ''
context dict[str, Any] Field(default_factory=dict)
parameters dict[str, Any] Field(default_factory=dict)
artifact_id str ''
query str ''
run_mode str 'beta'
reviewer_signature str ''

MCPJobPharmaceuticalOutput(BaseModel)

Output from JobPharmaceuticalMCPBlock.

Field Type Default
op str required
result str ''
artifacts list[dict[str, Any]] Field(default_factory=list)
records list[dict[str, Any]] Field(default_factory=list)
message str ''
count int 0
found bool False
metadata dict[str, Any] Field(default_factory=dict)
degraded bool False
degradation_reason str \| None None

PharmaceuticalStore(JobStore)

SQLite store for the Pharmaceutical job agent.

Constructor:

Parameter Type Default
db_path str ':memory:'

Methods:

execute(sql: str, params: tuple = ()) -> None

Execute a SQL statement and commit. Convenience wrapper for handlers.

fetchall(sql: str, params: tuple = ()) -> list

Execute a SELECT and return all rows as dicts.

fetchone(sql: str, params: tuple = ()) -> dict | None

Execute a SELECT and return the first row as a dict, or None.

Functions

assemble_review_text(output: Any) -> str

Collect the reviewable free text from a JobPharmaceuticalOutput (duck-typed).

assess_pharmaceutical_output(output: Any, qa_block: Any | None = None, generate: Any | None = None) -> GroundedRunResult

Run grounded four-valued QA over a pharmaceutical output.

MCP Tools

Operation Source
analyze_compound pharmaceutical_mcp
review_trial pharmaceutical_mcp
check_interaction pharmaceutical_mcp
assess_efficacy pharmaceutical_mcp
document_findings pharmaceutical_mcp
analyze_pharmacokinetics pharmaceutical_mcp
evaluate_safety pharmaceutical_mcp
assess_dosage pharmaceutical_mcp
benchmark_bioavailability pharmaceutical_mcp
audit_protocol pharmaceutical_mcp
create_proposal pharmaceutical_mcp
review_deliverable pharmaceutical_mcp
delegate_task pharmaceutical_mcp
report_status pharmaceutical_mcp
request_feedback pharmaceutical_mcp
store_artifact pharmaceutical_mcp
retrieve_artifact pharmaceutical_mcp
list_artifacts pharmaceutical_mcp
search_artifacts pharmaceutical_mcp
archive pharmaceutical_mcp
plan_sprint pharmaceutical_mcp
track_progress pharmaceutical_mcp
reflect_on_outcome pharmaceutical_mcp
get_capabilities pharmaceutical_mcp
info pharmaceutical_mcp
list_patterns pharmaceutical_mcp