langchain 0.0.4 → 0.0.5

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 (333) hide show
  1. package/dist/cjs/agents/agent.d.ts +54 -0
  2. package/dist/cjs/agents/agent.js +81 -59
  3. package/dist/cjs/agents/agent.js.map +1 -1
  4. package/dist/cjs/agents/executor.d.ts +5 -0
  5. package/dist/cjs/agents/executor.js +36 -42
  6. package/dist/cjs/agents/executor.js.map +1 -1
  7. package/dist/cjs/agents/helpers.js +4 -13
  8. package/dist/cjs/agents/helpers.js.map +1 -1
  9. package/dist/cjs/agents/index.d.ts +1 -0
  10. package/dist/cjs/agents/index.js +5 -1
  11. package/dist/cjs/agents/index.js.map +1 -1
  12. package/dist/cjs/agents/initialize.d.ts +4 -0
  13. package/dist/cjs/agents/initialize.js +21 -0
  14. package/dist/cjs/agents/initialize.js.map +1 -0
  15. package/dist/cjs/agents/load.js +6 -15
  16. package/dist/cjs/agents/load.js.map +1 -1
  17. package/dist/cjs/agents/mrkl/index.d.ts +17 -0
  18. package/dist/cjs/agents/mrkl/index.js +21 -29
  19. package/dist/cjs/agents/mrkl/index.js.map +1 -1
  20. package/dist/cjs/agents/mrkl/prompt.js +0 -1
  21. package/dist/cjs/agents/mrkl/prompt.js.map +1 -1
  22. package/dist/cjs/agents/tests/agent.test.js +19 -15
  23. package/dist/cjs/agents/tests/agent.test.js.map +1 -1
  24. package/dist/cjs/agents/tests/calculator.test.d.ts +1 -0
  25. package/dist/cjs/agents/tests/calculator.test.js +30 -0
  26. package/dist/cjs/agents/tests/calculator.test.js.map +1 -0
  27. package/dist/cjs/agents/tools/base.d.ts +6 -0
  28. package/dist/cjs/agents/tools/base.js +15 -0
  29. package/dist/cjs/agents/tools/base.js.map +1 -0
  30. package/dist/cjs/agents/tools/calculator.d.ts +6 -0
  31. package/dist/cjs/agents/tools/calculator.js +33 -0
  32. package/dist/cjs/agents/tools/calculator.js.map +1 -0
  33. package/dist/cjs/agents/tools/index.d.ts +2 -6
  34. package/dist/cjs/agents/tools/index.js +5 -1
  35. package/dist/cjs/agents/tools/index.js.map +1 -1
  36. package/dist/cjs/agents/tools/serpapi.d.ts +18 -3
  37. package/dist/cjs/agents/tools/serpapi.js +88 -45
  38. package/dist/cjs/agents/tools/serpapi.js.map +1 -1
  39. package/dist/cjs/chains/base.d.ts +34 -4
  40. package/dist/cjs/chains/base.js +41 -3
  41. package/dist/cjs/chains/base.js.map +1 -1
  42. package/dist/cjs/chains/chat_vector_db_chain.d.ts +41 -0
  43. package/dist/cjs/chains/chat_vector_db_chain.js +132 -0
  44. package/dist/cjs/chains/chat_vector_db_chain.js.map +1 -0
  45. package/dist/cjs/chains/combine_docs_chain.d.ts +35 -0
  46. package/dist/cjs/chains/combine_docs_chain.js +75 -0
  47. package/dist/cjs/chains/combine_docs_chain.js.map +1 -0
  48. package/dist/cjs/chains/conversation.d.ts +12 -0
  49. package/dist/cjs/chains/conversation.js +29 -0
  50. package/dist/cjs/chains/conversation.js.map +1 -0
  51. package/dist/cjs/chains/index.d.ts +5 -1
  52. package/dist/cjs/chains/index.js +10 -1
  53. package/dist/cjs/chains/index.js.map +1 -1
  54. package/dist/cjs/chains/llm_chain.d.ts +35 -0
  55. package/dist/cjs/chains/llm_chain.js +66 -34
  56. package/dist/cjs/chains/llm_chain.js.map +1 -1
  57. package/dist/cjs/chains/load.d.ts +20 -1
  58. package/dist/cjs/chains/load.js +25 -17
  59. package/dist/cjs/chains/load.js.map +1 -1
  60. package/dist/cjs/chains/question_answering/load.d.ts +3 -0
  61. package/dist/cjs/chains/question_answering/load.js +13 -0
  62. package/dist/cjs/chains/question_answering/load.js.map +1 -0
  63. package/dist/cjs/chains/question_answering/stuff_prompts.d.ts +2 -0
  64. package/dist/cjs/chains/question_answering/stuff_prompts.js +10 -0
  65. package/dist/cjs/chains/question_answering/stuff_prompts.js.map +1 -0
  66. package/dist/cjs/chains/question_answering/tests/load.test.d.ts +1 -0
  67. package/dist/cjs/chains/question_answering/tests/load.test.js +14 -0
  68. package/dist/cjs/chains/question_answering/tests/load.test.js.map +1 -0
  69. package/dist/cjs/chains/tests/chat_vector_db_qa_chain.test.d.ts +1 -0
  70. package/dist/cjs/chains/tests/chat_vector_db_qa_chain.test.js +35 -0
  71. package/dist/cjs/chains/tests/chat_vector_db_qa_chain.test.js.map +1 -0
  72. package/dist/cjs/chains/tests/combine_docs_chain.test.d.ts +1 -0
  73. package/dist/cjs/chains/tests/combine_docs_chain.test.js +28 -0
  74. package/dist/cjs/chains/tests/combine_docs_chain.test.js.map +1 -0
  75. package/dist/cjs/chains/tests/llm_chain.test.js +13 -16
  76. package/dist/cjs/chains/tests/llm_chain.test.js.map +1 -1
  77. package/dist/cjs/chains/tests/vector_db_qa_chain.test.d.ts +1 -0
  78. package/dist/cjs/chains/tests/vector_db_qa_chain.test.js +46 -0
  79. package/dist/cjs/chains/tests/vector_db_qa_chain.test.js.map +1 -0
  80. package/dist/cjs/chains/vector_db_qa.d.ts +36 -0
  81. package/dist/cjs/chains/vector_db_qa.js +85 -0
  82. package/dist/cjs/chains/vector_db_qa.js.map +1 -0
  83. package/dist/cjs/document.d.ts +13 -0
  84. package/dist/cjs/document.js +28 -0
  85. package/dist/cjs/document.js.map +1 -0
  86. package/dist/cjs/embeddings/base.d.ts +4 -0
  87. package/dist/cjs/embeddings/base.js +7 -0
  88. package/dist/cjs/embeddings/base.js.map +1 -0
  89. package/dist/cjs/embeddings/index.d.ts +1 -0
  90. package/dist/cjs/embeddings/index.js +6 -0
  91. package/dist/cjs/embeddings/index.js.map +1 -0
  92. package/dist/cjs/embeddings/openai.d.ts +20 -0
  93. package/dist/cjs/embeddings/openai.js +86 -0
  94. package/dist/cjs/embeddings/openai.js.map +1 -0
  95. package/dist/cjs/embeddings/tests/openai.test.d.ts +1 -0
  96. package/dist/cjs/embeddings/tests/openai.test.js +17 -0
  97. package/dist/cjs/embeddings/tests/openai.test.js.map +1 -0
  98. package/dist/cjs/llms/base.d.ts +41 -0
  99. package/dist/cjs/llms/base.js +97 -92
  100. package/dist/cjs/llms/base.js.map +1 -1
  101. package/dist/cjs/llms/index.d.ts +19 -0
  102. package/dist/cjs/llms/load.d.ts +10 -2
  103. package/dist/cjs/llms/load.js +12 -4
  104. package/dist/cjs/llms/load.js.map +1 -1
  105. package/dist/cjs/llms/openai.d.ts +69 -7
  106. package/dist/cjs/llms/openai.js +96 -58
  107. package/dist/cjs/llms/openai.js.map +1 -1
  108. package/dist/cjs/llms/tests/openai.test.js +3 -12
  109. package/dist/cjs/llms/tests/openai.test.js.map +1 -1
  110. package/dist/cjs/memory/base.d.ts +7 -0
  111. package/dist/cjs/memory/base.js +7 -0
  112. package/dist/cjs/memory/base.js.map +1 -0
  113. package/dist/cjs/memory/buffer_memory.d.ts +15 -0
  114. package/dist/cjs/memory/buffer_memory.js +57 -0
  115. package/dist/cjs/memory/buffer_memory.js.map +1 -0
  116. package/dist/cjs/memory/index.d.ts +2 -0
  117. package/dist/cjs/memory/index.js +8 -0
  118. package/dist/cjs/memory/index.js.map +1 -0
  119. package/dist/cjs/memory/tests/buffer_memory.test.d.ts +1 -0
  120. package/dist/cjs/memory/tests/buffer_memory.test.js +17 -0
  121. package/dist/cjs/memory/tests/buffer_memory.test.js.map +1 -0
  122. package/dist/cjs/prompt/base.d.ts +39 -0
  123. package/dist/cjs/prompt/base.js +24 -25
  124. package/dist/cjs/prompt/base.js.map +1 -1
  125. package/dist/cjs/prompt/few_shot.d.ts +36 -1
  126. package/dist/cjs/prompt/few_shot.js +27 -33
  127. package/dist/cjs/prompt/few_shot.js.map +1 -1
  128. package/dist/cjs/prompt/index.d.ts +1 -0
  129. package/dist/cjs/prompt/index.js +3 -1
  130. package/dist/cjs/prompt/index.js.map +1 -1
  131. package/dist/cjs/prompt/load.d.ts +17 -0
  132. package/dist/cjs/prompt/load.js +21 -13
  133. package/dist/cjs/prompt/load.js.map +1 -1
  134. package/dist/cjs/prompt/parser.d.ts +30 -0
  135. package/dist/cjs/prompt/parser.js +21 -0
  136. package/dist/cjs/prompt/parser.js.map +1 -1
  137. package/dist/cjs/prompt/prompt.d.ts +48 -0
  138. package/dist/cjs/prompt/prompt.js +38 -18
  139. package/dist/cjs/prompt/prompt.js.map +1 -1
  140. package/dist/cjs/prompt/template.js.map +1 -1
  141. package/dist/cjs/prompt/tests/load.test.js +6 -15
  142. package/dist/cjs/prompt/tests/load.test.js.map +1 -1
  143. package/dist/cjs/text_splitter.d.ts +32 -0
  144. package/dist/cjs/text_splitter.js +165 -0
  145. package/dist/cjs/text_splitter.js.map +1 -0
  146. package/dist/cjs/text_splitter.test.d.ts +1 -0
  147. package/dist/cjs/text_splitter.test.js +87 -0
  148. package/dist/cjs/text_splitter.test.js.map +1 -0
  149. package/dist/cjs/util/hub.d.ts +2 -1
  150. package/dist/cjs/util/hub.js +5 -14
  151. package/dist/cjs/util/hub.js.map +1 -1
  152. package/dist/cjs/util/index.d.ts +1 -0
  153. package/dist/cjs/util/index.js +13 -25
  154. package/dist/cjs/util/index.js.map +1 -1
  155. package/dist/cjs/vectorstores/base.d.ts +18 -0
  156. package/dist/cjs/vectorstores/base.js +38 -0
  157. package/dist/cjs/vectorstores/base.js.map +1 -0
  158. package/dist/cjs/vectorstores/hnswlib.d.ts +19 -0
  159. package/dist/cjs/vectorstores/hnswlib.js +126 -0
  160. package/dist/cjs/vectorstores/hnswlib.js.map +1 -0
  161. package/dist/cjs/vectorstores/index.d.ts +1 -0
  162. package/dist/cjs/vectorstores/index.js +6 -0
  163. package/dist/cjs/vectorstores/index.js.map +1 -0
  164. package/dist/cjs/vectorstores/tests/hnswlib.test.d.ts +1 -0
  165. package/dist/cjs/vectorstores/tests/hnswlib.test.js +44 -0
  166. package/dist/cjs/vectorstores/tests/hnswlib.test.js.map +1 -0
  167. package/dist/esm/agents/agent.d.ts +54 -0
  168. package/dist/esm/agents/agent.js +81 -59
  169. package/dist/esm/agents/agent.js.map +1 -1
  170. package/dist/esm/agents/executor.d.ts +5 -0
  171. package/dist/esm/agents/executor.js +36 -42
  172. package/dist/esm/agents/executor.js.map +1 -1
  173. package/dist/esm/agents/helpers.js +4 -13
  174. package/dist/esm/agents/helpers.js.map +1 -1
  175. package/dist/esm/agents/index.d.ts +1 -0
  176. package/dist/esm/agents/index.js +2 -0
  177. package/dist/esm/agents/index.js.map +1 -1
  178. package/dist/esm/agents/initialize.d.ts +4 -0
  179. package/dist/esm/agents/initialize.js +17 -0
  180. package/dist/esm/agents/initialize.js.map +1 -0
  181. package/dist/esm/agents/load.js +6 -15
  182. package/dist/esm/agents/load.js.map +1 -1
  183. package/dist/esm/agents/mrkl/index.d.ts +17 -0
  184. package/dist/esm/agents/mrkl/index.js +21 -29
  185. package/dist/esm/agents/mrkl/index.js.map +1 -1
  186. package/dist/esm/agents/mrkl/prompt.js +0 -1
  187. package/dist/esm/agents/mrkl/prompt.js.map +1 -1
  188. package/dist/esm/agents/tests/agent.test.js +19 -15
  189. package/dist/esm/agents/tests/agent.test.js.map +1 -1
  190. package/dist/esm/agents/tests/calculator.test.d.ts +1 -0
  191. package/dist/esm/agents/tests/calculator.test.js +28 -0
  192. package/dist/esm/agents/tests/calculator.test.js.map +1 -0
  193. package/dist/esm/agents/tools/base.d.ts +6 -0
  194. package/dist/esm/agents/tools/base.js +11 -0
  195. package/dist/esm/agents/tools/base.js.map +1 -0
  196. package/dist/esm/agents/tools/calculator.d.ts +6 -0
  197. package/dist/esm/agents/tools/calculator.js +29 -0
  198. package/dist/esm/agents/tools/calculator.js.map +1 -0
  199. package/dist/esm/agents/tools/index.d.ts +2 -6
  200. package/dist/esm/agents/tools/index.js +2 -0
  201. package/dist/esm/agents/tools/index.js.map +1 -1
  202. package/dist/esm/agents/tools/serpapi.d.ts +18 -3
  203. package/dist/esm/agents/tools/serpapi.js +88 -45
  204. package/dist/esm/agents/tools/serpapi.js.map +1 -1
  205. package/dist/esm/chains/base.d.ts +34 -4
  206. package/dist/esm/chains/base.js +42 -4
  207. package/dist/esm/chains/base.js.map +1 -1
  208. package/dist/esm/chains/chat_vector_db_chain.d.ts +41 -0
  209. package/dist/esm/chains/chat_vector_db_chain.js +128 -0
  210. package/dist/esm/chains/chat_vector_db_chain.js.map +1 -0
  211. package/dist/esm/chains/combine_docs_chain.d.ts +35 -0
  212. package/dist/esm/chains/combine_docs_chain.js +71 -0
  213. package/dist/esm/chains/combine_docs_chain.js.map +1 -0
  214. package/dist/esm/chains/conversation.d.ts +12 -0
  215. package/dist/esm/chains/conversation.js +25 -0
  216. package/dist/esm/chains/conversation.js.map +1 -0
  217. package/dist/esm/chains/index.d.ts +5 -1
  218. package/dist/esm/chains/index.js +5 -1
  219. package/dist/esm/chains/index.js.map +1 -1
  220. package/dist/esm/chains/llm_chain.d.ts +35 -0
  221. package/dist/esm/chains/llm_chain.js +65 -34
  222. package/dist/esm/chains/llm_chain.js.map +1 -1
  223. package/dist/esm/chains/load.d.ts +20 -1
  224. package/dist/esm/chains/load.js +25 -17
  225. package/dist/esm/chains/load.js.map +1 -1
  226. package/dist/esm/chains/question_answering/load.d.ts +3 -0
  227. package/dist/esm/chains/question_answering/load.js +9 -0
  228. package/dist/esm/chains/question_answering/load.js.map +1 -0
  229. package/dist/esm/chains/question_answering/stuff_prompts.d.ts +2 -0
  230. package/dist/esm/chains/question_answering/stuff_prompts.js +7 -0
  231. package/dist/esm/chains/question_answering/stuff_prompts.js.map +1 -0
  232. package/dist/esm/chains/question_answering/tests/load.test.d.ts +1 -0
  233. package/dist/esm/chains/question_answering/tests/load.test.js +12 -0
  234. package/dist/esm/chains/question_answering/tests/load.test.js.map +1 -0
  235. package/dist/esm/chains/tests/chat_vector_db_qa_chain.test.d.ts +1 -0
  236. package/dist/esm/chains/tests/chat_vector_db_qa_chain.test.js +33 -0
  237. package/dist/esm/chains/tests/chat_vector_db_qa_chain.test.js.map +1 -0
  238. package/dist/esm/chains/tests/combine_docs_chain.test.d.ts +1 -0
  239. package/dist/esm/chains/tests/combine_docs_chain.test.js +26 -0
  240. package/dist/esm/chains/tests/combine_docs_chain.test.js.map +1 -0
  241. package/dist/esm/chains/tests/llm_chain.test.js +14 -17
  242. package/dist/esm/chains/tests/llm_chain.test.js.map +1 -1
  243. package/dist/esm/chains/tests/vector_db_qa_chain.test.d.ts +1 -0
  244. package/dist/esm/chains/tests/vector_db_qa_chain.test.js +44 -0
  245. package/dist/esm/chains/tests/vector_db_qa_chain.test.js.map +1 -0
  246. package/dist/esm/chains/vector_db_qa.d.ts +36 -0
  247. package/dist/esm/chains/vector_db_qa.js +81 -0
  248. package/dist/esm/chains/vector_db_qa.js.map +1 -0
  249. package/dist/esm/document.d.ts +13 -0
  250. package/dist/esm/document.js +24 -0
  251. package/dist/esm/document.js.map +1 -0
  252. package/dist/esm/embeddings/base.d.ts +4 -0
  253. package/dist/esm/embeddings/base.js +3 -0
  254. package/dist/esm/embeddings/base.js.map +1 -0
  255. package/dist/esm/embeddings/index.d.ts +1 -0
  256. package/dist/esm/embeddings/index.js +2 -0
  257. package/dist/esm/embeddings/index.js.map +1 -0
  258. package/dist/esm/embeddings/openai.d.ts +20 -0
  259. package/dist/esm/embeddings/openai.js +82 -0
  260. package/dist/esm/embeddings/openai.js.map +1 -0
  261. package/dist/esm/embeddings/tests/openai.test.d.ts +1 -0
  262. package/dist/esm/embeddings/tests/openai.test.js +15 -0
  263. package/dist/esm/embeddings/tests/openai.test.js.map +1 -0
  264. package/dist/esm/llms/base.d.ts +41 -0
  265. package/dist/esm/llms/base.js +97 -92
  266. package/dist/esm/llms/base.js.map +1 -1
  267. package/dist/esm/llms/index.d.ts +19 -0
  268. package/dist/esm/llms/load.d.ts +10 -2
  269. package/dist/esm/llms/load.js +10 -2
  270. package/dist/esm/llms/load.js.map +1 -1
  271. package/dist/esm/llms/openai.d.ts +69 -7
  272. package/dist/esm/llms/openai.js +96 -58
  273. package/dist/esm/llms/openai.js.map +1 -1
  274. package/dist/esm/llms/tests/openai.test.js +3 -12
  275. package/dist/esm/llms/tests/openai.test.js.map +1 -1
  276. package/dist/esm/memory/base.d.ts +7 -0
  277. package/dist/esm/memory/base.js +3 -0
  278. package/dist/esm/memory/base.js.map +1 -0
  279. package/dist/esm/memory/buffer_memory.d.ts +15 -0
  280. package/dist/esm/memory/buffer_memory.js +53 -0
  281. package/dist/esm/memory/buffer_memory.js.map +1 -0
  282. package/dist/esm/memory/index.d.ts +2 -0
  283. package/dist/esm/memory/index.js +3 -0
  284. package/dist/esm/memory/index.js.map +1 -0
  285. package/dist/esm/memory/tests/buffer_memory.test.d.ts +1 -0
  286. package/dist/esm/memory/tests/buffer_memory.test.js +15 -0
  287. package/dist/esm/memory/tests/buffer_memory.test.js.map +1 -0
  288. package/dist/esm/prompt/base.d.ts +39 -0
  289. package/dist/esm/prompt/base.js +24 -25
  290. package/dist/esm/prompt/base.js.map +1 -1
  291. package/dist/esm/prompt/few_shot.d.ts +36 -1
  292. package/dist/esm/prompt/few_shot.js +27 -33
  293. package/dist/esm/prompt/few_shot.js.map +1 -1
  294. package/dist/esm/prompt/index.d.ts +1 -0
  295. package/dist/esm/prompt/index.js +1 -0
  296. package/dist/esm/prompt/index.js.map +1 -1
  297. package/dist/esm/prompt/load.d.ts +17 -0
  298. package/dist/esm/prompt/load.js +21 -13
  299. package/dist/esm/prompt/load.js.map +1 -1
  300. package/dist/esm/prompt/parser.d.ts +30 -0
  301. package/dist/esm/prompt/parser.js +21 -0
  302. package/dist/esm/prompt/parser.js.map +1 -1
  303. package/dist/esm/prompt/prompt.d.ts +48 -0
  304. package/dist/esm/prompt/prompt.js +38 -18
  305. package/dist/esm/prompt/prompt.js.map +1 -1
  306. package/dist/esm/prompt/template.js.map +1 -1
  307. package/dist/esm/prompt/tests/load.test.js +6 -15
  308. package/dist/esm/prompt/tests/load.test.js.map +1 -1
  309. package/dist/esm/text_splitter.d.ts +32 -0
  310. package/dist/esm/text_splitter.js +160 -0
  311. package/dist/esm/text_splitter.js.map +1 -0
  312. package/dist/esm/text_splitter.test.d.ts +1 -0
  313. package/dist/esm/text_splitter.test.js +85 -0
  314. package/dist/esm/text_splitter.test.js.map +1 -0
  315. package/dist/esm/util/hub.d.ts +2 -1
  316. package/dist/esm/util/hub.js +5 -14
  317. package/dist/esm/util/hub.js.map +1 -1
  318. package/dist/esm/util/index.d.ts +1 -0
  319. package/dist/esm/util/index.js +11 -24
  320. package/dist/esm/util/index.js.map +1 -1
  321. package/dist/esm/vectorstores/base.d.ts +18 -0
  322. package/dist/esm/vectorstores/base.js +33 -0
  323. package/dist/esm/vectorstores/base.js.map +1 -0
  324. package/dist/esm/vectorstores/hnswlib.d.ts +19 -0
  325. package/dist/esm/vectorstores/hnswlib.js +119 -0
  326. package/dist/esm/vectorstores/hnswlib.js.map +1 -0
  327. package/dist/esm/vectorstores/index.d.ts +1 -0
  328. package/dist/esm/vectorstores/index.js +2 -0
  329. package/dist/esm/vectorstores/index.js.map +1 -0
  330. package/dist/esm/vectorstores/tests/hnswlib.test.d.ts +1 -0
  331. package/dist/esm/vectorstores/tests/hnswlib.test.js +39 -0
  332. package/dist/esm/vectorstores/tests/hnswlib.test.js.map +1 -0
  333. package/package.json +65 -38
