PRD-40: Dynamic Tool Suggestions

Version: 1.0 Status: 🟡 Ready for Implementation Priority: HIGH - Quick Win, High Impact Author: Automatos AI Platform Team Last Updated: 2026-01-29 Dependencies: PRD-38.1 (Widget Architecture), Composio Integration


Executive Summary

Currently, users see 4 generic suggestions on the welcome screen ("Start a workflow", "Upload document", etc.) but no suggestions on the chat screen where actual work happens. Tool icons (Gmail, Slack, GitHub) are visible but not interactive.

This PRD introduces dynamic, context-aware tool suggestions that appear when users click tool icons OR when they're actively chatting. Each tool displays curated, action-specific prompts (e.g., clicking Gmail shows "Summarize unread emails from this morning", "Draft replies to urgent messages").

The Problem

  1. Generic suggestions only on welcome screen - Chat screen has no suggestions

  2. Tool icons are decorative - Clicking Gmail/Slack does nothing

  3. Users don't know what's possible - 863 Composio apps with 15,000+ actions, but no discovery

  4. No contextual help - Users type "check my email" instead of seeing suggested email actions

The Solution

Phase 1: Tool-specific suggestion chips that dynamically update based on:

  • Clicked tool icon (Gmail → Gmail suggestions)

  • Assigned tools for current agent

  • User's recent tool usage (future: Mem0 integration)

Vision: "If I click the Gmail icon, show me what I can do with Gmail"


Goals

Primary Goals

  1. Increase tool discoverability - Users learn what actions are available

  2. Reduce friction - One-click prompts vs typing queries

  3. Add suggestions to chat screen - Where users actually work

  4. Make tool icons interactive - Click Gmail → see Gmail prompts

Secondary Goals

  1. Track suggestion click-through rates for analytics

  2. Learn user preferences via Mem0 (Phase 2)

  3. Generate suggestions from schemas (fallback for uncurated apps)

Non-Goals (Future Phases)

  • AI-generated suggestions based on conversation context

  • Cross-tool suggestion combinations ("Check email AND Slack")

  • Per-user personalized suggestions


User Stories

Story 1: Tool Icon Click

As a user I want to click a tool icon (Gmail, Slack, etc.) So that I can see relevant suggested actions for that tool

Acceptance Criteria:

Story 2: Chat Screen Suggestions

As a user chatting with an agent I want to see suggested prompts above the input So that I don't have to think of what to ask

Acceptance Criteria:

Story 3: Curated Suggestions

As a platform admin I want to curate high-quality suggestions for popular tools So that users get helpful, proven prompts

Acceptance Criteria:

Story 4: Schema-Generated Fallback

As the system I want to generate suggestions from action schemas So that uncurated tools still have basic suggestions

Acceptance Criteria:


Current State → Proposed State

Aspect
Current
Phase 1 (This PRD)

Welcome Screen

4 static suggestions

4 generic + tool-specific on click

Chat Screen

No suggestions

Suggestion bar above input

Tool Icons

Decorative only

Clickable → show suggestions

Suggestion Source

Hardcoded in frontend

Database-driven (app_suggestions column)

Discovery

Users guess

Curated prompts guide users

Apps Covered

N/A

Gmail, Slack, GitHub, Calendar, Notion (Phase 1)


Architecture

Database Schema

Add column to existing composio_actions_cache table:

Why this table?

  • Already stores Composio app metadata per app (one row per app)

  • Response schemas and parameters already cached here

  • Logical place for app-level suggestions (not action-level)

API Endpoints

New: GET /api/tools/{app_name}/suggestions

Purpose: Fetch suggestions for a specific tool/app

Request:

Response:

Implementation: orchestrator/api/tools.py

Frontend Architecture

Components Structure

State Management

UI Components

ToolSuggestionBar.tsx:

Integration in chat.tsx:


Implementation Plan

Phase 1.1: Database & API (Days 1-2)

Goal: Set up data layer

Tasks:

Files Modified:

  • orchestrator/migrations/add_app_suggestions.py (new)

  • orchestrator/api/tools.py (new endpoint)

  • tests/api/test_tools_suggestions.py (new)

Acceptance:

  • Migration runs successfully

  • API returns curated suggestions for Gmail

  • API returns generated suggestions for uncurated apps

  • Tests pass


Phase 1.2: Frontend Components (Days 3-4)

Goal: Build reusable suggestion UI

Tasks:

