Compound tools

Pack tools usually map 1:1 to an upstream API call. Compound tools bundle multiple underlying calls — across packs — into a single response. They’re how Pipeworx turns “I need 5 things about X” into one round trip.

By convention, compound tools live in packs ending in -intel (housing-intel, fintech-intel, pharma-intel, govcon-intel, trade-intel).

How they work

The pack receives one input, kicks off N parallel upstream calls, and merges the responses into a single structured object:

fintech_company_deep_dive({ ticker: "AAPL" })

Internally:

  1. edgar_ticker_to_cik({ticker}) → CIK
  2. In parallel:
    • edgar_company_filings({cik}) — recent SEC filings
    • alphavantage_quote({symbol: ticker}) — stock quote
    • alphavantage_income_statement({symbol: ticker}) — income data
    • cfpb_company_complaints({company: name}) — consumer complaints
  3. Merge results into one response

You wrote one tool call. The agent context grew by one transcript entry. The compound returns 5 sources’ worth of data.

When to use a compound vs. individual tools

Compound when the task is “tell me about this entity” with a fixed set of dimensions. The compound’s structure is opinionated; you get a curated view.

Individual tools when you need fine control — different time windows, alternative concepts, specific HS codes, etc. Compound tools take simple inputs (ticker, drug name, NCT ID); they don’t expose every knob.

Currently available

Compound toolPackInputsWraps
housing_market_snapshothousing-intelmetro_nameFRED + BLS + Census
housing_property_reporthousing-inteladdressATTOM + Altos + FEMA
trade_bilateral_analysistrade-intelreporter, partnerComtrade + Census + Treasury + FRED
trade_country_profiletrade-intelcountryComtrade + IMF + Census
fintech_company_deep_divefintech-inteltickerEDGAR + AlphaVantage + CFPB
fintech_bank_health_checkfintech-intelrssd_id or nameFDIC + CFPB
pharma_drug_profilepharma-inteldrug_nameRxNorm + FDA + ClinicalTrials
pharma_safety_reportpharma-inteldrug_nameFDA FAERS + label data
govcon_contractor_profilegovcon-intelcontractor name/dunsSAM + USAspending + SBIR
govcon_opportunity_scangovcon-intelkeywordSAM + Federal Register

Cost model

A compound counts as 1 call against your daily quota, not N. Internally the gateway runs the underlying calls with internal: true so they don’t double-bill against your account, but each upstream API still consumes whatever it would have outside the compound — so the gateway-to-upstream traffic is ~5x a single call.

Building a custom compound

If you keep running the same 3-tool sequence:

  1. File via pipeworx_feedback({type: "feature", message: "Compound tool for X"})
  2. Or chain manually using Promise.all in your client and pass _meta.cache.fresh_until through

The Pipeworx team adds compounds based on feedback signal — see meta-tools.

Last reviewed May 8, 2026