Job Mining¶
job_mining — G6 Mining job agent.
Cluster: Job Agents | Type: component | MCP Tools: 26
Overview¶
Domain-specialist job agent for mining industry professionals. Conducts geophysical site surveys, plans extraction schedules, monitors safety conditions in real time, analyses mineral yield and grade, reports regulatory compliance, and performs geological analysis — all within G6's safety-first, audit-trailed JobAgentBlock framework with mandatory human oversight for high-risk operations.
Mining component scope
job_mining is useful for reviewed feasibility checks, workflow prototypes, safety/compliance triage, and design-partner demonstrations. It is not operational authority, a certified safety system, a permitting or environmental compliance approval engine, a resource-estimation sign-off, or a substitute for a qualified mining professional. Local calculations use embedded/static rules and user-supplied site data; they can be incomplete, stale, or inapplicable to a specific jurisdiction, geology, mine plan, or operating condition. Treat outputs as decision-support drafts that require independent professional review, current source-data validation, and jurisdiction-specific checks before any field, production, permitting, investor-facing, or customer-facing use.
Reliability contract: R3 mining outputs use domain_expert_review; degraded but useful outputs remain qualified-draft, and refusal or missing required context escalates rather than presenting a clean result. Formula limits include the fixed ventilation diesel factor, simplified explosives quantity-distance checks, decision-support JORC classification, tailings FoS, water balance, AISC, NPV, IRR, and static regulatory checks. The get_capabilities and list_patterns tools expose backend health, recipes, expert prompt builders, and applied patterns so callers can identify the weakest link before relying on a result.
When to use:
- Planning extraction sequences for an open-cut or underground mine to optimise grade and strip ratio
- Monitoring real-time safety telemetry (gas levels, ground movement, ventilation) and alerting on thresholds
- Generating regulatory compliance reports for environmental and safety authorities
- Analysing drill-core assay data to update geological models and reserve estimates
Example:
from mvp.job_mining import JobMiningBlock, JobMiningInput
block = JobMiningBlock()
result = block.infer(JobMiningInput(
task="Plan the next quarter's ore extraction schedule for the Eastern Pit to maintain 85% ROM feed grade at 1.8 g/t Au",
context={"mine": "Kalgoorlie-East", "target_grade_gt": 1.8, "blast_blocks_available": 12},
))
# result.ok → True; result.value → JobMiningOutput with result, artifacts
Works well with: job_framework, job_scientist, job_machinery_operator
Public API¶
JobMiningBlock(JobAgentBlock)¶
G6 Mining job agent — Tier 1 block with MCP delegation and safety gate.
| Field | Type | Default |
|---|---|---|
name | str | 'job_mining' |
sector | SectorClassification | field(default_factory=lambda: _SECTOR) |
toolkit | ToolkitSpec \| None | field(default_factory=lambda: JOB_TOOLKITS.get('mining')) |
mcp_module | str | 'mvp.job_mining.mining_mcp.server' |
capabilities | ClassVar[set[type]] | {Extensible, HumanLearnable, Collaborative, ProblemSolvable, KnowledgeGrounded, Memorable, AgentCommunicable, Actuatable} |
Methods:
infer(data: JobMiningInput) -> Result[JobMiningOutput]¶
JobMiningInput(JobInput)¶
Input for the Mining job agent.
JobMiningOutput(JobOutput)¶
JobMiningMCPBlock(AIBlock[MCPJobMiningInput, MCPJobMiningOutput, dict])¶
26-op MCP block for the Mining job agent.
| Field | Type | Default |
|---|---|---|
name | str | 'job_mining_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: MCPJobMiningInput) -> Result[MCPJobMiningOutput]¶
MCPJobMiningInput(BaseModel)¶
Input to JobMiningMCPBlock — 26-op dispatch.
| Field | Type | Default |
|---|---|---|
op | Literal['survey_site', 'plan_extraction', 'monitor_safety', 'analyze_yield', 'report_compliance', 'analyze_geology', 'evaluate_reserves', 'assess_environmental', 'benchmark_output', 'audit_permits', '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 | '' |
MCPJobMiningOutput(BaseModel)¶
Output from JobMiningMCPBlock.
| 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 |
completion_state | Literal['verified', 'qualified-draft', 'blocked-escalated'] | 'qualified-draft' |
warning_card | dict[str, Any] | Field(default_factory=dict) |
evidence | dict[str, Any] | Field(default_factory=dict) |
human_review_required | bool | False |
MiningStore(JobStore)¶
SQLite store for the Mining job agent.
Constructor:
| Parameter | Type | Default |
|---|---|---|
db_path | str | ':memory:' |
Methods:
create_resource(site_name: str = '', jorc_category: str = '', tonnage_t: float = 0, grade: float = 0, grade_unit: str = 'pct', contained_metal: float = 0, metal_unit: str = 'tonnes', confidence_score: float = 0, cutoff_grade: float = 0, data: dict | None = None) -> str¶
get_resource(resource_id: str) -> dict | None¶
list_resources(site_name: str = '', jorc_category: str = '') -> list[dict]¶
create_blast(site_name: str = '', blast_type: str = '', powder_factor: float = 0, fragmentation_p80: float = 0, vibration_ppv: float = 0, pattern: dict | None = None, compliance: str = '', data: dict | None = None) -> str¶
list_blasts(site_name: str = '') -> list[dict]¶
create_safety_incident(site_name: str = '', incident_type: str = '', severity: str = '', hazard_type: str = '', risk_level: str = '', risk_score: float = 0, description: str = '', corrective_action: str = '', data: dict | None = None) -> str¶
list_safety_incidents(site_name: str = '', status: str = '', severity: str = '') -> list[dict]¶
close_safety_incident(incident_id: str, corrective_action: str = '') -> bool¶
create_production_record(site_name: str = '', period: str = '', ore_tonnes: float = 0, waste_tonnes: float = 0, grade: float = 0, recovery_pct: float = 0, metal_produced: float = 0, cost_per_tonne: float = 0, strip_ratio: float = 0, data: dict | None = None) -> str¶
list_production_records(site_name: str = '', period: str = '') -> list[dict]¶
create_environmental_sample(site_name: str = '', sample_type: str = '', location: str = '', ph: float = 7.0, turbidity_ntu: float = 0, heavy_metals: dict | None = None, compliant: bool = True, flags: list | None = None, data: dict | None = None) -> str¶
list_environmental_samples(site_name: str = '', sample_type: str = '', compliant_only: bool = False) -> list[dict]¶
Functions¶
assemble_review_text(output: Any) -> str¶
Collect the reviewable free text from a JobMiningOutput (duck-typed).
assess_mining_output(output: Any, qa_block: Any | None = None, generate: Any | None = None) -> GroundedRunResult¶
Run grounded four-valued QA over a mining output.
MCP Tools¶
| Operation | Source |
|---|---|
survey_site | mining_mcp |
plan_extraction | mining_mcp |
monitor_safety | mining_mcp |
analyze_yield | mining_mcp |
report_compliance | mining_mcp |
analyze_geology | mining_mcp |
evaluate_reserves | mining_mcp |
assess_environmental | mining_mcp |
benchmark_output | mining_mcp |
audit_permits | mining_mcp |
create_proposal | mining_mcp |
review_deliverable | mining_mcp |
delegate_task | mining_mcp |
report_status | mining_mcp |
request_feedback | mining_mcp |
store_artifact | mining_mcp |
retrieve_artifact | mining_mcp |
list_artifacts | mining_mcp |
search_artifacts | mining_mcp |
archive | mining_mcp |
plan_sprint | mining_mcp |
track_progress | mining_mcp |
reflect_on_outcome | mining_mcp |
get_capabilities | mining_mcp |
info | mining_mcp |
list_patterns | mining_mcp |