Andes - A2A Chat Extension
AI-powered development assistant extension for Visual Studio Code, Cursor, and Antigravity that provides a chat interface for interacting with A2A (Agent-to-Agent) agents with real-time streaming feedback.
Tested and verified on:
- Visual Studio Code 1.98.0+
- Cursor 1.98.0+
- Antigravity 1.98.0+
Features
- Real-time streaming of agent responses (TaskStatusUpdateEvent, TaskArtifactUpdateEvent)
- Chat interface with message history (user/assistant messages)
- Progress updates during orchestration
- Direct connection to A2A agent via Python HTTP server
- Server-Sent Events (SSE) for true streaming
- Support for both remote and local agents
- Automatic server lifecycle management
Prerequisites
Before installing this extension, ensure you have the following installed and configured:
1. Required Software
- Visual Studio Code (version 1.98.0 or higher) OR Cursor (version 1.98.0 or higher) OR Antigravity (version 1.98.0 or higher)
- Python 3.8 or higher installed and accessible in your system PATH
- Node.js 16 or higher (only required for building from source)
- pip (Python package manager)
Note: This extension has been tested and verified to work on Visual Studio Code, Cursor, and Antigravity editors.
2. Google Cloud Authentication
You must have Google Cloud authentication configured:
# Install Google Cloud SDK if not already installed
# Visit: https://cloud.google.com/sdk/docs/install
# Authenticate with Application Default Credentials
gcloud auth application-default login
Important: This authentication is required for the extension to connect to your A2A agents.
3. Required Python Packages
The extension will automatically install Python dependencies when first used, but you can also install them manually:
pip install -r requirements.txt
The required packages include:
fastapi>=0.104.0
uvicorn[standard]>=0.24.0
python-dotenv>=1.0.0
google-adk
google-cloud-aiplatform
a2a-sdk>=0.3.4
httpx>=0.27.0
google-auth>=2.23.0
4. A2A Agent Access
You need:
Installation
Install the extension from the VS Code Marketplace:
For Visual Studio Code:
- Open Visual Studio Code
- Click on the Extensions icon in the sidebar (or press
Ctrl+Shift+X / Cmd+Shift+X)
- In the search box, type:
Andes or LatamAirlines.andes-a2a-chat
- Click the Install button on the "Andes" extension
- Wait for the installation to complete
- You may be prompted to reload VS Code - click Reload if prompted
For Cursor:
- Open Cursor
- Click on the Extensions icon in the sidebar (or press
Ctrl+Shift+X / Cmd+Shift+X)
- In the search box, type:
Andes or LatamAirlines.andes-a2a-chat
- If the extension appears, click Install
- Note: If the extension doesn't appear in Cursor's marketplace search, try searching using the full extension ID:
LatamAirlines.andes-a2a-chat
For Antigravity:
- Open Antigravity
- Click on the Extensions icon in the sidebar (or press
Ctrl+Shift+X / Cmd+Shift+X)
- In the search box, type:
Andes or LatamAirlines.andes-a2a-chat
- Click the Install button on the "Andes" extension
- Wait for the installation to complete
- You may be prompted to reload Antigravity - click Reload if prompted
Configuration
After installation, you must configure the extension with your A2A agent details.
Step 1: Open Settings
- Press
Ctrl+, (Windows/Linux) or Cmd+, (macOS) to open Settings
- Alternatively:
- VS Code: Go to File → Preferences → Settings (Windows/Linux) or Code → Preferences → Settings (macOS)
- Cursor: Go to Cursor → Preferences → Settings (macOS) or File → Preferences → Settings (Windows/Linux)
- Antigravity: Go to File → Preferences → Settings (Windows/Linux) or Antigravity → Preferences → Settings (macOS)
Search for "Andes" or "a2aAgent" in the settings search box, or manually add the following configuration:
{
"a2aAgent.resourceName": "projects/YOUR_PROJECT_ID/locations/us-central1/reasoningEngines/YOUR_ENGINE_ID",
"a2aAgent.projectId": "your-gcp-project-id",
"a2aAgent.location": "us-central1",
"a2aAgent.serverPort": 8765,
"a2aAgent.useRemote": true
}
Step 3: Configuration Parameters Explained
| Parameter |
Type |
Required |
Description |
Example |
a2aAgent.resourceName |
string |
Yes (if useRemote=true) |
Full resource name of your A2A agent |
projects/my-project/locations/us-central1/reasoningEngines/123456789 |
a2aAgent.projectId |
string |
Yes |
Your GCP project ID |
my-gcp-project-id |
a2aAgent.location |
string |
No |
GCP region where your agent is deployed |
us-central1 (default) |
a2aAgent.serverPort |
number |
No |
Local HTTP server port |
8765 (default) |
a2aAgent.useRemote |
boolean |
No |
Use remote agent (true) or local agent (false) |
true (default) |
Step 4: Alternative Configuration via Environment Variables
You can also configure the extension using environment variables. Create a .env file in your workspace root or set system environment variables:
REMOTE_AGENT_RESOURCE_NAME=projects/YOUR_PROJECT_ID/locations/us-central1/reasoningEngines/YOUR_ENGINE_ID
PROJECT_ID=your-gcp-project-id
GOOGLE_CLOUD_REGION=us-central1
USE_REMOTE=true
A2A_SERVER_PORT=8765
Note: Settings in VS Code/Cursor configuration take precedence over environment variables.
Step 5: Verify Configuration
- Open the Output panel: View → Output (or
Ctrl+Shift+U / Cmd+Shift+U)
- Select "A2A Agent Chat" from the dropdown
- Look for configuration logs that show your settings were loaded correctly
Usage
Opening the Chat Interface
Open the Command Palette:
- Press
Ctrl+Shift+P (Windows/Linux) or Cmd+Shift+P (macOS)
- Or go to View → Command Palette
Type: Open Andes or Andes: Open Chat
Select the command from the dropdown
The chat panel will open in a new editor tab
First-time setup: The Python server will start automatically (this may take a few seconds)
Using the Chat Interface
Type your message in the input field at the bottom of the chat panel
Press Enter or click the send button to submit your query
Watch real-time responses: The agent's response will stream in real-time as it processes your request
View message history: Previous messages are displayed in the chat history
Close the panel: Click the X button on the tab or press Ctrl+W / Cmd+W
Understanding the Interface
- Chat Messages: User messages appear on the right, agent responses on the left
- Streaming Indicators: You'll see progress updates as the agent processes your request
- Status Updates: Real-time status messages appear during agent execution
- Error Messages: Any errors will be displayed in red
Troubleshooting
Extension Not Installing
Problem: Extension fails to install from marketplace
Solutions:
- Verify you're using VS Code 1.98.0+, Cursor 1.98.0+, or Antigravity 1.98.0+
- Check your internet connection
- Ensure you have a stable internet connection and try again
- Check the editor's output panel for error messages
Python Server Not Starting
Problem: Error message: "Failed to start A2A agent server"
Solutions:
Verify Python is installed:
python3 --version
# Should show Python 3.8 or higher
Check Python is in PATH:
which python3
# Should show path to python3 executable
Install Python dependencies:
pip install -r requirements.txt
Navigate to the extension directory first (usually in ~/.vscode/extensions/ or ~/.cursor/extensions/)
Check extension logs:
- Open Output panel → Select "A2A Agent Chat"
- Look for error messages
Configuration Errors
Problem: "Resource name is required" or "Invalid resourceName format"
Solutions:
- Verify
a2aAgent.resourceName is set in settings
- Check the format matches:
projects/PROJECT_ID/locations/REGION/reasoningEngines/ENGINE_ID
- Ensure there are no extra spaces or quotes in the configuration
- Verify
a2aAgent.useRemote is set to true if using a remote agent
Authentication Errors
Problem: "Authentication failed" or "Permission denied"
Solutions:
Re-authenticate with Google Cloud:
gcloud auth application-default login
Verify you have access to the GCP project:
gcloud projects list
Check your GCP project permissions:
- Ensure you have at least "Viewer" role on the project
- Verify you have access to the reasoning engine resource
Verify project ID is correct:
- Check
a2aAgent.projectId matches your actual GCP project ID
Connection Errors
Problem: "Connection refused" or "Cannot connect to agent"
Solutions:
Verify agent resource name is correct:
- Check the full resource name in GCP Console
- Ensure region matches (
a2aAgent.location)
Check network connectivity:
# Test if you can reach Google Cloud APIs
curl https://aiplatform.googleapis.com
Verify agent is deployed and running:
- Check GCP Console → Vertex AI → Reasoning Engines
- Ensure the agent exists and is accessible
Check firewall/proxy settings:
- Ensure your network allows connections to Google Cloud APIs
- Configure proxy if required
No Streaming / No Response
Problem: Chat interface opens but no response from agent
Solutions:
Check server is running:
- Look for "Python Server Started" message in Output panel
- Check for any error messages
Verify server port is available:
- Default port is 8765
- Change
a2aAgent.serverPort if port is in use
Check browser console:
- Open Developer Tools: Help → Toggle Developer Tools
- Look for errors in the Console tab
Review server logs:
- Check Output panel → "A2A Agent Chat"
- Look for server startup messages and errors
Extension Not Activating
Problem: Extension installed but command not available
Solutions:
Reload the editor:
- Press
Ctrl+Shift+P / Cmd+Shift+P
- Type:
Developer: Reload Window
- Press Enter
Check extension is enabled:
- Go to Extensions panel
- Find "Andes"
- Ensure it's enabled (not disabled)
Check activation events:
- Extension activates on startup
- Wait a few seconds after opening VS Code/Cursor/Antigravity
Architecture
Components
VS Code/Cursor Extension (TypeScript)
- Manages WebView panel for chat interface
- Handles user interactions and commands
- Manages Python server lifecycle
- Communicates with Python server via HTTP
Python HTTP Server (server.py)
- FastAPI server with SSE (Server-Sent Events) support
- A2A SDK client integration
- Google Cloud authentication
- Streams agent events to WebView in real-time
WebView UI (chatPanel.ts)
- Chat interface HTML/CSS/JavaScript
- Message rendering and history
- Real-time updates via SSE
- User input handling
Data Flow
- User types message in WebView chat interface
- Extension sends HTTP POST request to Python server
- Python server queries A2A agent using A2A SDK
- Server streams events (TaskStatusUpdateEvent, TaskArtifactUpdateEvent) via SSE
- WebView receives events and updates UI in real-time
- User sees streaming response as agent processes the request
Support
For issues, questions, or contributions:
- Check the Troubleshooting section above
- Review extension logs in the Output panel
- Check server logs in the
logs/ directory (if accessible)
- Contact your internal support team
License
Internal use only - LATAM Airlines
Version History
See the extension's version history in the VS Code Marketplace.