Loading...
openai-agents Python and TypeScript packages. Builders shipping agent workflows on OpenAI models with first-class tool use.
Crunchbase API: $20K/yr. GitDealFlow A2A: free, no signup.
The OpenAI Agents SDK gives you a clean primitive for tool use. A2A is not natively supported by the SDK as of April 2026, so the integration is a custom function tool that POSTs JSON-RPC to our endpoint. The whole tool fits in 30 lines and exposes all five skills behind a single dispatch function.
pip install openai-agents
# or
npm install @openai/agents# pip install openai-agents requests
from openai_agents import Agent, function_tool
import requests
A2A_URL = "https://signals.gitdealflow.com/api/a2a"
@function_tool
def gitdealflow_query(skill: str, args: dict | None = None) -> dict:
"""
Call the GitDealFlow A2A agent.
skill: one of get_trending_startups, search_startups_by_sector,
get_startup_signal, get_signals_summary, get_methodology
args: skill-specific arguments (e.g. {"sector": "fintech"})
"""
body = {
"jsonrpc": "2.0", "id": 1,
"method": "message/send",
"params": {
"message": {
"role": "user",
"parts": [{"kind": "data", "data": {"skill": skill, "args": args or {}}}],
}
},
}
r = requests.post(A2A_URL, json=body, timeout=15)
r.raise_for_status()
return r.json()["result"]["artifacts"][0]["parts"][0]["data"]
agent = Agent(
name="VC scout",
tools=[gitdealflow_query],
instructions="Use gitdealflow_query to fetch live startup engineering signals.",
)// npm install @openai/agents
import { Agent, tool } from "@openai/agents";
import { z } from "zod";
const A2A_URL = "https://signals.gitdealflow.com/api/a2a";
const gitdealflow = tool({
name: "gitdealflow_query",
description: "Call the GitDealFlow A2A agent for startup engineering signals.",
parameters: z.object({
skill: z.enum([
"get_trending_startups",
"search_startups_by_sector",
"get_startup_signal",
"get_signals_summary",
"get_methodology",
]),
args: z.record(z.string(), z.any()).optional(),
}),
execute: async ({ skill, args }) => {
const r = await fetch(A2A_URL, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
jsonrpc: "2.0",
id: 1,
method: "message/send",
params: {
message: {
role: "user",
parts: [{ kind: "data", data: { skill, args: args ?? {} } }],
},
},
}),
});
const json = await r.json();
return json.result.artifacts[0].parts[0].data;
},
});The interactive playground lets you send live JSON-RPC requests against the A2A endpoint with no install, no auth. Pick a skill, hit send, see the response.
Full launch story: I made my VC deal flow callable by Claude.