langchain 1.0.0-alpha.5 → 1.0.0-alpha.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (405) hide show
  1. package/dist/agents/ReactAgent.cjs +5 -5
  2. package/dist/agents/ReactAgent.cjs.map +1 -1
  3. package/dist/agents/ReactAgent.d.cts +2 -5
  4. package/dist/agents/ReactAgent.d.cts.map +1 -1
  5. package/dist/agents/ReactAgent.d.ts +2 -5
  6. package/dist/agents/ReactAgent.d.ts.map +1 -1
  7. package/dist/agents/ReactAgent.js +6 -6
  8. package/dist/agents/ReactAgent.js.map +1 -1
  9. package/dist/agents/annotation.cjs.map +1 -1
  10. package/dist/agents/annotation.d.cts +13 -8
  11. package/dist/agents/annotation.d.cts.map +1 -1
  12. package/dist/agents/annotation.d.ts +13 -8
  13. package/dist/agents/annotation.d.ts.map +1 -1
  14. package/dist/agents/annotation.js.map +1 -1
  15. package/dist/agents/createAgent.cjs.map +1 -1
  16. package/dist/agents/createAgent.js.map +1 -1
  17. package/dist/agents/index.cjs +2 -2
  18. package/dist/agents/index.cjs.map +1 -1
  19. package/dist/agents/index.d.cts +50 -50
  20. package/dist/agents/index.d.cts.map +1 -1
  21. package/dist/agents/index.d.ts +50 -50
  22. package/dist/agents/index.d.ts.map +1 -1
  23. package/dist/agents/index.js +2 -2
  24. package/dist/agents/index.js.map +1 -1
  25. package/dist/agents/interrupt.d.cts +14 -1
  26. package/dist/agents/interrupt.d.cts.map +1 -1
  27. package/dist/agents/interrupt.d.ts +14 -1
  28. package/dist/agents/interrupt.d.ts.map +1 -1
  29. package/dist/agents/middlewareAgent/ReactAgent.cjs +273 -66
  30. package/dist/agents/middlewareAgent/ReactAgent.cjs.map +1 -1
  31. package/dist/agents/middlewareAgent/ReactAgent.d.cts +102 -16
  32. package/dist/agents/middlewareAgent/ReactAgent.d.cts.map +1 -1
  33. package/dist/agents/middlewareAgent/ReactAgent.d.ts +102 -16
  34. package/dist/agents/middlewareAgent/ReactAgent.d.ts.map +1 -1
  35. package/dist/agents/middlewareAgent/ReactAgent.js +275 -68
  36. package/dist/agents/middlewareAgent/ReactAgent.js.map +1 -1
  37. package/dist/agents/middlewareAgent/annotation.cjs +12 -6
  38. package/dist/agents/middlewareAgent/annotation.cjs.map +1 -1
  39. package/dist/agents/middlewareAgent/annotation.js +12 -6
  40. package/dist/agents/middlewareAgent/annotation.js.map +1 -1
  41. package/dist/agents/middlewareAgent/constants.d.cts +5 -0
  42. package/dist/agents/middlewareAgent/constants.d.cts.map +1 -0
  43. package/dist/agents/middlewareAgent/constants.d.ts +5 -0
  44. package/dist/agents/middlewareAgent/constants.d.ts.map +1 -0
  45. package/dist/agents/middlewareAgent/index.cjs.map +1 -1
  46. package/dist/agents/middlewareAgent/index.js.map +1 -1
  47. package/dist/agents/middlewareAgent/middleware/bigTool.cjs +162 -0
  48. package/dist/agents/middlewareAgent/middleware/bigTool.cjs.map +1 -0
  49. package/dist/agents/middlewareAgent/middleware/bigTool.d.cts +113 -0
  50. package/dist/agents/middlewareAgent/middleware/bigTool.d.cts.map +1 -0
  51. package/dist/agents/middlewareAgent/middleware/bigTool.d.ts +113 -0
  52. package/dist/agents/middlewareAgent/middleware/bigTool.d.ts.map +1 -0
  53. package/dist/agents/middlewareAgent/middleware/bigTool.js +161 -0
  54. package/dist/agents/middlewareAgent/middleware/bigTool.js.map +1 -0
  55. package/dist/agents/middlewareAgent/middleware/dynamicSystemPrompt.cjs +58 -0
  56. package/dist/agents/middlewareAgent/middleware/dynamicSystemPrompt.cjs.map +1 -0
  57. package/dist/agents/middlewareAgent/middleware/dynamicSystemPrompt.d.cts +46 -0
  58. package/dist/agents/middlewareAgent/middleware/dynamicSystemPrompt.d.cts.map +1 -0
  59. package/dist/agents/middlewareAgent/middleware/dynamicSystemPrompt.d.ts +46 -0
  60. package/dist/agents/middlewareAgent/middleware/dynamicSystemPrompt.d.ts.map +1 -0
  61. package/dist/agents/middlewareAgent/middleware/dynamicSystemPrompt.js +58 -0
  62. package/dist/agents/middlewareAgent/middleware/dynamicSystemPrompt.js.map +1 -0
  63. package/dist/agents/middlewareAgent/middleware/hitl.cjs +311 -0
  64. package/dist/agents/middlewareAgent/middleware/hitl.cjs.map +1 -0
  65. package/dist/agents/middlewareAgent/middleware/hitl.d.cts +419 -0
  66. package/dist/agents/middlewareAgent/middleware/hitl.d.cts.map +1 -0
  67. package/dist/agents/middlewareAgent/middleware/hitl.d.ts +419 -0
  68. package/dist/agents/middlewareAgent/middleware/hitl.d.ts.map +1 -0
  69. package/dist/agents/middlewareAgent/middleware/hitl.js +310 -0
  70. package/dist/agents/middlewareAgent/middleware/hitl.js.map +1 -0
  71. package/dist/agents/middlewareAgent/middleware/index.cjs +32 -0
  72. package/dist/agents/middlewareAgent/middleware/index.cjs.map +1 -0
  73. package/dist/agents/middlewareAgent/middleware/index.d.cts +6 -0
  74. package/dist/agents/middlewareAgent/middleware/index.d.ts +6 -0
  75. package/dist/agents/middlewareAgent/middleware/index.js +21 -0
  76. package/dist/agents/middlewareAgent/middleware/index.js.map +1 -0
  77. package/dist/agents/middlewareAgent/{middlewares → middleware}/promptCaching.cjs +72 -27
  78. package/dist/agents/middlewareAgent/middleware/promptCaching.cjs.map +1 -0
  79. package/dist/agents/middlewareAgent/{middlewares → middleware}/promptCaching.d.cts +60 -15
  80. package/dist/agents/middlewareAgent/middleware/promptCaching.d.cts.map +1 -0
  81. package/dist/agents/middlewareAgent/{middlewares → middleware}/promptCaching.d.ts +60 -15
  82. package/dist/agents/middlewareAgent/middleware/promptCaching.d.ts.map +1 -0
  83. package/dist/agents/middlewareAgent/{middlewares → middleware}/promptCaching.js +71 -26
  84. package/dist/agents/middlewareAgent/middleware/promptCaching.js.map +1 -0
  85. package/dist/agents/middlewareAgent/{middlewares → middleware}/summarization.cjs +35 -23
  86. package/dist/agents/middlewareAgent/middleware/summarization.cjs.map +1 -0
  87. package/dist/agents/middlewareAgent/{middlewares → middleware}/summarization.d.cts +7 -5
  88. package/dist/agents/middlewareAgent/middleware/summarization.d.cts.map +1 -0
  89. package/dist/agents/middlewareAgent/{middlewares → middleware}/summarization.d.ts +7 -5
  90. package/dist/agents/middlewareAgent/middleware/summarization.d.ts.map +1 -0
  91. package/dist/agents/middlewareAgent/{middlewares → middleware}/summarization.js +29 -17
  92. package/dist/agents/middlewareAgent/middleware/summarization.js.map +1 -0
  93. package/dist/agents/middlewareAgent/middleware.cjs +8 -5
  94. package/dist/agents/middlewareAgent/middleware.cjs.map +1 -1
  95. package/dist/agents/middlewareAgent/middleware.d.cts +67 -7
  96. package/dist/agents/middlewareAgent/middleware.d.cts.map +1 -1
  97. package/dist/agents/middlewareAgent/middleware.d.ts +67 -7
  98. package/dist/agents/middlewareAgent/middleware.d.ts.map +1 -1
  99. package/dist/agents/middlewareAgent/middleware.js +8 -5
  100. package/dist/agents/middlewareAgent/middleware.js.map +1 -1
  101. package/dist/agents/middlewareAgent/nodes/AfterModalNode.cjs +2 -2
  102. package/dist/agents/middlewareAgent/nodes/AfterModalNode.cjs.map +1 -1
  103. package/dist/agents/middlewareAgent/nodes/AfterModalNode.js +2 -2
  104. package/dist/agents/middlewareAgent/nodes/AfterModalNode.js.map +1 -1
  105. package/dist/agents/middlewareAgent/nodes/AgentNode.cjs +125 -83
  106. package/dist/agents/middlewareAgent/nodes/AgentNode.cjs.map +1 -1
  107. package/dist/agents/middlewareAgent/nodes/AgentNode.js +128 -86
  108. package/dist/agents/middlewareAgent/nodes/AgentNode.js.map +1 -1
  109. package/dist/agents/middlewareAgent/nodes/BeforeModalNode.cjs +2 -2
  110. package/dist/agents/middlewareAgent/nodes/BeforeModalNode.cjs.map +1 -1
  111. package/dist/agents/middlewareAgent/nodes/BeforeModalNode.js +2 -2
  112. package/dist/agents/middlewareAgent/nodes/BeforeModalNode.js.map +1 -1
  113. package/dist/agents/middlewareAgent/nodes/middleware.cjs +42 -17
  114. package/dist/agents/middlewareAgent/nodes/middleware.cjs.map +1 -1
  115. package/dist/agents/middlewareAgent/nodes/middleware.js +42 -18
  116. package/dist/agents/middlewareAgent/nodes/middleware.js.map +1 -1
  117. package/dist/agents/middlewareAgent/nodes/utils.cjs +30 -16
  118. package/dist/agents/middlewareAgent/nodes/utils.cjs.map +1 -1
  119. package/dist/agents/middlewareAgent/nodes/utils.js +28 -14
  120. package/dist/agents/middlewareAgent/nodes/utils.js.map +1 -1
  121. package/dist/agents/middlewareAgent/types.d.cts +162 -88
  122. package/dist/agents/middlewareAgent/types.d.cts.map +1 -1
  123. package/dist/agents/middlewareAgent/types.d.ts +162 -88
  124. package/dist/agents/middlewareAgent/types.d.ts.map +1 -1
  125. package/dist/agents/model.cjs +13 -0
  126. package/dist/agents/model.cjs.map +1 -0
  127. package/dist/agents/model.js +11 -0
  128. package/dist/agents/model.js.map +1 -0
  129. package/dist/agents/nodes/AgentNode.cjs +60 -32
  130. package/dist/agents/nodes/AgentNode.cjs.map +1 -1
  131. package/dist/agents/nodes/AgentNode.js +61 -33
  132. package/dist/agents/nodes/AgentNode.js.map +1 -1
  133. package/dist/agents/nodes/ToolNode.cjs +4 -4
  134. package/dist/agents/nodes/ToolNode.cjs.map +1 -1
  135. package/dist/agents/nodes/ToolNode.d.cts +2 -3
  136. package/dist/agents/nodes/ToolNode.d.cts.map +1 -1
  137. package/dist/agents/nodes/ToolNode.d.ts +1 -2
  138. package/dist/agents/nodes/ToolNode.d.ts.map +1 -1
  139. package/dist/agents/nodes/ToolNode.js +5 -5
  140. package/dist/agents/nodes/ToolNode.js.map +1 -1
  141. package/dist/agents/responses.cjs +53 -11
  142. package/dist/agents/responses.cjs.map +1 -1
  143. package/dist/agents/responses.d.cts +12 -20
  144. package/dist/agents/responses.d.cts.map +1 -1
  145. package/dist/agents/responses.d.ts +12 -20
  146. package/dist/agents/responses.d.ts.map +1 -1
  147. package/dist/agents/responses.js +53 -12
  148. package/dist/agents/responses.js.map +1 -1
  149. package/dist/agents/types.d.cts +3 -6
  150. package/dist/agents/types.d.cts.map +1 -1
  151. package/dist/agents/types.d.ts +3 -6
  152. package/dist/agents/types.d.ts.map +1 -1
  153. package/dist/agents/utils.cjs +11 -29
  154. package/dist/agents/utils.cjs.map +1 -1
  155. package/dist/agents/utils.js +9 -26
  156. package/dist/agents/utils.js.map +1 -1
  157. package/dist/agents/withAgentName.cjs.map +1 -1
  158. package/dist/agents/withAgentName.js.map +1 -1
  159. package/dist/chains/api/prompts.cjs.map +1 -1
  160. package/dist/chains/api/prompts.js.map +1 -1
  161. package/dist/chains/constitutional_ai/constitutional_chain.cjs.map +1 -1
  162. package/dist/chains/constitutional_ai/constitutional_chain.js.map +1 -1
  163. package/dist/chains/index.cjs +0 -3
  164. package/dist/chains/index.cjs.map +1 -1
  165. package/dist/chains/index.d.cts +1 -2
  166. package/dist/chains/index.d.ts +1 -2
  167. package/dist/chains/index.js +1 -3
  168. package/dist/chains/index.js.map +1 -1
  169. package/dist/chains/openai_functions/extraction.cjs.map +1 -1
  170. package/dist/chains/openai_functions/extraction.d.cts +1 -3
  171. package/dist/chains/openai_functions/extraction.d.cts.map +1 -1
  172. package/dist/chains/openai_functions/extraction.d.ts +1 -3
  173. package/dist/chains/openai_functions/extraction.d.ts.map +1 -1
  174. package/dist/chains/openai_functions/extraction.js.map +1 -1
  175. package/dist/chains/openai_functions/index.cjs +0 -5
  176. package/dist/chains/openai_functions/index.cjs.map +1 -1
  177. package/dist/chains/openai_functions/index.d.cts +1 -2
  178. package/dist/chains/openai_functions/index.d.ts +1 -2
  179. package/dist/chains/openai_functions/index.js +1 -4
  180. package/dist/chains/openai_functions/index.js.map +1 -1
  181. package/dist/chains/openai_functions/openapi.cjs +4 -4
  182. package/dist/chains/openai_functions/openapi.cjs.map +1 -1
  183. package/dist/chains/openai_functions/openapi.d.cts +1 -1
  184. package/dist/chains/openai_functions/openapi.js +4 -4
  185. package/dist/chains/openai_functions/openapi.js.map +1 -1
  186. package/dist/chains/openai_functions/tagging.cjs.map +1 -1
  187. package/dist/chains/openai_functions/tagging.d.cts +1 -3
  188. package/dist/chains/openai_functions/tagging.d.cts.map +1 -1
  189. package/dist/chains/openai_functions/tagging.d.ts +1 -3
  190. package/dist/chains/openai_functions/tagging.d.ts.map +1 -1
  191. package/dist/chains/openai_functions/tagging.js.map +1 -1
  192. package/dist/chains/query_constructor/index.cjs +4 -4
  193. package/dist/chains/query_constructor/index.cjs.map +1 -1
  194. package/dist/chains/query_constructor/index.d.cts +4 -2
  195. package/dist/chains/query_constructor/index.d.cts.map +1 -1
  196. package/dist/chains/query_constructor/index.d.ts +4 -2
  197. package/dist/chains/query_constructor/index.d.ts.map +1 -1
  198. package/dist/chains/query_constructor/index.js +1 -1
  199. package/dist/chains/query_constructor/index.js.map +1 -1
  200. package/dist/chains/question_answering/load.d.ts +2 -2
  201. package/dist/chains/question_answering/load.d.ts.map +1 -1
  202. package/dist/chains/question_answering/map_reduce_prompts.cjs.map +1 -1
  203. package/dist/chains/question_answering/map_reduce_prompts.js.map +1 -1
  204. package/dist/chains/question_answering/refine_prompts.cjs.map +1 -1
  205. package/dist/chains/question_answering/refine_prompts.js.map +1 -1
  206. package/dist/chains/question_answering/stuff_prompts.cjs.map +1 -1
  207. package/dist/chains/question_answering/stuff_prompts.js.map +1 -1
  208. package/dist/chains/router/multi_prompt.cjs +4 -4
  209. package/dist/chains/router/multi_prompt.cjs.map +1 -1
  210. package/dist/chains/router/multi_prompt.js +1 -1
  211. package/dist/chains/router/multi_prompt.js.map +1 -1
  212. package/dist/chains/router/multi_retrieval_qa.cjs +4 -4
  213. package/dist/chains/router/multi_retrieval_qa.cjs.map +1 -1
  214. package/dist/chains/router/multi_retrieval_qa.js +1 -1
  215. package/dist/chains/router/multi_retrieval_qa.js.map +1 -1
  216. package/dist/chains/sql_db/sql_db_prompt.cjs.map +1 -1
  217. package/dist/chains/sql_db/sql_db_prompt.d.cts.map +1 -1
  218. package/dist/chains/sql_db/sql_db_prompt.d.ts.map +1 -1
  219. package/dist/chains/sql_db/sql_db_prompt.js.map +1 -1
  220. package/dist/chains/summarization/stuff_prompts.cjs.map +1 -1
  221. package/dist/chains/summarization/stuff_prompts.js.map +1 -1
  222. package/dist/chat_models/universal.cjs +8 -5
  223. package/dist/chat_models/universal.cjs.map +1 -1
  224. package/dist/chat_models/universal.d.cts +2 -2
  225. package/dist/chat_models/universal.d.cts.map +1 -1
  226. package/dist/chat_models/universal.d.ts +2 -2
  227. package/dist/chat_models/universal.d.ts.map +1 -1
  228. package/dist/chat_models/universal.js +8 -5
  229. package/dist/chat_models/universal.js.map +1 -1
  230. package/dist/document_loaders/fs/directory.cjs.map +1 -1
  231. package/dist/document_loaders/fs/directory.d.cts +0 -1
  232. package/dist/document_loaders/fs/directory.d.cts.map +1 -1
  233. package/dist/document_loaders/fs/directory.d.ts +0 -1
  234. package/dist/document_loaders/fs/directory.d.ts.map +1 -1
  235. package/dist/document_loaders/fs/directory.js.map +1 -1
  236. package/dist/document_loaders/fs/json.cjs +7 -1
  237. package/dist/document_loaders/fs/json.cjs.map +1 -1
  238. package/dist/document_loaders/fs/json.js +7 -1
  239. package/dist/document_loaders/fs/json.js.map +1 -1
  240. package/dist/embeddings/cache_backed.cjs +1 -1
  241. package/dist/embeddings/cache_backed.cjs.map +1 -1
  242. package/dist/embeddings/cache_backed.d.cts +1 -1
  243. package/dist/embeddings/cache_backed.d.ts +2 -2
  244. package/dist/embeddings/cache_backed.js +2 -2
  245. package/dist/embeddings/cache_backed.js.map +1 -1
  246. package/dist/evaluation/agents/trajectory.d.cts.map +1 -1
  247. package/dist/evaluation/comparison/pairwise.d.cts.map +1 -1
  248. package/dist/evaluation/criteria/criteria.d.cts.map +1 -1
  249. package/dist/evaluation/embedding_distance/base.cjs +2 -4
  250. package/dist/evaluation/embedding_distance/base.cjs.map +1 -1
  251. package/dist/evaluation/embedding_distance/base.js +2 -3
  252. package/dist/evaluation/embedding_distance/base.js.map +1 -1
  253. package/dist/evaluation/loader.cjs +7 -12
  254. package/dist/evaluation/loader.cjs.map +1 -1
  255. package/dist/evaluation/loader.d.cts +8 -2
  256. package/dist/evaluation/loader.d.cts.map +1 -1
  257. package/dist/evaluation/loader.d.ts +8 -2
  258. package/dist/evaluation/loader.d.ts.map +1 -1
  259. package/dist/evaluation/loader.js +7 -12
  260. package/dist/evaluation/loader.js.map +1 -1
  261. package/dist/hub/base.cjs.map +1 -1
  262. package/dist/hub/base.js.map +1 -1
  263. package/dist/index.cjs +38 -6
  264. package/dist/index.cjs.map +1 -1
  265. package/dist/index.d.cts +11 -4
  266. package/dist/index.d.ts +11 -4
  267. package/dist/index.js +18 -4
  268. package/dist/index.js.map +1 -1
  269. package/dist/langchain-core/dist/load/serializable.d.cts.map +1 -1
  270. package/dist/langchain-core/dist/messages/base.d.cts +24 -33
  271. package/dist/langchain-core/dist/messages/base.d.cts.map +1 -1
  272. package/dist/langchain-core/dist/messages/content/index.d.cts +21 -2
  273. package/dist/langchain-core/dist/messages/content/index.d.cts.map +1 -1
  274. package/dist/langchain-core/dist/messages/content/tools.d.cts +67 -6
  275. package/dist/langchain-core/dist/messages/content/tools.d.cts.map +1 -1
  276. package/dist/langchain-core/dist/messages/message.d.cts +598 -0
  277. package/dist/langchain-core/dist/messages/message.d.cts.map +1 -0
  278. package/dist/langchain-core/dist/messages/metadata.d.cts +97 -0
  279. package/dist/langchain-core/dist/messages/metadata.d.cts.map +1 -0
  280. package/dist/langchain-core/dist/messages/utils.d.cts +75 -0
  281. package/dist/langchain-core/dist/messages/utils.d.cts.map +1 -0
  282. package/dist/langchain-core/dist/prompt_values.d.cts.map +1 -1
  283. package/dist/langchain-core/dist/utils/types/index.d.cts.map +1 -1
  284. package/dist/libs/langchain-core/dist/load/serializable.d.ts.map +1 -1
  285. package/dist/libs/langchain-core/dist/messages/base.d.ts +24 -33
  286. package/dist/libs/langchain-core/dist/messages/base.d.ts.map +1 -1
  287. package/dist/libs/langchain-core/dist/messages/content/index.d.ts +21 -2
  288. package/dist/libs/langchain-core/dist/messages/content/index.d.ts.map +1 -1
  289. package/dist/libs/langchain-core/dist/messages/content/tools.d.ts +67 -6
  290. package/dist/libs/langchain-core/dist/messages/content/tools.d.ts.map +1 -1
  291. package/dist/libs/langchain-core/dist/messages/message.d.ts +598 -0
  292. package/dist/libs/langchain-core/dist/messages/message.d.ts.map +1 -0
  293. package/dist/libs/langchain-core/dist/messages/metadata.d.ts +97 -0
  294. package/dist/libs/langchain-core/dist/messages/metadata.d.ts.map +1 -0
  295. package/dist/libs/langchain-core/dist/messages/utils.d.ts +75 -0
  296. package/dist/libs/langchain-core/dist/messages/utils.d.ts.map +1 -0
  297. package/dist/libs/langchain-core/dist/prompt_values.d.ts.map +1 -1
  298. package/dist/libs/langchain-core/dist/utils/types/index.d.ts +2 -0
  299. package/dist/libs/langchain-core/dist/utils/types/index.d.ts.map +1 -1
  300. package/dist/libs/langchain-core/dist/utils/types/zod.d.ts +1 -0
  301. package/dist/load/import_map.cjs +3 -14
  302. package/dist/load/import_map.cjs.map +1 -1
  303. package/dist/load/import_map.js +3 -14
  304. package/dist/load/import_map.js.map +1 -1
  305. package/dist/memory/prompt.cjs.map +1 -1
  306. package/dist/memory/prompt.d.cts.map +1 -1
  307. package/dist/memory/prompt.d.ts.map +1 -1
  308. package/dist/memory/prompt.js.map +1 -1
  309. package/dist/output_parsers/combining.cjs +1 -1
  310. package/dist/output_parsers/combining.cjs.map +1 -1
  311. package/dist/output_parsers/combining.js +1 -1
  312. package/dist/output_parsers/combining.js.map +1 -1
  313. package/dist/output_parsers/expression_type_handlers/array_literal_expression_handler.cjs.map +1 -1
  314. package/dist/output_parsers/expression_type_handlers/array_literal_expression_handler.js.map +1 -1
  315. package/dist/output_parsers/expression_type_handlers/base.cjs +1 -1
  316. package/dist/output_parsers/expression_type_handlers/base.cjs.map +1 -1
  317. package/dist/output_parsers/expression_type_handlers/base.js +1 -1
  318. package/dist/output_parsers/expression_type_handlers/base.js.map +1 -1
  319. package/dist/output_parsers/regex.cjs.map +1 -1
  320. package/dist/output_parsers/regex.js.map +1 -1
  321. package/dist/output_parsers/structured.cjs +4 -4
  322. package/dist/output_parsers/structured.cjs.map +1 -1
  323. package/dist/output_parsers/structured.d.cts +1 -1
  324. package/dist/output_parsers/structured.d.cts.map +1 -1
  325. package/dist/output_parsers/structured.d.ts +1 -1
  326. package/dist/output_parsers/structured.d.ts.map +1 -1
  327. package/dist/output_parsers/structured.js +2 -2
  328. package/dist/output_parsers/structured.js.map +1 -1
  329. package/dist/retrievers/ensemble.cjs.map +1 -1
  330. package/dist/retrievers/ensemble.js.map +1 -1
  331. package/dist/storage/file_system.cjs +1 -1
  332. package/dist/storage/file_system.cjs.map +1 -1
  333. package/dist/storage/file_system.js +1 -1
  334. package/dist/storage/file_system.js.map +1 -1
  335. package/dist/tools/fs.cjs +5 -5
  336. package/dist/tools/fs.cjs.map +1 -1
  337. package/dist/tools/fs.d.cts +1 -1
  338. package/dist/tools/fs.d.cts.map +1 -1
  339. package/dist/tools/fs.d.ts +1 -1
  340. package/dist/tools/fs.d.ts.map +1 -1
  341. package/dist/tools/fs.js +1 -1
  342. package/dist/tools/fs.js.map +1 -1
  343. package/dist/tools/retriever.cjs +2 -2
  344. package/dist/tools/retriever.cjs.map +1 -1
  345. package/dist/tools/retriever.d.cts +1 -1
  346. package/dist/tools/retriever.d.cts.map +1 -1
  347. package/dist/tools/retriever.d.ts +1 -1
  348. package/dist/tools/retriever.d.ts.map +1 -1
  349. package/dist/tools/retriever.js +1 -1
  350. package/dist/tools/retriever.js.map +1 -1
  351. package/dist/tools/sql.cjs +1 -2
  352. package/dist/tools/sql.cjs.map +1 -1
  353. package/dist/tools/sql.d.cts +1 -1
  354. package/dist/tools/sql.d.cts.map +1 -1
  355. package/dist/tools/sql.d.ts +1 -1
  356. package/dist/tools/sql.d.ts.map +1 -1
  357. package/dist/tools/sql.js +1 -2
  358. package/dist/tools/sql.js.map +1 -1
  359. package/dist/types/expression-parser.d.cts +2 -0
  360. package/dist/types/expression-parser.d.cts.map +1 -1
  361. package/dist/types/expression-parser.d.ts +2 -0
  362. package/dist/types/expression-parser.d.ts.map +1 -1
  363. package/dist/util/hub.cjs +1 -1
  364. package/dist/util/hub.js +1 -1
  365. package/dist/util/openapi.cjs +1 -1
  366. package/dist/util/openapi.cjs.map +1 -1
  367. package/dist/util/openapi.js +1 -1
  368. package/dist/util/openapi.js.map +1 -1
  369. package/package.json +15 -21
  370. package/dist/agents/middlewareAgent/middlewares/hitl.cjs +0 -235
  371. package/dist/agents/middlewareAgent/middlewares/hitl.cjs.map +0 -1
  372. package/dist/agents/middlewareAgent/middlewares/hitl.d.cts +0 -199
  373. package/dist/agents/middlewareAgent/middlewares/hitl.d.cts.map +0 -1
  374. package/dist/agents/middlewareAgent/middlewares/hitl.d.ts +0 -199
  375. package/dist/agents/middlewareAgent/middlewares/hitl.d.ts.map +0 -1
  376. package/dist/agents/middlewareAgent/middlewares/hitl.js +0 -234
  377. package/dist/agents/middlewareAgent/middlewares/hitl.js.map +0 -1
  378. package/dist/agents/middlewareAgent/middlewares/index.cjs +0 -8
  379. package/dist/agents/middlewareAgent/middlewares/index.d.cts +0 -4
  380. package/dist/agents/middlewareAgent/middlewares/index.d.ts +0 -4
  381. package/dist/agents/middlewareAgent/middlewares/index.js +0 -5
  382. package/dist/agents/middlewareAgent/middlewares/promptCaching.cjs.map +0 -1
  383. package/dist/agents/middlewareAgent/middlewares/promptCaching.d.cts.map +0 -1
  384. package/dist/agents/middlewareAgent/middlewares/promptCaching.d.ts.map +0 -1
  385. package/dist/agents/middlewareAgent/middlewares/promptCaching.js.map +0 -1
  386. package/dist/agents/middlewareAgent/middlewares/summarization.cjs.map +0 -1
  387. package/dist/agents/middlewareAgent/middlewares/summarization.d.cts.map +0 -1
  388. package/dist/agents/middlewareAgent/middlewares/summarization.d.ts.map +0 -1
  389. package/dist/agents/middlewareAgent/middlewares/summarization.js.map +0 -1
  390. package/dist/chains/openai_functions/structured_output.cjs +0 -107
  391. package/dist/chains/openai_functions/structured_output.cjs.map +0 -1
  392. package/dist/chains/openai_functions/structured_output.d.cts +0 -38
  393. package/dist/chains/openai_functions/structured_output.d.cts.map +0 -1
  394. package/dist/chains/openai_functions/structured_output.d.ts +0 -38
  395. package/dist/chains/openai_functions/structured_output.d.ts.map +0 -1
  396. package/dist/chains/openai_functions/structured_output.js +0 -105
  397. package/dist/chains/openai_functions/structured_output.js.map +0 -1
  398. package/dist/chains/openai_moderation.cjs +0 -107
  399. package/dist/chains/openai_moderation.cjs.map +0 -1
  400. package/dist/chains/openai_moderation.d.cts +0 -74
  401. package/dist/chains/openai_moderation.d.cts.map +0 -1
  402. package/dist/chains/openai_moderation.d.ts +0 -74
  403. package/dist/chains/openai_moderation.d.ts.map +0 -1
  404. package/dist/chains/openai_moderation.js +0 -106
  405. package/dist/chains/openai_moderation.js.map +0 -1
