> ## Documentation Index
> Fetch the complete documentation index at: https://docs.doconda.com/llms.txt
> Use this file to discover all available pages before exploring further.

# LangGraph

> Genera Word, PowerPoint, Excel y PDF desde un agente de LangGraph.

```bash theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
pip install langgraph "langchain[openai]" doconda
```

`doconda.tools()` es JSON Schema, que `StructuredTool` acepta como `args_schema`:

```python theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
from doconda import Doconda
from langchain.agents import create_agent
from langchain_core.tools import StructuredTool


def as_langchain_tool(t):
    return StructuredTool(name=t.name, description=t.description, args_schema=t.input_schema, func=lambda **args: t.run(args))


tools = [as_langchain_tool(t) for t in Doconda().tools()]
agent = create_agent("openai:gpt-5", tools)

agent.invoke({"messages": [{"role": "user", "content": "Redacta un informe trimestral de ventas en Word"}]})
```

`create_agent` es el agente ReAct prebuilt de LangGraph (antes `create_react_agent` en `langgraph.prebuilt`) y
devuelve un grafo compilado: con `checkpointer`, streaming e interrupciones como cualquier otro. Con el
[SDK de Python](/sdk/python).

<Accordion title="En tu propio grafo">
  ```python theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
  from langchain.chat_models import init_chat_model
  from langgraph.graph import START, MessagesState, StateGraph
  from langgraph.prebuilt import ToolNode, tools_condition

  model = init_chat_model("openai:gpt-5").bind_tools(tools)


  def call_model(state: MessagesState):
      return {"messages": [model.invoke(state["messages"])]}


  graph = (
      StateGraph(MessagesState)
      .add_node("model", call_model)
      .add_node("tools", ToolNode(tools))
      .add_edge(START, "model")
      .add_conditional_edges("model", tools_condition)
      .add_edge("tools", "model")
      .compile()
  )
  ```
</Accordion>

Con MCP, en vez del SDK, las herramientas salen de `langchain-mcp-adapters` como en [LangChain](/agents/langchain).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.