Job Entertainment¶
job_entertainment — G6 Entertainment job agent.
Cluster: Job Agents | Type: component | MCP Tools: 26
Overview¶
Domain-specialist job agent for entertainment industry professionals including producers, event coordinators, and content programmers. Plans events, curates content catalogues, manages production schedules, coordinates audience engagement, reviews performance outcomes, and analyses viewership or attendance data — all within G6's safety-bounded, audit-trailed JobAgentBlock framework.
When to use:
- Planning a live event from concept through run-of-show schedule and crew allocation
- Curating a content playlist or release schedule optimised for audience retention metrics
- Reviewing post-event performance against KPIs and generating an outcomes report
- Analysing streaming or ticket-sales viewership data to inform future programming
Example:
from mvp.job_entertainment import JobEntertainmentBlock, JobEntertainmentInput
block = JobEntertainmentBlock()
result = block.infer(JobEntertainmentInput(
task="Plan a 3-day music festival for 15,000 attendees including stage schedules, artist logistics, and contingency plan",
context={"venue": "Centennial Park", "budget_aud": 2_000_000, "genres": ["indie", "electronic", "hip-hop"]},
))
# result.ok → True; result.value → JobEntertainmentOutput with result, artifacts
Works well with: job_framework, job_creative_media, job_marketing
Launch Caveat¶
Deterministic by default
job_entertainment is tuned for fast first-run MCP onboarding. Core planning, scheduling, budgeting, ratings, rights, and audience-analysis tools run locally and deterministically by default.
Deep enrichment is intentionally opt-in. By default the component does not call optional grounding, live search, LLM-backed debate, Experta, or Bayesian enrichment adapters. This avoids slow startup, unavailable-service failures, and surprise API cost during the launch-path install experience.
For design-partner or expert workflows that need richer market context, enable enrichment explicitly with G6_JOB_ENTERTAINMENT_DEEP_INTEGRATIONS=1 or G6_JOB_DEEP_INTEGRATIONS=1. Live web search also requires G6_JOB_LIVE_SEARCH=1; LLM-backed debate requires G6_JOB_LIVE_LLM=1 and a configured backend. Treat enriched output as advisory support, not legal, licensing, safety, or production sign-off.
Distribution platform and territory data are served by InMemoryDistributionAdapter unless a future live backend is explicitly added. Capability discovery and adapter outputs label this as sample_data=true, simulation_only=true, and live_distribution_backend=false; external market claims remain qualified-draft without live evidence.
audit_rights, assess_ratings, and plan_event surface human_review_required as an advisory signal. The signal does not silently block Tier-2 MCP execution; production reliance still requires the inherited reviewer-signature gate or an external qualified reviewer.
Public API¶
JobEntertainmentBlock(JobAgentBlock)¶
G6 Entertainment job agent - Tier 1 block with MCP delegation.
| Field | Type | Default |
|---|---|---|
name | str | 'job_entertainment' |
sector | SectorClassification | field(default_factory=lambda: _SECTOR) |
toolkit | ToolkitSpec \| None | field(default_factory=lambda: JOB_TOOLKITS.get('entertainment')) |
mcp_module | str | 'mvp.job_entertainment.entertainment_mcp.server' |
agentic_planner | object \| None | None |
capabilities | ClassVar[set[type]] | {Extensible, HumanLearnable, Collaborative, ProblemSolvable, KnowledgeGrounded, Memorable, AgentCommunicable} |
Methods:
infer(data: Any)¶
JobEntertainmentInput(JobInput)¶
Input for the Entertainment job agent.
JobEntertainmentOutput(JobOutput)¶
JobEntertainmentMCPBlock(AIBlock[MCPJobEntertainmentInput, MCPJobEntertainmentOutput, dict])¶
26-op MCP block for the Entertainment job agent.
| Field | Type | Default |
|---|---|---|
name | str | 'job_entertainment_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: MCPJobEntertainmentInput) -> Result[MCPJobEntertainmentOutput]¶
MCPJobEntertainmentInput(BaseModel)¶
Input to JobEntertainmentMCPBlock - 26-op dispatch.
| Field | Type | Default |
|---|---|---|
op | Literal['plan_event', 'curate_content', 'manage_schedule', 'engage_audience', 'review_performance', 'analyze_viewership', 'evaluate_content', 'assess_ratings', 'benchmark_engagement', 'audit_rights', '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 | '' |
MCPJobEntertainmentOutput(BaseModel)¶
Output from JobEntertainmentMCPBlock.
| 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 | '' |
EntertainmentStore(JobStore)¶
SQLite store for the Entertainment job agent.
Constructor:
| Parameter | Type | Default |
|---|---|---|
db_path | str | ':memory:' |
Methods:
create_production(title: str, production_type: str = '', genre: str = '', budget: float = 0, revenue: float = 0, status: str = 'development', data: dict | None = None) -> str¶
get_production(production_id: str) -> dict | None¶
list_productions(status: str = '') -> list[dict]¶
update_production(production_id: str, **fields: Any) -> bool¶
create_talent(name: str, role_type: str = '', representation: str = '', credits: list | None = None, availability: str = 'available', rate: float = 0, data: dict | None = None) -> str¶
get_talent(talent_id: str) -> dict | None¶
list_talent(role_type: str = '', availability: str = '') -> list[dict]¶
create_contract(production_id: str, talent_id: str, deal_type: str = '', compensation: dict | None = None, rights: dict | None = None, term: str = '', status: str = 'draft') -> str¶
get_contract(contract_id: str) -> dict | None¶
list_contracts(production_id: str = '', talent_id: str = '', status: str = '') -> list[dict]¶
create_schedule(production_id: str, title: str = '', schedule_type: str = '', start_date: str = '', end_date: str = '', locations: list | None = None, resources: list | None = None, status: str = 'planned') -> str¶
get_schedule(schedule_id: str) -> dict | None¶
list_schedules(production_id: str = '', schedule_type: str = '') -> list[dict]¶
create_royalty(contract_id: str, period: str = '', gross_revenue: float = 0, deductions: dict | None = None, net_revenue: float = 0, royalty_rate: float = 0, amount_due: float = 0, status: str = 'pending') -> str¶
get_royalty(royalty_id: str) -> dict | None¶
list_royalties(contract_id: str = '', period: str = '', status: str = '') -> list[dict]¶
Functions¶
assemble_review_text(output: Any) -> str¶
Collect the reviewable free text from a JobEntertainmentOutput (duck-typed).
assess_entertainment_output(output: Any, qa_block: Any | None = None, generate: Any | None = None) -> GroundedRunResult¶
Run grounded four-valued QA over an entertainment output.
MCP Tools¶
| Operation | Source |
|---|---|
plan_event | entertainment_mcp |
curate_content | entertainment_mcp |
manage_schedule | entertainment_mcp |
engage_audience | entertainment_mcp |
review_performance | entertainment_mcp |
analyze_viewership | entertainment_mcp |
evaluate_content | entertainment_mcp |
assess_ratings | entertainment_mcp |
benchmark_engagement | entertainment_mcp |
audit_rights | entertainment_mcp |
create_proposal | entertainment_mcp |
review_deliverable | entertainment_mcp |
delegate_task | entertainment_mcp |
report_status | entertainment_mcp |
request_feedback | entertainment_mcp |
store_artifact | entertainment_mcp |
retrieve_artifact | entertainment_mcp |
list_artifacts | entertainment_mcp |
search_artifacts | entertainment_mcp |
archive | entertainment_mcp |
plan_sprint | entertainment_mcp |
track_progress | entertainment_mcp |
reflect_on_outcome | entertainment_mcp |
list_patterns | entertainment_mcp |
get_capabilities | entertainment_mcp |
info | entertainment_mcp |