-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
ai-friendlyDesigned for AI-assisted implementationDesigned for AI-assisted implementationarea:integrationsExternal system integrationsExternal system integrationscomplexity:averageModerate effort, some design neededModerate effort, some design neededpriority:highMust address first within the milestoneMust address first within the milestonesize:MMedium effort (1-3 days)Medium effort (1-3 days)type:featureNew feature or capabilityNew feature or capability
Description
Context / Problem
MCP developers also use LangChain, LlamaIndex, and other agent frameworks. These ecosystems have their own tool abstractions (BaseTool in LangChain, FunctionTool in LlamaIndex). If users can't bring their existing tools into ChainWeaver — or use ChainWeaver tools in their existing frameworks — adoption is blocked by ecosystem lock-in.
ChainWeaver should act as a compilation layer that sits on top of any tool ecosystem, not compete with it.
Proposal
Provide thin, bidirectional adapter functions for major frameworks:
LangChain Adapter
from chainweaver.integrations.langchain import from_langchain_tool, to_langchain_tool
# Import LangChain tool into ChainWeaver
cw_tool = from_langchain_tool(my_langchain_tool)
# Export ChainWeaver tool to LangChain
lc_tool = to_langchain_tool(my_cw_tool)LlamaIndex Adapter
from chainweaver.integrations.llamaindex import from_llamaindex_tool, to_llamaindex_tool
cw_tool = from_llamaindex_tool(my_llama_tool)
llama_tool = to_llamaindex_tool(my_cw_tool)Core capabilities:
from_langchain_tool()— convert LangChainBaseTool→ ChainWeaverTool(extract schemas from Pydantic args_schema, wrap_run()asfn)to_langchain_tool()— convert ChainWeaverTool→ LangChainBaseToolfrom_llamaindex_tool()— convert LlamaIndexFunctionTool→ ChainWeaverToolto_llamaindex_tool()— convert ChainWeaverTool→ LlamaIndexFunctionTool- Batch conversion —
from_langchain_toolkit(toolkit)to convert all tools in a LangChain toolkit at once
Acceptance Criteria
-
chainweaver.integrations.langchainmodule withfrom_langchain_tool()andto_langchain_tool() -
chainweaver.integrations.llamaindexmodule withfrom_llamaindex_tool()andto_llamaindex_tool() - Framework packages are optional dependencies:
pip install chainweaver[langchain],pip install chainweaver[llamaindex] - Import of integration modules raises clear error if framework is not installed
- Converted tools preserve: name, description, input/output schemas, callable behavior
- Converted tools pass ChainWeaver schema validation (input + output)
- Round-trip works:
to_langchain_tool(from_langchain_tool(lc_tool))produces equivalent tool - Tests cover: conversion in both directions, schema preservation, execution, missing dependency error
- Example scripts demonstrate building a ChainWeaver flow from LangChain tools
Implementation Notes
- LangChain
BaseToolhasargs_schema(Pydantic model) and_run()method — these map directly to ChainWeaverTool(input_schema=..., fn=...) - LangChain output is typically unstructured (string). May need a wrapper that parses output into a dict matching
output_schema. - LlamaIndex
FunctionToolusesfn_schemafor input schema. - Pin framework version ranges loosely to avoid breaking on minor updates.
- Each integration should be in its own submodule for clean optional imports.
Dependencies
langchain-coreandllama-index-coreas optional dependencies- Related: MCP Tool Adapter — wrap MCP tools as ChainWeaver Tools #70 (MCP adapter) — similar pattern for different ecosystem
Tasks
- Create
chainweaver/integrations/__init__.py - Create
chainweaver/integrations/langchain.pywith bidirectional adapters - Create
chainweaver/integrations/llamaindex.pywith bidirectional adapters - Add optional dependencies to
pyproject.toml([langchain],[llamaindex]) - Add unit tests with mocked framework classes (avoid requiring full framework install in CI)
- Add example:
examples/langchain_integration.py - Document integrations in README
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
ai-friendlyDesigned for AI-assisted implementationDesigned for AI-assisted implementationarea:integrationsExternal system integrationsExternal system integrationscomplexity:averageModerate effort, some design neededModerate effort, some design neededpriority:highMust address first within the milestoneMust address first within the milestonesize:MMedium effort (1-3 days)Medium effort (1-3 days)type:featureNew feature or capabilityNew feature or capability