Vibeleaderboard
Index / agent
Visit github.com
Category
AI Agents
Rank
No. 1659Tools index
Pricing
Open Source
Type
AGENT
Builder
coleam00
GitHub
57 stars
Date

About

AI agent that uses Arcade to take actions on users' Gmail and Asana accounts on their behalf.

What it does

A progressive Python tutorial for building a conversational assistant around Arcade tools and LangGraph workflows. It starts with a prebuilt reasoning agent, then introduces custom routing, streamed responses, OAuth2 authorization, persistent PostgreSQL memory, Supabase authentication, and a Streamlit chat interface.

Why it's ranked here

The project earns attention as an unusually concrete teaching sequence. Each stage adds a meaningful concern, from tool binding through authorization and persistence. Its strongest value is instructional, however. The supplied application still requires several hosted services, credentials, database setup, and production hardening by its adopter.

What's good

The examples expose the complete control loop instead of hiding it behind a framework wrapper. Readers can see model streaming, tool-call collection, authorization routing, tool execution, checkpointing, semantic memory lookup, and user isolation. Both terminal and browser interfaces demonstrate how the same agent graph can reach users.

Tradeoffs

Setup requires Python, Arcade and OpenAI keys, Gmail and Asana accounts, PostgreSQL, plus Supabase for browser authentication. Dependencies are fully pinned but extensive. Authorization waits synchronously for completion. Memory capture uses a simple keyword test and stores the whole message, while user namespaces merely remove periods from email addresses.

How to use it well

Choose it when learning or prototyping an authenticated LangGraph assistant with external tools and durable conversational context. Follow the staged examples before adopting the browser application. Budget time for secrets management, database initialization, authorization failure handling, and stronger memory policies. It does not provide a turnkey hosted service or a general integration catalogue beyond Arcade's configured toolkits.

Technical notes+

README.md documents Python 3.11+, staged scripts, PostgreSQL checkpointing, Supabase authentication, and Streamlit deployment. arcade_1_basics.py uses ToolManager, ChatOpenAI, MemorySaver, and LangGraph's prebuilt ReAct agent. arcade_2_langgraph_agent.py defines a StateGraph with agent, authorization, and tool nodes, while arcade_2_langgraph_cli.py adds Rich-based asynchronous streaming. arcade_3_agent_with_memory.py compiles the graph with optional AsyncPostgresSaver and AsyncPostgresStore, searches a per-user memory namespace, and stores messages containing “remember.” arcade_3_streamlit_app.py supplies Supabase sign-in, session threads, PostgreSQL context managers, and streamed chat rendering. requirements.txt pins direct and transitive packages, and langgraph.json declares a single graph with .env configuration.

Observed

License
MIT License
Primary language
Python
Runtime
Python 3.11 or newer
Install surface
pip installation from a pinned requirements.txt file
Interfaces
Python scripts, an interactive Rich CLI, and a Streamlit web application
External services
Arcade, OpenAI, PostgreSQL, and Supabase
Agent framework
LangGraph with LangChain-compatible Arcade tools

Read from README.md, requirements.txt, arcade_1_basics.py, arcade_2_langgraph_cli.py, arcade_3_streamlit_app.py, arcade_2_langgraph_agent.py, arcade_3_agent_with_memory.py, LICENSE, .env.example, langgraph.json.

What it can do

  • Read and filter Gmail messages

    Gmail account access and filter criteriaFiltered email messages

  • Send emails via Gmail

    Recipient details, subject, and message contentSent email confirmation

  • Create Asana tasks

    Task details, project assignment, and due datesCreated Asana task

  • Update Asana task status

    Task ID and new status informationUpdated task status

  • Assign Asana tasks to team members

    Task ID and assignee informationTask assignment confirmation

  • Extract information from Gmail messages

    Email messages and extraction criteriaStructured data from emails

  • Create Asana projects

    Project name, description, and team detailsCreated Asana project

Tags

arcadegmailasanaagent

Tech Stack

Python

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.