skills/langchain-aws/SKILL.md
LangChain AWS integration — ChatBedrockConverse (Claude/Nova/Llama/Mistral on Bedrock), BedrockEmbeddings, AmazonKnowledgeBasesRetriever, BedrockAgentsRunnable, BedrockRerank, BedrockPromptCachingMiddleware, CodeInterpreterToolkit, BrowserToolkit (computer use), Neptune graph chains, and SageMaker endpoint.
npx skillsauth add enuno/claude-command-and-control langchain-awsInstall 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.
Expert assistance for langchain-aws: connect LangChain to AWS services — Bedrock chat models, embeddings, Knowledge Base RAG, Bedrock Agents, prompt caching, computer use tools (code interpreter + browser), Neptune graph, SageMaker, and Amazon Q.
Install: pip install -U langchain-aws
Setup: Configure AWS credentials via ~/.aws/credentials, env vars, or IAM role.
Reference: references/api.md (500 KB — full API reference).
Activate when:
ChatBedrockConverse with Claude, Nova, Llama, Mistral, or TitanBedrockEmbeddings (text or multimodal)AmazonKnowledgeBasesRetrieverBedrockAgentsRunnable or BedrockInlineAgentsRunnableBedrockPromptCachingMiddlewareBedrockRerank for improved RAG relevanceCodeInterpreterToolkit / create_code_interpreter_toolkit()BrowserToolkit / create_browser_toolkit()create_neptune_opencypher_qa_chain() or SPARQL chainSagemakerEndpointAmazonQ runnableBedrockRerankfrom langchain_aws import ChatBedrockConverse
model = ChatBedrockConverse(
model="anthropic.claude-3-5-sonnet-20241022-v2:0",
temperature=0,
max_tokens=None,
region_name="us-east-1", # AWS region
# credentials_profile_name="default", # AWS profile (optional)
)
# Invoke
messages = [
("system", "You are a helpful assistant."),
("human", "Explain quantum entanglement."),
]
response = model.invoke(messages)
print(response.content)
# Stream
for chunk in model.stream(messages):
print(chunk.content, end="", flush=True)
from langchain_aws import ChatBedrockConverse
from langchain_core.tools import tool
from pydantic import BaseModel
model = ChatBedrockConverse(model="anthropic.claude-3-haiku-20240307-v1:0")
@tool
def get_weather(city: str) -> str:
"""Get weather for a city."""
return f"Sunny, 22°C in {city}"
# Tool calling
model_with_tools = model.bind_tools([get_weather])
result = model_with_tools.invoke("What's the weather in Paris?")
# Structured output
class Review(BaseModel):
rating: int
summary: str
structured = model.with_structured_output(Review)
review = structured.invoke("Review the AWS re:Invent conference.")
from langchain_aws import BedrockEmbeddings
# Text embeddings
embeddings = BedrockEmbeddings(
model_id="amazon.titan-embed-text-v2:0",
region_name="us-east-1",
)
vec = embeddings.embed_query("What is RAG?")
vecs = embeddings.embed_documents(["LangChain doc 1", "LangChain doc 2"])
# Multimodal embeddings (text + image)
embeddings = BedrockEmbeddings(
model_id="amazon.nova-2-multimodal-embeddings-v1:0",
dimensions=256,
region_name="us-east-1",
)
from langchain_aws import AmazonKnowledgeBasesRetriever
retriever = AmazonKnowledgeBasesRetriever(
knowledge_base_id="ABCDEF1234", # Bedrock Knowledge Base ID
retrieval_config={
"vectorSearchConfiguration": {
"numberOfResults": 5,
}
},
region_name="us-east-1",
# min_score_confidence=0.5, # filter low-confidence results
)
docs = retriever.invoke("What is our return policy?")
for doc in docs:
print(doc.page_content[:200])
print(doc.metadata) # source location, score, etc.
from langchain_aws import BedrockRerank
from langchain_aws import AmazonKnowledgeBasesRetriever
reranker = BedrockRerank(
model_id="amazon.rerank-v1:0",
region_name="us-east-1",
top_n=3, # return top-3 after reranking
)
# Use as a ContextualCompressionRetriever
from langchain.retrievers import ContextualCompressionRetriever
retriever = AmazonKnowledgeBasesRetriever(knowledge_base_id="ABCDEF1234")
compression_retriever = ContextualCompressionRetriever(
base_compressor=reranker,
base_retriever=retriever,
)
docs = compression_retriever.invoke("return policy for electronics")
from langchain_aws import ChatBedrockConverse
from langchain_aws.middleware.prompt_caching import BedrockPromptCachingMiddleware
model = ChatBedrockConverse(model="anthropic.claude-3-5-sonnet-20241022-v2:0")
# Wrap model with prompt caching
cached_model = BedrockPromptCachingMiddleware(model=model)
# First call: populates cache
response1 = cached_model.invoke([("human", "Explain the AWS Shared Responsibility Model.")])
# Second call: uses cache (faster + cheaper)
response2 = cached_model.invoke([("human", "Summarize the AWS Shared Responsibility Model.")])
from langchain_aws.agents import BedrockAgentsRunnable
agent = BedrockAgentsRunnable(
agent_id="AGENT_ID_HERE",
agent_alias_id="AGENT_ALIAS_ID",
region_name="us-east-1",
)
response = agent.invoke({"input": "What is my account balance?"})
print(response["output"])
from langchain_aws.tools.code_interpreter_toolkit import create_code_interpreter_toolkit
from langchain_aws import ChatBedrockConverse
from langgraph.prebuilt import create_react_agent
# Create toolkit for Bedrock code interpreter
tools = create_code_interpreter_toolkit(
sandbox_id="SANDBOX_ID",
region_name="us-east-1",
)
model = ChatBedrockConverse(model="amazon.nova-pro-v1:0")
agent = create_react_agent(model, tools)
result = agent.invoke({"messages": [("human", "Plot a histogram of the dataset and save it as chart.png")]})
from langchain_aws.tools.browser_toolkit import create_browser_toolkit
from langchain_aws import ChatBedrockConverse
from langgraph.prebuilt import create_react_agent
tools = create_browser_toolkit(
session_id="SESSION_ID",
region_name="us-east-1",
)
model = ChatBedrockConverse(model="amazon.nova-pro-v1:0")
agent = create_react_agent(model, tools)
result = agent.invoke({"messages": [("human", "Go to langchain.com and summarize the homepage.")]})
| Provider | Model ID | Notes |
|----------|----------|-------|
| Anthropic | anthropic.claude-3-5-sonnet-20241022-v2:0 | Recommended Claude |
| Anthropic | anthropic.claude-3-haiku-20240307-v1:0 | Fast/cheap Claude |
| Amazon | amazon.nova-pro-v1:0 | Nova Pro (multimodal) |
| Amazon | amazon.nova-lite-v1:0 | Nova Lite (fast) |
| Amazon | amazon.nova-micro-v1:0 | Nova Micro (text only) |
| Meta | meta.llama3-1-8b-instruct-v1:0 | Llama 3.1 8B |
| Mistral | mistral.mistral-large-2402-v1:0 | Mistral Large |
| Embeddings | amazon.titan-embed-text-v2:0 | Titan text embeddings |
| Embeddings | amazon.nova-2-multimodal-embeddings-v1:0 | Nova multimodal |
| Reranking | amazon.rerank-v1:0 | Bedrock reranker |
# Option 1: Default credentials (IAM role, env vars, ~/.aws/credentials)
model = ChatBedrockConverse(model="...", region_name="us-east-1")
# Option 2: Named profile
model = ChatBedrockConverse(
model="...",
credentials_profile_name="my-profile",
region_name="us-east-1",
)
# Option 3: Explicit credentials
model = ChatBedrockConverse(
model="...",
aws_access_key_id="...",
aws_secret_access_key="...",
aws_session_token="...", # optional
region_name="us-east-1",
)
| File | Size | Contents |
|------|------|----------|
| references/api.md | 500 KB | Full API reference |
| references/llms.md | 28 KB | Doc index |
| references/llms-full.md | 500 KB | Complete page content |
Source: https://reference.langchain.com/python/langchain-aws
GitHub: https://github.com/langchain-ai/langchain-aws
Bedrock setup: https://docs.aws.amazon.com/bedrock/latest/userguide/setting-up.html
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.