Inspiration

Anyone can run a regression and report a coefficient. The hard part that separates a real finding from a spurious one is robustness: does the result survive different specifications, samples, and controls, or did it only appear because of a confounder?

In econometrics this is usually a manual, tedious process: re-run the model ten different ways, eyeball whether the coefficient moves, argue about it. We wanted to see if a team of autonomous agents could automate that discipline end to end : fetch real data, estimate an effect, and then attack it from every angle a skeptical reviewer would.

We framed it around a concrete question every renter and buyer cares about: how strongly do home values track rents across US metros? — the price–rent elasticity β in

$$\log(\text{value}) = \alpha + \beta \,\log(\text{rent}) + \varepsilon.$$

What it does

The system is three agents on Agentverse, all discoverable and chat-invocable through ASI:One:

  1. Housing Robustness Agent . On request it:

    • fetches a real multi-metro panel from Zillow Research (ZHVI home values + ZORI rents, no API key),
    • estimates the baseline price–rent elasticity (pooled OLS with heteroskedasticity-robust standard errors), and
    • runs a robustness battery: metro fixed effects (the key omitted-variable-bias check), classical vs robust inference, outlier trimming, first-half/second-half time splits, a drop-one-metro jackknife, and a permutation placebo test.
    • It returns a verdict and a 0–100 robustness score.
  2. San Jose Housing Agent is a focused single-metro service that returns the current San Jose market snapshot (typical home value and rent, with month-over-month and year-over-year trends) from live Zillow feeds.

  3. Housing Intelligence Orchestrator . A user asks it one question; it fans the query out to both agents, collects their replies, and returns a single combined report.

Result

On live Zillow data (10 metros, ~1,370 monthly observations, 2015–2026), the system found a price–rent elasticity of β = 1.49. Critically, it survived metro fixed effects (dropping only to 1.36) meaning the relationship isn't just an artifact of expensive metros being expensive in both rent and price. It held across time splits and the drop-one-metro jackknife, and the permutation placebo collapsed to ≈ 0 (p = 0.000). Verdict: ROBUST, score 99.7 / 100.

To prove the checker isn't a rubber stamp, we tested it on a deliberately confounded null effect — it correctly flagged the collapse under fixed effects and scored it 33 / 100 (NOT ROBUST). A 65-point separation between a real effect and a confounded one.

How we built it

  • We used Claude (Anthropic) as a pair-programming and design partner: drafting the agent code and econometric, working through Agentverse's deployment constraints, and debugging the live hosted agents. Architecture decisions, the choice of research question and robustness checks, and validation against ground truth were directed and verified by us.
  • Agent framework: Fetch.ai uAgents, deployed as hosted agents on Agentverse, communicating over the ASI:One chat protocol.
  • Orchestration: a coordinator agent using inter-agent messaging plus Agent Storage to hold per-session state (hosted agents are stateless, so pending replies are tracked in storage).
  • Econometrics: built with NumPy; OLS, HC1 robust standard errors, within-group demeaning for fixed effects, jackknife, and a permutation test. No black-box library; every number is auditable. The HC1 robust covariance is

$$\widehat{\text{Var}}(\hat\beta) = \frac{n}{n-k}\,(X^\top X)^{-1} \Big(\textstyle\sum_i \hat{e}_i^2\, x_i x_i^\top\Big)(X^\top X)^{-1}.$$

  • Data: Zillow Research public CSV feeds (ZHVI, ZORI), fetched live at request time.
  • Local demo: a uAgents Bureau runs the three-stage pipeline (data → estimation → robustness) in one process for a reproducible laptop demo.

Challenges we ran into

  • Hosted-environment constraints. Agentverse hosts one agent per project, bans Bureau, and resets globals between calls. We re-architected the local three-agent pipeline into a self-contained hosted agent for the heavy compute, and moved orchestration state into Agent Storage.
  • Data labeling mismatches. Our first deploy matched zero metros, Zillow labels the row "San Jose, CA," not the full Census metro name. We made the matching resilient.
  • Making the score honest. An early scoring rule rewarded a confounded estimate because most specifications agreed on the biased number. We made the fixed-effects result a hard gate, so omitted-variable bias is penalized the way a real reviewer would penalize it.
  • Python 3.14. uAgents doesn't yet support 3.14; tracking that down and pinning to 3.12 cost real time.

Accomplishments we're proud of

  • A robustness checker that demonstrably distinguishes a real effect from a confounded one
  • Econometrics (fixed effects, robust SEs, permutation inference) running live inside a hosted agent on actual market data.
  • A working multi-agent architecture where a coordinator delegates to and aggregates specialist agents.

What we learned

  • Multi-agent design on a hosted, stateless platform is a different discipline from local orchestration.
  • The value of a robustness tool is entirely in the checks, not the headline estimate; the fixed-effects gate is what makes it trustworthy.
  • A clean, dependency-light numerical core is worth more than a heavy library when you need every step to be transparent and portable.

What's next

  • Move from associational elasticity to a causal design or an event study around a rate change or policy date, with the same battery applied to the treatment effect.
  • Add more research questions and metros, and let users specify their own question in natural language.
  • Surface the spec curve visually so users see the coefficient's stability at a glance.

Built with

Python · Fetch.ai uAgents · Agentverse · ASI:One chat protocol · NumPy · Zillow Research data · Git/GitHub· Claude LLM

Try it

  • Orchestrator: agent1qv20xqzrp5tu9n4kg0xzyv53y76kve3suucqwdwa574pn006s7s22p2hmkr
  • Housing Robustness Agent: agent1qvu8g4e5v2c76fwm90zax7varr7j2cjhxxlapureta9rsty8nqmwcdytn6n
  • San Jose Housing Agent: agent1qtpqu2gamrv43fgnnqgy30lxk5awhwr6hn0lrggfksxhdcyqpk7qjlnt99j
  • Code: https://github.com/leonatientran/AIHackathon

Built With

Share this project:

Updates