Skip to content

InstaNode-dev/langchain-instanode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

langchain-instanode

LangChain tools for instanode.dev — let your LangChain agents provision ephemeral Postgres databases and webhook receivers mid-task with a single tool call. No Docker, no account needed for the free tier.

pip install langchain-instanode

Why

Most LangChain agents that need storage hit a friction wall: they either burn hundreds of tokens generating boilerplate Docker/setup code, or they silently give up and go stateless. langchain-instanode exposes four tools that let an agent skip all of that and just get a database.

  • provision_postgres → a postgres:// DSN (pgvector pre-installed for RAG).
  • provision_webhook → an HTTPS receiver URL (good for GitHub/Stripe/Slack flows).
  • list_resources → enumerate what the agent has already provisioned.

MongoDB, Redis/cache, NATS queue, and heartbeat-monitor tools are on the roadmap, gated on the corresponding backend endpoints landing. They live on the feature/full-api branch.

Free tier: anonymous, 24h TTL, 10 MB / 2 connections. Paid tier (set INSTANODE_API_KEY): permanent, 500 MB / 5 connections, higher provisioning limits.

Usage

from langchain_instanode import get_instanode_tools
from langchain_anthropic import ChatAnthropic
from langchain.agents import AgentExecutor, create_tool_calling_agent
from langchain_core.prompts import ChatPromptTemplate

llm = ChatAnthropic(model="claude-sonnet-4-6")
tools = get_instanode_tools()

prompt = ChatPromptTemplate.from_messages([
    ("system",
     "You are a helpful coding assistant. When you need a database or webhook, "
     "call the instanode tools instead of writing setup boilerplate."),
    ("placeholder", "{chat_history}"),
    ("human", "{input}"),
    ("placeholder", "{agent_scratchpad}"),
])

agent = create_tool_calling_agent(llm, tools, prompt)
executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

executor.invoke({"input":
    "Stand up a Postgres DB, create a `notes` table with (id, body), and "
    "insert one row."
})

The agent will call provision_postgres, get back a DSN, run its SQL against the live database, and report the result — all inside one turn.

Scoped tool set

If you want the agent to only have webhook powers (not database provisioning):

tools = get_instanode_tools(include=["provision_webhook"])

Using a paid-tier token

tools = get_instanode_tools(api_key="sk_...")

Or set INSTANODE_API_KEY in the environment.

Dependency graph

langchain-instanode
  ├── instanode        (the HTTP SDK — pure stdlib, no deps)
  ├── langchain-core   (BaseTool + pydantic schemas)
  └── pydantic>=2      (args_schema for structured tool calls)

Related

License

MIT — see LICENSE.

About

LangChain tools for instanode.dev — let LangChain agents provision ephemeral Postgres + webhooks

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages