Skip to content

Job Energy

job_energy — G6 Energy job agent.

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

Overview

Domain-specialist job agent for energy sector professionals. Monitors grid operations, optimises power distribution, forecasts demand curves, inspects facilities, reports generation output, and analyses consumption patterns — providing a structured energy-management workflow within G6's safety-bounded, audit-trailed JobAgentBlock framework.

When to use:

  • Monitoring real-time grid telemetry and detecting anomalies or fault conditions
  • Optimising dispatch schedules to balance renewable intermittency against baseload demand
  • Producing regulatory compliance reports on generation output and emissions
  • Forecasting short- and medium-term energy demand to inform procurement decisions

Production caveats

job_energy is an advisory analysis component, not operational authority for grid, electrical, process-safety, trading, or energy-facility actions. Outputs must be reviewed by qualified operators, licensed engineers, or other responsible professionals before use in real-world operations, compliance filings, switching decisions, dispatch changes, facility work, or safety-critical remediation.

High-stakes operations such as monitor_grid, optimize_distribution, forecast_demand, inspect_facility, and audit_emissions require an explicit professional context or context={"mode": "research_only"}. Without that context, the top-level job agent returns completion_state="blocked-escalated" with confidence=0.0, a warning_card, and structured evidence instead of executing the operation. Deterministic fallback remains useful but is surfaced as completion_state="qualified-draft" rather than overclaimed as verified.

Live web search and live LLM-backed debate are opt-in (G6_JOB_LIVE_SEARCH=1 and G6_JOB_LIVE_LLM=1). The default mode is local/deterministic so first-time MCP installs, CI, and pilot demos do not depend on external network calls or paid model credentials.

Example:

from mvp.job_energy import JobEnergyBlock, JobEnergyInput

block = JobEnergyBlock()
result = block.infer(JobEnergyInput(
    task="Forecast electricity demand for the Sydney metro grid over the next 7 days and recommend dispatch schedule",
    context={"region": "NSW", "renewable_capacity_mw": 2400, "horizon_days": 7},
))
# result.ok → True; result.value → JobEnergyOutput with result, artifacts

Works well with: job_framework, job_engineer, job_scientist

Public API

JobEnergyBlock(JobAgentBlock)

G6 Energy job agent — Tier 1 block with MCP delegation.

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

Methods:

infer(data: JobEnergyInput) -> Result[JobEnergyOutput]

JobEnergyInput(JobInput)

Input for the Energy job agent.

JobEnergyOutput(JobOutput)

JobEnergyMCPBlock(AIBlock[MCPJobEnergyInput, MCPJobEnergyOutput, dict])

26-op MCP block for the Energy job agent.

Field Type Default
name str 'job_energy_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: MCPJobEnergyInput) -> Result[MCPJobEnergyOutput]

MCPJobEnergyInput(BaseModel)

Input to JobEnergyMCPBlock -- 26-op dispatch.

Field Type Default
op Literal['monitor_grid', 'optimize_distribution', 'forecast_demand', 'inspect_facility', 'report_output', 'analyze_consumption', 'evaluate_efficiency', 'assess_capacity', 'benchmark_generation', 'audit_emissions', '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', 'list_patterns', 'get_capabilities', 'info'] required
task str ''
context dict[str, Any] Field(default_factory=dict)
parameters dict[str, Any] Field(default_factory=dict)
artifact_id str ''
query str ''

MCPJobEnergyOutput(BaseModel)

Output from JobEnergyMCPBlock.

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)
request_id str ''
run_id str ''

EnergyStore(JobStore)

SQLite store for the Energy job agent.

Constructor:

Parameter Type Default
db_path str ':memory:'

Methods:

create_asset(name: str, fuel_type: str = '', technology: str = '', nameplate_mw: float = 0, location: str = '', commissioned: str = '', data: dict | None = None) -> str

get_asset(asset_id: str) -> dict | None

list_assets(fuel_type: str = '', status: str = '') -> list[dict]

update_asset_status(asset_id: str, status: str) -> bool

record_production(asset_id: str, period: str, generation_mwh: float = 0, capacity_factor: float = 0, heat_rate: float = 0, emissions_tco2: float = 0, data: dict | None = None) -> str

get_production(asset_id: str = '', period: str = '', limit: int = 100) -> list[dict]

get_total_generation(period: str = '') -> float

Sum of generation_mwh for a given period (or all).

record_grid_metrics(region: str, period: str, peak_demand_mw: float = 0, avg_demand_mw: float = 0, reserve_margin: float = 0, frequency_hz: float = 60.0, saidi_minutes: float = 0, data: dict | None = None) -> str

get_grid_metrics(region: str = '', limit: int = 50) -> list[dict]

get_latest_grid_metric(region: str = '') -> dict | None

Get the most recent grid metric record.

create_filing(filing_type: str, authority: str = '', due_date: str = '', data: dict | None = None) -> str

list_filings(status: str = '', filing_type: str = '', limit: int = 50) -> list[dict]

update_filing_status(filing_id: str, status: str, filed_date: str = '') -> bool

create_position(commodity: str, direction: str = 'long', quantity: float = 0, entry_price: float = 0, current_price: float = 0, contract_type: str = 'spot', expiry_date: str = '', data: dict | None = None) -> str

get_positions(commodity: str = '', limit: int = 100) -> list[dict]

update_position_price(position_id: str, current_price: float) -> bool

close_position(position_id: str, close_price: float) -> bool

Mark a position as closed with final price.

record_consumption(facility_id: str, period: str, consumption_kwh: float = 0, peak_demand_kw: float = 0, energy_cost: float = 0, demand_cost: float = 0, facility_type: str = '', data: dict | None = None) -> str

get_consumption(facility_id: str = '', period: str = '', limit: int = 100) -> list[dict]

create_storage_system(name: str, technology: str = 'li_ion', capacity_kwh: float = 0, power_kw: float = 0, location: str = '', data: dict | None = None) -> str

get_storage_system(system_id: str) -> dict | None

list_storage_systems(technology: str = '', status: str = '') -> list[dict]

update_storage_health(system_id: str, soh_pct: float, cycles_completed: int) -> bool

record_emissions(period: str, scope: str = 'scope1', emissions_tco2: float = 0, source: str = '', carbon_intensity: float = 0, data: dict | None = None) -> str

get_emissions(period: str = '', scope: str = '', limit: int = 100) -> list[dict]

get_total_emissions(period: str = '', scope: str = '') -> float

Sum emissions for a period/scope.

Functions

assemble_review_text(output: Any) -> str

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

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

Run grounded four-valued QA over an energy output.

MCP Tools

Operation Source
monitor_grid energy_mcp
optimize_distribution energy_mcp
forecast_demand energy_mcp
inspect_facility energy_mcp
report_output energy_mcp
analyze_consumption energy_mcp
evaluate_efficiency energy_mcp
assess_capacity energy_mcp
benchmark_generation energy_mcp
audit_emissions energy_mcp
create_proposal energy_mcp
review_deliverable energy_mcp
delegate_task energy_mcp
report_status energy_mcp
request_feedback energy_mcp
store_artifact energy_mcp
retrieve_artifact energy_mcp
list_artifacts energy_mcp
search_artifacts energy_mcp
archive energy_mcp
plan_sprint energy_mcp
track_progress energy_mcp
reflect_on_outcome energy_mcp
list_patterns energy_mcp
get_capabilities energy_mcp
info energy_mcp