A financial market analysis and trading companion system with voice interface, real-time market data, adversarial debate engine, and trade proposal tools. Provides multi-agent analysis (Alpha Hunter, Red Team, CIO) for crypto and equity assets.
Bobby Agent Trader demonstrates solid tool design with clear naming conventions (verb_noun pattern), comprehensive descriptions (avg 180 chars), and well-structured schemas. All 11 tools have input schemas with typed parameters and descriptions. However, output schemas are not documented, LLMs cannot predict response structure for downstream chaining. Error handling is absent; tools lack recovery guidance. Tool composition is strong (single responsibility, clear chains), but the swap tool is disabled, reducing practical utility. No tool annotations (readOnlyHint/destructiveHint) despite clear risk profiles.
Draw price levels on the live chart while you talk about them — entry, stop, target or a support/resistance. Call this instead of reading numbers out loud in a list.
Live market data for one asset: price, 24h change, funding rate and open interest. Use whenever the human asks about a price, a ticker or how something is trading.
Bobby Protocol on-chain track record: decisions committed, win rate, MCP calls, treasury and contract activity. Use when the human asks how Bobby has performed or what the protocol has done.
Draft a trade proposal for the human to review. This NEVER executes anything — it renders a confirmation card on screen that only the human can approve. Always call this instead of claiming a trade was placed. After calling it, tell the human the card is on screen and that they must confirm it themselves.
Get a quote for a token swap on Uniswap V3 on Base chain. Returns the output amount and gas estimate for a given input amount.
Output schemas not documented. LLMs cannot predict response structure for tools like get_market, run_debate, or show_debate. This breaks downstream tool chaining and forces agents to guess field names.
No error handling or recovery guidance. Tools lack descriptions of failure modes, retryability, or next steps. E.g., what happens if run_debate fails? Can it be retried? Should the agent fall back to get_market?
Tool annotations missing. Despite clear risk profiles (get_market is READ_ONLY, swap is DESTRUCTIVE), no readOnlyHint or destructiveHint annotations present. Agents cannot distinguish safe from dangerous tools.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | 2026-07-28+ | v2 |
Fetch one shared evidence packet for the 3-agent adversarial debate (live market, same-candle technicals and desk intelligence). The client renders its quick brief immediately; use the result to publish the richer Alpha, Red Team and CIO cards without repeating market requests.
Point the live chart at an asset and timeframe. Call this the moment the conversation turns to a different asset, before you start analysing it, so the human is looking at what you are talking about.
Put the three theses on screen next to the chart: Alpha Hunter argues for the setup, Red Team attacks it, and CIO synthesizes the decision. Call this right after run_debate so the human can read the disagreement while you summarise it out loud. ALWAYS include the three price levels — each agent's thesis gets drawn on the chart at its own price, in its own colour, so the human can see where the three of you disagree. Include 2-4 indicator readings.
Get executor service status including chain ID, block number, and RPC endpoint.
Execute a token swap on Uniswap V3 on Base chain. Currently disabled pending signing key provisioning and policy layer review.
Publish your current call to the verdict bar so the human can read it while you keep talking. Call this whenever your view firms up or changes.
swap tool disabled with empty input schema. Description says 'Currently disabled pending signing key provisioning' but provides no guidance on when it will be enabled or what the agent should do instead.
show_debate has complex nested schema (indicators array, multiple price/label pairs) but lacks examples or constraints. LLMs may struggle to construct valid payloads without seeing sample output from run_debate.