Social Media Analytics Engine
Analyzes social media performance, engagement metrics, and content optimization across multiple platforms
Available Skills
analyzeEngagement
#1Tracks and analyzes engagement metrics across social media platforms
optimizeContent
#2Provides content optimization recommendations based on performance data
Integration Examples
// A2A Java Client Example
// Source: https://github.com/a2aproject/a2a-samples/tree/main/samples/java/client
import com.google.a2a.client.*;
import com.google.a2a.model.*;
import java.util.List;
import java.util.Map;
import java.util.UUID;
public class AgentClientExample {
public static void main(String[] args) {
// Create client pointing to your agent
A2AClient client = new A2AClient("https://social.northwind.com/a2a");
try {
// Get agent card
System.out.println("=== Getting Agent Card ===");
AgentCard agentCard = client.getAgentCard();
System.out.println("Agent: " + agentCard.name());
System.out.println("Description: " + agentCard.description());
System.out.println("Version: " + agentCard.version());
System.out.println("Skills: " + agentCard.skills());
// Send a task to the agent
TextPart textPart = new TextPart("Your input text here", null);
Message message = new Message(
UUID.randomUUID().toString(), // messageId
"message", // kind
"user", // role
List.of(textPart), // parts
null, null, null, null // contextId, taskId, etc.
);
TaskSendParams params = new TaskSendParams(
"analyzeEngagement-task",
null, // sessionId
message,
null, // pushNotification
null, // historyLength
Map.of() // metadata
);
JSONRPCResponse response = client.sendTask(params);
Task task = (Task) response.result();
System.out.println("Task ID: " + task.id());
System.out.println("Status: " + task.status().state());
} catch (A2AClientException e) {
System.err.println("A2A Client Error: " + e.getMessage());
e.printStackTrace();
}
}
}
# A2A Python Client Example
# Source: https://github.com/a2aproject/a2a-samples/tree/main/samples/python
import asyncio
import httpx
from uuid import uuid4
from a2a.client import A2ACardResolver, A2AClient
from a2a.types import (
AgentCard,
Message,
MessageSendParams,
Part,
Role,
SendStreamingMessageRequest,
TextPart,
)
class AgentClient:
def __init__(self, agent_url: str):
self.agent_url = agent_url
async def get_agent_card(self) -> AgentCard:
"""Get the agent card information."""
async with httpx.AsyncClient() as httpx_client:
card_resolver = A2ACardResolver(httpx_client, self.agent_url)
return await card_resolver.get_agent_card()
async def send_message(self, message_text: str):
"""Send a message to the agent and get streaming response."""
async with httpx.AsyncClient() as httpx_client:
# Get agent card first
agent_card = await self.get_agent_card()
client = A2AClient(httpx_client, agent_card=agent_card)
# Create message
message = MessageSendParams(
message=Message(
role=Role.user,
parts=[Part(TextPart(text=message_text))],
messageId=uuid4().hex,
taskId=uuid4().hex,
)
)
# Send streaming message
streaming_request = SendStreamingMessageRequest(
id=str(uuid4().hex),
params=message
)
async for chunk in client.send_message_streaming(streaming_request):
if hasattr(chunk.root, 'result') and hasattr(chunk.root.result, 'status'):
message = chunk.root.result.status.message
if message and message.parts:
yield message.parts[0].root.text
async def main():
"""Example usage of the agent client."""
client = AgentClient("https://social.northwind.com/a2a")
# Get agent information
agent_card = await client.get_agent_card()
print(f"Agent: {agent_card.name}")
print(f"Description: {agent_card.description}")
# Send a message and stream the response
async for response_chunk in client.send_message("Your input text here"):
print(response_chunk, end='', flush=True)
if __name__ == '__main__':
asyncio.run(main())
Agent Configuration
Complete JSON configuration for this agent:
{
"capabilities": {
"pushNotifications": false,
"streaming": false
},
"defaultInputModes": [
"application/json",
"text/plain"
],
"defaultOutputModes": [
"application/json",
"text/csv",
"application/pdf"
],
"description": "Analyzes social media performance, engagement metrics, and content optimization across multiple platforms",
"filename": "social-media-analytics-engine.json",
"name": "Social Media Analytics Engine",
"protocolVersion": "0.2.6",
"provider": {
"organization": "Northwind Traders",
"url": "https://northwind.com"
},
"skills": [
{
"description": "Tracks and analyzes engagement metrics across social media platforms",
"examples": [
"Analyze Instagram post engagement",
"Track Twitter mention sentiment",
"Compare platform performance"
],
"id": "analyzeEngagement",
"inputModes": [
"application/json"
],
"name": "analyzeEngagement",
"outputModes": [
"application/json",
"text/csv"
],
"tags": [
"social-media",
"analytics",
"engagement",
"metrics"
]
},
{
"description": "Provides content optimization recommendations based on performance data",
"examples": [
"Suggest best posting times",
"Recommend content formats",
"Optimize hashtag strategy"
],
"id": "optimizeContent",
"inputModes": [
"application/json",
"text/plain"
],
"name": "optimizeContent",
"outputModes": [
"application/json"
],
"tags": [
"social-media",
"optimization",
"content",
"recommendations"
]
}
],
"slug": "social-media-analytics-engine",
"url": "https://social.northwind.com/a2a",
"version": "3.0.1"
}