@@ -4,7 +4,16 @@ import { BaseLLM } from "../llms";
4
4
  import { LLMChain } from "../chains/llm_chain";
5
5
  import { BasePromptTemplate } from "../prompt";
6
6
  export interface StaticAgent {
7
+ /**
8
+ * Create a prompt for this class
9
+ *
10
+ * @param tools - List of tools the agent will have access to, used to format the prompt.
11
+ * @param fields - Additional fields used to format the prompt.
12
+ *
13
+ * @returns A PromptTemplate assembled from the given tools and fields.
14
+ * */
7
15
  createPrompt(tools: Tool[], fields?: Record<string, any>): BasePromptTemplate;
16
+ /** Construct an agent from an LLM and a list of tools */
8
17
  fromLLMAndTools(llm: BaseLLM, tools: Tool[], args?: Record<string, any>): Agent;
9
18
  validateTools(_: Tool[]): void;
10
19
  }
@@ -14,26 +23,71 @@ export interface AgentInput {
14
23
  llmChain: LLMChain;
15
24
  allowedTools?: string[];
16
25
  }
26
+ /**
27
+ * Class responsible for calling a language model and deciding an action.
28
+ *
29
+ * @remarks This is driven by an LLMChain. The prompt in the LLMChain *must*
30
+ * include a variable called "agent_scratchpad" where the agent can put its
31
+ * intermediary work.
32
+ */
17
33
  export declare abstract class Agent {
18
34
  llmChain: LLMChain;
19
35
  allowedTools?: string[];
20
36
  returnValues: string[];
21
37
  constructor(input: AgentInput);
38
+ /**
39
+ * Extract tool and tool input from LLM output.
40
+ */
22
41
  abstract extractToolAndInput(input: string): {
23
42
  tool: string;
24
43
  input: string;
25
44
  } | null;
45
+ /**
46
+ * Prefix to append the observation with.
47
+ */
26
48
  abstract observationPrefix(): string;
49
+ /**
50
+ * Prefix to append the LLM call with.
51
+ */
27
52
  abstract llmPrefix(): string;
53
+ /**
54
+ * Return the string type key uniquely identifying this class of agent.
55
+ */
28
56
  abstract _agentType(): string;
57
+ /**
58
+ * Prepare the agent for a new call, if needed
59
+ */
29
60
  prepareForNewCall(): void;
61
+ /**
62
+ * Validate that appropriate tools are passed in
63
+ */
30
64
  static validateTools(_: Tool[]): void;
31
65
  _stop(): string[];
66
+ /**
67
+ * Name of tool to use to terminate the chain.
68
+ */
32
69
  finishToolName(): string;
70
+ /**
71
+ * Construct a scratchpad to let the agent continue its thought process
72
+ */
33
73
  private constructScratchPad;
34
74
  private _plan;
75
+ /**
76
+ * Decide what to do given some input.
77
+ *
78
+ * @param steps - Steps the LLM has taken so far, along with observations from each.
79
+ * @param inputs - User inputs.
80
+ *
81
+ * @returns Action specifying what tool to use.
82
+ */
35
83
  plan(steps: AgentStep[], inputs: ChainValues): Promise<AgentAction | AgentFinish>;
84
+ /**
85
+ * Return response when agent has been stopped due to max iterations
86
+ */
36
87
  returnStoppedResponse(earlyStoppingMethod: StoppingMethod, steps: AgentStep[], inputs: ChainValues): Promise<AgentFinish>;
88
+ /**
89
+ * Load an agent from a json-like object describing it.
90
+ */
37
91
  static deserialize(data: SerializedAgent & {
38
92
  llm?: BaseLLM;
39
93
  tools?: Tool[];
@@ -1,13 +1,4 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.Agent = exports.staticImplements = void 0;
13
4
  const index_1 = require("./index");
@@ -25,6 +16,13 @@ class ParseError extends Error {
25
16
  }
26
17
  const staticImplements = (_) => { };
27
18
  exports.staticImplements = staticImplements;
19
+ /**
20
+ * Class responsible for calling a language model and deciding an action.
21
+ *
22
+ * @remarks This is driven by an LLMChain. The prompt in the LLMChain *must*
23
+ * include a variable called "agent_scratchpad" where the agent can put its
24
+ * intermediary work.
25
+ */
28
26
  class Agent {
29
27
  constructor(input) {
30
28
  Object.defineProperty(this, "llmChain", {
@@ -48,15 +46,27 @@ class Agent {
48
46
  this.llmChain = input.llmChain;
49
47
  this.allowedTools = input.allowedTools;
50
48
  }
49
+ /**
50
+ * Prepare the agent for a new call, if needed
51
+ */
51
52
  prepareForNewCall() { }
53
+ /**
54
+ * Validate that appropriate tools are passed in
55
+ */
52
56
  // eslint-disable-next-line no-unused-vars
53
57
  static validateTools(_) { }
54
58
  _stop() {
55
59
  return [`\n${this.observationPrefix()}`];
56
60
  }
61
+ /**
62
+ * Name of tool to use to terminate the chain.
63
+ */
57
64
  finishToolName() {
58
65
  return "Final Answer";
59
66
  }
67
+ /**
68
+ * Construct a scratchpad to let the agent continue its thought process
69
+ */
60
70
  constructScratchPad(steps) {
61
71
  return steps.reduce((thoughts, { action, observation }) => thoughts +
62
72
  [
@@ -65,64 +75,76 @@ class Agent {
65
75
  this.llmPrefix(),
66
76
  ].join("\n"), "");
67
77
  }
68
- _plan(steps, inputs, suffix) {
69
- return __awaiter(this, void 0, void 0, function* () {
70
- const thoughts = this.constructScratchPad(steps);
71
- const newInputs = Object.assign(Object.assign({}, inputs), { agent_scratchpad: suffix ? `${thoughts}${suffix}` : thoughts, stop: this._stop() });
72
- const output = yield this.llmChain.predict(newInputs);
73
- const parsed = this.extractToolAndInput(output);
74
- if (!parsed) {
75
- throw new ParseError(`Invalid output: ${output}`, output);
76
- }
77
- const action = {
78
- tool: parsed.tool,
79
- toolInput: parsed.input,
80
- log: output,
81
- };
82
- if (action.tool === this.finishToolName()) {
83
- return { returnValues: { output: action.toolInput }, log: action.log };
84
- }
85
- return action;
86
- });
78
+ async _plan(steps, inputs, suffix) {
79
+ const thoughts = this.constructScratchPad(steps);
80
+ const newInputs = {
81
+ ...inputs,
82
+ agent_scratchpad: suffix ? `${thoughts}${suffix}` : thoughts,
83
+ stop: this._stop(),
84
+ };
85
+ const output = await this.llmChain.predict(newInputs);
86
+ const parsed = this.extractToolAndInput(output);
87
+ if (!parsed) {
88
+ throw new ParseError(`Invalid output: ${output}`, output);
89
+ }
90
+ const action = {
91
+ tool: parsed.tool,
92
+ toolInput: parsed.input,
93
+ log: output,
94
+ };
95
+ if (action.tool === this.finishToolName()) {
96
+ return { returnValues: { output: action.toolInput }, log: action.log };
97
+ }
98
+ return action;
87
99
  }
100
+ /**
101
+ * Decide what to do given some input.
102
+ *
103
+ * @param steps - Steps the LLM has taken so far, along with observations from each.
104
+ * @param inputs - User inputs.
105
+ *
106
+ * @returns Action specifying what tool to use.
107
+ */
88
108
  plan(steps, inputs) {
89
109
  return this._plan(steps, inputs);
90
110
  }
91
- returnStoppedResponse(earlyStoppingMethod, steps, inputs) {
92
- return __awaiter(this, void 0, void 0, function* () {
93
- if (earlyStoppingMethod === "force") {
94
- return {
95
- returnValues: { output: "Agent stopped due to max iterations." },
96
- log: "",
97
- };
98
- }
99
- if (earlyStoppingMethod === "generate") {
100
- try {
101
- const action = yield this._plan(steps, inputs, "\n\nI now need to return a final answer based on the previous steps:");
102
- if ("returnValues" in action) {
103
- return action;
104
- }
105
- return { returnValues: { output: action.log }, log: action.log };
111
+ /**
112
+ * Return response when agent has been stopped due to max iterations
113
+ */
114
+ async returnStoppedResponse(earlyStoppingMethod, steps, inputs) {
115
+ if (earlyStoppingMethod === "force") {
116
+ return {
117
+ returnValues: { output: "Agent stopped due to max iterations." },
118
+ log: "",
119
+ };
120
+ }
121
+ if (earlyStoppingMethod === "generate") {
122
+ try {
123
+ const action = await this._plan(steps, inputs, "\n\nI now need to return a final answer based on the previous steps:");
124
+ if ("returnValues" in action) {
125
+ return action;
106
126
  }
107
- catch (err) {
108
- if (!(err instanceof ParseError)) {
109
- throw err;
110
- }
111
- return { returnValues: { output: err.output }, log: err.output };
127
+ return { returnValues: { output: action.log }, log: action.log };
128
+ }
129
+ catch (err) {
130
+ if (!(err instanceof ParseError)) {
131
+ throw err;
112
132
  }
133
+ return { returnValues: { output: err.output }, log: err.output };
113
134
  }
114
- throw new Error(`Invalid stopping method: ${earlyStoppingMethod}`);
115
- });
135
+ }
136
+ throw new Error(`Invalid stopping method: ${earlyStoppingMethod}`);
116
137
  }
117
- static deserialize(data) {
118
- return __awaiter(this, void 0, void 0, function* () {
119
- switch (data._type) {
120
- case "zero-shot-react-description":
121
- return index_1.ZeroShotAgent.deserialize(data);
122
- default:
123
- throw new Error("Unknown agent type");
124
- }
125
- });
138
+ /**
139
+ * Load an agent from a json-like object describing it.
140
+ */
141
+ static async deserialize(data) {
142
+ switch (data._type) {
143
+ case "zero-shot-react-description":
144
+ return index_1.ZeroShotAgent.deserialize(data);
145
+ default:
146
+ throw new Error("Unknown agent type");
147
+ }
126
148
  }
127
149
  }
128
150
  exports.Agent = Agent;
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../agents/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../agents/agent.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,10 @@ type AgentExecutorInput = {
8
8
  maxIterations?: number;
9
9
  earlyStoppingMethod?: StoppingMethod;
10
10
  };
11
+ /**
12
+ * A chain managing an agent using tools.
13
+ * @augments BaseChain
14
+ */
11
15
  export declare class AgentExecutor extends BaseChain {
12
16
  agent: Agent;
13
17
  tools: Tool[];
@@ -15,6 +19,7 @@ export declare class AgentExecutor extends BaseChain {
15
19
  maxIterations?: number;
16
20
  earlyStoppingMethod: StoppingMethod;
17
21
  constructor(input: AgentExecutorInput);
22
+ /** Create from agent and a list of tools. */
18
23
  static fromAgentAndTools(fields: {
19
24
  agent: Agent;
20
25
  tools: Tool[];
@@ -1,16 +1,11 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.AgentExecutor = void 0;
13
4
  const chains_1 = require("../chains");
5
+ /**
6
+ * A chain managing an agent using tools.
7
+ * @augments BaseChain
8
+ */
14
9
  class AgentExecutor extends chains_1.BaseChain {
15
10
  constructor(input) {
16
11
  var _a, _b, _c;
@@ -53,46 +48,45 @@ class AgentExecutor extends chains_1.BaseChain {
53
48
  this.earlyStoppingMethod =
54
49
  (_c = input.earlyStoppingMethod) !== null && _c !== void 0 ? _c : this.earlyStoppingMethod;
55
50
  }
51
+ /** Create from agent and a list of tools. */
56
52
  static fromAgentAndTools(fields) {
57
53
  return new AgentExecutor(fields);
58
54
  }
59
55
  shouldContinue(iterations) {
60
56
  return this.maxIterations === undefined || iterations < this.maxIterations;
61
57
  }
62
- _call(inputs) {
63
- return __awaiter(this, void 0, void 0, function* () {
64
- this.agent.prepareForNewCall();
65
- const toolsByName = Object.fromEntries(this.tools.map((t) => [t.name, t]));
66
- const steps = [];
67
- let iterations = 0;
68
- const getOutput = (finishStep) => {
69
- const { returnValues } = finishStep;
70
- if (this.returnIntermediateSteps) {
71
- return Object.assign(Object.assign({}, returnValues), { intermediateSteps: steps });
72
- }
73
- return returnValues;
74
- };
75
- while (this.shouldContinue(iterations)) {
76
- const action = yield this.agent.plan(steps, inputs);
77
- if ("returnValues" in action) {
78
- return getOutput(action);
79
- }
80
- const tool = toolsByName[action.tool];
81
- const observation = tool
82
- ? yield tool.call(action.toolInput)
83
- : `${action.tool} is not a valid tool, try another one.`;
84
- steps.push({ action, observation });
85
- if (tool === null || tool === void 0 ? void 0 : tool.returnDirect) {
86
- return getOutput({
87
- returnValues: { [this.agent.returnValues[0]]: observation },
88
- log: "",
89
- });
90
- }
91
- iterations += 1;
58
+ async _call(inputs) {
59
+ this.agent.prepareForNewCall();
60
+ const toolsByName = Object.fromEntries(this.tools.map((t) => [t.name.toLowerCase(), t]));
61
+ const steps = [];
62
+ let iterations = 0;
63
+ const getOutput = (finishStep) => {
64
+ const { returnValues } = finishStep;
65
+ if (this.returnIntermediateSteps) {
66
+ return { ...returnValues, intermediateSteps: steps };
92
67
  }
93
- const finish = yield this.agent.returnStoppedResponse(this.earlyStoppingMethod, steps, inputs);
94
- return getOutput(finish);
95
- });
68
+ return returnValues;
69
+ };
70
+ while (this.shouldContinue(iterations)) {
71
+ const action = await this.agent.plan(steps, inputs);
72
+ if ("returnValues" in action) {
73
+ return getOutput(action);
74
+ }
75
+ const tool = toolsByName[action.tool.toLowerCase()];
76
+ const observation = tool
77
+ ? await tool.call(action.toolInput)
78
+ : `${action.tool} is not a valid tool, try another one.`;
79
+ steps.push({ action, observation });
80
+ if (tool === null || tool === void 0 ? void 0 : tool.returnDirect) {
81
+ return getOutput({
82
+ returnValues: { [this.agent.returnValues[0]]: observation },
83
+ log: "",
84
+ });
85
+ }
86
+ iterations += 1;
87
+ }
88
+ const finish = await this.agent.returnStoppedResponse(this.earlyStoppingMethod, steps, inputs);
89
+ return getOutput(finish);
96
90
  }
97
91
  _chainType() {
98
92
  return "agent_executor";
@@ -1 +1 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../agents/executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../agents/executor.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,9 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.deserializeHelper = void 0;
13
4
  const chains_1 = require("../chains");
14
5
  const util_1 = require("../util");
15
- const deserializeHelper = (llm, tools, data, fromLLMAndTools, fromConstructor) => __awaiter(void 0, void 0, void 0, function* () {
6
+ const deserializeHelper = async (llm, tools, data, fromLLMAndTools, fromConstructor) => {
16
7
  if (data.load_from_llm_and_tools) {
17
8
  if (!llm) {
18
9
  throw new Error("Loading from llm and tools, llm must be provided.");
@@ -23,8 +14,8 @@ const deserializeHelper = (llm, tools, data, fromLLMAndTools, fromConstructor) =
23
14
  return fromLLMAndTools(llm, tools, data);
24
15
  }
25
16
  const serializedLLMChain = (0, util_1.resolveConfigFromFile)("llm_chain", data);
26
- const llmChain = yield chains_1.LLMChain.deserialize(serializedLLMChain);
27
- return fromConstructor(Object.assign(Object.assign({}, data), { llmChain }));
28
- });
17
+ const llmChain = await chains_1.LLMChain.deserialize(serializedLLMChain);
18
+ return fromConstructor({ ...data, llmChain });
19
+ };
29
20
  exports.deserializeHelper = deserializeHelper;
30
21
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../agents/helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,sCAAyD;AACzD,kCAAgD;AAEzC,MAAM,iBAAiB,GAAG,CAM/B,GAAwB,EACxB,KAAyB,EACzB,IAA+B,EAC/B,eAA4D,EAC5D,eAA+B,EACnB,EAAE;IACd,IAAI,IAAI,CAAC,uBAAuB,EAAE;QAChC,IAAI,CAAC,GAAG,EAAE;YACR,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;SACtE;QAED,IAAI,CAAC,KAAK,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;SACxE;QAED,OAAO,eAAe,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;KAC1C;IAED,MAAM,kBAAkB,GAAG,IAAA,4BAAqB,EAG9C,WAAW,EAAE,IAAI,CAAC,CAAC;IACrB,MAAM,QAAQ,GAAG,MAAM,iBAAQ,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAChE,OAAO,eAAe,iCAAM,IAAI,KAAE,QAAQ,IAAG,CAAC;AAChD,CAAC,CAAA,CAAC;AA9BW,QAAA,iBAAiB,qBA8B5B"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../agents/helpers.ts"],"names":[],"mappings":";;;AAEA,sCAAyD;AACzD,kCAAgD;AAEzC,MAAM,iBAAiB,GAAG,KAAK,EAMpC,GAAwB,EACxB,KAAyB,EACzB,IAA+B,EAC/B,eAA4D,EAC5D,eAA+B,EACnB,EAAE;IACd,IAAI,IAAI,CAAC,uBAAuB,EAAE;QAChC,IAAI,CAAC,GAAG,EAAE;YACR,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;SACtE;QAED,IAAI,CAAC,KAAK,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;SACxE;QAED,OAAO,eAAe,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;KAC1C;IAED,MAAM,kBAAkB,GAAG,IAAA,4BAAqB,EAG9C,WAAW,EAAE,IAAI,CAAC,CAAC;IACrB,MAAM,QAAQ,GAAG,MAAM,iBAAQ,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAChE,OAAO,eAAe,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AAChD,CAAC,CAAC;AA9BW,QAAA,iBAAiB,qBA8B5B"}
@@ -3,4 +3,5 @@ export { Agent, StaticAgent, staticImplements, AgentInput } from "./agent";
3
3
  export { AgentExecutor } from "./executor";
4
4
  export { ZeroShotAgent, SerializedZeroShotAgent } from "./mrkl";
5
5
  export { Tool } from "./tools";
6
+ export { initializeAgentExecutor } from "./initialize";
6
7
  export { loadAgent } from "./load";
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.loadAgent = exports.ZeroShotAgent = exports.AgentExecutor = exports.staticImplements = exports.Agent = void 0;
3
+ exports.loadAgent = exports.initializeAgentExecutor = exports.Tool = exports.ZeroShotAgent = exports.AgentExecutor = exports.staticImplements = exports.Agent = void 0;
4
4
  var agent_1 = require("./agent");
5
5
  Object.defineProperty(exports, "Agent", { enumerable: true, get: function () { return agent_1.Agent; } });
6
6
  Object.defineProperty(exports, "staticImplements", { enumerable: true, get: function () { return agent_1.staticImplements; } });
@@ -8,6 +8,10 @@ var executor_1 = require("./executor");
8
8
  Object.defineProperty(exports, "AgentExecutor", { enumerable: true, get: function () { return executor_1.AgentExecutor; } });
9
9
  var mrkl_1 = require("./mrkl");
10
10
  Object.defineProperty(exports, "ZeroShotAgent", { enumerable: true, get: function () { return mrkl_1.ZeroShotAgent; } });
11
+ var tools_1 = require("./tools");
12
+ Object.defineProperty(exports, "Tool", { enumerable: true, get: function () { return tools_1.Tool; } });
13
+ var initialize_1 = require("./initialize");
14
+ Object.defineProperty(exports, "initializeAgentExecutor", { enumerable: true, get: function () { return initialize_1.initializeAgentExecutor; } });
11
15
  var load_1 = require("./load");
12
16
  Object.defineProperty(exports, "loadAgent", { enumerable: true, get: function () { return load_1.loadAgent; } });
13
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../agents/index.ts"],"names":[],"mappings":";;;AAOA,iCAA2E;AAAlE,8FAAA,KAAK,OAAA;AAAe,yGAAA,gBAAgB,OAAA;AAC7C,uCAA2C;AAAlC,yGAAA,aAAa,OAAA;AACtB,+BAAgE;AAAvD,qGAAA,aAAa,OAAA;AAGtB,+BAAmC;AAA1B,iGAAA,SAAS,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../agents/index.ts"],"names":[],"mappings":";;;AAOA,iCAA2E;AAAlE,8FAAA,KAAK,OAAA;AAAe,yGAAA,gBAAgB,OAAA;AAC7C,uCAA2C;AAAlC,yGAAA,aAAa,OAAA;AACtB,+BAAgE;AAAvD,qGAAA,aAAa,OAAA;AACtB,iCAA+B;AAAtB,6FAAA,IAAI,OAAA;AACb,2CAAqD;AAA7C,qHAAA,uBAAuB,OAAA;AAE/B,+BAAmC;AAA1B,iGAAA,SAAS,OAAA"}
@@ -0,0 +1,4 @@
1
+ import { Tool } from "./tools";
2
+ import { BaseLLM } from "../llms";
3
+ import { AgentExecutor } from "./executor";
4
+ export declare const initializeAgentExecutor: (tools: Tool[], llm: BaseLLM, agentType?: string) => Promise<AgentExecutor>;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.initializeAgentExecutor = void 0;
4
+ const executor_1 = require("./executor");
5
+ const mrkl_1 = require("./mrkl");
6
+ const initializeAgentExecutor = async (tools, llm, agentType = "zero-shot-react-description") => {
7
+ switch (agentType) {
8
+ case "zero-shot-react-description":
9
+ const agent = mrkl_1.ZeroShotAgent.fromLLMAndTools(llm, tools);
10
+ const executor = executor_1.AgentExecutor.fromAgentAndTools({
11
+ agent,
12
+ tools,
13
+ returnIntermediateSteps: true,
14
+ });
15
+ return executor;
16
+ default:
17
+ throw new Error("Unknown agent type");
18
+ }
19
+ };
20
+ exports.initializeAgentExecutor = initializeAgentExecutor;
21
+ //# sourceMappingURL=initialize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initialize.js","sourceRoot":"","sources":["../../../agents/initialize.ts"],"names":[],"mappings":";;;AAEA,yCAA2C;AAC3C,iCAAuC;AAEhC,MAAM,uBAAuB,GAAG,KAAK,EACxC,KAAa,EACb,GAAY,EACZ,SAAS,GAAE,6BAA6B,EAChB,EAAE;IAC1B,QAAQ,SAAS,EAAE;QACf,KAAK,6BAA6B;YAC9B,MAAM,KAAK,GAAG,oBAAa,CAAC,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACxD,MAAM,QAAQ,GAAG,wBAAa,CAAC,iBAAiB,CAAC;gBAC7C,KAAK;gBACL,KAAK;gBACL,uBAAuB,EAAE,IAAI;aAC5B,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC;QACxB;YACI,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;KAC7C;AACH,CAAC,CAAC;AAjBS,QAAA,uBAAuB,2BAiBhC"}
@@ -1,28 +1,19 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.loadAgent = void 0;
13
4
  const _1 = require(".");
14
5
  const hub_1 = require("../util/hub");
15
6
  const util_1 = require("../util");
16
- const loadAgentFromFile = (file, llmAndTools) => __awaiter(void 0, void 0, void 0, function* () {
7
+ const loadAgentFromFile = async (file, llmAndTools) => {
17
8
  const serialized = (0, util_1.parseFileConfig)(file);
18
- return _1.Agent.deserialize(Object.assign(Object.assign({}, serialized), llmAndTools));
19
- });
20
- const loadAgent = (uri, llmAndTools) => __awaiter(void 0, void 0, void 0, function* () {
21
- const hubResult = yield (0, hub_1.loadFromHub)(uri, (u) => loadAgentFromFile(u, llmAndTools), "agents", new Set(["json", "yaml"]));
9
+ return _1.Agent.deserialize({ ...serialized, ...llmAndTools });
10
+ };
11
+ const loadAgent = async (uri, llmAndTools) => {
12
+ const hubResult = await (0, hub_1.loadFromHub)(uri, (u) => loadAgentFromFile(u, llmAndTools), "agents", new Set(["json", "yaml"]));
22
13
  if (hubResult) {
23
14
  return hubResult;
24
15
  }
25
16
  return loadAgentFromFile(uri, llmAndTools);
26
- });
17
+ };
27
18
  exports.loadAgent = loadAgent;
28
19
  //# sourceMappingURL=load.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"load.js","sourceRoot":"","sources":["../../../agents/load.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wBAAgC;AAEhC,qCAA0C;AAC1C,kCAA0C;AAE1C,MAAM,iBAAiB,GAAG,CACxB,IAAY,EACZ,WAA+C,EAC/C,EAAE;IACF,MAAM,UAAU,GAAG,IAAA,sBAAe,EAAC,IAAI,CAAC,CAAC;IACzC,OAAO,QAAK,CAAC,WAAW,iCAAM,UAAU,GAAK,WAAW,EAAG,CAAC;AAC9D,CAAC,CAAA,CAAC;AAEK,MAAM,SAAS,GAAG,CACvB,GAAW,EACX,WAA+C,EAC/B,EAAE;IAClB,MAAM,SAAS,GAAG,MAAM,IAAA,iBAAW,EACjC,GAAG,EACH,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,WAAW,CAAC,EACxC,QAAQ,EACR,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAC1B,CAAC;IACF,IAAI,SAAS,EAAE;QACb,OAAO,SAAS,CAAC;KAClB;IAED,OAAO,iBAAiB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;AAC7C,CAAC,CAAA,CAAC;AAfW,QAAA,SAAS,aAepB"}
1
+ {"version":3,"file":"load.js","sourceRoot":"","sources":["../../../agents/load.ts"],"names":[],"mappings":";;;AAAA,wBAAgC;AAEhC,qCAA0C;AAC1C,kCAA0C;AAE1C,MAAM,iBAAiB,GAAG,KAAK,EAC7B,IAAY,EACZ,WAA+C,EAC/C,EAAE;IACF,MAAM,UAAU,GAAG,IAAA,sBAAe,EAAC,IAAI,CAAC,CAAC;IACzC,OAAO,QAAK,CAAC,WAAW,CAAC,EAAE,GAAG,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC,CAAC;AAC9D,CAAC,CAAC;AAEK,MAAM,SAAS,GAAG,KAAK,EAC5B,GAAW,EACX,WAA+C,EAC/B,EAAE;IAClB,MAAM,SAAS,GAAG,MAAM,IAAA,iBAAW,EACjC,GAAG,EACH,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,WAAW,CAAC,EACxC,QAAQ,EACR,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAC1B,CAAC;IACF,IAAI,SAAS,EAAE;QACb,OAAO,SAAS,CAAC;KAClB;IAED,OAAO,iBAAiB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;AAC7C,CAAC,CAAC;AAfW,QAAA,SAAS,aAepB"}
@@ -8,17 +8,34 @@ type SerializedFromLLMAndTools = {
8
8
  };
9
9
  export type SerializedZeroShotAgent = SerializedAgentT<"zero-shot-react-description", SerializedFromLLMAndTools, AgentInput>;
10
10
  type CreatePromptArgs = {
11
+ /** String to put after the list of tools. */
11
12
  suffix?: string;
13
+ /** String to put before the list of tools. */
12
14
  prefix?: string;
15
+ /** List of input variables the final prompt will expect. */
13
16
  inputVariables?: string[];
14
17
  };
15
18
  type ZeroShotAgentInput = AgentInput;
19
+ /**
20
+ * Agent for the MRKL chain.
21
+ * @augments Agent
22
+ * @augments StaticAgent
23
+ */
16
24
  export declare class ZeroShotAgent extends Agent {
17
25
  constructor(input: ZeroShotAgentInput);
18
26
  _agentType(): "zero-shot-react-description";
19
27
  observationPrefix(): string;
20
28
  llmPrefix(): string;
21
29
  static validateTools(tools: Tool[]): void;
30
+ /**
31
+ * Create prompt in the style of the zero shot agent.
32
+ *
33
+ * @param tools - List of tools the agent will have access to, used to format the prompt.
34
+ * @param args - Arguments to create the prompt with.
35
+ * @param args.suffix - String to put after the list of tools.
36
+ * @param args.prefix - String to put before the list of tools.
37
+ * @param args.inputVariables - List of input variables the final prompt will expect.
38
+ */
22
39
  static createPrompt(tools: Tool[], args?: CreatePromptArgs): PromptTemplate;
23
40
  static fromLLMAndTools(llm: BaseLLM, tools: Tool[], args?: CreatePromptArgs): ZeroShotAgent;
24
41
  extractToolAndInput(text: string): {