All guides
BeginnerSelf-pacedFree GuideSection 46/50

Building a mini-agent with tools

Explore generative AI through prompts, assistants, multimedia and response checking. Work through sections and exercises at your own pace.

πŸ’‘

Free content, available without an account. Tools and models change: use the current model guide to check their versions. Models and sources

Section 10.7.4 : Building a mini-agent with tools

🎯 Learning objective

Conceptualize and prototype a mini AI agent by combining ChatGPT, Make, and external tools β€” without coding β€” to automate a complex task requiring reasoning and actions. You'll complete a guided end-to-end project: a competitive intelligence agent that monitors, analyzes, and distributes reports automatically.


The no-code agent: Make as orchestrator

You don't need Python or LangChain to create a functional agent. Make can serve as an agent orchestrator: the LLM "decides" (via the prompt), Make modules "execute," and the Make flow creates the "loop" between reflection and action.

Why a no-code agent?

  • β†’Rapid prototyping: 2h vs. 2 days in code
  • β†’Visual: you see the execution flow, not abstract code
  • β†’Modifiable by non-developers
  • β†’Sufficient for 90% of business use cases

What a no-code agent can do:

  • β†’Receive a request (Slack, email, form)
  • β†’Plan the necessary actions (via the ChatGPT prompt)
  • β†’Execute actions (search, API, email sending, data updates)
  • β†’Synthesize results (via the ChatGPT prompt)
  • β†’Distribute the result (email, Slack, notification)

