---
title: "Framework Wrappers"
description: "Official Edge Network tool packages for LangChain, LlamaIndex, CrewAI, and the Vercel AI SDK. Tool definitions are fetched from the MCP endpoint at runtime, so they never go stale."
url: https://edge.network/docs/agent/frameworks/
---

# Framework Wrappers

Agent Tooling

# Framework Wrappers

Building your own agent? Official packages expose the full
[Edge tool set](https://edge.network/docs/agent/mcp-tools) as native
tools for LangChain, LlamaIndex, CrewAI, and the Vercel AI SDK.

## How They Work

Both packages fetch tool definitions from the [MCP endpoint](https://edge.network/docs/agent/mcp)
at runtime rather than bundling static copies — so when Edge ships a new tool or refines a
description, your agent picks it up on the next run without a package update. Arguments are
validated against each tool's JSON Schema before anything is sent.

| Package | Registry | Frameworks |
| edge-network-agent | PyPI | LangChain, LlamaIndex, CrewAI — via optional extras |
| @edge-network/ai-tools | npm | Vercel AI SDK (`generateText` / `streamText`) |

Authentication is the same everywhere: pass an [agent access code](https://edge.network/docs/agent/access-codes)
explicitly or set the `EDGE_AGENT_CODE` environment variable.

## LangChain

```
pip install "edge-network-agent[langchain]"

from edge_network_agent import EdgeAgentTools
from langchain.agents import create_react_agent

edge = EdgeAgentTools(agent_code="ea_live_...")  # or EDGE_AGENT_CODE env var
agent = create_react_agent(model, tools=edge.langchain_tools())

agent.invoke({"messages": [
    ("user", "Deploy ./dist as a static site on Edge and give me the URL")
]})
```

`langchain_tools()` returns
`StructuredTool` instances with
Pydantic argument models built from each tool's schema. Pass
`include=["edge_discover", "edge_deploy_static_site"]`
to expose a subset.

## LlamaIndex

```
pip install "edge-network-agent[llamaindex]"

from edge_network_agent import EdgeAgentTools
from llama_index.core.agent import ReActAgent

edge = EdgeAgentTools()  # EDGE_AGENT_CODE env var
agent = ReActAgent.from_tools(edge.llamaindex_tools(), llm=llm)

agent.chat("What projects do I have on Edge, and are they healthy?")
```

`llamaindex_tools()` returns
`FunctionTool` instances ready for any LlamaIndex agent.

## CrewAI

```
pip install "edge-network-agent[crewai]"

from edge_network_agent import EdgeAgentTools
from crewai import Agent

edge = EdgeAgentTools()
devops = Agent(
    role="DevOps engineer",
    goal="Deploy and monitor the team's sites on Edge",
    tools=edge.crewai_tools(),
)
```

`crewai_tools()` returns
`BaseTool` instances any crew member can use.

## Vercel AI SDK

```
npm install @edge-network/ai-tools ai

import { generateText } from 'ai'
import { createEdgeTools, fetchStarterPrompt } from '@edge-network/ai-tools'

const tools = await createEdgeTools({ agentCode: 'ea_live_...' })

const { text } = await generateText({
  model,
  system: await fetchStarterPrompt(),
  tools,
  prompt: 'Deploy the ./dist folder as a static site and report the URL',
})
```

`createEdgeTools()` resolves to a tool map for
`generateText` and
`streamText`;
`fetchStarterPrompt()` returns Edge's
recommended system prompt.

## Without a Framework

The Python package also works standalone — call tools directly and pull the starter prompt:

```
edge = EdgeAgentTools(agent_code="ea_live_...")

# Call any tool directly, no framework needed
result = edge.call(
    "edge_deploy_static_site",
    project="my-site",
    files=[...],
    dry_run=True,   # preview first
)

# The recommended system prompt for agents working with Edge
system = edge.starter_prompt()
```

## Next Steps

[MCP Tool Reference Every tool your agent gets, with parameters](https://edge.network/docs/agent/mcp-tools) [Agent Self-Signup Let agents provision their own explore-tier account](https://edge.network/docs/agent/self-signup)
[Back to Docs](https://edge.network/docs) [Need help?](https://edge.network/support)
