Skip to content

Job Tourism

job_tourism — G6 Tourism job agent.

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

Overview

Domain-specialist job agent for travel and tourism professionals including tour operators, travel agents, and destination managers. Plans personalised itineraries, books accommodation, researches destinations, creates travel guides, manages reservations, and analyses visitor demand and seasonal patterns — all within G6's safety-bounded, audit-trailed JobAgentBlock framework.

When to use:

  • Building detailed multi-day travel itineraries tailored to traveller preferences and budget
  • Researching destination options including entry requirements, climate, and local attractions
  • Creating structured destination guides or tour product descriptions
  • Analysing booking demand patterns to optimise seasonal pricing and inventory

Example:

from mvp.job_tourism import JobTourismBlock, JobTourismInput

block = JobTourismBlock()
result = block.infer(JobTourismInput(
    task="Plan a 10-day cultural itinerary through Japan for a couple celebrating their 25th anniversary, budget AUD 12,000",
    context={"interests": ["temples", "cuisine", "art", "onsens"], "travel_style": "mid-luxury", "departure": "SYD"},
))
# result.ok → True; result.value → JobTourismOutput with result, artifacts

Works well with: job_framework, job_hospitality, job_services

Public API

JobTourismInput(JobInput)

Input for the Tourism job agent.

JobTourismOutput(JobOutput)

JobTourismBlock(JobAgentBlock)

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

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

Methods:

infer(data)

MCPJobTourismInput(BaseModel)

Input to JobTourismMCPBlock — 26-op dispatch.

Field Type Default
op Literal['plan_itinerary', 'book_accommodation', 'research_destination', 'create_guide', 'manage_reservation', 'analyze_demand', 'evaluate_destination', 'assess_pricing', 'benchmark_reviews', 'audit_bookings', '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 ''

MCPJobTourismOutput(BaseModel)

Output from JobTourismMCPBlock.

Field Type Default
op str required
completion_state Literal['verified', 'qualified-draft', 'blocked-escalated'] 'qualified-draft'
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

TourismStore(JobStore)

SQLite store for the Tourism job agent.

Constructor:

Parameter Type Default
db_path str ':memory:'

Methods:

save_destination(destination_id: str = '', name: str = '', country: str = '', region: str = '', destination_type: str = '', area_km2: float = 0, annual_visitors: int = 0, carrying_capacity: float = 0, status: str = 'active', data: dict | None = None) -> str

get_destination(destination_id: str) -> dict | None

list_destinations(country: str = '') -> list[dict]

save_package(destination_id: str = '', name: str = '', duration_days: int = 1, tier: str = 'standard', selling_price: float = 0, total_cost: float = 0, gross_margin_pct: float = 0, status: str = 'active', data: dict | None = None) -> str

get_packages(destination_id: str = '') -> list[dict]

save_booking(package_id: str = '', destination_id: str = '', guest_name: str = '', guest_count: int = 1, check_in: str = '', check_out: str = '', total_price: float = 0, status: str = 'confirmed', data: dict | None = None) -> str

get_bookings(destination_id: str = '', status: str = '') -> list[dict]

get_booking_revenue(destination_id: str = '') -> float

save_review(booking_id: str = '', destination_id: str = '', rating: float = 0, sentiment: str = '', text_excerpt: str = '', data: dict | None = None) -> str

get_reviews(destination_id: str = '') -> list[dict]

get_avg_rating(destination_id: str) -> float

save_event(destination_id: str = '', name: str = '', event_type: str = '', expected_attendance: int = 0, estimated_revenue: float = 0, estimated_cost: float = 0, status: str = 'planned', data: dict | None = None) -> str

get_events(destination_id: str = '') -> list[dict]

save_risk_assessment(destination_id: str = '', risk_category: str = '', composite_score: float = 0, advisory_level: str = '', data: dict | None = None) -> str

get_risk_assessments(destination_id: str) -> list[dict]

save_sustainability_report(destination_id: str = '', total_carbon_tonnes: float = 0, certification_ready: bool = False, overall_score: float = 0, data: dict | None = None) -> str

get_sustainability_reports(destination_id: str) -> list[dict]

JobTourismMCPBlock(AIBlock[MCPJobTourismInput, MCPJobTourismOutput, dict])

26-op MCP block for the Tourism job agent.

Field Type Default
name str 'job_tourism_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: MCPJobTourismInput) -> Result[MCPJobTourismOutput]

Functions

assemble_review_text(output: Any) -> str

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

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

Run grounded four-valued QA over a tourism output.

MCP Tools

Operation Source
plan_itinerary tourism_mcp
book_accommodation tourism_mcp
research_destination tourism_mcp
create_guide tourism_mcp
manage_reservation tourism_mcp
analyze_demand tourism_mcp
evaluate_destination tourism_mcp
assess_pricing tourism_mcp
benchmark_reviews tourism_mcp
audit_bookings tourism_mcp
create_proposal tourism_mcp
review_deliverable tourism_mcp
delegate_task tourism_mcp
report_status tourism_mcp
request_feedback tourism_mcp
store_artifact tourism_mcp
retrieve_artifact tourism_mcp
list_artifacts tourism_mcp
search_artifacts tourism_mcp
archive tourism_mcp
plan_sprint tourism_mcp
track_progress tourism_mcp
reflect_on_outcome tourism_mcp
get_capabilities tourism_mcp
info tourism_mcp
list_patterns tourism_mcp