What a no-code agent can NOT do (yet):

  • β†’True iterative loops (the agent can't decide to dynamically go back)
  • β†’Dynamic tool selection (the flow is pre-defined, even if the LLM "chooses" the content)
  • β†’Self-correction on error (error cases must be pre-planned in the flow)

The project: automated competitive intelligence agent

We'll design an agent that:

  1. β†’Receives a question about a competitor (via Slack)
  2. β†’Plans the necessary searches (via ChatGPT)
  3. β†’Searches for information across multiple sources (Perplexity API + web)
  4. β†’Analyzes and synthesizes into a structured report (via ChatGPT)
  5. β†’Distributes the report to the team (email + Slack)

Business value: such an agent lets a strategy team ask "What is [competitor] doing right now?" and receive a complete intelligence report in 5 minutes, instead of waiting for an analyst to do the research manually in 2-3 hours.

Agent architecture

Loading diagram…

Step-by-step implementation in Make

Step 1: Configure the Slack trigger

  1. β†’Module: Slack > Watch Messages (or Instant Message if available)
  2. β†’Filter: messages containing @intel-agent or starting with /intel
  3. β†’Channel: create a dedicated channel #competitive-intelligence
  4. β†’Extraction: the user's message is stored in {{slack.text}}

Example message: @intel-agent What is Salesforce doing in terms of AI agents? Focus on Agentforce.

Step 2: ChatGPT β€” Intelligent planning

This first ChatGPT call serves as the planning "brain." The prompt must be highly structured so the JSON is usable:

You are an expert competitive intelligence agent. 
The user asks: "{{slack.text}}"

Analyze this intelligence request and return a structured JSON:
{
  "competitor": "[target company/product name]",
  "focus_topic": "[the specific topic to investigate]",
  "search_queries": [
    "[query 1 β€” recent news]",
    "[query 2 β€” strategic analysis]",
    "[query 3 β€” comparison with our industry]"
  ],
  "priority_sources": "[news, official blog, analyst reports, patents, social media]",
  "internal_data_needed": true/false,
  "report_type": "flash | standard | in-depth",
  "urgency": "high | normal | low"
}

Criteria for search queries:
- Formulate them in English (better web results)
- Include the date or "2025-2026" for recent results
- Each query should cover a different angle

Step 3: Parse the JSON

  1. β†’Module: JSON > Parse JSON β†’ stores the result in usable variables
  2. β†’Now you have access to {{json.competitor}}, {{json.search_queries}}, etc.

Step 4: Multi-source research

Option A β€” Iterator + Perplexity API:

  1. β†’Module: Iterator β†’ iterates over {{json.search_queries}} (the 3 queries)
  2. β†’For each query, module: HTTP > Make a Request
    • β†’URL: https://api.perplexity.ai/chat/completions
    • β†’Method: POST
    • β†’Body: {"model": "sonar-pro", "messages": [{"role": "user", "content": "{{iterator.value}}"}]}
    • β†’Headers: Authorization: Bearer YOUR_API_KEY
  3. β†’Module: Aggregator β†’ compiles the 3 results into a single text

Option B β€” Without Perplexity API (free alternative):

  1. β†’Module: HTTP > Make a Request to Google Custom Search API or SerpAPI
  2. β†’Or: Module Google Sheets > Search Rows for historical internal data

Step 5: ChatGPT β€” Synthesis and report

The second ChatGPT call is the "analytical core" β€” it transforms raw data into intelligence:

You are a competitive intelligence analyst. You write intelligence reports
for the executive committee.

Competitor analyzed: {{json.competitor}}
Focus topic: {{json.focus_topic}}

Research results:
{{aggregator.result}}

Write a {{json.report_type}} intelligence report:

## πŸ“‹ Executive Summary (3 lines max)
[Hard-hitting summary for a busy decision-maker]

## πŸ“° Recent News (last 7 days)
[Dated bullet points, with source in parentheses]

## 🎯 Identified Strategic Moves
[Analysis of competitor actions: new products, partnerships, hires, funding rounds]

## ⚠️ Risks and Implications for Us
[How do these moves impact our positioning? What risks?]

## 🎬 Recommended Actions
[3 concrete actions for our team, prioritized by urgency]

## πŸ“Š Threat Score: [1-10]
[Score with justification]

Tone: analytical, factual, decision-oriented. No vague formulas.
Cite the source for EVERY factual piece of information.
If information is not confirmed by sources, flag it as "unverified."

Step 6: Report distribution

Branch 1 β€” Email (full report):

  1. β†’Module: Gmail > Send an Email
  2. β†’To: strategy-team@company.com (or a list from Google Sheets)
  3. β†’Subject: πŸ” Intel {{json.competitor}} β€” {{json.focus_topic}} ({{json.urgency}})
  4. β†’Body: the full report generated by ChatGPT

Branch 2 β€” Slack (summary):

  1. β†’Module: Slack > Post a message
  2. β†’Channel: #competitive-intelligence
  3. β†’Message: only the Executive Summary + Threat Score + link to the full email

Step 7: Archival and tracking

  1. β†’Module: Google Sheets > Add a Row
  2. β†’Spreadsheet: "Competitive Intelligence History"
  3. β†’Columns: Date, Competitor, Topic, Threat Score, Summary, Requester

This tracking enables:

  • β†’Seeing a competitor's evolution over time
  • β†’Identifying recurring intelligence topics
  • β†’Measuring the agent's ROI (number of queries processed, time saved)

Testing and verification

Before deploying, test with 3 scenarios:

Test 1 (simple request): @intel-agent What are Notion's latest updates this week? β†’ Expected: flash report, 1-2 news items, low threat score

Test 2 (complex request): @intel-agent Analyze Microsoft's AI strategy for 2026. Focus on Copilot and agents. In-depth report. β†’ Expected: in-depth report, multiple sources, strategic analysis

Test 3 (ambiguous request): @intel-agent What's going on with Google? β†’ Expected: the planning module should identify "Google" and formulate relevant queries despite the vague request

Validation checklist:

  • β†’ The planning JSON is valid (no parsing errors)
  • β†’ The 3 search queries are relevant and diversified
  • β†’ The report is structured according to the requested template
  • β†’ Sources are cited
  • β†’ The email sends correctly with readable formatting
  • β†’ The Slack message is concise (summary, not full report)
  • β†’ Google Sheet is updated

Limitations and future directions

What this agent does well:

  • β†’Processes an intelligence request in 5 minutes (vs. 2-3 hours manually)
  • β†’Structured and actionable output every time
  • β†’Searchable history in Google Sheets
  • β†’Triggerable by anyone on the team via Slack

Its limitations:

  • β†’Reasoning is "one-shot": it follows the flow linearly (no true iterative loop)
  • β†’It can't dynamically decide to add a source if results are insufficient
  • β†’API errors (Perplexity down, rate limit) require error handling (Error handler module in Make)
  • β†’Quality depends heavily on the synthesis prompt quality

To go further (with code):

FrameworkLanguageUse caseComplexity
LangChain / LangGraphPythonAgents with reasoning loops, dynamic toolsIntermediate
CrewAIPythonCollaborative multi-agents (e.g., one researcher + one writer + one editor)Intermediate
AutoGen (Microsoft)PythonConversational agents, discussion simulationAdvanced
Claude Computer UseAPIAgent that controls mouse and keyboard on your computerAdvanced
OpenAI Assistants APIAPIAgents with code interpreter, function calling, file searchIntermediate
Anthropic MCPProtocolUnified protocol for connecting tools to any LLMIntermediate
Quick Check

Why is Make a good tool for prototyping an AI agent without coding?

Quick Check

What is the main limitation of a no-code AI agent (Make + ChatGPT) compared to a coded agent (LangChain, CrewAI)?

Learn AI, from prompts to agents

15 free guidesQuizzes, diagrams and workshopsNo account needed

Your progress

Progress is self-reported and stored in your browser. The final completion record is not a qualification or an independent assessment.

View progress and completion record

Learn AI, from prompts to agents

15 free guidesQuizzes, diagrams and workshopsNo account needed

One practical AI workflow in your inbox

Methods, resources and new exercises. Free, unsubscribe at any time.