Skip to content

Commit cdf6c8c

Browse files
committed
feat: configurable recursion_limit and max_concurrency
1 parent 86343b7 commit cdf6c8c

1 file changed

Lines changed: 18 additions & 1 deletion

File tree

src/uipath_langchain/_cli/_runtime/_runtime.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import json
22
import logging
3+
import os
34
from typing import List, Optional
45

56
from langchain_core.callbacks.base import BaseCallbackHandler
6-
from langchain_core.runnables.config import RunnableConfig
7+
from langchain_core.runnables.config import DEFAULT_RECURSION_LIMIT, RunnableConfig
78
from langchain_core.tracers.langchain import wait_for_all_tracers
89
from langgraph.checkpoint.sqlite.aio import AsyncSqliteSaver
910
from langgraph.errors import EmptyInputError, GraphRecursionError, InvalidUpdateError
@@ -79,13 +80,29 @@ async def execute(self) -> Optional[UiPathRuntimeResult]:
7980
)
8081
callbacks = [tracer]
8182

83+
max_concurrency_env = os.environ.get("LANGCHAIN_MAX_CONCURRENCY", None)
84+
max_concurrency = (
85+
int(max_concurrency_env)
86+
if max_concurrency_env is not None
87+
else None
88+
)
89+
90+
recursion_limit_env = os.environ.get("LANGCHAIN_RECURSION_LIMIT", None)
91+
recursion_limit = (
92+
int(recursion_limit_env)
93+
if recursion_limit_env is not None
94+
else DEFAULT_RECURSION_LIMIT
95+
)
96+
8297
graph_config: RunnableConfig = {
8398
"configurable": {
8499
"thread_id": self.context.job_id
85100
if self.context.job_id
86101
else "default"
87102
},
88103
"callbacks": callbacks,
104+
"max_concurrency": max_concurrency,
105+
"recursion_limit": recursion_limit,
89106
}
90107

91108
# Stream the output at debug time

0 commit comments

Comments
 (0)