Bulkhead τ Domain

Intelligence System

Abstraction Ladder · Agentic Tools · Glass Box Execution

Execution Model

The Amkor domain uses a Glass Box agent architecture — every plan is visible and interruptible before execution. Unlike opaque LLM agents, this system is a deterministic expert pattern-matcher: all parameters are computable at plan time, no random identifiers, no probabilistic branching.

The pipeline runs: Natural Language Query → Plan Builder → Human Approval Gate → Tool Executor → Structured Output. The user can inspect the full plan before any tool fires. Tools never call other tools at runtime — all chaining is resolved at plan time.

NL Query: "What is Amkor's revenue trend?" Plan: GetRevenueTrend(ticker=AMKR, start_year=2020, end_year=2024) Gate: [APPROVE / EDIT / CANCEL] Execute: → {ticker, rows: [{year, revenue_B, yoy_growth_pct}, ...]}

Abstraction Ladder

Four variations teach progressively from operational snapshots to advisory synthesis. Each variation builds on the previous — V4 is gated on V1–V3 data being populated.

Variation Mode Purpose Key Tools
V1 — Snapshot Procedural Operational baseline: jobs, filings, news, financial metrics, events get_recent_job_postings, get_recent_filings, get_recent_news, get_key_events, get_company_metric_trend
V2 — KPI Conditional Compact multi-metric summary: revenue, gross margin, operating income, CapEx in one table get_key_kpis, get_multi_metric_summary, get_filing_detail
V3 — Trend Chained analytics Time-series with year-over-year deltas: revenue growth, price relative performance, CapEx trajectory get_revenue_trend, get_price_trend, get_capex_trend, get_price_relative_performance, get_multi_metric_summary
V4 — Advisory HITL-gated synthesis Readiness-gated hypothesis generation and human-scored claim scoring evaluate_variation4_readiness, generate_advisory_hypotheses, submit_advisory_hypothesis_score, list_advisory_hypothesis_scores, get_segment_disclosure

Agentic Tool Registry

15 tools registered. All tools return structured dicts with deterministic keys. Tool descriptions are surfaced verbatim to the plan builder for NL routing.

# Tool Variation Returns
1 get_database_stats V1 Row counts across all tables: prices, filings, vendor_metrics, news, events, hypothesis_scores, text_disclosures
2 get_recent_job_postings V1 Recent job postings with role, location, posted_date; note: Workday-sourced, sparsity expected
3 get_recent_filings V1 SEC filings with form type, filed_date, company, filing_url for AMKR and peer set
4 get_company_metric_trend V1 Single XBRL metric time-series for any ticker (raw values, no computed deltas)
5 compare_companies V1 Side-by-side metric comparison across two or more tickers for a given metric and year
6 get_recent_news V1 Recent news items from Google News RSS with title, published_at, summary
7 get_key_events V1 High-signal corporate milestones (earnings, facility, partnership, strategy, CHIPS Act)
8 get_key_kpis V2 Compact KPI dict: revenue_B, gross_margin_pct, operating_income_B, net_income_B, ppe_net_B for latest period
9 get_filing_detail V2 Single filing detail with accession number, primary document, and filing_url
10 get_revenue_trend V3 Year-by-year revenue with YoY growth %; deduplicates by year (last filing date wins); handles both XBRL revenue tags
11 get_price_trend V3 Base-100 indexed price series for multi-ticker comparison; default tickers: AMKR, ASX, SMH
12 get_capex_trend V3 CapEx proxy via PP&E net; computes value_billions and yoy_delta_billions per year
13 get_price_relative_performance V3 Cumulative return % and annualized alpha vs. sector benchmark (SMH) over a date range
14 get_multi_metric_summary V3 Year-by-year FY table: revenue_B, gross_profit_B, gross_margin_pct, operating_income_B, net_income_B, ppe_net_B
15 get_segment_disclosure V4 10-K text excerpts (600-char windows) for packaging/segment keywords; bridges the CLM-003 XBRL gap where advanced packaging revenue % is not a discrete tag

Anti-Hallucination Design

Template Outputs

Every tool returns a dict with fixed keys. The agent never interpolates free text — outputs are schema-bound, so downstream rendering is deterministic.

Write-Then-Verify

Schema tables are only created if corresponding pull scripts and import routines exist. Dead schema — tables with no data pipeline — is removed, not left dormant.

Readiness Gate

V4 advisory synthesis is locked behind evaluate_variation4_readiness. If V1–V3 tables are empty, the gate returns a block reason and refuses to generate hypotheses.

HITL Scoring

Every advisory hypothesis carries a human-scored confidence (1–5) stored in SQLite. No claim is presented without a scored rationale — the system surfaces evidence for and against each thesis.