Files Modified:

  • frontend/components/suggestions/ToolSuggestionBar.tsx (new)

  • frontend/components/suggestions/SuggestionChip.tsx (new)

  • frontend/components/suggestions/types.ts (new)

  • frontend/components/chatbot/chat.tsx (modify)

  • frontend/components/chatbot/multimodal-input.tsx (modify)

Acceptance:

  • Suggestion bar renders correctly

  • Tool icons are clickable

  • Clicking tool icon fetches and displays suggestions

  • Clicking suggestion sends message to agent

  • Responsive on mobile


Phase 1.3: Chat Screen Integration (Day 5)

Goal: Add suggestions to chat screen (not just welcome)

Tasks:

Files Modified:

  • frontend/components/chatbot/chat.tsx (add suggestion bar)

Acceptance:

  • Suggestions visible in chat screen above input

  • Default suggestions show agent's top tools

  • Clicking tool icon updates suggestions

  • Works on mobile


Phase 1.4: Polish & Analytics (Day 6)

Goal: Production-ready UX and tracking

Tasks:

Files Modified:

  • frontend/lib/analytics.ts (add suggestion events)

  • frontend/components/suggestions/*.tsx (add tracking)

Acceptance:

  • Analytics events fire correctly

  • Smooth UX with animations

  • Accessible (keyboard + screen reader)


Curated Suggestions (Initial Set)

Gmail

Slack

GitHub

Google Calendar

Notion


Migration Script

File: orchestrator/migrations/add_app_suggestions.py


Testing Strategy

Unit Tests

Test suggestion generation from schemas:

Integration Tests

Test full flow:

Manual Test Scenarios

  1. Welcome Screen Suggestions

  2. Chat Screen Suggestions

  3. Mobile Responsive

  4. Edge Cases


Success Metrics

Phase 1 Launch Metrics (Week 1)

Metric
Target
Measurement

Suggestion Click Rate

30% of users

Track suggestion clicks / total chat sessions

Tool Icon Interaction

50% of users

Track tool icon clicks

Curated vs Generated

80% curated

% of suggestion views from curated apps

Mobile Usage

Works on all devices

QA testing + analytics

Phase 2 Metrics (Month 1)

Metric
Target
Measurement

Popular Suggestions

Top 10 per app

Track click frequency

User Feedback

4+ stars

In-app feedback on suggestions

Time to First Tool Use

30% faster

Compare before/after

Tool Discovery

5+ apps/user

Track unique tools clicked

Analytics Events


Dependencies

Backend

  • Existing: composio_actions_cache table

  • Existing: Composio integration

  • New: Migration system (Alembic)

Frontend

  • Existing: Multimodal input component

  • Existing: Tool icons rendering

  • New: Suggestion components

External

  • None (all internal)


Risks & Mitigations

Risk
Impact
Mitigation

Low-quality generated suggestions

High

Curate top 20 apps manually, iterate on generation logic

Suggestion fatigue

Medium

Limit to 4-6 suggestions, allow hiding

Mobile UX cramped

Medium

Horizontal scroll, collapsible bar

Database migration fails

High

Test migration on staging, rollback plan

Performance (suggestion fetching)

Low

Cache suggestions in frontend, 200ms timeout


Future Enhancements (Phase 2+)

Phase 2: Context-Aware Suggestions

  • Use conversation history to suggest relevant actions

  • "You mentioned urgent emails" → show email filtering suggestions

  • Mem0 integration: learn user's common tasks

Phase 3: Suggestion Marketplace

  • Users can create/share custom suggestion packs

  • Community voting on best suggestions

  • Revenue sharing for creators

Phase 4: Multi-Tool Suggestions

  • "Check email AND Slack for messages from John"

  • Combine multiple tools in one suggestion

  • Workflow templates as suggestions


Open Questions

  1. Placeholder Handling: How should {{contact}} placeholders work?

    • Option A: Replace with input field inline

    • Option B: Open modal to fill placeholders

    • Option C: Send as-is, LLM extracts from context

    • Decision: Option C for Phase 1 (simplest), Option A for Phase 2

  2. Suggestion Limit: 4 or 6 suggestions?

    • Decision: 4 for mobile, 6 for desktop (responsive)

  3. Suggestion Persistence: Remember last clicked tool?

    • Decision: No for Phase 1, Yes for Phase 2 (Mem0 integration)

  4. Admin UI: How to edit suggestions without SQL?

    • Decision: Backlog, manual SQL for Phase 1


Appendix: Files Modified/Created

New Files

Modified Files


Sign-off

Ready for Implementation: ✅ Estimated Duration: 6 days (1 week sprint) Assigned To: TBD Reviewer: TBD


End of PRD-40

Last updated