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 |