Job Business¶
job_business — G6 Business job agent.
Cluster: Job Agents | Type: component | MCP Tools: 33
Overview¶
Domain-specialist job agent for general business development and strategy. Evaluates market opportunities, develops strategic roadmaps, assesses partnerships, builds business cases, monitors KPIs, and conducts competitive market analysis — delivering structured strategic outputs within G6's safety-bounded, audit-trailed JobAgentBlock framework.
When to use:
- Evaluating a new market entry opportunity with a structured business case and risk summary
- Developing a strategic roadmap aligned to organisational OKRs and resource constraints
- Assessing potential partnership or acquisition targets against defined criteria
- Monitoring business KPIs and alerting on variance from targets
Caveats for production use:
- Live web search is disabled by default. Set
G6_JOB_LIVE_SEARCH=1only when the deployment has approved network access and search latency/costs are acceptable. - Live LLM debate/enrichment is disabled by default. Set
G6_JOB_LIVE_LLM=1only when a configured LLM backend is healthy; otherwise the agent uses deterministic/mock debate so first-run MCP workflows remain fast and offline-safe. - Business outputs are decision-support artifacts, not legal, tax, investment, accounting, or regulated professional advice. Review assumptions and numbers before using them for customer-facing or board-level decisions.
- Calculations depend on user-provided inputs such as TAM assumptions, CAC, runway, current liabilities, and market share. Missing or placeholder inputs produce illustrative outputs rather than validated forecasts.
- The default external-data connector is
mock; mock-backed market, KPI, and competitor data is surfaced ascompletion_state: qualified-draftwithwarning_card.code: mock_connector. - Optional integration failures are surfaced as
completion_state: qualified-draftwithwarning_card.code: integration_degradedwhen deterministic business rules can still return useful output. grounded_qa.assess_business_outputis available as an explicit post-hoc QA utility. It is not part of the default dispatch path.
Example:
from mvp.job_business import JobBusinessBlock, JobBusinessInput
block = JobBusinessBlock()
result = block.infer(JobBusinessInput(
task="Evaluate the opportunity to expand into the Southeast Asian SaaS market by Q3 2026",
context={"budget_usd": 500_000, "headcount_available": 5},
))
# result.ok → True; result.value → JobBusinessOutput with result, artifacts
Works well with: job_framework, job_consultant, job_analyst
Public API¶
JobBusinessBlock(JobAgentBlock)¶
| Field | Type | Default |
|---|---|---|
name | str | 'job_business' |
sector | SectorClassification | field(default_factory=lambda: _SECTOR) |
toolkit | ToolkitSpec \| None | field(default_factory=lambda: JOB_TOOLKITS.get('business')) |
mcp_module | str | 'mvp.job_business.business_mcp.server' |
agentic_planner | object \| None | None |
capabilities | ClassVar[set[type]] | {Extensible, HumanLearnable, Collaborative, ProblemSolvable, KnowledgeGrounded, Memorable, AgentCommunicable} |
Methods:
infer(data)¶
JobBusinessInput(JobInput)¶
Input for the Business job agent.
JobBusinessOutput(JobOutput)¶
Output from the Business job agent.
JobBusinessMCPBlock(AIBlock[MCPJobBusinessInput, MCPJobBusinessOutput, dict])¶
26-op MCP block for the Business job agent.
| Field | Type | Default |
|---|---|---|
name | str | 'job_business_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: MCPJobBusinessInput) -> Result[MCPJobBusinessOutput]¶
MCPJobBusinessInput(BaseModel)¶
Input to JobBusinessMCPBlock - 26-op dispatch.
| Field | Type | Default |
|---|---|---|
op | Literal['analyze_opportunity', 'develop_strategy', 'evaluate_partnership', 'create_business_case', 'monitor_kpis', 'analyze_market', 'evaluate_competition', 'assess_viability', 'benchmark_growth', 'audit_financials', '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 | '' |
request_id | str | '' |
task_id | str | '' |
run_id | str | '' |
MCPJobBusinessOutput(BaseModel)¶
Output from JobBusinessMCPBlock.
| 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 | CompletionState | 'qualified-draft' |
warning_card | dict[str, Any] | Field(default_factory=dict) |
evidence | dict[str, Any] | Field(default_factory=dict) |
request_id | str | '' |
task_id | str | '' |
run_id | str | '' |
human_review_required | bool | False |
review_status | ReviewStatus \| None | None |
BusinessStore(JobStore)¶
SQLite store for the Business job agent.
Constructor:
| Parameter | Type | Default |
|---|---|---|
db_path | str | ':memory:' |
Methods:
create_business_plan(company_name: str, industry: str = '', stage: str = 'idea', revenue_model: str = '', target_market: str = '', value_proposition: str = '', data: dict | None = None) -> str¶
Insert a new business plan. Returns plan_id.
get_business_plan(plan_id: str) -> dict | None¶
Fetch a single business plan by ID.
update_business_plan(plan_id: str, **fields: Any) -> bool¶
Update mutable fields on a business plan.
list_business_plans(status: str = '', industry: str = '', limit: int = 50) -> list[dict]¶
List business plans with optional filters.
delete_business_plan(plan_id: str) -> bool¶
Delete a business plan by ID.
create_market_analysis(plan_id: str = '', industry: str = '', market_size: float = 0.0, tam: float = 0.0, sam: float = 0.0, som: float = 0.0, growth_rate: float = 0.0, concentration_hhi: float = 0.0, segments: list | None = None, findings: dict | None = None) -> str¶
Insert a new market analysis. Returns analysis_id.
get_market_analysis(analysis_id: str) -> dict | None¶
Fetch a single market analysis by ID.
list_market_analyses(plan_id: str = '', industry: str = '', limit: int = 50) -> list[dict]¶
List market analyses with optional filters.
delete_market_analysis(analysis_id: str) -> bool¶
Delete a market analysis by ID.
create_competitive_intel(plan_id: str = '', competitor_name: str = '', market_share: float = 0.0, strengths: list | None = None, weaknesses: list | None = None, scores: dict | None = None, positioning: str = '', threat_level: str = 'medium', data: dict | None = None) -> str¶
Insert a new competitive intelligence entry. Returns intel_id.
get_competitive_intel(intel_id: str) -> dict | None¶
Fetch a single competitive intel entry by ID.
list_competitive_intel(plan_id: str = '', threat_level: str = '', limit: int = 50) -> list[dict]¶
List competitive intel entries with optional filters.
update_competitive_intel(intel_id: str, **fields: Any) -> bool¶
Update mutable fields on a competitive intel entry.
delete_competitive_intel(intel_id: str) -> bool¶
Delete a competitive intel entry by ID.
create_financial_projection(plan_id: str = '', period: str = '', revenue: float = 0.0, costs: float = 0.0, profit: float = 0.0, gross_margin_pct: float = 0.0, burn_rate: float = 0.0, runway_months: float = 0.0, assumptions: dict | None = None) -> str¶
Insert a new financial projection. Returns projection_id.
get_financial_projection(projection_id: str) -> dict | None¶
Fetch a single financial projection by ID.
list_financial_projections(plan_id: str = '', limit: int = 50) -> list[dict]¶
List financial projections for a plan.
delete_financial_projection(projection_id: str) -> bool¶
Delete a financial projection by ID.
create_operational_metric(department: str = '', metric_name: str = '', value: float = 0.0, target: float = 0.0, period: str = '', data: dict | None = None) -> str¶
Insert a new operational metric. Returns metric_id.
list_operational_metrics(department: str = '', period: str = '', limit: int = 50) -> list[dict]¶
List operational metrics with optional filters.
create_strategic_initiative(title: str, category: str = '', priority: str = 'medium', budget: float = 0.0, roi_estimate: float = 0.0, data: dict | None = None) -> str¶
Insert a new strategic initiative. Returns initiative_id.
get_strategic_initiative(initiative_id: str) -> dict | None¶
Fetch a single strategic initiative by ID.
update_strategic_initiative(initiative_id: str, **fields: Any) -> bool¶
Update mutable fields on a strategic initiative.
list_strategic_initiatives(category: str = '', status: str = '', limit: int = 50) -> list[dict]¶
List strategic initiatives with optional filters.
Functions¶
assemble_review_text(output: Any) -> str¶
Collect the reviewable free text from a JobBusinessOutput (duck-typed).
assess_business_output(output: Any, qa_block: Any | None = None, generate: Any | None = None) -> GroundedRunResult¶
Run grounded four-valued QA over a business output.
MCP Tools¶
| Operation | Source |
|---|---|
verified | business_mcp |
qualified-draft | business_mcp |
blocked-escalated | business_mcp |
not_required | business_mcp |
pending | business_mcp |
approved | business_mcp |
bypassed | business_mcp |
analyze_opportunity | business_mcp |
develop_strategy | business_mcp |
evaluate_partnership | business_mcp |
create_business_case | business_mcp |
monitor_kpis | business_mcp |
analyze_market | business_mcp |
evaluate_competition | business_mcp |
assess_viability | business_mcp |
benchmark_growth | business_mcp |
audit_financials | business_mcp |
create_proposal | business_mcp |
review_deliverable | business_mcp |
delegate_task | business_mcp |
report_status | business_mcp |
request_feedback | business_mcp |
store_artifact | business_mcp |
retrieve_artifact | business_mcp |
list_artifacts | business_mcp |
search_artifacts | business_mcp |
archive | business_mcp |
plan_sprint | business_mcp |
track_progress | business_mcp |
reflect_on_outcome | business_mcp |
list_patterns | business_mcp |
get_capabilities | business_mcp |
info | business_mcp |