@@ -0,0 +1,113 @@
1
+ import { AgentMiddleware } from "../types.js";
2
+ import * as _langchain_core_messages0 from "@langchain/core/messages";
3
+ import * as _langchain_core_language_models_chat_models0 from "@langchain/core/language_models/chat_models";
4
+ import { BaseChatModel } from "@langchain/core/language_models/chat_models";
5
+ import { InferInteropZodInput } from "@langchain/core/utils/types";
6
+ import { z } from "zod/v3";
7
+
8
+ //#region src/agents/middlewareAgent/middleware/bigTool.d.ts
9
+ /**
10
+ * Options for configuring the LLM Tool Selector middleware.
11
+ */
12
+ declare const LLMToolSelectorOptionsSchema: z.ZodObject<{
13
+ /**
14
+ * The language model to use for tool selection (default: the provided model from the agent options).
15
+ */
16
+ model: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodType<BaseChatModel<_langchain_core_language_models_chat_models0.BaseChatModelCallOptions, _langchain_core_messages0.BaseMessageChunk<_langchain_core_messages0.MessageStructure, _langchain_core_messages0.MessageType>>, z.ZodTypeDef, BaseChatModel<_langchain_core_language_models_chat_models0.BaseChatModelCallOptions, _langchain_core_messages0.BaseMessageChunk<_langchain_core_messages0.MessageStructure, _langchain_core_messages0.MessageType>>>]>>;
17
+ /**
18
+ * System prompt for the tool selection model.
19
+ */
20
+ systemPrompt: z.ZodDefault<z.ZodString>;
21
+ /**
22
+ * Maximum number of tools to select.
23
+ */
24
+ maxTools: z.ZodOptional<z.ZodNumber>;
25
+ /**
26
+ * Whether to include the full conversation history in the tool selection prompt.
27
+ */
28
+ includeFullHistory: z.ZodDefault<z.ZodBoolean>;
29
+ /**
30
+ * Maximum number of retries if the model selects incorrect tools.
31
+ */
32
+ maxRetries: z.ZodDefault<z.ZodNumber>;
33
+ }, "strip", z.ZodTypeAny, {
34
+ model?: string | BaseChatModel<_langchain_core_language_models_chat_models0.BaseChatModelCallOptions, _langchain_core_messages0.BaseMessageChunk<_langchain_core_messages0.MessageStructure, _langchain_core_messages0.MessageType>> | undefined;
35
+ systemPrompt: string;
36
+ maxTools?: number | undefined;
37
+ includeFullHistory: boolean;
38
+ maxRetries: number;
39
+ }, {
40
+ model?: string | BaseChatModel<_langchain_core_language_models_chat_models0.BaseChatModelCallOptions, _langchain_core_messages0.BaseMessageChunk<_langchain_core_messages0.MessageStructure, _langchain_core_messages0.MessageType>> | undefined;
41
+ systemPrompt?: string | undefined;
42
+ maxTools?: number | undefined;
43
+ includeFullHistory?: boolean | undefined;
44
+ maxRetries?: number | undefined;
45
+ }>;
46
+ type LLMToolSelectorConfig = InferInteropZodInput<typeof LLMToolSelectorOptionsSchema>;
47
+ /**
48
+ * Middleware for selecting tools using an LLM-based strategy.
49
+ *
50
+ * This middleware analyzes the user's query and available tools to select
51
+ * the most relevant tools for the task, reducing the cognitive load on the
52
+ * main model and improving response quality.
53
+ *
54
+ * @param options - Configuration options for the middleware
55
+ * @param options.model - The language model to use for tool selection (default: the provided model from the agent options).
56
+ * @param options.systemPrompt - System prompt for the tool selection model.
57
+ * @param options.maxTools - Maximum number of tools to select.
58
+ * @param options.includeFullHistory - Whether to include the full conversation history in the tool selection prompt.
59
+ * @param options.maxRetries - Maximum number of retries if the model selects incorrect tools.
60
+ *
61
+ * @example
62
+ * ```ts
63
+ * import { llmToolSelectorMiddleware } from "langchain/agents/middleware";
64
+ *
65
+ * const middleware = llmToolSelectorMiddleware({
66
+ * maxTools: 3,
67
+ * systemPrompt: "Select the most relevant tools for the user's query."
68
+ * });
69
+ *
70
+ * const agent = createAgent({
71
+ * model: "openai:gpt-4o",
72
+ * tools: [tool1, tool2, tool3, tool4, tool5],
73
+ * middleware: [middleware],
74
+ * });
75
+ * ```
76
+ */
77
+ declare function llmToolSelectorMiddleware(options: LLMToolSelectorConfig): AgentMiddleware<undefined, z.ZodObject<{
78
+ /**
79
+ * The language model to use for tool selection (default: the provided model from the agent options).
80
+ */
81
+ model: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodType<BaseChatModel<_langchain_core_language_models_chat_models0.BaseChatModelCallOptions, _langchain_core_messages0.BaseMessageChunk<_langchain_core_messages0.MessageStructure, _langchain_core_messages0.MessageType>>, z.ZodTypeDef, BaseChatModel<_langchain_core_language_models_chat_models0.BaseChatModelCallOptions, _langchain_core_messages0.BaseMessageChunk<_langchain_core_messages0.MessageStructure, _langchain_core_messages0.MessageType>>>]>>;
82
+ /**
83
+ * System prompt for the tool selection model.
84
+ */
85
+ systemPrompt: z.ZodDefault<z.ZodString>;
86
+ /**
87
+ * Maximum number of tools to select.
88
+ */
89
+ maxTools: z.ZodOptional<z.ZodNumber>;
90
+ /**
91
+ * Whether to include the full conversation history in the tool selection prompt.
92
+ */
93
+ includeFullHistory: z.ZodDefault<z.ZodBoolean>;
94
+ /**
95
+ * Maximum number of retries if the model selects incorrect tools.
96
+ */
97
+ maxRetries: z.ZodDefault<z.ZodNumber>;
98
+ }, "strip", z.ZodTypeAny, {
99
+ model?: string | BaseChatModel<_langchain_core_language_models_chat_models0.BaseChatModelCallOptions, _langchain_core_messages0.BaseMessageChunk<_langchain_core_messages0.MessageStructure, _langchain_core_messages0.MessageType>> | undefined;
100
+ systemPrompt: string;
101
+ maxTools?: number | undefined;
102
+ includeFullHistory: boolean;
103
+ maxRetries: number;
104
+ }, {
105
+ model?: string | BaseChatModel<_langchain_core_language_models_chat_models0.BaseChatModelCallOptions, _langchain_core_messages0.BaseMessageChunk<_langchain_core_messages0.MessageStructure, _langchain_core_messages0.MessageType>> | undefined;
106
+ systemPrompt?: string | undefined;
107
+ maxTools?: number | undefined;
108
+ includeFullHistory?: boolean | undefined;
109
+ maxRetries?: number | undefined;
110
+ }>, any>;
111
+ //#endregion
112
+ export { LLMToolSelectorConfig, llmToolSelectorMiddleware };
113
+ //# sourceMappingURL=bigTool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bigTool.d.ts","names":["_langchain_core_messages0","___types_js3","z","BaseChatModel","InferInteropZodInput","LLMToolSelectorOptionsSchema","ZodString","_langchain_core_language_models_chat_models0","BaseChatModelCallOptions","MessageStructure","MessageType","BaseMessageChunk","ZodTypeDef","ZodType","ZodUnion","ZodOptional","ZodDefault","ZodNumber","ZodBoolean","ZodTypeAny","ZodObject","LLMToolSelectorConfig","llmToolSelectorMiddleware","AgentMiddleware"],"sources":["../../../../src/agents/middlewareAgent/middleware/bigTool.d.ts"],"sourcesContent":["import { z } from \"zod/v3\";\nimport { BaseChatModel } from \"@langchain/core/language_models/chat_models\";\nimport type { InferInteropZodInput } from \"@langchain/core/utils/types\";\n/**\n * Options for configuring the LLM Tool Selector middleware.\n */\nexport declare const LLMToolSelectorOptionsSchema: z.ZodObject<{\n /**\n * The language model to use for tool selection (default: the provided model from the agent options).\n */\n model: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodType<BaseChatModel<import(\"@langchain/core/language_models/chat_models\").BaseChatModelCallOptions, import(\"@langchain/core/messages\").BaseMessageChunk<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>>, z.ZodTypeDef, BaseChatModel<import(\"@langchain/core/language_models/chat_models\").BaseChatModelCallOptions, import(\"@langchain/core/messages\").BaseMessageChunk<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>>>]>>;\n /**\n * System prompt for the tool selection model.\n */\n systemPrompt: z.ZodDefault<z.ZodString>;\n /**\n * Maximum number of tools to select.\n */\n maxTools: z.ZodOptional<z.ZodNumber>;\n /**\n * Whether to include the full conversation history in the tool selection prompt.\n */\n includeFullHistory: z.ZodDefault<z.ZodBoolean>;\n /**\n * Maximum number of retries if the model selects incorrect tools.\n */\n maxRetries: z.ZodDefault<z.ZodNumber>;\n}, \"strip\", z.ZodTypeAny, {\n model?: string | BaseChatModel<import(\"@langchain/core/language_models/chat_models\").BaseChatModelCallOptions, import(\"@langchain/core/messages\").BaseMessageChunk<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>> | undefined;\n systemPrompt: string;\n maxTools?: number | undefined;\n includeFullHistory: boolean;\n maxRetries: number;\n}, {\n model?: string | BaseChatModel<import(\"@langchain/core/language_models/chat_models\").BaseChatModelCallOptions, import(\"@langchain/core/messages\").BaseMessageChunk<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>> | undefined;\n systemPrompt?: string | undefined;\n maxTools?: number | undefined;\n includeFullHistory?: boolean | undefined;\n maxRetries?: number | undefined;\n}>;\nexport type LLMToolSelectorConfig = InferInteropZodInput<typeof LLMToolSelectorOptionsSchema>;\n/**\n * Middleware for selecting tools using an LLM-based strategy.\n *\n * This middleware analyzes the user's query and available tools to select\n * the most relevant tools for the task, reducing the cognitive load on the\n * main model and improving response quality.\n *\n * @param options - Configuration options for the middleware\n * @param options.model - The language model to use for tool selection (default: the provided model from the agent options).\n * @param options.systemPrompt - System prompt for the tool selection model.\n * @param options.maxTools - Maximum number of tools to select.\n * @param options.includeFullHistory - Whether to include the full conversation history in the tool selection prompt.\n * @param options.maxRetries - Maximum number of retries if the model selects incorrect tools.\n *\n * @example\n * ```ts\n * import { llmToolSelectorMiddleware } from \"langchain/agents/middleware\";\n *\n * const middleware = llmToolSelectorMiddleware({\n * maxTools: 3,\n * systemPrompt: \"Select the most relevant tools for the user's query.\"\n * });\n *\n * const agent = createAgent({\n * model: \"openai:gpt-4o\",\n * tools: [tool1, tool2, tool3, tool4, tool5],\n * middleware: [middleware],\n * });\n * ```\n */\nexport declare function llmToolSelectorMiddleware(options: LLMToolSelectorConfig): import(\"../types.js\").AgentMiddleware<undefined, z.ZodObject<{\n /**\n * The language model to use for tool selection (default: the provided model from the agent options).\n */\n model: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodType<BaseChatModel<import(\"@langchain/core/language_models/chat_models\").BaseChatModelCallOptions, import(\"@langchain/core/messages\").BaseMessageChunk<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>>, z.ZodTypeDef, BaseChatModel<import(\"@langchain/core/language_models/chat_models\").BaseChatModelCallOptions, import(\"@langchain/core/messages\").BaseMessageChunk<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>>>]>>;\n /**\n * System prompt for the tool selection model.\n */\n systemPrompt: z.ZodDefault<z.ZodString>;\n /**\n * Maximum number of tools to select.\n */\n maxTools: z.ZodOptional<z.ZodNumber>;\n /**\n * Whether to include the full conversation history in the tool selection prompt.\n */\n includeFullHistory: z.ZodDefault<z.ZodBoolean>;\n /**\n * Maximum number of retries if the model selects incorrect tools.\n */\n maxRetries: z.ZodDefault<z.ZodNumber>;\n}, \"strip\", z.ZodTypeAny, {\n model?: string | BaseChatModel<import(\"@langchain/core/language_models/chat_models\").BaseChatModelCallOptions, import(\"@langchain/core/messages\").BaseMessageChunk<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>> | undefined;\n systemPrompt: string;\n maxTools?: number | undefined;\n includeFullHistory: boolean;\n maxRetries: number;\n}, {\n model?: string | BaseChatModel<import(\"@langchain/core/language_models/chat_models\").BaseChatModelCallOptions, import(\"@langchain/core/messages\").BaseMessageChunk<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>> | undefined;\n systemPrompt?: string | undefined;\n maxTools?: number | undefined;\n includeFullHistory?: boolean | undefined;\n maxRetries?: number | undefined;\n}>, any>;\n"],"mappings":"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"}
@@ -0,0 +1,161 @@
1
+ import { initChatModel } from "../../../chat_models/universal.js";
2
+ import { createMiddleware } from "../middleware.js";
3
+ import { HumanMessage } from "@langchain/core/messages";
4
+ import { BaseChatModel } from "@langchain/core/language_models/chat_models";
5
+ import { z } from "zod/v3";
6
+
7
+ //#region src/agents/middlewareAgent/middleware/bigTool.ts
8
+ /**
9
+ * Zod schema for tool selection structured output.
10
+ */
11
+ const ToolSelectionSchema = z.object({ selectedTools: z.array(z.string()).describe("List of selected tool names") });
12
+ const DEFAULT_SYSTEM_PROMPT = "Your goal is to select the most relevant tool for answering the user's query.";
13
+ const DEFAULT_INCLUDE_FULL_HISTORY = false;
14
+ const DEFAULT_MAX_RETRIES = 3;
15
+ /**
16
+ * Options for configuring the LLM Tool Selector middleware.
17
+ */
18
+ const LLMToolSelectorOptionsSchema = z.object({
19
+ model: z.string().or(z.instanceof(BaseChatModel)).optional(),
20
+ systemPrompt: z.string().default(DEFAULT_SYSTEM_PROMPT),
21
+ maxTools: z.number().optional(),
22
+ includeFullHistory: z.boolean().default(DEFAULT_INCLUDE_FULL_HISTORY),
23
+ maxRetries: z.number().default(DEFAULT_MAX_RETRIES)
24
+ });
25
+ /**
26
+ * Middleware for selecting tools using an LLM-based strategy.
27
+ *
28
+ * This middleware analyzes the user's query and available tools to select
29
+ * the most relevant tools for the task, reducing the cognitive load on the
30
+ * main model and improving response quality.
31
+ *
32
+ * @param options - Configuration options for the middleware
33
+ * @param options.model - The language model to use for tool selection (default: the provided model from the agent options).
34
+ * @param options.systemPrompt - System prompt for the tool selection model.
35
+ * @param options.maxTools - Maximum number of tools to select.
36
+ * @param options.includeFullHistory - Whether to include the full conversation history in the tool selection prompt.
37
+ * @param options.maxRetries - Maximum number of retries if the model selects incorrect tools.
38
+ *
39
+ * @example
40
+ * ```ts
41
+ * import { llmToolSelectorMiddleware } from "langchain/agents/middleware";
42
+ *
43
+ * const middleware = llmToolSelectorMiddleware({
44
+ * maxTools: 3,
45
+ * systemPrompt: "Select the most relevant tools for the user's query."
46
+ * });
47
+ *
48
+ * const agent = createAgent({
49
+ * model: "openai:gpt-4o",
50
+ * tools: [tool1, tool2, tool3, tool4, tool5],
51
+ * middleware: [middleware],
52
+ * });
53
+ * ```
54
+ */
55
+ function llmToolSelectorMiddleware(options) {
56
+ return createMiddleware({
57
+ name: "LLMToolSelector",
58
+ contextSchema: LLMToolSelectorOptionsSchema,
59
+ async modifyModelRequest(request, _, runtime) {
60
+ const model = runtime.context.model ?? options.model;
61
+ const maxTools = runtime.context.maxTools ?? options.maxTools;
62
+ const includeFullHistory = runtime.context.includeFullHistory === DEFAULT_INCLUDE_FULL_HISTORY ? options.includeFullHistory ?? runtime.context.includeFullHistory : runtime.context.includeFullHistory ?? options.includeFullHistory;
63
+ const maxRetries = runtime.context.maxRetries === DEFAULT_MAX_RETRIES ? options.maxRetries ?? runtime.context.maxRetries : runtime.context.maxRetries ?? options.maxRetries;
64
+ const defaultSystemPrompt = runtime.context.systemPrompt === DEFAULT_SYSTEM_PROMPT ? options.systemPrompt ?? runtime.context.systemPrompt : runtime.context.systemPrompt ?? options.systemPrompt;
65
+ /**
66
+ * If no tools available, return request unchanged
67
+ */
68
+ if (!request.tools || request.tools.length === 0) return request;
69
+ /**
70
+ * Extract tool information
71
+ */
72
+ const toolInfo = runtime.tools.map((tool) => ({
73
+ name: tool.name,
74
+ description: tool.description,
75
+ tool
76
+ }));
77
+ /**
78
+ * Build tool representation for the prompt
79
+ */
80
+ const toolRepresentation = toolInfo.map(({ name, description }) => `- ${name}: ${description}`).join("\n");
81
+ /**
82
+ * Build system message
83
+ */
84
+ let systemMessage = `You are an agent that can use the following tools:\n${toolRepresentation}\n${defaultSystemPrompt}`;
85
+ if (includeFullHistory) {
86
+ const userMessages = request.messages.filter(HumanMessage.isInstance).map((msg) => msg.content).join("\n");
87
+ systemMessage += `\nThe full conversation history is:\n${userMessages}`;
88
+ }
89
+ if (maxTools !== void 0) systemMessage += ` You can select up to ${maxTools} tools.`;
90
+ /**
91
+ * Get the latest user message
92
+ */
93
+ const latestMessage = request.messages.at(-1);
94
+ const userContent = typeof latestMessage?.content === "string" ? latestMessage?.content : JSON.stringify(latestMessage?.content);
95
+ /**
96
+ * Create tool selection model
97
+ */
98
+ const toolSelectionModel = !model ? request.model : typeof model === "string" ? await initChatModel(model) : model;
99
+ const validToolNames = toolInfo.map(({ name }) => name);
100
+ const structuredModel = await toolSelectionModel.withStructuredOutput(ToolSelectionSchema);
101
+ let attempts = 0;
102
+ let selectedToolNames = [...validToolNames];
103
+ while (attempts <= maxRetries) try {
104
+ const response = await structuredModel.invoke([{
105
+ role: "system",
106
+ content: systemMessage
107
+ }, {
108
+ role: "user",
109
+ content: userContent
110
+ }]);
111
+ selectedToolNames = response.selectedTools;
112
+ /**
113
+ * Validate that selected tools exist
114
+ */
115
+ const invalidTools = selectedToolNames.filter((name) => !validToolNames.includes(name));
116
+ if (selectedToolNames.length === 0) {
117
+ systemMessage += `\n\nNote: You have not selected any tools. Please select at least one tool.`;
118
+ attempts++;
119
+ } else if (invalidTools.length === 0 && maxTools && selectedToolNames.length > maxTools) {
120
+ systemMessage += `\n\nNote: You have selected more tools than the maximum allowed. You can select up to ${maxTools} tools.`;
121
+ attempts++;
122
+ } else if (invalidTools.length === 0)
123
+ /**
124
+ * Success
125
+ */
126
+ break;
127
+ else if (attempts < maxRetries) {
128
+ /**
129
+ * Retry with feedback about invalid tools
130
+ */
131
+ systemMessage += `\n\nNote: The following tools are not available: ${invalidTools.join(", ")}. Please select only from the available tools.`;
132
+ attempts++;
133
+ } else {
134
+ /**
135
+ * Filter out invalid tools on final attempt
136
+ */
137
+ selectedToolNames = selectedToolNames.filter((name) => validToolNames.includes(name));
138
+ break;
139
+ }
140
+ } catch {
141
+ /**
142
+ * Fall back to using all tools
143
+ */
144
+ if (attempts >= maxRetries) return request;
145
+ attempts++;
146
+ }
147
+ /**
148
+ * Filter tools based on selection
149
+ */
150
+ const selectedTools = toolInfo.filter(({ name }) => selectedToolNames.includes(name)).map(({ name }) => name);
151
+ return {
152
+ ...request,
153
+ tools: selectedTools
154
+ };
155
+ }
156
+ });
157
+ }
158
+
159
+ //#endregion
160
+ export { llmToolSelectorMiddleware };
161
+ //# sourceMappingURL=bigTool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bigTool.js","names":["options: LLMToolSelectorConfig","msg: BaseMessage","selectedToolNames: string[]"],"sources":["../../../../src/agents/middlewareAgent/middleware/bigTool.ts"],"sourcesContent":["import { z } from \"zod/v3\";\nimport { BaseChatModel } from \"@langchain/core/language_models/chat_models\";\nimport type { InferInteropZodInput } from \"@langchain/core/utils/types\";\nimport { BaseMessage, HumanMessage } from \"@langchain/core/messages\";\n\nimport { createMiddleware } from \"../middleware.js\";\nimport { initChatModel } from \"../../../chat_models/universal.js\";\nimport type { ModelRequest } from \"../types.js\";\n\n/**\n * Zod schema for tool selection structured output.\n */\nconst ToolSelectionSchema = z.object({\n selectedTools: z.array(z.string()).describe(\"List of selected tool names\"),\n});\n\nconst DEFAULT_SYSTEM_PROMPT =\n \"Your goal is to select the most relevant tool for answering the user's query.\";\nconst DEFAULT_INCLUDE_FULL_HISTORY = false;\nconst DEFAULT_MAX_RETRIES = 3;\n\n/**\n * Options for configuring the LLM Tool Selector middleware.\n */\nexport const LLMToolSelectorOptionsSchema = z.object({\n /**\n * The language model to use for tool selection (default: the provided model from the agent options).\n */\n model: z.string().or(z.instanceof(BaseChatModel)).optional(),\n /**\n * System prompt for the tool selection model.\n */\n systemPrompt: z.string().default(DEFAULT_SYSTEM_PROMPT),\n /**\n * Maximum number of tools to select.\n */\n maxTools: z.number().optional(),\n /**\n * Whether to include the full conversation history in the tool selection prompt.\n */\n includeFullHistory: z.boolean().default(DEFAULT_INCLUDE_FULL_HISTORY),\n /**\n * Maximum number of retries if the model selects incorrect tools.\n */\n maxRetries: z.number().default(DEFAULT_MAX_RETRIES),\n});\nexport type LLMToolSelectorConfig = InferInteropZodInput<\n typeof LLMToolSelectorOptionsSchema\n>;\n\n/**\n * Middleware for selecting tools using an LLM-based strategy.\n *\n * This middleware analyzes the user's query and available tools to select\n * the most relevant tools for the task, reducing the cognitive load on the\n * main model and improving response quality.\n *\n * @param options - Configuration options for the middleware\n * @param options.model - The language model to use for tool selection (default: the provided model from the agent options).\n * @param options.systemPrompt - System prompt for the tool selection model.\n * @param options.maxTools - Maximum number of tools to select.\n * @param options.includeFullHistory - Whether to include the full conversation history in the tool selection prompt.\n * @param options.maxRetries - Maximum number of retries if the model selects incorrect tools.\n *\n * @example\n * ```ts\n * import { llmToolSelectorMiddleware } from \"langchain/agents/middleware\";\n *\n * const middleware = llmToolSelectorMiddleware({\n * maxTools: 3,\n * systemPrompt: \"Select the most relevant tools for the user's query.\"\n * });\n *\n * const agent = createAgent({\n * model: \"openai:gpt-4o\",\n * tools: [tool1, tool2, tool3, tool4, tool5],\n * middleware: [middleware],\n * });\n * ```\n */\nexport function llmToolSelectorMiddleware(options: LLMToolSelectorConfig) {\n return createMiddleware({\n name: \"LLMToolSelector\",\n contextSchema: LLMToolSelectorOptionsSchema,\n async modifyModelRequest(request, _, runtime): Promise<ModelRequest> {\n const model = runtime.context.model ?? options.model;\n const maxTools = runtime.context.maxTools ?? options.maxTools;\n const includeFullHistory =\n runtime.context.includeFullHistory === DEFAULT_INCLUDE_FULL_HISTORY\n ? options.includeFullHistory ?? runtime.context.includeFullHistory\n : runtime.context.includeFullHistory ?? options.includeFullHistory;\n const maxRetries =\n runtime.context.maxRetries === DEFAULT_MAX_RETRIES\n ? options.maxRetries ?? runtime.context.maxRetries\n : runtime.context.maxRetries ?? options.maxRetries;\n const defaultSystemPrompt =\n runtime.context.systemPrompt === DEFAULT_SYSTEM_PROMPT\n ? options.systemPrompt ?? runtime.context.systemPrompt\n : runtime.context.systemPrompt ?? options.systemPrompt;\n\n /**\n * If no tools available, return request unchanged\n */\n if (!request.tools || request.tools.length === 0) {\n return request;\n }\n\n /**\n * Extract tool information\n */\n const toolInfo = runtime.tools.map((tool) => ({\n name: tool.name as string,\n description: tool.description,\n tool,\n }));\n\n /**\n * Build tool representation for the prompt\n */\n const toolRepresentation = toolInfo\n .map(({ name, description }) => `- ${name}: ${description}`)\n .join(\"\\n\");\n\n /**\n * Build system message\n */\n let systemMessage = `You are an agent that can use the following tools:\\n${toolRepresentation}\\n${defaultSystemPrompt}`;\n\n if (includeFullHistory) {\n const userMessages = request.messages\n .filter(HumanMessage.isInstance)\n .map((msg: BaseMessage) => msg.content)\n .join(\"\\n\");\n systemMessage += `\\nThe full conversation history is:\\n${userMessages}`;\n }\n\n if (maxTools !== undefined) {\n systemMessage += ` You can select up to ${maxTools} tools.`;\n }\n\n /**\n * Get the latest user message\n */\n const latestMessage = request.messages.at(-1);\n const userContent =\n typeof latestMessage?.content === \"string\"\n ? latestMessage?.content\n : JSON.stringify(latestMessage?.content);\n\n /**\n * Create tool selection model\n */\n const toolSelectionModel = !model\n ? (request.model as BaseChatModel)\n : typeof model === \"string\"\n ? await initChatModel(model)\n : model;\n\n const validToolNames = toolInfo.map(({ name }) => name);\n const structuredModel = await toolSelectionModel.withStructuredOutput(\n ToolSelectionSchema\n );\n\n let attempts = 0;\n let selectedToolNames: string[] = [...validToolNames];\n\n while (attempts <= maxRetries) {\n try {\n const response = await structuredModel.invoke([\n { role: \"system\", content: systemMessage },\n { role: \"user\", content: userContent },\n ]);\n\n selectedToolNames = response.selectedTools;\n\n /**\n * Validate that selected tools exist\n */\n const invalidTools = selectedToolNames.filter(\n (name) => !validToolNames.includes(name)\n );\n\n if (selectedToolNames.length === 0) {\n systemMessage += `\\n\\nNote: You have not selected any tools. Please select at least one tool.`;\n attempts++;\n } else if (\n invalidTools.length === 0 &&\n maxTools &&\n selectedToolNames.length > maxTools\n ) {\n systemMessage += `\\n\\nNote: You have selected more tools than the maximum allowed. You can select up to ${maxTools} tools.`;\n attempts++;\n } else if (invalidTools.length === 0) {\n /**\n * Success\n */\n break;\n } else if (attempts < maxRetries) {\n /**\n * Retry with feedback about invalid tools\n */\n systemMessage += `\\n\\nNote: The following tools are not available: ${invalidTools.join(\n \", \"\n )}. Please select only from the available tools.`;\n attempts++;\n } else {\n /**\n * Filter out invalid tools on final attempt\n */\n selectedToolNames = selectedToolNames.filter((name) =>\n validToolNames.includes(name)\n );\n break;\n }\n } catch {\n /**\n * Fall back to using all tools\n */\n if (attempts >= maxRetries) {\n return request;\n }\n attempts++;\n }\n }\n\n /**\n * Filter tools based on selection\n */\n const selectedTools = toolInfo\n .filter(({ name }) => selectedToolNames.includes(name))\n .map(({ name }) => name);\n\n return {\n ...request,\n tools: selectedTools,\n };\n },\n });\n}\n"],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ const require_middleware = require('../middleware.cjs');
2
+
3
+ //#region src/agents/middlewareAgent/middleware/dynamicSystemPrompt.ts
4
+ /**
5
+ * Dynamic System Prompt Middleware
6
+ *
7
+ * Allows setting the system prompt dynamically right before each model invocation.
8
+ * Useful when the prompt depends on the current agent state or per-invocation context.
9
+ *
10
+ * @typeParam TContextSchema - The shape of the runtime context available at invocation time.
11
+ * If your agent defines a `contextSchema`, pass the inferred type here to get full type-safety
12
+ * for `runtime.context`.
13
+ *
14
+ * @param fn - Function that receives the current agent `state` and `runtime`, and
15
+ * returns the system prompt for the next model call as a string.
16
+ *
17
+ * @returns A middleware instance that sets `systemPrompt` for the next model call.
18
+ *
19
+ * @example Basic usage with typed context
20
+ * ```ts
21
+ * import { z } from "zod";
22
+ * import { dynamicSystemPrompt } from "langchain/middleware";
23
+ * import { createAgent, SystemMessage } from "langchain";
24
+ *
25
+ * const contextSchema = z.object({ region: z.string().optional() });
26
+ *
27
+ * const middleware = dynamicSystemPrompt<z.infer<typeof contextSchema>>(
28
+ * (_state, runtime) => `You are a helpful assistant. Region: ${runtime.context.region ?? "n/a"}`
29
+ * );
30
+ *
31
+ * const agent = createAgent({
32
+ * model: "anthropic:claude-3-5-sonnet",
33
+ * contextSchema,
34
+ * middleware: [middleware],
35
+ * });
36
+ *
37
+ * await agent.invoke({ messages }, { context: { region: "EU" } });
38
+ * ```
39
+ *
40
+ * @public
41
+ */
42
+ function dynamicSystemPromptMiddleware(fn) {
43
+ return require_middleware.createMiddleware({
44
+ name: "DynamicSystemPromptMiddleware",
45
+ modifyModelRequest: async (options, state, runtime) => {
46
+ const systemPrompt = await fn(state, runtime);
47
+ if (typeof systemPrompt !== "string") throw new Error("dynamicSystemPromptMiddleware function must return a string");
48
+ return {
49
+ ...options,
50
+ systemPrompt
51
+ };
52
+ }
53
+ });
54
+ }
55
+
56
+ //#endregion
57
+ exports.dynamicSystemPromptMiddleware = dynamicSystemPromptMiddleware;
58
+ //# sourceMappingURL=dynamicSystemPrompt.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamicSystemPrompt.cjs","names":["fn: DynamicSystemPromptMiddlewareConfig<TContextSchema>","createMiddleware"],"sources":["../../../../src/agents/middlewareAgent/middleware/dynamicSystemPrompt.ts"],"sourcesContent":["import { createMiddleware } from \"../middleware.js\";\nimport type { Runtime, AgentBuiltInState } from \"../types.js\";\n\nexport type DynamicSystemPromptMiddlewareConfig<TContextSchema> = (\n state: AgentBuiltInState,\n runtime: Runtime<AgentBuiltInState, TContextSchema>\n) => string | Promise<string>;\n\n/**\n * Dynamic System Prompt Middleware\n *\n * Allows setting the system prompt dynamically right before each model invocation.\n * Useful when the prompt depends on the current agent state or per-invocation context.\n *\n * @typeParam TContextSchema - The shape of the runtime context available at invocation time.\n * If your agent defines a `contextSchema`, pass the inferred type here to get full type-safety\n * for `runtime.context`.\n *\n * @param fn - Function that receives the current agent `state` and `runtime`, and\n * returns the system prompt for the next model call as a string.\n *\n * @returns A middleware instance that sets `systemPrompt` for the next model call.\n *\n * @example Basic usage with typed context\n * ```ts\n * import { z } from \"zod\";\n * import { dynamicSystemPrompt } from \"langchain/middleware\";\n * import { createAgent, SystemMessage } from \"langchain\";\n *\n * const contextSchema = z.object({ region: z.string().optional() });\n *\n * const middleware = dynamicSystemPrompt<z.infer<typeof contextSchema>>(\n * (_state, runtime) => `You are a helpful assistant. Region: ${runtime.context.region ?? \"n/a\"}`\n * );\n *\n * const agent = createAgent({\n * model: \"anthropic:claude-3-5-sonnet\",\n * contextSchema,\n * middleware: [middleware],\n * });\n *\n * await agent.invoke({ messages }, { context: { region: \"EU\" } });\n * ```\n *\n * @public\n */\nexport function dynamicSystemPromptMiddleware<TContextSchema = unknown>(\n fn: DynamicSystemPromptMiddlewareConfig<TContextSchema>\n) {\n return createMiddleware({\n name: \"DynamicSystemPromptMiddleware\",\n modifyModelRequest: async (options, state, runtime) => {\n const systemPrompt = await fn(\n state as AgentBuiltInState,\n runtime as Runtime<AgentBuiltInState, TContextSchema>\n );\n\n if (typeof systemPrompt !== \"string\") {\n throw new Error(\n \"dynamicSystemPromptMiddleware function must return a string\"\n );\n }\n\n return { ...options, systemPrompt };\n },\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CA,SAAgB,8BACdA,IACA;AACA,QAAOC,oCAAiB;EACtB,MAAM;EACN,oBAAoB,OAAO,SAAS,OAAO,YAAY;GACrD,MAAM,eAAe,MAAM,GACzB,OACA,QACD;AAED,OAAI,OAAO,iBAAiB,SAC1B,OAAM,IAAI,MACR;AAIJ,UAAO;IAAE,GAAG;IAAS;GAAc;EACpC;CACF,EAAC;AACH"}
@@ -0,0 +1,46 @@
1
+ import { AgentBuiltInState, AgentMiddleware, Runtime } from "../types.cjs";
2
+
3
+ //#region src/agents/middlewareAgent/middleware/dynamicSystemPrompt.d.ts
4
+ type DynamicSystemPromptMiddlewareConfig<TContextSchema> = (state: AgentBuiltInState, runtime: Runtime<AgentBuiltInState, TContextSchema>) => string | Promise<string>;
5
+ /**
6
+ * Dynamic System Prompt Middleware
7
+ *
8
+ * Allows setting the system prompt dynamically right before each model invocation.
9
+ * Useful when the prompt depends on the current agent state or per-invocation context.
10
+ *
11
+ * @typeParam TContextSchema - The shape of the runtime context available at invocation time.
12
+ * If your agent defines a `contextSchema`, pass the inferred type here to get full type-safety
13
+ * for `runtime.context`.
14
+ *
15
+ * @param fn - Function that receives the current agent `state` and `runtime`, and
16
+ * returns the system prompt for the next model call as a string.
17
+ *
18
+ * @returns A middleware instance that sets `systemPrompt` for the next model call.
19
+ *
20
+ * @example Basic usage with typed context
21
+ * ```ts
22
+ * import { z } from "zod";
23
+ * import { dynamicSystemPrompt } from "langchain/middleware";
24
+ * import { createAgent, SystemMessage } from "langchain";
25
+ *
26
+ * const contextSchema = z.object({ region: z.string().optional() });
27
+ *
28
+ * const middleware = dynamicSystemPrompt<z.infer<typeof contextSchema>>(
29
+ * (_state, runtime) => `You are a helpful assistant. Region: ${runtime.context.region ?? "n/a"}`
30
+ * );
31
+ *
32
+ * const agent = createAgent({
33
+ * model: "anthropic:claude-3-5-sonnet",
34
+ * contextSchema,
35
+ * middleware: [middleware],
36
+ * });
37
+ *
38
+ * await agent.invoke({ messages }, { context: { region: "EU" } });
39
+ * ```
40
+ *
41
+ * @public
42
+ */
43
+ declare function dynamicSystemPromptMiddleware<TContextSchema = unknown>(fn: DynamicSystemPromptMiddlewareConfig<TContextSchema>): AgentMiddleware<undefined, undefined, any>;
44
+ //#endregion
45
+ export { DynamicSystemPromptMiddlewareConfig, dynamicSystemPromptMiddleware };
46
+ //# sourceMappingURL=dynamicSystemPrompt.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamicSystemPrompt.d.cts","names":["Runtime","AgentBuiltInState","DynamicSystemPromptMiddlewareConfig","TContextSchema","Promise","dynamicSystemPromptMiddleware","___types_js1","AgentMiddleware"],"sources":["../../../../src/agents/middlewareAgent/middleware/dynamicSystemPrompt.d.ts"],"sourcesContent":["import type { Runtime, AgentBuiltInState } from \"../types.js\";\nexport type DynamicSystemPromptMiddlewareConfig<TContextSchema> = (state: AgentBuiltInState, runtime: Runtime<AgentBuiltInState, TContextSchema>) => string | Promise<string>;\n/**\n * Dynamic System Prompt Middleware\n *\n * Allows setting the system prompt dynamically right before each model invocation.\n * Useful when the prompt depends on the current agent state or per-invocation context.\n *\n * @typeParam TContextSchema - The shape of the runtime context available at invocation time.\n * If your agent defines a `contextSchema`, pass the inferred type here to get full type-safety\n * for `runtime.context`.\n *\n * @param fn - Function that receives the current agent `state` and `runtime`, and\n * returns the system prompt for the next model call as a string.\n *\n * @returns A middleware instance that sets `systemPrompt` for the next model call.\n *\n * @example Basic usage with typed context\n * ```ts\n * import { z } from \"zod\";\n * import { dynamicSystemPrompt } from \"langchain/middleware\";\n * import { createAgent, SystemMessage } from \"langchain\";\n *\n * const contextSchema = z.object({ region: z.string().optional() });\n *\n * const middleware = dynamicSystemPrompt<z.infer<typeof contextSchema>>(\n * (_state, runtime) => `You are a helpful assistant. Region: ${runtime.context.region ?? \"n/a\"}`\n * );\n *\n * const agent = createAgent({\n * model: \"anthropic:claude-3-5-sonnet\",\n * contextSchema,\n * middleware: [middleware],\n * });\n *\n * await agent.invoke({ messages }, { context: { region: \"EU\" } });\n * ```\n *\n * @public\n */\nexport declare function dynamicSystemPromptMiddleware<TContextSchema = unknown>(fn: DynamicSystemPromptMiddlewareConfig<TContextSchema>): import(\"../types.js\").AgentMiddleware<undefined, undefined, any>;\n"],"mappings":";;;KACYE,8DAA8DD,4BAA4BD,QAAQC,mBAAmBE,6BAA6BC;;AAA9J;;;;;;;AAAqK;AAuCrK;;;;;AAA+K;;;;;;;;;;;;;;;;;;;;;;;;iBAAvJC,4DAA4DH,oCAAoCC,kBAAD"}
@@ -0,0 +1,46 @@
1
+ import { AgentBuiltInState, AgentMiddleware, Runtime } from "../types.js";
2
+
3
+ //#region src/agents/middlewareAgent/middleware/dynamicSystemPrompt.d.ts
4
+ type DynamicSystemPromptMiddlewareConfig<TContextSchema> = (state: AgentBuiltInState, runtime: Runtime<AgentBuiltInState, TContextSchema>) => string | Promise<string>;
5
+ /**
6
+ * Dynamic System Prompt Middleware
7
+ *
8
+ * Allows setting the system prompt dynamically right before each model invocation.
9
+ * Useful when the prompt depends on the current agent state or per-invocation context.
10
+ *
11
+ * @typeParam TContextSchema - The shape of the runtime context available at invocation time.
12
+ * If your agent defines a `contextSchema`, pass the inferred type here to get full type-safety
13
+ * for `runtime.context`.
14
+ *
15
+ * @param fn - Function that receives the current agent `state` and `runtime`, and
16
+ * returns the system prompt for the next model call as a string.
17
+ *
18
+ * @returns A middleware instance that sets `systemPrompt` for the next model call.
19
+ *
20
+ * @example Basic usage with typed context
21
+ * ```ts
22
+ * import { z } from "zod";
23
+ * import { dynamicSystemPrompt } from "langchain/middleware";
24
+ * import { createAgent, SystemMessage } from "langchain";
25
+ *
26
+ * const contextSchema = z.object({ region: z.string().optional() });
27
+ *
28
+ * const middleware = dynamicSystemPrompt<z.infer<typeof contextSchema>>(
29
+ * (_state, runtime) => `You are a helpful assistant. Region: ${runtime.context.region ?? "n/a"}`
30
+ * );
31
+ *
32
+ * const agent = createAgent({
33
+ * model: "anthropic:claude-3-5-sonnet",
34
+ * contextSchema,
35
+ * middleware: [middleware],
36
+ * });
37
+ *
38
+ * await agent.invoke({ messages }, { context: { region: "EU" } });
39
+ * ```
40
+ *
41
+ * @public
42
+ */
43
+ declare function dynamicSystemPromptMiddleware<TContextSchema = unknown>(fn: DynamicSystemPromptMiddlewareConfig<TContextSchema>): AgentMiddleware<undefined, undefined, any>;
44
+ //#endregion
45
+ export { DynamicSystemPromptMiddlewareConfig, dynamicSystemPromptMiddleware };
46
+ //# sourceMappingURL=dynamicSystemPrompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamicSystemPrompt.d.ts","names":["Runtime","AgentBuiltInState","DynamicSystemPromptMiddlewareConfig","TContextSchema","Promise","dynamicSystemPromptMiddleware","___types_js2","AgentMiddleware"],"sources":["../../../../src/agents/middlewareAgent/middleware/dynamicSystemPrompt.d.ts"],"sourcesContent":["import type { Runtime, AgentBuiltInState } from \"../types.js\";\nexport type DynamicSystemPromptMiddlewareConfig<TContextSchema> = (state: AgentBuiltInState, runtime: Runtime<AgentBuiltInState, TContextSchema>) => string | Promise<string>;\n/**\n * Dynamic System Prompt Middleware\n *\n * Allows setting the system prompt dynamically right before each model invocation.\n * Useful when the prompt depends on the current agent state or per-invocation context.\n *\n * @typeParam TContextSchema - The shape of the runtime context available at invocation time.\n * If your agent defines a `contextSchema`, pass the inferred type here to get full type-safety\n * for `runtime.context`.\n *\n * @param fn - Function that receives the current agent `state` and `runtime`, and\n * returns the system prompt for the next model call as a string.\n *\n * @returns A middleware instance that sets `systemPrompt` for the next model call.\n *\n * @example Basic usage with typed context\n * ```ts\n * import { z } from \"zod\";\n * import { dynamicSystemPrompt } from \"langchain/middleware\";\n * import { createAgent, SystemMessage } from \"langchain\";\n *\n * const contextSchema = z.object({ region: z.string().optional() });\n *\n * const middleware = dynamicSystemPrompt<z.infer<typeof contextSchema>>(\n * (_state, runtime) => `You are a helpful assistant. Region: ${runtime.context.region ?? \"n/a\"}`\n * );\n *\n * const agent = createAgent({\n * model: \"anthropic:claude-3-5-sonnet\",\n * contextSchema,\n * middleware: [middleware],\n * });\n *\n * await agent.invoke({ messages }, { context: { region: \"EU\" } });\n * ```\n *\n * @public\n */\nexport declare function dynamicSystemPromptMiddleware<TContextSchema = unknown>(fn: DynamicSystemPromptMiddlewareConfig<TContextSchema>): import(\"../types.js\").AgentMiddleware<undefined, undefined, any>;\n"],"mappings":";;;KACYE,8DAA8DD,4BAA4BD,QAAQC,mBAAmBE,6BAA6BC;;AAA9J;;;;;;;AAAqK;AAuCrK;;;;;AAA+K;;;;;;;;;;;;;;;;;;;;;;;;iBAAvJC,4DAA4DH,oCAAoCC,kBAAD"}
@@ -0,0 +1,58 @@
1
+ import { createMiddleware } from "../middleware.js";
2
+
3
+ //#region src/agents/middlewareAgent/middleware/dynamicSystemPrompt.ts
4
+ /**
5
+ * Dynamic System Prompt Middleware
6
+ *
7
+ * Allows setting the system prompt dynamically right before each model invocation.
8
+ * Useful when the prompt depends on the current agent state or per-invocation context.
9
+ *
10
+ * @typeParam TContextSchema - The shape of the runtime context available at invocation time.
11
+ * If your agent defines a `contextSchema`, pass the inferred type here to get full type-safety
12
+ * for `runtime.context`.
13
+ *
14
+ * @param fn - Function that receives the current agent `state` and `runtime`, and
15
+ * returns the system prompt for the next model call as a string.
16
+ *
17
+ * @returns A middleware instance that sets `systemPrompt` for the next model call.
18
+ *
19
+ * @example Basic usage with typed context
20
+ * ```ts
21
+ * import { z } from "zod";
22
+ * import { dynamicSystemPrompt } from "langchain/middleware";
23
+ * import { createAgent, SystemMessage } from "langchain";
24
+ *
25
+ * const contextSchema = z.object({ region: z.string().optional() });
26
+ *
27
+ * const middleware = dynamicSystemPrompt<z.infer<typeof contextSchema>>(
28
+ * (_state, runtime) => `You are a helpful assistant. Region: ${runtime.context.region ?? "n/a"}`
29
+ * );
30
+ *
31
+ * const agent = createAgent({
32
+ * model: "anthropic:claude-3-5-sonnet",
33
+ * contextSchema,
34
+ * middleware: [middleware],
35
+ * });
36
+ *
37
+ * await agent.invoke({ messages }, { context: { region: "EU" } });
38
+ * ```
39
+ *
40
+ * @public
41
+ */
42
+ function dynamicSystemPromptMiddleware(fn) {
43
+ return createMiddleware({
44
+ name: "DynamicSystemPromptMiddleware",
45
+ modifyModelRequest: async (options, state, runtime) => {
46
+ const systemPrompt = await fn(state, runtime);
47
+ if (typeof systemPrompt !== "string") throw new Error("dynamicSystemPromptMiddleware function must return a string");
48
+ return {
49
+ ...options,
50
+ systemPrompt
51
+ };
52
+ }
53
+ });
54
+ }
55
+
56
+ //#endregion
57
+ export { dynamicSystemPromptMiddleware };
58
+ //# sourceMappingURL=dynamicSystemPrompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamicSystemPrompt.js","names":["fn: DynamicSystemPromptMiddlewareConfig<TContextSchema>"],"sources":["../../../../src/agents/middlewareAgent/middleware/dynamicSystemPrompt.ts"],"sourcesContent":["import { createMiddleware } from \"../middleware.js\";\nimport type { Runtime, AgentBuiltInState } from \"../types.js\";\n\nexport type DynamicSystemPromptMiddlewareConfig<TContextSchema> = (\n state: AgentBuiltInState,\n runtime: Runtime<AgentBuiltInState, TContextSchema>\n) => string | Promise<string>;\n\n/**\n * Dynamic System Prompt Middleware\n *\n * Allows setting the system prompt dynamically right before each model invocation.\n * Useful when the prompt depends on the current agent state or per-invocation context.\n *\n * @typeParam TContextSchema - The shape of the runtime context available at invocation time.\n * If your agent defines a `contextSchema`, pass the inferred type here to get full type-safety\n * for `runtime.context`.\n *\n * @param fn - Function that receives the current agent `state` and `runtime`, and\n * returns the system prompt for the next model call as a string.\n *\n * @returns A middleware instance that sets `systemPrompt` for the next model call.\n *\n * @example Basic usage with typed context\n * ```ts\n * import { z } from \"zod\";\n * import { dynamicSystemPrompt } from \"langchain/middleware\";\n * import { createAgent, SystemMessage } from \"langchain\";\n *\n * const contextSchema = z.object({ region: z.string().optional() });\n *\n * const middleware = dynamicSystemPrompt<z.infer<typeof contextSchema>>(\n * (_state, runtime) => `You are a helpful assistant. Region: ${runtime.context.region ?? \"n/a\"}`\n * );\n *\n * const agent = createAgent({\n * model: \"anthropic:claude-3-5-sonnet\",\n * contextSchema,\n * middleware: [middleware],\n * });\n *\n * await agent.invoke({ messages }, { context: { region: \"EU\" } });\n * ```\n *\n * @public\n */\nexport function dynamicSystemPromptMiddleware<TContextSchema = unknown>(\n fn: DynamicSystemPromptMiddlewareConfig<TContextSchema>\n) {\n return createMiddleware({\n name: \"DynamicSystemPromptMiddleware\",\n modifyModelRequest: async (options, state, runtime) => {\n const systemPrompt = await fn(\n state as AgentBuiltInState,\n runtime as Runtime<AgentBuiltInState, TContextSchema>\n );\n\n if (typeof systemPrompt !== \"string\") {\n throw new Error(\n \"dynamicSystemPromptMiddleware function must return a string\"\n );\n }\n\n return { ...options, systemPrompt };\n },\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CA,SAAgB,8BACdA,IACA;AACA,QAAO,iBAAiB;EACtB,MAAM;EACN,oBAAoB,OAAO,SAAS,OAAO,YAAY;GACrD,MAAM,eAAe,MAAM,GACzB,OACA,QACD;AAED,OAAI,OAAO,iBAAiB,SAC1B,OAAM,IAAI,MACR;AAIJ,UAAO;IAAE,GAAG;IAAS;GAAc;EACpC;CACF,EAAC;AACH"}