Skip to content

feat(adapter): add LangChain export and run adapter#27

Open
dahlinomine wants to merge 1 commit intoopen-gitagent:mainfrom
dahlinomine:feat/langchain-adapter
Open

feat(adapter): add LangChain export and run adapter#27
dahlinomine wants to merge 1 commit intoopen-gitagent:mainfrom
dahlinomine:feat/langchain-adapter

Conversation

@dahlinomine
Copy link
Contributor

Summary

Adds langchain as a new export format and run adapter.

Closes #2.

Changes

  • src/adapters/langchain.ts — exports a gitagent directory as a LangChain create_tool_calling_agent + AgentExecutor Python script
  • src/runners/langchain.ts — runs the exported script via python3
  • Skills become @tool-decorated stub functions
  • Compliance constraints injected into the ChatPromptTemplate system message
  • Model routing: gpt-4o default, claude-*ChatAnthropic, gemini-*ChatGoogleGenerativeAI
  • Also wires langgraph into adapters/index.ts, commands/export.ts, commands/run.ts (both adapters share the same wiring PR since they have overlapping index changes)

Usage

# Export to a LangChain Python script
gitagent export -f langchain -d ./my-agent -o agent.py

# Run directly
gitagent run -a langchain -d ./my-agent

Generated output example

from langchain.agents import create_tool_calling_agent, AgentExecutor
from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder
from langchain_core.tools import tool
from langchain_openai import ChatOpenAI

@tool
def research(input: str) -> str:
    """Research a topic..."""
    raise NotImplementedError("research not yet implemented")

tools = [research]
llm = ChatOpenAI(model="gpt-4o", temperature=0.3)
prompt = ChatPromptTemplate.from_messages([...])
agent = create_tool_calling_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

Testing

  • npm run build passes
  • gitagent export -f langchain -d examples/standard produces valid Python
  • gitagent export -f langchain -d examples/full renders compliance constraints in system prompt

Checklist

  • Follows the existing adapter pattern (openai, crewai, lyzr)
  • Runner follows the existing runner pattern (runners/openai.ts)
  • Wired into adapters/index.ts, commands/export.ts, commands/run.ts
  • No new dependencies added
  • Conventional commit message

Adds `langchain` as a new export format and run adapter. Closes open-gitagent#2.

- src/adapters/langchain.ts: exports gitagent definition as a LangChain
  `create_tool_calling_agent` Python script with `AgentExecutor`
- src/runners/langchain.ts: runs the exported script via python3
- Wires langchain into adapters/index.ts, commands/export.ts, commands/run.ts

Skills become @tool stubs. Compliance constraints are injected into the
system prompt. Model routing: gpt-4o (default), claude-* → ChatAnthropic,
gemini-* → ChatGoogleGenerativeAI.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Adapter] LangChain export/runner

1 participant