
Arcade AI Agent
https://github.com/coleam00/arcade-ai-agent- 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 criteria → Filtered email messages
Send emails via Gmail
Recipient details, subject, and message content → Sent email confirmation
Create Asana tasks
Task details, project assignment, and due dates → Created Asana task
Update Asana task status
Task ID and new status information → Updated task status
Assign Asana tasks to team members
Task ID and assignee information → Task assignment confirmation
Extract information from Gmail messages
Email messages and extraction criteria → Structured data from emails
Create Asana projects
Project name, description, and team details → Created Asana project
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.