langchain-ai/deepagents-typescript-quickstart
Scaffold a minimal local Deep Agent in TypeScript by following the official quickstart, using provider-native web search instead of Tavily. Use when the user wants to quickly build or try a Deep Agent locally.
npx skills add https://github.com/langchain-ai/langchain-skills --skill deepagents-typescript-quickstart
Follow the live docs — do not invent an alternate API from memory:
https://docs.langchain.com/oss/javascript/deepagents/quickstart
Fetch that page (Docs MCP or HTTP) and implement the research-agent shape it shows (createDeepAgent, research system prompt, invoke with a research question like “What is LangGraph?”). Requires Node 22+.
Apply these on top of the quickstart (they keep setup minimal and model-agnostic):
> Which model should this agent use? Pass a provider:model string — e.g. openai:gpt-5.5, anthropic:claude-sonnet-5, google-genai:gemini-3.5-flash. Default if you're unsure: anthropic:claude-sonnet-5.
> We'll use that provider's built-in web search (no separate search API key).
deep-agent/) and do all work there — do not pollute the open project.@langchain/tavily). Replace the quickstart's search tool with the chosen provider's built-in web search. Look up the current export/tool shape on that provider's LangChain docs (examples as of writing — re-check if needed):| Provider | Built-in search tool |
|----------|----------------------|
| Anthropic | @langchain/anthropic tools.webSearch_*() (or equivalent dict) |
| OpenAI | { type: "web_search" } |
| Google | { google_search: {} } |
Prefer Anthropic / OpenAI / Google so provider search is available. Only secret: that provider's API key in .env (gitignored). Skip LangSmith tracing unless they ask.
deep-agents-core / customization / Managed Deep Agents for next steps.Take langchain-ai/deepagents-typescript-quickstart from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.