skills-templates/langsmith-agent-builder/SKILL.md
LangSmith Agent Builder - No-code platform for creating AI agents with built-in tools (Gmail, Slack, GitHub, Linear), OAuth integrations, MCP server support, Slack deployment, and programmatic invocation via LangGraph SDK
npx skillsauth add enuno/claude-command-and-control langsmith-agent-builderInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
LangSmith Agent Builder enables users to create helpful AI agents without code. Start from a template, connect your accounts, and let the agent handle routine work while you stay in control.
Autonomous AI assistants that can access tools, perform tasks, and interact with external services on your behalf.
Pre-built agent configurations for common use cases (email assistant, team updates) that can be customized.
Built-in integrations with services like Gmail, Slack, GitHub, Linear, and more. Agents use tools to perform actions.
Automation rules that invoke agents based on events (new email, Slack message, schedule).
Specialized agents that can be called by a parent agent for complex multi-step workflows.
Human-in-the-loop checkpoints where agents pause for user confirmation before taking sensitive actions.
OpenAI:
sk-)Anthropic:
sk-ant-)OPENAI_API_KEY or ANTHROPIC_API_KEYIn the Test Chat panel:
"Apply a 'Review' label to emails requiring my attention."
Monitor proposed actions and approve each step using Continue.
| Tool | Capabilities | |------|-------------| | Gmail | Read/send emails, create drafts, manage labels | | Slack | Send DMs, post to channels, read message history | | LinkedIn | Publish posts with images or links |
| Tool | Capabilities | |------|-------------| | Google Calendar | List events, get details, create new events | | Google Sheets | Create spreadsheets, read ranges | | Linear | Manage issues, list teams, create/update/delete issues | | Pylon | List and update issues |
| Tool | Capabilities | |------|-------------| | BigQuery | Execute SQL queries |
| Tool | Capabilities | |------|-------------| | GitHub | Manage PRs/issues, create PRs, comment, read repo files |
| Tool | Capabilities | |------|-------------| | Exa | Web search with content fetching, LinkedIn profile search | | Tavily | Web search functionality |
| Tool | Capabilities | |------|-------------| | Webpage Reader | Read webpage text content | | Image Extractor | Extract image URLs and metadata | | Notifications | Send user confirmations |
These tools use OAuth for secure authentication:
When adding these tools, you'll be prompted to authorize via OAuth flow.
These tools require workspace secrets (API keys):
| Tool | Secret Name |
|------|-------------|
| Exa Search | EXA_API_KEY |
| Tavily Search | TAVILY_API_KEY |
| Twitter/X | TWITTER_API_KEY, TWITTER_API_KEY_SECRET |
Configure at least one LLM API key:
OPENAI_API_KEY=sk-...
# OR
ANTHROPIC_API_KEY=sk-ant-...
Agent Builder-Specific Keys (optional, for better tracking):
AGENT_BUILDER_OPENAI_API_KEY=sk-...
AGENT_BUILDER_ANTHROPIC_API_KEY=sk-ant-...
These take precedence over standard workspace secrets.
OPENAI_API_KEY)EXA_API_KEY=...
TAVILY_API_KEY=...
TWITTER_API_KEY=...
TWITTER_API_KEY_SECRET=...
For sensitive operations:
| Trigger | Description | |---------|-------------| | Email | Activate on new emails matching criteria | | Slack | Respond to messages in specific channels | | Schedule | Run at specified times (cron-like) |
Python:
pip install langgraph-sdk python-dotenv
TypeScript:
npm install @langchain/langgraph-sdk
Create .env file:
LANGSMITH_API_KEY=lsv2_pt_...
AGENT_ID=your-agent-id
AGENT_URL=https://your-agent-url
from langgraph_sdk import get_client
from dotenv import load_dotenv
import os
load_dotenv()
# Initialize client
client = get_client(
url=os.getenv("AGENT_URL"),
api_key=os.getenv("LANGSMITH_API_KEY")
)
# Get agent info
agent = await client.assistants.get(os.getenv("AGENT_ID"))
print(f"Agent: {agent['name']}")
# Create thread and invoke
thread = await client.threads.create()
response = await client.runs.create(
thread_id=thread["thread_id"],
assistant_id=os.getenv("AGENT_ID"),
input={
"messages": [
{"role": "user", "content": "Summarize my unread emails"}
]
}
)
# Stream response
async for chunk in client.runs.stream(
thread_id=thread["thread_id"],
assistant_id=os.getenv("AGENT_ID"),
input={"messages": [{"role": "user", "content": "What's on my calendar today?"}]}
):
print(chunk)
import { Client } from "@langchain/langgraph-sdk";
import dotenv from "dotenv";
dotenv.config();
const client = new Client({
apiUrl: process.env.AGENT_URL,
apiKey: process.env.LANGSMITH_API_KEY,
});
// Get agent
const agent = await client.assistants.get(process.env.AGENT_ID);
console.log(`Agent: ${agent.name}`);
// Create thread
const thread = await client.threads.create();
// Invoke agent
const response = await client.runs.create(
thread.thread_id,
process.env.AGENT_ID,
{
input: {
messages: [
{ role: "user", content: "Check my GitHub notifications" }
]
}
}
);
When using raw API:
X-API-Key: lsv2_pt_...
X-Auth-Scheme: langsmith-api-key
Agent Builder integrates with Model Context Protocol (MCP) servers for custom tool access beyond built-in options.
Once configured, MCP tools appear in the tool selection panel. Agent Builder:
Once integrated:
@AgentName help me with...| Template | Description | |----------|-------------| | Email Assistant | Manage inbox, draft responses, apply labels | | Team Updates | Aggregate updates from Linear, GitHub, Slack | | Research Assistant | Search web, summarize findings | | Calendar Manager | Schedule meetings, check availability |
After selecting a template:
Ensure workspace secret is configured:
Settings → Secrets → Add OPENAI_API_KEY or ANTHROPIC_API_KEY
1. Go to agent settings
2. Click "Disconnect" on the tool
3. Re-authorize via OAuth flow
4. Test tool access
1. Verify trigger conditions
2. Check workspace secrets
3. Ensure tool authorizations are active
4. Review trigger logs in LangSmith
1. Check MCP server configuration
2. Verify authentication headers
3. Ensure MCP server is running
4. Check tool discovery logs
Agent Builder usage is tied to your LangSmith plan:
Check docs.langchain.com/langsmith/pricing for current details.
Agent: Email Assistant
Tools: Gmail
Triggers: New email in inbox
Prompt:
"You are an email assistant. For each new email:
1. Categorize by priority (urgent, normal, low)
2. Apply appropriate labels
3. Draft responses for urgent items
4. Summarize action items daily"
Agent: PR Review Assistant
Tools: GitHub, Slack
Triggers: New PR opened
Prompt:
"When a new PR is opened:
1. Read the PR description and changed files
2. Summarize the changes
3. Check for common issues
4. Post summary to #dev-updates Slack channel
5. If changes look significant, request approval before commenting"
Agent: Standup Bot
Tools: Linear, GitHub, Slack
Triggers: Daily at 9 AM
Prompt:
"Every morning:
1. Fetch yesterday's completed Linear issues
2. Get merged PRs from GitHub
3. Compile into a standup summary
4. Post to #standup Slack channel"
tools
MemPalace local-first AI memory system. Use when setting up persistent memory for Claude Code sessions, mining project files or conversation transcripts, querying past context, configuring MCP tools, managing the knowledge graph, or troubleshooting palace operations.
tools
LangSmith Python SDK — trace, evaluate, and monitor LLM applications. Covers @traceable decorator, trace context manager, Client API, evaluate() / aevaluate(), comparative evaluation, custom evaluators, dataset management, prompt caching, ASGI middleware, and pytest plugin.
development
LangGraph (Python) — build stateful, controllable agent graphs with checkpointing, streaming, persistence, interrupts, fault tolerance, and durable execution. Covers both Graph API (StateGraph) and Functional API (@entrypoint/@task).
development
LangGraph Graph API (Python) — build explicit DAG agent workflows with StateGraph, typed state, nodes, edges, Command routing, Send fan-out, checkpointers, interrupts, and streaming. Use when you need explicit control flow and graph topology.