@langchain/classic 1.0.23 → 1.0.24-dev-1773698445534
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.
- package/dist/_virtual/_rolldown/runtime.cjs +12 -22
- package/dist/_virtual/_rolldown/runtime.js +12 -21
- package/dist/agents/agent.cjs +2 -3
- package/dist/agents/agent.cjs.map +1 -1
- package/dist/agents/agent.js +1 -2
- package/dist/agents/agent.js.map +1 -1
- package/dist/agents/chat/index.cjs +6 -7
- package/dist/agents/chat/index.cjs.map +1 -1
- package/dist/agents/chat/index.js +1 -2
- package/dist/agents/chat/index.js.map +1 -1
- package/dist/agents/chat/outputParser.cjs +5 -6
- package/dist/agents/chat/outputParser.cjs.map +1 -1
- package/dist/agents/chat/outputParser.js +2 -3
- package/dist/agents/chat/outputParser.js.map +1 -1
- package/dist/agents/chat/prompt.cjs +1 -2
- package/dist/agents/chat/prompt.cjs.map +1 -1
- package/dist/agents/chat/prompt.js +1 -1
- package/dist/agents/chat_convo/index.cjs +6 -7
- package/dist/agents/chat_convo/index.cjs.map +1 -1
- package/dist/agents/chat_convo/index.js +1 -2
- package/dist/agents/chat_convo/index.js.map +1 -1
- package/dist/agents/chat_convo/outputParser.cjs +5 -6
- package/dist/agents/chat_convo/outputParser.cjs.map +1 -1
- package/dist/agents/chat_convo/outputParser.js +1 -2
- package/dist/agents/chat_convo/outputParser.js.map +1 -1
- package/dist/agents/chat_convo/prompt.cjs +1 -2
- package/dist/agents/chat_convo/prompt.cjs.map +1 -1
- package/dist/agents/chat_convo/prompt.js +1 -1
- package/dist/agents/executor.cjs +4 -5
- package/dist/agents/executor.cjs.map +1 -1
- package/dist/agents/executor.js +1 -2
- package/dist/agents/executor.js.map +1 -1
- package/dist/agents/format_scratchpad/log.cjs +8 -10
- package/dist/agents/format_scratchpad/log.cjs.map +1 -1
- package/dist/agents/format_scratchpad/log.js +1 -2
- package/dist/agents/format_scratchpad/log.js.map +1 -1
- package/dist/agents/format_scratchpad/log_to_message.cjs +8 -9
- package/dist/agents/format_scratchpad/log_to_message.cjs.map +1 -1
- package/dist/agents/format_scratchpad/log_to_message.js +1 -2
- package/dist/agents/format_scratchpad/log_to_message.js.map +1 -1
- package/dist/agents/format_scratchpad/openai_functions.cjs +9 -10
- package/dist/agents/format_scratchpad/openai_functions.cjs.map +1 -1
- package/dist/agents/format_scratchpad/openai_functions.js +1 -2
- package/dist/agents/format_scratchpad/openai_functions.js.map +1 -1
- package/dist/agents/format_scratchpad/openai_tools.cjs +9 -10
- package/dist/agents/format_scratchpad/openai_tools.js +1 -2
- package/dist/agents/format_scratchpad/tool_calling.cjs +2 -3
- package/dist/agents/format_scratchpad/tool_calling.cjs.map +1 -1
- package/dist/agents/format_scratchpad/tool_calling.js +1 -2
- package/dist/agents/format_scratchpad/tool_calling.js.map +1 -1
- package/dist/agents/format_scratchpad/xml.cjs +8 -10
- package/dist/agents/format_scratchpad/xml.cjs.map +1 -1
- package/dist/agents/format_scratchpad/xml.js +1 -2
- package/dist/agents/format_scratchpad/xml.js.map +1 -1
- package/dist/agents/helpers.cjs +2 -3
- package/dist/agents/helpers.cjs.map +1 -1
- package/dist/agents/helpers.js +1 -2
- package/dist/agents/helpers.js.map +1 -1
- package/dist/agents/index.cjs +35 -36
- package/dist/agents/index.d.ts +0 -1
- package/dist/agents/index.js +1 -2
- package/dist/agents/initialize.cjs +9 -10
- package/dist/agents/initialize.cjs.map +1 -1
- package/dist/agents/initialize.js +1 -2
- package/dist/agents/initialize.js.map +1 -1
- package/dist/agents/load.cjs +12 -13
- package/dist/agents/load.cjs.map +1 -1
- package/dist/agents/load.js +1 -2
- package/dist/agents/load.js.map +1 -1
- package/dist/agents/mrkl/index.cjs +7 -8
- package/dist/agents/mrkl/index.cjs.map +1 -1
- package/dist/agents/mrkl/index.js +1 -2
- package/dist/agents/mrkl/index.js.map +1 -1
- package/dist/agents/mrkl/outputParser.cjs +5 -8
- package/dist/agents/mrkl/outputParser.cjs.map +1 -1
- package/dist/agents/mrkl/outputParser.d.cts +1 -1
- package/dist/agents/mrkl/outputParser.js +2 -5
- package/dist/agents/mrkl/outputParser.js.map +1 -1
- package/dist/agents/mrkl/prompt.cjs +1 -2
- package/dist/agents/mrkl/prompt.cjs.map +1 -1
- package/dist/agents/mrkl/prompt.js +1 -1
- package/dist/agents/openai/output_parser.cjs +10 -11
- package/dist/agents/openai/output_parser.js +1 -2
- package/dist/agents/openai_functions/index.cjs +8 -9
- package/dist/agents/openai_functions/index.cjs.map +1 -1
- package/dist/agents/openai_functions/index.d.ts +0 -1
- package/dist/agents/openai_functions/index.d.ts.map +1 -1
- package/dist/agents/openai_functions/index.js +1 -2
- package/dist/agents/openai_functions/index.js.map +1 -1
- package/dist/agents/openai_functions/output_parser.cjs +3 -4
- package/dist/agents/openai_functions/output_parser.cjs.map +1 -1
- package/dist/agents/openai_functions/output_parser.js +1 -2
- package/dist/agents/openai_functions/output_parser.js.map +1 -1
- package/dist/agents/openai_functions/prompt.cjs +1 -2
- package/dist/agents/openai_functions/prompt.cjs.map +1 -1
- package/dist/agents/openai_functions/prompt.js +1 -1
- package/dist/agents/openai_tools/index.cjs +6 -7
- package/dist/agents/openai_tools/index.cjs.map +1 -1
- package/dist/agents/openai_tools/index.js +1 -2
- package/dist/agents/openai_tools/index.js.map +1 -1
- package/dist/agents/openai_tools/output_parser.cjs +3 -4
- package/dist/agents/openai_tools/output_parser.cjs.map +1 -1
- package/dist/agents/openai_tools/output_parser.js +1 -2
- package/dist/agents/openai_tools/output_parser.js.map +1 -1
- package/dist/agents/react/index.cjs +6 -7
- package/dist/agents/react/index.cjs.map +1 -1
- package/dist/agents/react/index.js +1 -2
- package/dist/agents/react/index.js.map +1 -1
- package/dist/agents/react/output_parser.cjs +10 -11
- package/dist/agents/react/output_parser.cjs.map +1 -1
- package/dist/agents/react/output_parser.js +1 -2
- package/dist/agents/react/output_parser.js.map +1 -1
- package/dist/agents/react/prompt.cjs +1 -2
- package/dist/agents/react/prompt.cjs.map +1 -1
- package/dist/agents/react/prompt.js +1 -1
- package/dist/agents/structured_chat/index.cjs +8 -9
- package/dist/agents/structured_chat/index.cjs.map +1 -1
- package/dist/agents/structured_chat/index.js +1 -2
- package/dist/agents/structured_chat/index.js.map +1 -1
- package/dist/agents/structured_chat/outputParser.cjs +5 -6
- package/dist/agents/structured_chat/outputParser.cjs.map +1 -1
- package/dist/agents/structured_chat/outputParser.js +1 -2
- package/dist/agents/structured_chat/outputParser.js.map +1 -1
- package/dist/agents/structured_chat/prompt.cjs +1 -2
- package/dist/agents/structured_chat/prompt.cjs.map +1 -1
- package/dist/agents/structured_chat/prompt.js +1 -1
- package/dist/agents/tool_calling/index.cjs +5 -6
- package/dist/agents/tool_calling/index.cjs.map +1 -1
- package/dist/agents/tool_calling/index.js +1 -2
- package/dist/agents/tool_calling/index.js.map +1 -1
- package/dist/agents/tool_calling/output_parser.cjs +3 -4
- package/dist/agents/tool_calling/output_parser.cjs.map +1 -1
- package/dist/agents/tool_calling/output_parser.d.ts +0 -1
- package/dist/agents/tool_calling/output_parser.d.ts.map +1 -1
- package/dist/agents/tool_calling/output_parser.js +1 -2
- package/dist/agents/tool_calling/output_parser.js.map +1 -1
- package/dist/agents/toolkits/base.cjs +2 -2
- package/dist/agents/toolkits/base.js +1 -2
- package/dist/agents/toolkits/conversational_retrieval/openai_functions.cjs +4 -5
- package/dist/agents/toolkits/conversational_retrieval/openai_functions.cjs.map +1 -1
- package/dist/agents/toolkits/conversational_retrieval/openai_functions.js +1 -2
- package/dist/agents/toolkits/conversational_retrieval/openai_functions.js.map +1 -1
- package/dist/agents/toolkits/conversational_retrieval/token_buffer_memory.cjs +4 -5
- package/dist/agents/toolkits/conversational_retrieval/token_buffer_memory.cjs.map +1 -1
- package/dist/agents/toolkits/conversational_retrieval/token_buffer_memory.js +1 -2
- package/dist/agents/toolkits/conversational_retrieval/token_buffer_memory.js.map +1 -1
- package/dist/agents/toolkits/conversational_retrieval/tool.cjs +3 -4
- package/dist/agents/toolkits/conversational_retrieval/tool.cjs.map +1 -1
- package/dist/agents/toolkits/conversational_retrieval/tool.js +1 -2
- package/dist/agents/toolkits/conversational_retrieval/tool.js.map +1 -1
- package/dist/agents/toolkits/index.cjs +14 -15
- package/dist/agents/toolkits/index.js +1 -2
- package/dist/agents/toolkits/json/json.cjs +7 -8
- package/dist/agents/toolkits/json/json.cjs.map +1 -1
- package/dist/agents/toolkits/json/json.js +1 -2
- package/dist/agents/toolkits/json/json.js.map +1 -1
- package/dist/agents/toolkits/json/prompt.cjs +1 -2
- package/dist/agents/toolkits/json/prompt.cjs.map +1 -1
- package/dist/agents/toolkits/json/prompt.js +1 -1
- package/dist/agents/toolkits/openapi/openapi.cjs +8 -9
- package/dist/agents/toolkits/openapi/openapi.cjs.map +1 -1
- package/dist/agents/toolkits/openapi/openapi.js +1 -2
- package/dist/agents/toolkits/openapi/openapi.js.map +1 -1
- package/dist/agents/toolkits/openapi/prompt.cjs +1 -2
- package/dist/agents/toolkits/openapi/prompt.cjs.map +1 -1
- package/dist/agents/toolkits/openapi/prompt.js +1 -1
- package/dist/agents/toolkits/sql/index.cjs +10 -11
- package/dist/agents/toolkits/sql/index.js +1 -2
- package/dist/agents/toolkits/sql/prompt.cjs +1 -2
- package/dist/agents/toolkits/sql/prompt.cjs.map +1 -1
- package/dist/agents/toolkits/sql/prompt.js +1 -1
- package/dist/agents/toolkits/sql/sql.cjs +7 -8
- package/dist/agents/toolkits/sql/sql.cjs.map +1 -1
- package/dist/agents/toolkits/sql/sql.js +1 -2
- package/dist/agents/toolkits/sql/sql.js.map +1 -1
- package/dist/agents/toolkits/vectorstore/prompt.cjs +1 -2
- package/dist/agents/toolkits/vectorstore/prompt.cjs.map +1 -1
- package/dist/agents/toolkits/vectorstore/prompt.js +1 -1
- package/dist/agents/toolkits/vectorstore/vectorstore.cjs +8 -9
- package/dist/agents/toolkits/vectorstore/vectorstore.cjs.map +1 -1
- package/dist/agents/toolkits/vectorstore/vectorstore.js +1 -2
- package/dist/agents/toolkits/vectorstore/vectorstore.js.map +1 -1
- package/dist/agents/types.cjs +2 -3
- package/dist/agents/types.cjs.map +1 -1
- package/dist/agents/types.js +1 -2
- package/dist/agents/types.js.map +1 -1
- package/dist/agents/xml/index.cjs +8 -9
- package/dist/agents/xml/index.cjs.map +1 -1
- package/dist/agents/xml/index.js +1 -2
- package/dist/agents/xml/index.js.map +1 -1
- package/dist/agents/xml/output_parser.cjs +9 -10
- package/dist/agents/xml/output_parser.cjs.map +1 -1
- package/dist/agents/xml/output_parser.js +1 -2
- package/dist/agents/xml/output_parser.js.map +1 -1
- package/dist/agents/xml/prompt.cjs +1 -2
- package/dist/agents/xml/prompt.cjs.map +1 -1
- package/dist/agents/xml/prompt.js +1 -1
- package/dist/cache/file_system.cjs +8 -9
- package/dist/cache/file_system.cjs.map +1 -1
- package/dist/cache/file_system.js +1 -2
- package/dist/cache/file_system.js.map +1 -1
- package/dist/callbacks/handlers/console.cjs +13 -13
- package/dist/callbacks/handlers/console.d.cts +0 -1
- package/dist/callbacks/handlers/console.d.ts +0 -1
- package/dist/callbacks/handlers/console.js +2 -4
- package/dist/callbacks/handlers/run_collector.cjs +13 -13
- package/dist/callbacks/handlers/run_collector.d.cts +0 -1
- package/dist/callbacks/handlers/run_collector.d.ts +0 -1
- package/dist/callbacks/handlers/run_collector.js +2 -4
- package/dist/callbacks/handlers/tracer.cjs +13 -13
- package/dist/callbacks/handlers/tracer.d.cts +0 -1
- package/dist/callbacks/handlers/tracer.d.ts +0 -1
- package/dist/callbacks/handlers/tracer.js +2 -4
- package/dist/callbacks/handlers/tracer_langchain.cjs +13 -13
- package/dist/callbacks/handlers/tracer_langchain.d.cts +0 -1
- package/dist/callbacks/handlers/tracer_langchain.d.ts +0 -1
- package/dist/callbacks/handlers/tracer_langchain.js +2 -4
- package/dist/callbacks/index.cjs +49 -50
- package/dist/callbacks/index.js +1 -2
- package/dist/callbacks/promises.cjs +13 -13
- package/dist/callbacks/promises.d.cts +0 -1
- package/dist/callbacks/promises.d.ts +0 -1
- package/dist/callbacks/promises.js +2 -4
- package/dist/chains/analyze_documents_chain.cjs +3 -4
- package/dist/chains/analyze_documents_chain.cjs.map +1 -1
- package/dist/chains/analyze_documents_chain.js +1 -2
- package/dist/chains/analyze_documents_chain.js.map +1 -1
- package/dist/chains/api/api_chain.cjs +4 -5
- package/dist/chains/api/api_chain.cjs.map +1 -1
- package/dist/chains/api/api_chain.js +1 -2
- package/dist/chains/api/api_chain.js.map +1 -1
- package/dist/chains/api/prompts.cjs +2 -3
- package/dist/chains/api/prompts.cjs.map +1 -1
- package/dist/chains/api/prompts.js +10 -12
- package/dist/chains/api/prompts.js.map +1 -1
- package/dist/chains/base.cjs +2 -3
- package/dist/chains/base.cjs.map +1 -1
- package/dist/chains/base.js +1 -2
- package/dist/chains/base.js.map +1 -1
- package/dist/chains/chat_vector_db_chain.cjs +5 -6
- package/dist/chains/chat_vector_db_chain.cjs.map +1 -1
- package/dist/chains/chat_vector_db_chain.js +1 -2
- package/dist/chains/chat_vector_db_chain.js.map +1 -1
- package/dist/chains/combine_docs_chain.cjs +4 -5
- package/dist/chains/combine_docs_chain.cjs.map +1 -1
- package/dist/chains/combine_docs_chain.js +1 -2
- package/dist/chains/combine_docs_chain.js.map +1 -1
- package/dist/chains/combine_documents/base.cjs +2 -5
- package/dist/chains/combine_documents/base.cjs.map +1 -1
- package/dist/chains/combine_documents/base.js +2 -4
- package/dist/chains/combine_documents/base.js.map +1 -1
- package/dist/chains/combine_documents/index.cjs +9 -10
- package/dist/chains/combine_documents/index.js +1 -2
- package/dist/chains/combine_documents/reduce.cjs +8 -10
- package/dist/chains/combine_documents/reduce.cjs.map +1 -1
- package/dist/chains/combine_documents/reduce.js +1 -2
- package/dist/chains/combine_documents/reduce.js.map +1 -1
- package/dist/chains/combine_documents/stuff.cjs +5 -6
- package/dist/chains/combine_documents/stuff.cjs.map +1 -1
- package/dist/chains/combine_documents/stuff.js +4 -5
- package/dist/chains/combine_documents/stuff.js.map +1 -1
- package/dist/chains/constitutional_ai/constitutional_chain.cjs +5 -6
- package/dist/chains/constitutional_ai/constitutional_chain.cjs.map +1 -1
- package/dist/chains/constitutional_ai/constitutional_chain.js +1 -2
- package/dist/chains/constitutional_ai/constitutional_chain.js.map +1 -1
- package/dist/chains/constitutional_ai/constitutional_principle.cjs +1 -2
- package/dist/chains/constitutional_ai/constitutional_principle.cjs.map +1 -1
- package/dist/chains/constitutional_ai/constitutional_principle.js +1 -1
- package/dist/chains/constitutional_ai/constitutional_prompts.cjs +5 -8
- package/dist/chains/constitutional_ai/constitutional_prompts.cjs.map +1 -1
- package/dist/chains/constitutional_ai/constitutional_prompts.js +4 -7
- package/dist/chains/constitutional_ai/constitutional_prompts.js.map +1 -1
- package/dist/chains/conversation.cjs +4 -5
- package/dist/chains/conversation.cjs.map +1 -1
- package/dist/chains/conversation.js +1 -2
- package/dist/chains/conversation.js.map +1 -1
- package/dist/chains/conversational_retrieval_chain.cjs +5 -6
- package/dist/chains/conversational_retrieval_chain.cjs.map +1 -1
- package/dist/chains/conversational_retrieval_chain.js +1 -2
- package/dist/chains/conversational_retrieval_chain.js.map +1 -1
- package/dist/chains/graph_qa/cypher.cjs +12 -13
- package/dist/chains/graph_qa/cypher.cjs.map +1 -1
- package/dist/chains/graph_qa/cypher.js +1 -2
- package/dist/chains/graph_qa/cypher.js.map +1 -1
- package/dist/chains/graph_qa/prompts.cjs +8 -12
- package/dist/chains/graph_qa/prompts.cjs.map +1 -1
- package/dist/chains/graph_qa/prompts.js +7 -11
- package/dist/chains/graph_qa/prompts.js.map +1 -1
- package/dist/chains/history_aware_retriever.cjs +8 -9
- package/dist/chains/history_aware_retriever.cjs.map +1 -1
- package/dist/chains/history_aware_retriever.js +1 -2
- package/dist/chains/history_aware_retriever.js.map +1 -1
- package/dist/chains/index.cjs +32 -33
- package/dist/chains/index.js +1 -2
- package/dist/chains/llm_chain.cjs +4 -5
- package/dist/chains/llm_chain.cjs.map +1 -1
- package/dist/chains/llm_chain.js +1 -2
- package/dist/chains/llm_chain.js.map +1 -1
- package/dist/chains/load.cjs +12 -13
- package/dist/chains/load.cjs.map +1 -1
- package/dist/chains/load.js +1 -2
- package/dist/chains/load.js.map +1 -1
- package/dist/chains/openai_functions/base.cjs +3 -4
- package/dist/chains/openai_functions/base.cjs.map +1 -1
- package/dist/chains/openai_functions/base.js +1 -2
- package/dist/chains/openai_functions/base.js.map +1 -1
- package/dist/chains/openai_functions/extraction.cjs +4 -5
- package/dist/chains/openai_functions/extraction.cjs.map +1 -1
- package/dist/chains/openai_functions/extraction.js +1 -2
- package/dist/chains/openai_functions/extraction.js.map +1 -1
- package/dist/chains/openai_functions/index.cjs +12 -13
- package/dist/chains/openai_functions/index.js +1 -2
- package/dist/chains/openai_functions/openapi.cjs +7 -8
- package/dist/chains/openai_functions/openapi.cjs.map +1 -1
- package/dist/chains/openai_functions/openapi.js +1 -2
- package/dist/chains/openai_functions/openapi.js.map +1 -1
- package/dist/chains/openai_functions/tagging.cjs +4 -5
- package/dist/chains/openai_functions/tagging.cjs.map +1 -1
- package/dist/chains/openai_functions/tagging.js +1 -2
- package/dist/chains/openai_functions/tagging.js.map +1 -1
- package/dist/chains/openai_moderation.cjs +3 -4
- package/dist/chains/openai_moderation.cjs.map +1 -1
- package/dist/chains/openai_moderation.js +1 -2
- package/dist/chains/openai_moderation.js.map +1 -1
- package/dist/chains/query_constructor/index.cjs +11 -12
- package/dist/chains/query_constructor/index.cjs.map +1 -1
- package/dist/chains/query_constructor/index.js +1 -2
- package/dist/chains/query_constructor/index.js.map +1 -1
- package/dist/chains/query_constructor/ir.cjs +14 -14
- package/dist/chains/query_constructor/ir.js +2 -4
- package/dist/chains/query_constructor/parser.cjs +3 -4
- package/dist/chains/query_constructor/parser.cjs.map +1 -1
- package/dist/chains/query_constructor/parser.js +1 -2
- package/dist/chains/query_constructor/parser.js.map +1 -1
- package/dist/chains/query_constructor/prompt.cjs +23 -27
- package/dist/chains/query_constructor/prompt.cjs.map +1 -1
- package/dist/chains/query_constructor/prompt.js +22 -26
- package/dist/chains/query_constructor/prompt.js.map +1 -1
- package/dist/chains/question_answering/load.cjs +6 -7
- package/dist/chains/question_answering/load.cjs.map +1 -1
- package/dist/chains/question_answering/load.js +1 -2
- package/dist/chains/question_answering/load.js.map +1 -1
- package/dist/chains/question_answering/map_reduce_prompts.cjs +6 -10
- package/dist/chains/question_answering/map_reduce_prompts.cjs.map +1 -1
- package/dist/chains/question_answering/map_reduce_prompts.js +7 -13
- package/dist/chains/question_answering/map_reduce_prompts.js.map +1 -1
- package/dist/chains/question_answering/refine_prompts.cjs +14 -18
- package/dist/chains/question_answering/refine_prompts.cjs.map +1 -1
- package/dist/chains/question_answering/refine_prompts.js +15 -21
- package/dist/chains/question_answering/refine_prompts.js.map +1 -1
- package/dist/chains/question_answering/stuff_prompts.cjs +2 -3
- package/dist/chains/question_answering/stuff_prompts.cjs.map +1 -1
- package/dist/chains/question_answering/stuff_prompts.js +2 -4
- package/dist/chains/question_answering/stuff_prompts.js.map +1 -1
- package/dist/chains/retrieval.cjs +8 -9
- package/dist/chains/retrieval.cjs.map +1 -1
- package/dist/chains/retrieval.js +1 -2
- package/dist/chains/retrieval.js.map +1 -1
- package/dist/chains/retrieval_qa.cjs +3 -4
- package/dist/chains/retrieval_qa.cjs.map +1 -1
- package/dist/chains/retrieval_qa.js +1 -2
- package/dist/chains/retrieval_qa.js.map +1 -1
- package/dist/chains/router/llm_router.cjs +3 -4
- package/dist/chains/router/llm_router.cjs.map +1 -1
- package/dist/chains/router/llm_router.js +1 -2
- package/dist/chains/router/llm_router.js.map +1 -1
- package/dist/chains/router/multi_prompt.cjs +9 -10
- package/dist/chains/router/multi_prompt.cjs.map +1 -1
- package/dist/chains/router/multi_prompt.js +1 -2
- package/dist/chains/router/multi_prompt.js.map +1 -1
- package/dist/chains/router/multi_prompt_prompt.cjs +1 -2
- package/dist/chains/router/multi_prompt_prompt.cjs.map +1 -1
- package/dist/chains/router/multi_prompt_prompt.js +1 -1
- package/dist/chains/router/multi_retrieval_prompt.cjs +1 -2
- package/dist/chains/router/multi_retrieval_prompt.cjs.map +1 -1
- package/dist/chains/router/multi_retrieval_prompt.js +1 -1
- package/dist/chains/router/multi_retrieval_qa.cjs +9 -10
- package/dist/chains/router/multi_retrieval_qa.cjs.map +1 -1
- package/dist/chains/router/multi_retrieval_qa.js +1 -2
- package/dist/chains/router/multi_retrieval_qa.js.map +1 -1
- package/dist/chains/router/multi_route.cjs +2 -3
- package/dist/chains/router/multi_route.cjs.map +1 -1
- package/dist/chains/router/multi_route.js +1 -2
- package/dist/chains/router/multi_route.js.map +1 -1
- package/dist/chains/router/utils.cjs +1 -2
- package/dist/chains/router/utils.cjs.map +1 -1
- package/dist/chains/router/utils.js +1 -1
- package/dist/chains/sequential_chain.cjs +3 -4
- package/dist/chains/sequential_chain.cjs.map +1 -1
- package/dist/chains/sequential_chain.js +1 -2
- package/dist/chains/sequential_chain.js.map +1 -1
- package/dist/chains/sql_db/index.cjs +10 -11
- package/dist/chains/sql_db/index.js +1 -2
- package/dist/chains/sql_db/sql_db_chain.cjs +6 -7
- package/dist/chains/sql_db/sql_db_chain.cjs.map +1 -1
- package/dist/chains/sql_db/sql_db_chain.js +1 -2
- package/dist/chains/sql_db/sql_db_chain.js.map +1 -1
- package/dist/chains/sql_db/sql_db_prompt.cjs +2 -3
- package/dist/chains/sql_db/sql_db_prompt.cjs.map +1 -1
- package/dist/chains/sql_db/sql_db_prompt.js +1 -2
- package/dist/chains/sql_db/sql_db_prompt.js.map +1 -1
- package/dist/chains/summarization/load.cjs +5 -6
- package/dist/chains/summarization/load.cjs.map +1 -1
- package/dist/chains/summarization/load.js +1 -2
- package/dist/chains/summarization/load.js.map +1 -1
- package/dist/chains/summarization/refine_prompts.cjs +5 -9
- package/dist/chains/summarization/refine_prompts.cjs.map +1 -1
- package/dist/chains/summarization/refine_prompts.js +4 -7
- package/dist/chains/summarization/refine_prompts.js.map +1 -1
- package/dist/chains/summarization/stuff_prompts.cjs +5 -9
- package/dist/chains/summarization/stuff_prompts.cjs.map +1 -1
- package/dist/chains/summarization/stuff_prompts.js +4 -7
- package/dist/chains/summarization/stuff_prompts.js.map +1 -1
- package/dist/chains/transform.cjs +2 -3
- package/dist/chains/transform.cjs.map +1 -1
- package/dist/chains/transform.js +1 -2
- package/dist/chains/transform.js.map +1 -1
- package/dist/chains/vector_db_qa.cjs +3 -4
- package/dist/chains/vector_db_qa.cjs.map +1 -1
- package/dist/chains/vector_db_qa.js +1 -2
- package/dist/chains/vector_db_qa.js.map +1 -1
- package/dist/chat_models/universal.cjs +8 -9
- package/dist/chat_models/universal.cjs.map +1 -1
- package/dist/chat_models/universal.js +1 -2
- package/dist/chat_models/universal.js.map +1 -1
- package/dist/document.cjs +13 -14
- package/dist/document.js +1 -2
- package/dist/document_loaders/base.cjs +14 -14
- package/dist/document_loaders/base.js +2 -4
- package/dist/document_loaders/fs/buffer.cjs +8 -9
- package/dist/document_loaders/fs/buffer.cjs.map +1 -1
- package/dist/document_loaders/fs/buffer.js +1 -2
- package/dist/document_loaders/fs/buffer.js.map +1 -1
- package/dist/document_loaders/fs/directory.cjs +8 -9
- package/dist/document_loaders/fs/directory.cjs.map +1 -1
- package/dist/document_loaders/fs/directory.js +1 -2
- package/dist/document_loaders/fs/directory.js.map +1 -1
- package/dist/document_loaders/fs/json.cjs +9 -10
- package/dist/document_loaders/fs/json.cjs.map +1 -1
- package/dist/document_loaders/fs/json.js +1 -2
- package/dist/document_loaders/fs/json.js.map +1 -1
- package/dist/document_loaders/fs/multi_file.cjs +9 -10
- package/dist/document_loaders/fs/multi_file.cjs.map +1 -1
- package/dist/document_loaders/fs/multi_file.js +1 -2
- package/dist/document_loaders/fs/multi_file.js.map +1 -1
- package/dist/document_loaders/fs/text.cjs +8 -9
- package/dist/document_loaders/fs/text.cjs.map +1 -1
- package/dist/document_loaders/fs/text.js +1 -2
- package/dist/document_loaders/fs/text.js.map +1 -1
- package/dist/document_transformers/openai_functions.cjs +10 -11
- package/dist/document_transformers/openai_functions.cjs.map +1 -1
- package/dist/document_transformers/openai_functions.d.ts +0 -1
- package/dist/document_transformers/openai_functions.d.ts.map +1 -1
- package/dist/document_transformers/openai_functions.js +1 -2
- package/dist/document_transformers/openai_functions.js.map +1 -1
- package/dist/embeddings/cache_backed.cjs +9 -10
- package/dist/embeddings/cache_backed.cjs.map +1 -1
- package/dist/embeddings/cache_backed.js +1 -2
- package/dist/embeddings/cache_backed.js.map +1 -1
- package/dist/embeddings/fake.cjs +14 -14
- package/dist/embeddings/fake.js +2 -4
- package/dist/evaluation/agents/index.cjs +1 -1
- package/dist/evaluation/agents/index.js +2 -3
- package/dist/evaluation/agents/prompt.cjs +8 -10
- package/dist/evaluation/agents/prompt.cjs.map +1 -1
- package/dist/evaluation/agents/prompt.js +7 -9
- package/dist/evaluation/agents/prompt.js.map +1 -1
- package/dist/evaluation/agents/trajectory.cjs +4 -5
- package/dist/evaluation/agents/trajectory.cjs.map +1 -1
- package/dist/evaluation/agents/trajectory.js +1 -2
- package/dist/evaluation/agents/trajectory.js.map +1 -1
- package/dist/evaluation/base.cjs +4 -5
- package/dist/evaluation/base.cjs.map +1 -1
- package/dist/evaluation/base.d.ts +0 -1
- package/dist/evaluation/base.d.ts.map +1 -1
- package/dist/evaluation/base.js +1 -2
- package/dist/evaluation/base.js.map +1 -1
- package/dist/evaluation/comparison/index.cjs +1 -1
- package/dist/evaluation/comparison/index.js +2 -3
- package/dist/evaluation/comparison/pairwise.cjs +6 -7
- package/dist/evaluation/comparison/pairwise.cjs.map +1 -1
- package/dist/evaluation/comparison/pairwise.js +1 -2
- package/dist/evaluation/comparison/pairwise.js.map +1 -1
- package/dist/evaluation/comparison/prompt.cjs +16 -27
- package/dist/evaluation/comparison/prompt.cjs.map +1 -1
- package/dist/evaluation/comparison/prompt.js +15 -26
- package/dist/evaluation/comparison/prompt.js.map +1 -1
- package/dist/evaluation/criteria/criteria.cjs +5 -6
- package/dist/evaluation/criteria/criteria.cjs.map +1 -1
- package/dist/evaluation/criteria/criteria.js +1 -2
- package/dist/evaluation/criteria/criteria.js.map +1 -1
- package/dist/evaluation/criteria/index.cjs +1 -1
- package/dist/evaluation/criteria/index.js +2 -3
- package/dist/evaluation/criteria/prompt.cjs +16 -20
- package/dist/evaluation/criteria/prompt.cjs.map +1 -1
- package/dist/evaluation/criteria/prompt.js +15 -19
- package/dist/evaluation/criteria/prompt.js.map +1 -1
- package/dist/evaluation/embedding_distance/base.cjs +5 -6
- package/dist/evaluation/embedding_distance/base.cjs.map +1 -1
- package/dist/evaluation/embedding_distance/base.js +1 -2
- package/dist/evaluation/embedding_distance/base.js.map +1 -1
- package/dist/evaluation/embedding_distance/index.cjs +1 -1
- package/dist/evaluation/embedding_distance/index.js +2 -3
- package/dist/evaluation/index.cjs +19 -20
- package/dist/evaluation/index.d.ts +0 -5
- package/dist/evaluation/index.js +1 -2
- package/dist/evaluation/loader.cjs +10 -11
- package/dist/evaluation/loader.cjs.map +1 -1
- package/dist/evaluation/loader.d.ts +0 -2
- package/dist/evaluation/loader.d.ts.map +1 -1
- package/dist/evaluation/loader.js +1 -2
- package/dist/evaluation/loader.js.map +1 -1
- package/dist/evaluation/qa/eval_chain.cjs +3 -4
- package/dist/evaluation/qa/eval_chain.cjs.map +1 -1
- package/dist/evaluation/qa/eval_chain.js +1 -2
- package/dist/evaluation/qa/eval_chain.js.map +1 -1
- package/dist/evaluation/qa/index.cjs +1 -1
- package/dist/evaluation/qa/index.js +2 -3
- package/dist/evaluation/qa/prompt.cjs +10 -14
- package/dist/evaluation/qa/prompt.cjs.map +1 -1
- package/dist/evaluation/qa/prompt.js +9 -12
- package/dist/evaluation/qa/prompt.js.map +1 -1
- package/dist/experimental/autogpt/agent.cjs +8 -9
- package/dist/experimental/autogpt/agent.cjs.map +1 -1
- package/dist/experimental/autogpt/agent.js +3 -4
- package/dist/experimental/autogpt/agent.js.map +1 -1
- package/dist/experimental/autogpt/index.cjs +11 -12
- package/dist/experimental/autogpt/index.js +1 -2
- package/dist/experimental/autogpt/output_parser.cjs +2 -3
- package/dist/experimental/autogpt/output_parser.cjs.map +1 -1
- package/dist/experimental/autogpt/output_parser.js +1 -2
- package/dist/experimental/autogpt/output_parser.js.map +1 -1
- package/dist/experimental/autogpt/prompt.cjs +3 -4
- package/dist/experimental/autogpt/prompt.cjs.map +1 -1
- package/dist/experimental/autogpt/prompt.js +1 -2
- package/dist/experimental/autogpt/prompt.js.map +1 -1
- package/dist/experimental/autogpt/prompt_generator.cjs +3 -4
- package/dist/experimental/autogpt/prompt_generator.cjs.map +1 -1
- package/dist/experimental/autogpt/prompt_generator.js +1 -2
- package/dist/experimental/autogpt/prompt_generator.js.map +1 -1
- package/dist/experimental/autogpt/schema.cjs +1 -2
- package/dist/experimental/autogpt/schema.cjs.map +1 -1
- package/dist/experimental/autogpt/schema.js +1 -1
- package/dist/experimental/babyagi/agent.cjs +6 -7
- package/dist/experimental/babyagi/agent.cjs.map +1 -1
- package/dist/experimental/babyagi/agent.js +1 -2
- package/dist/experimental/babyagi/agent.js.map +1 -1
- package/dist/experimental/babyagi/index.cjs +12 -13
- package/dist/experimental/babyagi/index.js +1 -2
- package/dist/experimental/babyagi/task_creation.cjs +3 -4
- package/dist/experimental/babyagi/task_creation.cjs.map +1 -1
- package/dist/experimental/babyagi/task_creation.js +1 -2
- package/dist/experimental/babyagi/task_creation.js.map +1 -1
- package/dist/experimental/babyagi/task_execution.cjs +3 -4
- package/dist/experimental/babyagi/task_execution.cjs.map +1 -1
- package/dist/experimental/babyagi/task_execution.js +1 -2
- package/dist/experimental/babyagi/task_execution.js.map +1 -1
- package/dist/experimental/babyagi/task_prioritization.cjs +3 -4
- package/dist/experimental/babyagi/task_prioritization.cjs.map +1 -1
- package/dist/experimental/babyagi/task_prioritization.js +1 -2
- package/dist/experimental/babyagi/task_prioritization.js.map +1 -1
- package/dist/experimental/chains/violation_of_expectations/index.cjs +9 -10
- package/dist/experimental/chains/violation_of_expectations/index.js +1 -2
- package/dist/experimental/chains/violation_of_expectations/types.cjs +1 -2
- package/dist/experimental/chains/violation_of_expectations/types.cjs.map +1 -1
- package/dist/experimental/chains/violation_of_expectations/types.js +1 -1
- package/dist/experimental/chains/violation_of_expectations/violation_of_expectations_chain.cjs +6 -7
- package/dist/experimental/chains/violation_of_expectations/violation_of_expectations_chain.cjs.map +1 -1
- package/dist/experimental/chains/violation_of_expectations/violation_of_expectations_chain.js +1 -2
- package/dist/experimental/chains/violation_of_expectations/violation_of_expectations_chain.js.map +1 -1
- package/dist/experimental/chains/violation_of_expectations/violation_of_expectations_prompt.cjs +2 -3
- package/dist/experimental/chains/violation_of_expectations/violation_of_expectations_prompt.cjs.map +1 -1
- package/dist/experimental/chains/violation_of_expectations/violation_of_expectations_prompt.js +1 -2
- package/dist/experimental/chains/violation_of_expectations/violation_of_expectations_prompt.js.map +1 -1
- package/dist/experimental/generative_agents/generative_agent.cjs +4 -5
- package/dist/experimental/generative_agents/generative_agent.cjs.map +1 -1
- package/dist/experimental/generative_agents/generative_agent.js +1 -2
- package/dist/experimental/generative_agents/generative_agent.js.map +1 -1
- package/dist/experimental/generative_agents/generative_agent_memory.cjs +4 -5
- package/dist/experimental/generative_agents/generative_agent_memory.cjs.map +1 -1
- package/dist/experimental/generative_agents/generative_agent_memory.js +1 -2
- package/dist/experimental/generative_agents/generative_agent_memory.js.map +1 -1
- package/dist/experimental/generative_agents/index.cjs +10 -11
- package/dist/experimental/generative_agents/index.js +1 -2
- package/dist/experimental/masking/index.cjs +11 -12
- package/dist/experimental/masking/index.js +1 -2
- package/dist/experimental/masking/parser.cjs +1 -2
- package/dist/experimental/masking/parser.cjs.map +1 -1
- package/dist/experimental/masking/parser.js +1 -1
- package/dist/experimental/masking/parser.js.map +1 -1
- package/dist/experimental/masking/regex_masking_transformer.cjs +2 -3
- package/dist/experimental/masking/regex_masking_transformer.cjs.map +1 -1
- package/dist/experimental/masking/regex_masking_transformer.js +1 -2
- package/dist/experimental/masking/regex_masking_transformer.js.map +1 -1
- package/dist/experimental/masking/transformer.cjs +1 -2
- package/dist/experimental/masking/transformer.cjs.map +1 -1
- package/dist/experimental/masking/transformer.js +1 -1
- package/dist/experimental/openai_assistant/index.cjs +9 -10
- package/dist/experimental/openai_assistant/index.cjs.map +1 -1
- package/dist/experimental/openai_assistant/index.js +1 -2
- package/dist/experimental/openai_assistant/index.js.map +1 -1
- package/dist/experimental/openai_files/index.cjs +8 -9
- package/dist/experimental/openai_files/index.cjs.map +1 -1
- package/dist/experimental/openai_files/index.js +1 -2
- package/dist/experimental/openai_files/index.js.map +1 -1
- package/dist/experimental/plan_and_execute/agent_executor.cjs +10 -11
- package/dist/experimental/plan_and_execute/agent_executor.cjs.map +1 -1
- package/dist/experimental/plan_and_execute/agent_executor.js +1 -2
- package/dist/experimental/plan_and_execute/agent_executor.js.map +1 -1
- package/dist/experimental/plan_and_execute/base.cjs +1 -2
- package/dist/experimental/plan_and_execute/base.cjs.map +1 -1
- package/dist/experimental/plan_and_execute/base.js +1 -1
- package/dist/experimental/plan_and_execute/base.js.map +1 -1
- package/dist/experimental/plan_and_execute/index.cjs +11 -12
- package/dist/experimental/plan_and_execute/index.js +1 -2
- package/dist/experimental/plan_and_execute/outputParser.cjs +3 -4
- package/dist/experimental/plan_and_execute/outputParser.cjs.map +1 -1
- package/dist/experimental/plan_and_execute/outputParser.js +1 -2
- package/dist/experimental/plan_and_execute/outputParser.js.map +1 -1
- package/dist/experimental/plan_and_execute/prompt.cjs +2 -3
- package/dist/experimental/plan_and_execute/prompt.cjs.map +1 -1
- package/dist/experimental/plan_and_execute/prompt.js +1 -2
- package/dist/experimental/plan_and_execute/prompt.js.map +1 -1
- package/dist/experimental/prompts/custom_format.cjs +8 -9
- package/dist/experimental/prompts/custom_format.cjs.map +1 -1
- package/dist/experimental/prompts/custom_format.js +1 -2
- package/dist/experimental/prompts/custom_format.js.map +1 -1
- package/dist/experimental/prompts/handlebars.cjs +9 -10
- package/dist/experimental/prompts/handlebars.cjs.map +1 -1
- package/dist/experimental/prompts/handlebars.js +1 -2
- package/dist/experimental/prompts/handlebars.js.map +1 -1
- package/dist/hub/base.cjs +1 -2
- package/dist/hub/base.cjs.map +1 -1
- package/dist/hub/base.js +1 -1
- package/dist/hub/base.js.map +1 -1
- package/dist/hub/index.cjs +4 -5
- package/dist/hub/index.cjs.map +1 -1
- package/dist/hub/index.js +1 -2
- package/dist/hub/index.js.map +1 -1
- package/dist/hub/node.cjs +5 -6
- package/dist/hub/node.cjs.map +1 -1
- package/dist/hub/node.js +1 -2
- package/dist/hub/node.js.map +1 -1
- package/dist/index.cjs +8 -10
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- package/dist/indexes/index.cjs +8 -9
- package/dist/indexes/index.js +1 -2
- package/dist/load/import_constants.cjs +1 -2
- package/dist/load/import_constants.cjs.map +1 -1
- package/dist/load/import_constants.js +1 -1
- package/dist/load/import_map.cjs +98 -99
- package/dist/load/import_map.cjs.map +1 -1
- package/dist/load/import_map.js +1 -2
- package/dist/load/import_map.js.map +1 -1
- package/dist/load/index.cjs +5 -6
- package/dist/load/index.cjs.map +1 -1
- package/dist/load/index.js +1 -2
- package/dist/load/index.js.map +1 -1
- package/dist/load/serializable.cjs +14 -14
- package/dist/load/serializable.js +2 -4
- package/dist/memory/buffer_memory.cjs +3 -4
- package/dist/memory/buffer_memory.cjs.map +1 -1
- package/dist/memory/buffer_memory.js +1 -2
- package/dist/memory/buffer_memory.js.map +1 -1
- package/dist/memory/buffer_token_memory.cjs +3 -4
- package/dist/memory/buffer_token_memory.cjs.map +1 -1
- package/dist/memory/buffer_token_memory.js +1 -2
- package/dist/memory/buffer_token_memory.js.map +1 -1
- package/dist/memory/buffer_window_memory.cjs +3 -4
- package/dist/memory/buffer_window_memory.cjs.map +1 -1
- package/dist/memory/buffer_window_memory.js +1 -2
- package/dist/memory/buffer_window_memory.js.map +1 -1
- package/dist/memory/chat_memory.cjs +8 -9
- package/dist/memory/chat_memory.cjs.map +1 -1
- package/dist/memory/chat_memory.js +1 -2
- package/dist/memory/chat_memory.js.map +1 -1
- package/dist/memory/combined_memory.cjs +2 -3
- package/dist/memory/combined_memory.cjs.map +1 -1
- package/dist/memory/combined_memory.js +1 -2
- package/dist/memory/combined_memory.js.map +1 -1
- package/dist/memory/entity_memory.cjs +6 -7
- package/dist/memory/entity_memory.cjs.map +1 -1
- package/dist/memory/entity_memory.js +1 -2
- package/dist/memory/entity_memory.js.map +1 -1
- package/dist/memory/index.cjs +43 -44
- package/dist/memory/index.js +1 -2
- package/dist/memory/prompt.cjs +27 -33
- package/dist/memory/prompt.cjs.map +1 -1
- package/dist/memory/prompt.js +26 -32
- package/dist/memory/prompt.js.map +1 -1
- package/dist/memory/stores/entity/base.cjs +2 -3
- package/dist/memory/stores/entity/base.cjs.map +1 -1
- package/dist/memory/stores/entity/base.js +1 -2
- package/dist/memory/stores/entity/base.js.map +1 -1
- package/dist/memory/stores/entity/in_memory.cjs +2 -3
- package/dist/memory/stores/entity/in_memory.cjs.map +1 -1
- package/dist/memory/stores/entity/in_memory.js +1 -2
- package/dist/memory/stores/entity/in_memory.js.map +1 -1
- package/dist/memory/summary.cjs +5 -6
- package/dist/memory/summary.cjs.map +1 -1
- package/dist/memory/summary.js +1 -2
- package/dist/memory/summary.js.map +1 -1
- package/dist/memory/summary_buffer.cjs +3 -4
- package/dist/memory/summary_buffer.cjs.map +1 -1
- package/dist/memory/summary_buffer.js +1 -2
- package/dist/memory/summary_buffer.js.map +1 -1
- package/dist/memory/vector_store.cjs +3 -4
- package/dist/memory/vector_store.cjs.map +1 -1
- package/dist/memory/vector_store.js +1 -2
- package/dist/memory/vector_store.js.map +1 -1
- package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/evaluation/_runner.d.cts +1 -4
- package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/evaluation/_runner.d.ts +1 -4
- package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/evaluation/evaluate_comparative.d.cts +1 -2
- package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/evaluation/evaluate_comparative.d.ts +1 -2
- package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/evaluation/index.d.cts +1 -4
- package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/evaluation/index.d.ts +1 -4
- package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/evaluation/string_evaluator.d.cts +1 -1
- package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/evaluation/string_evaluator.d.ts +1 -1
- package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/singletons/traceable.d.cts +0 -1
- package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/singletons/traceable.d.cts.map +1 -1
- package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/singletons/traceable.d.ts +0 -1
- package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/singletons/traceable.d.ts.map +1 -1
- package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/utils/async_caller.d.cts +0 -2
- package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/utils/async_caller.d.cts.map +1 -1
- package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/utils/async_caller.d.ts +0 -2
- package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/utils/async_caller.d.ts.map +1 -1
- package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/utils/p-queue.d.cts +1 -1
- package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/utils/p-queue.d.ts +1 -1
- package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/evaluation.d.cts +1 -2
- package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/evaluation.d.ts +1 -2
- package/dist/node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/index.d.cts +1 -1
- package/dist/node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/index.d.ts +1 -1
- package/dist/output_parsers/combining.cjs +2 -3
- package/dist/output_parsers/combining.cjs.map +1 -1
- package/dist/output_parsers/combining.js +1 -2
- package/dist/output_parsers/combining.js.map +1 -1
- package/dist/output_parsers/datetime.cjs +2 -3
- package/dist/output_parsers/datetime.cjs.map +1 -1
- package/dist/output_parsers/datetime.js +1 -2
- package/dist/output_parsers/datetime.js.map +1 -1
- package/dist/output_parsers/expression.cjs +10 -11
- package/dist/output_parsers/expression.cjs.map +1 -1
- package/dist/output_parsers/expression.js +1 -2
- package/dist/output_parsers/expression.js.map +1 -1
- package/dist/output_parsers/expression_type_handlers/array_literal_expression_handler.cjs +2 -3
- package/dist/output_parsers/expression_type_handlers/array_literal_expression_handler.cjs.map +1 -1
- package/dist/output_parsers/expression_type_handlers/array_literal_expression_handler.js +1 -2
- package/dist/output_parsers/expression_type_handlers/array_literal_expression_handler.js.map +1 -1
- package/dist/output_parsers/expression_type_handlers/base.cjs +2 -3
- package/dist/output_parsers/expression_type_handlers/base.cjs.map +1 -1
- package/dist/output_parsers/expression_type_handlers/base.js +1 -2
- package/dist/output_parsers/expression_type_handlers/base.js.map +1 -1
- package/dist/output_parsers/expression_type_handlers/boolean_literal_handler.cjs +2 -3
- package/dist/output_parsers/expression_type_handlers/boolean_literal_handler.cjs.map +1 -1
- package/dist/output_parsers/expression_type_handlers/boolean_literal_handler.js +1 -2
- package/dist/output_parsers/expression_type_handlers/boolean_literal_handler.js.map +1 -1
- package/dist/output_parsers/expression_type_handlers/call_expression_handler.cjs +2 -3
- package/dist/output_parsers/expression_type_handlers/call_expression_handler.cjs.map +1 -1
- package/dist/output_parsers/expression_type_handlers/call_expression_handler.js +1 -2
- package/dist/output_parsers/expression_type_handlers/call_expression_handler.js.map +1 -1
- package/dist/output_parsers/expression_type_handlers/factory.cjs +11 -12
- package/dist/output_parsers/expression_type_handlers/factory.cjs.map +1 -1
- package/dist/output_parsers/expression_type_handlers/factory.js +1 -2
- package/dist/output_parsers/expression_type_handlers/factory.js.map +1 -1
- package/dist/output_parsers/expression_type_handlers/grammar/parser_grammar.cjs +1 -2
- package/dist/output_parsers/expression_type_handlers/grammar/parser_grammar.cjs.map +1 -1
- package/dist/output_parsers/expression_type_handlers/grammar/parser_grammar.js +1 -1
- package/dist/output_parsers/expression_type_handlers/identifier_handler.cjs +2 -3
- package/dist/output_parsers/expression_type_handlers/identifier_handler.cjs.map +1 -1
- package/dist/output_parsers/expression_type_handlers/identifier_handler.js +1 -2
- package/dist/output_parsers/expression_type_handlers/identifier_handler.js.map +1 -1
- package/dist/output_parsers/expression_type_handlers/member_expression_handler.cjs +2 -3
- package/dist/output_parsers/expression_type_handlers/member_expression_handler.cjs.map +1 -1
- package/dist/output_parsers/expression_type_handlers/member_expression_handler.js +1 -2
- package/dist/output_parsers/expression_type_handlers/member_expression_handler.js.map +1 -1
- package/dist/output_parsers/expression_type_handlers/numeric_literal_handler.cjs +2 -3
- package/dist/output_parsers/expression_type_handlers/numeric_literal_handler.cjs.map +1 -1
- package/dist/output_parsers/expression_type_handlers/numeric_literal_handler.js +1 -2
- package/dist/output_parsers/expression_type_handlers/numeric_literal_handler.js.map +1 -1
- package/dist/output_parsers/expression_type_handlers/object_literal_expression_handler.cjs +3 -4
- package/dist/output_parsers/expression_type_handlers/object_literal_expression_handler.cjs.map +1 -1
- package/dist/output_parsers/expression_type_handlers/object_literal_expression_handler.js +1 -2
- package/dist/output_parsers/expression_type_handlers/object_literal_expression_handler.js.map +1 -1
- package/dist/output_parsers/expression_type_handlers/property_assignment_handler.cjs +2 -3
- package/dist/output_parsers/expression_type_handlers/property_assignment_handler.cjs.map +1 -1
- package/dist/output_parsers/expression_type_handlers/property_assignment_handler.js +1 -2
- package/dist/output_parsers/expression_type_handlers/property_assignment_handler.js.map +1 -1
- package/dist/output_parsers/expression_type_handlers/string_literal_handler.cjs +2 -3
- package/dist/output_parsers/expression_type_handlers/string_literal_handler.cjs.map +1 -1
- package/dist/output_parsers/expression_type_handlers/string_literal_handler.js +1 -2
- package/dist/output_parsers/expression_type_handlers/string_literal_handler.js.map +1 -1
- package/dist/output_parsers/fix.cjs +4 -5
- package/dist/output_parsers/fix.cjs.map +1 -1
- package/dist/output_parsers/fix.js +1 -2
- package/dist/output_parsers/fix.js.map +1 -1
- package/dist/output_parsers/http_response.cjs +2 -3
- package/dist/output_parsers/http_response.cjs.map +1 -1
- package/dist/output_parsers/http_response.js +1 -2
- package/dist/output_parsers/http_response.js.map +1 -1
- package/dist/output_parsers/index.cjs +32 -33
- package/dist/output_parsers/index.js +1 -2
- package/dist/output_parsers/noop.cjs +2 -3
- package/dist/output_parsers/noop.cjs.map +1 -1
- package/dist/output_parsers/noop.js +1 -2
- package/dist/output_parsers/noop.js.map +1 -1
- package/dist/output_parsers/openai_functions.cjs +2 -3
- package/dist/output_parsers/openai_functions.cjs.map +1 -1
- package/dist/output_parsers/openai_functions.js +1 -2
- package/dist/output_parsers/openai_functions.js.map +1 -1
- package/dist/output_parsers/openai_tools.cjs +2 -3
- package/dist/output_parsers/openai_tools.cjs.map +1 -1
- package/dist/output_parsers/openai_tools.js +1 -2
- package/dist/output_parsers/openai_tools.js.map +1 -1
- package/dist/output_parsers/prompts.cjs +4 -8
- package/dist/output_parsers/prompts.cjs.map +1 -1
- package/dist/output_parsers/prompts.js +3 -6
- package/dist/output_parsers/prompts.js.map +1 -1
- package/dist/output_parsers/regex.cjs +2 -3
- package/dist/output_parsers/regex.cjs.map +1 -1
- package/dist/output_parsers/regex.js +1 -2
- package/dist/output_parsers/regex.js.map +1 -1
- package/dist/output_parsers/router.cjs +3 -4
- package/dist/output_parsers/router.cjs.map +1 -1
- package/dist/output_parsers/router.js +1 -2
- package/dist/output_parsers/router.js.map +1 -1
- package/dist/output_parsers/structured.cjs +2 -3
- package/dist/output_parsers/structured.cjs.map +1 -1
- package/dist/output_parsers/structured.js +1 -2
- package/dist/output_parsers/structured.js.map +1 -1
- package/dist/retrievers/contextual_compression.cjs +8 -9
- package/dist/retrievers/contextual_compression.cjs.map +1 -1
- package/dist/retrievers/contextual_compression.js +1 -2
- package/dist/retrievers/contextual_compression.js.map +1 -1
- package/dist/retrievers/document_compressors/chain_extract.cjs +11 -12
- package/dist/retrievers/document_compressors/chain_extract.cjs.map +1 -1
- package/dist/retrievers/document_compressors/chain_extract.js +1 -2
- package/dist/retrievers/document_compressors/chain_extract.js.map +1 -1
- package/dist/retrievers/document_compressors/chain_extract_prompt.cjs +1 -2
- package/dist/retrievers/document_compressors/chain_extract_prompt.cjs.map +1 -1
- package/dist/retrievers/document_compressors/chain_extract_prompt.js +1 -1
- package/dist/retrievers/document_compressors/embeddings_filter.cjs +9 -10
- package/dist/retrievers/document_compressors/embeddings_filter.cjs.map +1 -1
- package/dist/retrievers/document_compressors/embeddings_filter.js +1 -2
- package/dist/retrievers/document_compressors/embeddings_filter.js.map +1 -1
- package/dist/retrievers/document_compressors/index.cjs +8 -10
- package/dist/retrievers/document_compressors/index.cjs.map +1 -1
- package/dist/retrievers/document_compressors/index.js +1 -2
- package/dist/retrievers/document_compressors/index.js.map +1 -1
- package/dist/retrievers/ensemble.cjs +8 -9
- package/dist/retrievers/ensemble.cjs.map +1 -1
- package/dist/retrievers/ensemble.js +1 -2
- package/dist/retrievers/ensemble.js.map +1 -1
- package/dist/retrievers/hyde.cjs +8 -9
- package/dist/retrievers/hyde.cjs.map +1 -1
- package/dist/retrievers/hyde.js +1 -2
- package/dist/retrievers/hyde.js.map +1 -1
- package/dist/retrievers/matryoshka_retriever.cjs +8 -9
- package/dist/retrievers/matryoshka_retriever.cjs.map +1 -1
- package/dist/retrievers/matryoshka_retriever.js +1 -2
- package/dist/retrievers/matryoshka_retriever.js.map +1 -1
- package/dist/retrievers/multi_query.cjs +9 -10
- package/dist/retrievers/multi_query.cjs.map +1 -1
- package/dist/retrievers/multi_query.js +1 -2
- package/dist/retrievers/multi_query.js.map +1 -1
- package/dist/retrievers/multi_vector.cjs +9 -10
- package/dist/retrievers/multi_vector.cjs.map +1 -1
- package/dist/retrievers/multi_vector.js +1 -2
- package/dist/retrievers/multi_vector.js.map +1 -1
- package/dist/retrievers/parent_document.cjs +9 -10
- package/dist/retrievers/parent_document.cjs.map +1 -1
- package/dist/retrievers/parent_document.js +1 -2
- package/dist/retrievers/parent_document.js.map +1 -1
- package/dist/retrievers/score_threshold.cjs +8 -9
- package/dist/retrievers/score_threshold.cjs.map +1 -1
- package/dist/retrievers/score_threshold.js +1 -2
- package/dist/retrievers/score_threshold.js.map +1 -1
- package/dist/retrievers/self_query/functional.cjs +13 -14
- package/dist/retrievers/self_query/functional.js +1 -2
- package/dist/retrievers/self_query/index.cjs +24 -25
- package/dist/retrievers/self_query/index.cjs.map +1 -1
- package/dist/retrievers/self_query/index.js +1 -2
- package/dist/retrievers/self_query/index.js.map +1 -1
- package/dist/retrievers/time_weighted.cjs +9 -10
- package/dist/retrievers/time_weighted.cjs.map +1 -1
- package/dist/retrievers/time_weighted.js +2 -3
- package/dist/retrievers/time_weighted.js.map +1 -1
- package/dist/schema/prompt_template.cjs +8 -10
- package/dist/schema/prompt_template.cjs.map +1 -1
- package/dist/schema/prompt_template.js +1 -2
- package/dist/schema/prompt_template.js.map +1 -1
- package/dist/schema/query_constructor.cjs +8 -10
- package/dist/schema/query_constructor.cjs.map +1 -1
- package/dist/schema/query_constructor.js +1 -2
- package/dist/schema/query_constructor.js.map +1 -1
- package/dist/smith/config.cjs +1 -2
- package/dist/smith/config.cjs.map +1 -1
- package/dist/smith/config.d.cts +0 -1
- package/dist/smith/config.d.cts.map +1 -1
- package/dist/smith/config.d.ts +0 -2
- package/dist/smith/config.d.ts.map +1 -1
- package/dist/smith/config.js +1 -1
- package/dist/smith/index.cjs +10 -11
- package/dist/smith/index.js +1 -2
- package/dist/smith/name_generation.cjs +1 -2
- package/dist/smith/name_generation.cjs.map +1 -1
- package/dist/smith/name_generation.js +1 -1
- package/dist/smith/progress.cjs +1 -2
- package/dist/smith/progress.cjs.map +1 -1
- package/dist/smith/progress.js +1 -1
- package/dist/smith/progress.js.map +1 -1
- package/dist/smith/runner_utils.cjs +6 -7
- package/dist/smith/runner_utils.cjs.map +1 -1
- package/dist/smith/runner_utils.d.cts +0 -1
- package/dist/smith/runner_utils.d.cts.map +1 -1
- package/dist/smith/runner_utils.d.ts +0 -1
- package/dist/smith/runner_utils.d.ts.map +1 -1
- package/dist/smith/runner_utils.js +1 -2
- package/dist/smith/runner_utils.js.map +1 -1
- package/dist/sql_db.cjs +9 -10
- package/dist/sql_db.cjs.map +1 -1
- package/dist/sql_db.js +1 -2
- package/dist/sql_db.js.map +1 -1
- package/dist/storage/encoder_backed.cjs +8 -9
- package/dist/storage/encoder_backed.cjs.map +1 -1
- package/dist/storage/encoder_backed.js +1 -2
- package/dist/storage/encoder_backed.js.map +1 -1
- package/dist/storage/file_system.cjs +8 -9
- package/dist/storage/file_system.cjs.map +1 -1
- package/dist/storage/file_system.js +1 -2
- package/dist/storage/file_system.js.map +1 -1
- package/dist/storage/in_memory.cjs +13 -14
- package/dist/storage/in_memory.js +1 -2
- package/dist/stores/doc/base.cjs +8 -10
- package/dist/stores/doc/base.cjs.map +1 -1
- package/dist/stores/doc/base.js +1 -2
- package/dist/stores/doc/base.js.map +1 -1
- package/dist/stores/doc/in_memory.cjs +9 -10
- package/dist/stores/doc/in_memory.cjs.map +1 -1
- package/dist/stores/doc/in_memory.js +1 -2
- package/dist/stores/doc/in_memory.js.map +1 -1
- package/dist/stores/file/base.cjs +2 -3
- package/dist/stores/file/base.cjs.map +1 -1
- package/dist/stores/file/base.js +1 -2
- package/dist/stores/file/base.js.map +1 -1
- package/dist/stores/file/in_memory.cjs +9 -10
- package/dist/stores/file/in_memory.cjs.map +1 -1
- package/dist/stores/file/in_memory.js +1 -2
- package/dist/stores/file/in_memory.js.map +1 -1
- package/dist/stores/file/node.cjs +9 -10
- package/dist/stores/file/node.cjs.map +1 -1
- package/dist/stores/file/node.js +1 -2
- package/dist/stores/file/node.js.map +1 -1
- package/dist/stores/message/in_memory.cjs +13 -14
- package/dist/stores/message/in_memory.js +1 -2
- package/dist/text_splitter.cjs +14 -14
- package/dist/text_splitter.d.cts +0 -1
- package/dist/text_splitter.d.ts +0 -1
- package/dist/text_splitter.js +2 -4
- package/dist/tools/chain.cjs +8 -9
- package/dist/tools/chain.cjs.map +1 -1
- package/dist/tools/chain.js +1 -2
- package/dist/tools/chain.js.map +1 -1
- package/dist/tools/fs.cjs +2 -3
- package/dist/tools/fs.cjs.map +1 -1
- package/dist/tools/fs.js +1 -2
- package/dist/tools/fs.js.map +1 -1
- package/dist/tools/index.cjs +33 -34
- package/dist/tools/index.js +1 -2
- package/dist/tools/json.cjs +2 -3
- package/dist/tools/json.cjs.map +1 -1
- package/dist/tools/json.js +1 -2
- package/dist/tools/json.js.map +1 -1
- package/dist/tools/render.cjs +8 -9
- package/dist/tools/render.cjs.map +1 -1
- package/dist/tools/render.js +1 -2
- package/dist/tools/render.js.map +1 -1
- package/dist/tools/requests.cjs +2 -3
- package/dist/tools/requests.cjs.map +1 -1
- package/dist/tools/requests.js +1 -2
- package/dist/tools/requests.js.map +1 -1
- package/dist/tools/retriever.cjs +9 -10
- package/dist/tools/retriever.cjs.map +1 -1
- package/dist/tools/retriever.js +1 -2
- package/dist/tools/retriever.js.map +1 -1
- package/dist/tools/sql.cjs +9 -10
- package/dist/tools/sql.cjs.map +1 -1
- package/dist/tools/sql.js +1 -2
- package/dist/tools/sql.js.map +1 -1
- package/dist/tools/vectorstore.cjs +3 -4
- package/dist/tools/vectorstore.cjs.map +1 -1
- package/dist/tools/vectorstore.js +1 -2
- package/dist/tools/vectorstore.js.map +1 -1
- package/dist/tools/webbrowser.cjs +10 -11
- package/dist/tools/webbrowser.cjs.map +1 -1
- package/dist/tools/webbrowser.js +1 -2
- package/dist/tools/webbrowser.js.map +1 -1
- package/dist/util/document.cjs +8 -10
- package/dist/util/document.cjs.map +1 -1
- package/dist/util/document.js +1 -2
- package/dist/util/document.js.map +1 -1
- package/dist/util/entrypoint_deprecation.cjs +1 -1
- package/dist/util/entrypoint_deprecation.js +1 -2
- package/dist/util/env.cjs +2 -2
- package/dist/util/env.js +1 -2
- package/dist/util/extname.cjs +1 -2
- package/dist/util/extname.cjs.map +1 -1
- package/dist/util/extname.js +1 -1
- package/dist/util/hub.cjs +4 -5
- package/dist/util/hub.cjs.map +1 -1
- package/dist/util/hub.js +1 -2
- package/dist/util/hub.js.map +1 -1
- package/dist/util/is-network-error/index.cjs +1 -2
- package/dist/util/is-network-error/index.cjs.map +1 -1
- package/dist/util/is-network-error/index.js +1 -1
- package/dist/util/is-network-error/index.js.map +1 -1
- package/dist/util/load.cjs +1 -2
- package/dist/util/load.cjs.map +1 -1
- package/dist/util/load.js +1 -1
- package/dist/util/math.cjs +14 -14
- package/dist/util/math.js +2 -4
- package/dist/util/ml-distance/distances.cjs +1 -2
- package/dist/util/ml-distance/distances.cjs.map +1 -1
- package/dist/util/ml-distance/distances.js +1 -1
- package/dist/util/ml-distance/similarities.cjs +1 -2
- package/dist/util/ml-distance/similarities.cjs.map +1 -1
- package/dist/util/ml-distance/similarities.js +1 -1
- package/dist/util/ml-distance-euclidean/euclidean.cjs +1 -2
- package/dist/util/ml-distance-euclidean/euclidean.cjs.map +1 -1
- package/dist/util/ml-distance-euclidean/euclidean.js +1 -1
- package/dist/util/openapi.cjs +2 -3
- package/dist/util/openapi.cjs.map +1 -1
- package/dist/util/openapi.js +1 -2
- package/dist/util/openapi.js.map +1 -1
- package/dist/util/p-retry/index.cjs +2 -3
- package/dist/util/p-retry/index.cjs.map +1 -1
- package/dist/util/p-retry/index.js +1 -2
- package/dist/util/p-retry/index.js.map +1 -1
- package/dist/util/parse.cjs +3 -4
- package/dist/util/parse.cjs.map +1 -1
- package/dist/util/parse.js +1 -2
- package/dist/util/parse.js.map +1 -1
- package/dist/util/set.cjs +1 -2
- package/dist/util/set.cjs.map +1 -1
- package/dist/util/set.js +1 -1
- package/dist/util/sql_utils.cjs +2 -3
- package/dist/util/sql_utils.cjs.map +1 -1
- package/dist/util/sql_utils.js +1 -2
- package/dist/util/sql_utils.js.map +1 -1
- package/dist/util/time.cjs +8 -10
- package/dist/util/time.cjs.map +1 -1
- package/dist/util/time.js +1 -2
- package/dist/util/time.js.map +1 -1
- package/dist/vectorstores/memory.cjs +9 -10
- package/dist/vectorstores/memory.cjs.map +1 -1
- package/dist/vectorstores/memory.js +1 -2
- package/dist/vectorstores/memory.js.map +1 -1
- package/package.json +21 -17
- package/agents/format_scratchpad/log.cjs +0 -1
- package/agents/format_scratchpad/log.d.cts +0 -1
- package/agents/format_scratchpad/log.d.ts +0 -1
- package/agents/format_scratchpad/log.js +0 -1
- package/agents/format_scratchpad/log_to_message.cjs +0 -1
- package/agents/format_scratchpad/log_to_message.d.cts +0 -1
- package/agents/format_scratchpad/log_to_message.d.ts +0 -1
- package/agents/format_scratchpad/log_to_message.js +0 -1
- package/agents/format_scratchpad/openai_functions.cjs +0 -1
- package/agents/format_scratchpad/openai_functions.d.cts +0 -1
- package/agents/format_scratchpad/openai_functions.d.ts +0 -1
- package/agents/format_scratchpad/openai_functions.js +0 -1
- package/agents/format_scratchpad/openai_tools.cjs +0 -1
- package/agents/format_scratchpad/openai_tools.d.cts +0 -1
- package/agents/format_scratchpad/openai_tools.d.ts +0 -1
- package/agents/format_scratchpad/openai_tools.js +0 -1
- package/agents/format_scratchpad/xml.cjs +0 -1
- package/agents/format_scratchpad/xml.d.cts +0 -1
- package/agents/format_scratchpad/xml.d.ts +0 -1
- package/agents/format_scratchpad/xml.js +0 -1
- package/agents/load.cjs +0 -1
- package/agents/load.d.cts +0 -1
- package/agents/load.d.ts +0 -1
- package/agents/load.js +0 -1
- package/agents/openai/output_parser.cjs +0 -1
- package/agents/openai/output_parser.d.cts +0 -1
- package/agents/openai/output_parser.d.ts +0 -1
- package/agents/openai/output_parser.js +0 -1
- package/agents/react/output_parser.cjs +0 -1
- package/agents/react/output_parser.d.cts +0 -1
- package/agents/react/output_parser.d.ts +0 -1
- package/agents/react/output_parser.js +0 -1
- package/agents/toolkits/sql.cjs +0 -1
- package/agents/toolkits/sql.d.cts +0 -1
- package/agents/toolkits/sql.d.ts +0 -1
- package/agents/toolkits/sql.js +0 -1
- package/agents/toolkits.cjs +0 -1
- package/agents/toolkits.d.cts +0 -1
- package/agents/toolkits.d.ts +0 -1
- package/agents/toolkits.js +0 -1
- package/agents/xml/output_parser.cjs +0 -1
- package/agents/xml/output_parser.d.cts +0 -1
- package/agents/xml/output_parser.d.ts +0 -1
- package/agents/xml/output_parser.js +0 -1
- package/agents.cjs +0 -1
- package/agents.d.cts +0 -1
- package/agents.d.ts +0 -1
- package/agents.js +0 -1
- package/cache/file_system.cjs +0 -1
- package/cache/file_system.d.cts +0 -1
- package/cache/file_system.d.ts +0 -1
- package/cache/file_system.js +0 -1
- package/callbacks.cjs +0 -1
- package/callbacks.d.cts +0 -1
- package/callbacks.d.ts +0 -1
- package/callbacks.js +0 -1
- package/chains/combine_documents/reduce.cjs +0 -1
- package/chains/combine_documents/reduce.d.cts +0 -1
- package/chains/combine_documents/reduce.d.ts +0 -1
- package/chains/combine_documents/reduce.js +0 -1
- package/chains/combine_documents.cjs +0 -1
- package/chains/combine_documents.d.cts +0 -1
- package/chains/combine_documents.d.ts +0 -1
- package/chains/combine_documents.js +0 -1
- package/chains/graph_qa/cypher.cjs +0 -1
- package/chains/graph_qa/cypher.d.cts +0 -1
- package/chains/graph_qa/cypher.d.ts +0 -1
- package/chains/graph_qa/cypher.js +0 -1
- package/chains/history_aware_retriever.cjs +0 -1
- package/chains/history_aware_retriever.d.cts +0 -1
- package/chains/history_aware_retriever.d.ts +0 -1
- package/chains/history_aware_retriever.js +0 -1
- package/chains/load.cjs +0 -1
- package/chains/load.d.cts +0 -1
- package/chains/load.d.ts +0 -1
- package/chains/load.js +0 -1
- package/chains/openai_functions.cjs +0 -1
- package/chains/openai_functions.d.cts +0 -1
- package/chains/openai_functions.d.ts +0 -1
- package/chains/openai_functions.js +0 -1
- package/chains/query_constructor/ir.cjs +0 -1
- package/chains/query_constructor/ir.d.cts +0 -1
- package/chains/query_constructor/ir.d.ts +0 -1
- package/chains/query_constructor/ir.js +0 -1
- package/chains/query_constructor.cjs +0 -1
- package/chains/query_constructor.d.cts +0 -1
- package/chains/query_constructor.d.ts +0 -1
- package/chains/query_constructor.js +0 -1
- package/chains/retrieval.cjs +0 -1
- package/chains/retrieval.d.cts +0 -1
- package/chains/retrieval.d.ts +0 -1
- package/chains/retrieval.js +0 -1
- package/chains/sql_db.cjs +0 -1
- package/chains/sql_db.d.cts +0 -1
- package/chains/sql_db.d.ts +0 -1
- package/chains/sql_db.js +0 -1
- package/chains.cjs +0 -1
- package/chains.d.cts +0 -1
- package/chains.d.ts +0 -1
- package/chains.js +0 -1
- package/chat_models/universal.cjs +0 -1
- package/chat_models/universal.d.cts +0 -1
- package/chat_models/universal.d.ts +0 -1
- package/chat_models/universal.js +0 -1
- package/document.cjs +0 -1
- package/document.d.cts +0 -1
- package/document.d.ts +0 -1
- package/document.js +0 -1
- package/document_loaders/base.cjs +0 -1
- package/document_loaders/base.d.cts +0 -1
- package/document_loaders/base.d.ts +0 -1
- package/document_loaders/base.js +0 -1
- package/document_loaders/fs/buffer.cjs +0 -1
- package/document_loaders/fs/buffer.d.cts +0 -1
- package/document_loaders/fs/buffer.d.ts +0 -1
- package/document_loaders/fs/buffer.js +0 -1
- package/document_loaders/fs/directory.cjs +0 -1
- package/document_loaders/fs/directory.d.cts +0 -1
- package/document_loaders/fs/directory.d.ts +0 -1
- package/document_loaders/fs/directory.js +0 -1
- package/document_loaders/fs/json.cjs +0 -1
- package/document_loaders/fs/json.d.cts +0 -1
- package/document_loaders/fs/json.d.ts +0 -1
- package/document_loaders/fs/json.js +0 -1
- package/document_loaders/fs/multi_file.cjs +0 -1
- package/document_loaders/fs/multi_file.d.cts +0 -1
- package/document_loaders/fs/multi_file.d.ts +0 -1
- package/document_loaders/fs/multi_file.js +0 -1
- package/document_loaders/fs/text.cjs +0 -1
- package/document_loaders/fs/text.d.cts +0 -1
- package/document_loaders/fs/text.d.ts +0 -1
- package/document_loaders/fs/text.js +0 -1
- package/document_transformers/openai_functions.cjs +0 -1
- package/document_transformers/openai_functions.d.cts +0 -1
- package/document_transformers/openai_functions.d.ts +0 -1
- package/document_transformers/openai_functions.js +0 -1
- package/embeddings/cache_backed.cjs +0 -1
- package/embeddings/cache_backed.d.cts +0 -1
- package/embeddings/cache_backed.d.ts +0 -1
- package/embeddings/cache_backed.js +0 -1
- package/embeddings/fake.cjs +0 -1
- package/embeddings/fake.d.cts +0 -1
- package/embeddings/fake.d.ts +0 -1
- package/embeddings/fake.js +0 -1
- package/evaluation.cjs +0 -1
- package/evaluation.d.cts +0 -1
- package/evaluation.d.ts +0 -1
- package/evaluation.js +0 -1
- package/experimental/autogpt.cjs +0 -1
- package/experimental/autogpt.d.cts +0 -1
- package/experimental/autogpt.d.ts +0 -1
- package/experimental/autogpt.js +0 -1
- package/experimental/babyagi.cjs +0 -1
- package/experimental/babyagi.d.cts +0 -1
- package/experimental/babyagi.d.ts +0 -1
- package/experimental/babyagi.js +0 -1
- package/experimental/chains/violation_of_expectations.cjs +0 -1
- package/experimental/chains/violation_of_expectations.d.cts +0 -1
- package/experimental/chains/violation_of_expectations.d.ts +0 -1
- package/experimental/chains/violation_of_expectations.js +0 -1
- package/experimental/generative_agents.cjs +0 -1
- package/experimental/generative_agents.d.cts +0 -1
- package/experimental/generative_agents.d.ts +0 -1
- package/experimental/generative_agents.js +0 -1
- package/experimental/masking.cjs +0 -1
- package/experimental/masking.d.cts +0 -1
- package/experimental/masking.d.ts +0 -1
- package/experimental/masking.js +0 -1
- package/experimental/openai_assistant.cjs +0 -1
- package/experimental/openai_assistant.d.cts +0 -1
- package/experimental/openai_assistant.d.ts +0 -1
- package/experimental/openai_assistant.js +0 -1
- package/experimental/openai_files.cjs +0 -1
- package/experimental/openai_files.d.cts +0 -1
- package/experimental/openai_files.d.ts +0 -1
- package/experimental/openai_files.js +0 -1
- package/experimental/plan_and_execute.cjs +0 -1
- package/experimental/plan_and_execute.d.cts +0 -1
- package/experimental/plan_and_execute.d.ts +0 -1
- package/experimental/plan_and_execute.js +0 -1
- package/experimental/prompts/custom_format.cjs +0 -1
- package/experimental/prompts/custom_format.d.cts +0 -1
- package/experimental/prompts/custom_format.d.ts +0 -1
- package/experimental/prompts/custom_format.js +0 -1
- package/experimental/prompts/handlebars.cjs +0 -1
- package/experimental/prompts/handlebars.d.cts +0 -1
- package/experimental/prompts/handlebars.d.ts +0 -1
- package/experimental/prompts/handlebars.js +0 -1
- package/hub/node.cjs +0 -1
- package/hub/node.d.cts +0 -1
- package/hub/node.d.ts +0 -1
- package/hub/node.js +0 -1
- package/hub.cjs +0 -1
- package/hub.d.cts +0 -1
- package/hub.d.ts +0 -1
- package/hub.js +0 -1
- package/indexes.cjs +0 -1
- package/indexes.d.cts +0 -1
- package/indexes.d.ts +0 -1
- package/indexes.js +0 -1
- package/load/serializable.cjs +0 -1
- package/load/serializable.d.cts +0 -1
- package/load/serializable.d.ts +0 -1
- package/load/serializable.js +0 -1
- package/load.cjs +0 -1
- package/load.d.cts +0 -1
- package/load.d.ts +0 -1
- package/load.js +0 -1
- package/memory/chat_memory.cjs +0 -1
- package/memory/chat_memory.d.cts +0 -1
- package/memory/chat_memory.d.ts +0 -1
- package/memory/chat_memory.js +0 -1
- package/memory.cjs +0 -1
- package/memory.d.cts +0 -1
- package/memory.d.ts +0 -1
- package/memory.js +0 -1
- package/output_parsers/expression.cjs +0 -1
- package/output_parsers/expression.d.cts +0 -1
- package/output_parsers/expression.d.ts +0 -1
- package/output_parsers/expression.js +0 -1
- package/output_parsers.cjs +0 -1
- package/output_parsers.d.cts +0 -1
- package/output_parsers.d.ts +0 -1
- package/output_parsers.js +0 -1
- package/retrievers/contextual_compression.cjs +0 -1
- package/retrievers/contextual_compression.d.cts +0 -1
- package/retrievers/contextual_compression.d.ts +0 -1
- package/retrievers/contextual_compression.js +0 -1
- package/retrievers/document_compressors/chain_extract.cjs +0 -1
- package/retrievers/document_compressors/chain_extract.d.cts +0 -1
- package/retrievers/document_compressors/chain_extract.d.ts +0 -1
- package/retrievers/document_compressors/chain_extract.js +0 -1
- package/retrievers/document_compressors/embeddings_filter.cjs +0 -1
- package/retrievers/document_compressors/embeddings_filter.d.cts +0 -1
- package/retrievers/document_compressors/embeddings_filter.d.ts +0 -1
- package/retrievers/document_compressors/embeddings_filter.js +0 -1
- package/retrievers/document_compressors.cjs +0 -1
- package/retrievers/document_compressors.d.cts +0 -1
- package/retrievers/document_compressors.d.ts +0 -1
- package/retrievers/document_compressors.js +0 -1
- package/retrievers/ensemble.cjs +0 -1
- package/retrievers/ensemble.d.cts +0 -1
- package/retrievers/ensemble.d.ts +0 -1
- package/retrievers/ensemble.js +0 -1
- package/retrievers/hyde.cjs +0 -1
- package/retrievers/hyde.d.cts +0 -1
- package/retrievers/hyde.d.ts +0 -1
- package/retrievers/hyde.js +0 -1
- package/retrievers/matryoshka_retriever.cjs +0 -1
- package/retrievers/matryoshka_retriever.d.cts +0 -1
- package/retrievers/matryoshka_retriever.d.ts +0 -1
- package/retrievers/matryoshka_retriever.js +0 -1
- package/retrievers/multi_query.cjs +0 -1
- package/retrievers/multi_query.d.cts +0 -1
- package/retrievers/multi_query.d.ts +0 -1
- package/retrievers/multi_query.js +0 -1
- package/retrievers/multi_vector.cjs +0 -1
- package/retrievers/multi_vector.d.cts +0 -1
- package/retrievers/multi_vector.d.ts +0 -1
- package/retrievers/multi_vector.js +0 -1
- package/retrievers/parent_document.cjs +0 -1
- package/retrievers/parent_document.d.cts +0 -1
- package/retrievers/parent_document.d.ts +0 -1
- package/retrievers/parent_document.js +0 -1
- package/retrievers/score_threshold.cjs +0 -1
- package/retrievers/score_threshold.d.cts +0 -1
- package/retrievers/score_threshold.d.ts +0 -1
- package/retrievers/score_threshold.js +0 -1
- package/retrievers/self_query/functional.cjs +0 -1
- package/retrievers/self_query/functional.d.cts +0 -1
- package/retrievers/self_query/functional.d.ts +0 -1
- package/retrievers/self_query/functional.js +0 -1
- package/retrievers/self_query.cjs +0 -1
- package/retrievers/self_query.d.cts +0 -1
- package/retrievers/self_query.d.ts +0 -1
- package/retrievers/self_query.js +0 -1
- package/retrievers/time_weighted.cjs +0 -1
- package/retrievers/time_weighted.d.cts +0 -1
- package/retrievers/time_weighted.d.ts +0 -1
- package/retrievers/time_weighted.js +0 -1
- package/schema/prompt_template.cjs +0 -1
- package/schema/prompt_template.d.cts +0 -1
- package/schema/prompt_template.d.ts +0 -1
- package/schema/prompt_template.js +0 -1
- package/schema/query_constructor.cjs +0 -1
- package/schema/query_constructor.d.cts +0 -1
- package/schema/query_constructor.d.ts +0 -1
- package/schema/query_constructor.js +0 -1
- package/smith.cjs +0 -1
- package/smith.d.cts +0 -1
- package/smith.d.ts +0 -1
- package/smith.js +0 -1
- package/sql_db.cjs +0 -1
- package/sql_db.d.cts +0 -1
- package/sql_db.d.ts +0 -1
- package/sql_db.js +0 -1
- package/storage/encoder_backed.cjs +0 -1
- package/storage/encoder_backed.d.cts +0 -1
- package/storage/encoder_backed.d.ts +0 -1
- package/storage/encoder_backed.js +0 -1
- package/storage/file_system.cjs +0 -1
- package/storage/file_system.d.cts +0 -1
- package/storage/file_system.d.ts +0 -1
- package/storage/file_system.js +0 -1
- package/storage/in_memory.cjs +0 -1
- package/storage/in_memory.d.cts +0 -1
- package/storage/in_memory.d.ts +0 -1
- package/storage/in_memory.js +0 -1
- package/stores/doc/base.cjs +0 -1
- package/stores/doc/base.d.cts +0 -1
- package/stores/doc/base.d.ts +0 -1
- package/stores/doc/base.js +0 -1
- package/stores/doc/in_memory.cjs +0 -1
- package/stores/doc/in_memory.d.cts +0 -1
- package/stores/doc/in_memory.d.ts +0 -1
- package/stores/doc/in_memory.js +0 -1
- package/stores/file/in_memory.cjs +0 -1
- package/stores/file/in_memory.d.cts +0 -1
- package/stores/file/in_memory.d.ts +0 -1
- package/stores/file/in_memory.js +0 -1
- package/stores/file/node.cjs +0 -1
- package/stores/file/node.d.cts +0 -1
- package/stores/file/node.d.ts +0 -1
- package/stores/file/node.js +0 -1
- package/stores/message/in_memory.cjs +0 -1
- package/stores/message/in_memory.d.cts +0 -1
- package/stores/message/in_memory.d.ts +0 -1
- package/stores/message/in_memory.js +0 -1
- package/text_splitter.cjs +0 -1
- package/text_splitter.d.cts +0 -1
- package/text_splitter.d.ts +0 -1
- package/text_splitter.js +0 -1
- package/tools/chain.cjs +0 -1
- package/tools/chain.d.cts +0 -1
- package/tools/chain.d.ts +0 -1
- package/tools/chain.js +0 -1
- package/tools/render.cjs +0 -1
- package/tools/render.d.cts +0 -1
- package/tools/render.d.ts +0 -1
- package/tools/render.js +0 -1
- package/tools/retriever.cjs +0 -1
- package/tools/retriever.d.cts +0 -1
- package/tools/retriever.d.ts +0 -1
- package/tools/retriever.js +0 -1
- package/tools/sql.cjs +0 -1
- package/tools/sql.d.cts +0 -1
- package/tools/sql.d.ts +0 -1
- package/tools/sql.js +0 -1
- package/tools/webbrowser.cjs +0 -1
- package/tools/webbrowser.d.cts +0 -1
- package/tools/webbrowser.d.ts +0 -1
- package/tools/webbrowser.js +0 -1
- package/tools.cjs +0 -1
- package/tools.d.cts +0 -1
- package/tools.d.ts +0 -1
- package/tools.js +0 -1
- package/util/document.cjs +0 -1
- package/util/document.d.cts +0 -1
- package/util/document.d.ts +0 -1
- package/util/document.js +0 -1
- package/util/math.cjs +0 -1
- package/util/math.d.cts +0 -1
- package/util/math.d.ts +0 -1
- package/util/math.js +0 -1
- package/util/time.cjs +0 -1
- package/util/time.d.cts +0 -1
- package/util/time.d.ts +0 -1
- package/util/time.js +0 -1
- package/vectorstores/memory.cjs +0 -1
- package/vectorstores/memory.d.cts +0 -1
- package/vectorstores/memory.d.ts +0 -1
- package/vectorstores/memory.js +0 -1
|
@@ -7,28 +7,20 @@ var __getProtoOf = Object.getPrototypeOf;
|
|
|
7
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
8
|
var __exportAll = (all, no_symbols) => {
|
|
9
9
|
let target = {};
|
|
10
|
-
for (var name in all) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}
|
|
16
|
-
if (!no_symbols) {
|
|
17
|
-
__defProp(target, Symbol.toStringTag, { value: "Module" });
|
|
18
|
-
}
|
|
10
|
+
for (var name in all) __defProp(target, name, {
|
|
11
|
+
get: all[name],
|
|
12
|
+
enumerable: true
|
|
13
|
+
});
|
|
14
|
+
if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
|
|
19
15
|
return target;
|
|
20
16
|
};
|
|
21
17
|
var __copyProps = (to, from, except, desc) => {
|
|
22
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
}
|
|
18
|
+
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
19
|
+
key = keys[i];
|
|
20
|
+
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
21
|
+
get: ((k) => from[k]).bind(null, key),
|
|
22
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
23
|
+
});
|
|
32
24
|
}
|
|
33
25
|
return to;
|
|
34
26
|
};
|
|
@@ -37,9 +29,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
37
29
|
value: mod,
|
|
38
30
|
enumerable: true
|
|
39
31
|
}) : target, mod));
|
|
40
|
-
|
|
41
32
|
//#endregion
|
|
42
|
-
|
|
43
33
|
exports.__exportAll = __exportAll;
|
|
44
34
|
exports.__reExport = __reExport;
|
|
45
|
-
exports.__toESM = __toESM;
|
|
35
|
+
exports.__toESM = __toESM;
|
|
@@ -5,32 +5,23 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
|
5
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
6
|
var __exportAll = (all, no_symbols) => {
|
|
7
7
|
let target = {};
|
|
8
|
-
for (var name in all) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
if (!no_symbols) {
|
|
15
|
-
__defProp(target, Symbol.toStringTag, { value: "Module" });
|
|
16
|
-
}
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: true
|
|
11
|
+
});
|
|
12
|
+
if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
|
|
17
13
|
return target;
|
|
18
14
|
};
|
|
19
15
|
var __copyProps = (to, from, except, desc) => {
|
|
20
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
}
|
|
16
|
+
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
17
|
+
key = keys[i];
|
|
18
|
+
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
19
|
+
get: ((k) => from[k]).bind(null, key),
|
|
20
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
21
|
+
});
|
|
30
22
|
}
|
|
31
23
|
return to;
|
|
32
24
|
};
|
|
33
25
|
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
34
|
-
|
|
35
26
|
//#endregion
|
|
36
|
-
export { __exportAll, __reExport };
|
|
27
|
+
export { __exportAll, __reExport };
|
package/dist/agents/agent.cjs
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
require("../_virtual/_rolldown/runtime.cjs");
|
|
2
2
|
let _langchain_core_load_serializable = require("@langchain/core/load/serializable");
|
|
3
3
|
let _langchain_core_runnables = require("@langchain/core/runnables");
|
|
4
|
-
|
|
5
4
|
//#region src/agents/agent.ts
|
|
6
5
|
/**
|
|
7
6
|
* Error class for parse errors in LangChain. Contains information about
|
|
@@ -374,7 +373,6 @@ var Agent = class extends BaseSingleActionAgent {
|
|
|
374
373
|
}
|
|
375
374
|
}
|
|
376
375
|
};
|
|
377
|
-
|
|
378
376
|
//#endregion
|
|
379
377
|
exports.Agent = Agent;
|
|
380
378
|
exports.AgentRunnableSequence = AgentRunnableSequence;
|
|
@@ -385,4 +383,5 @@ exports.RunnableAgent = RunnableAgent;
|
|
|
385
383
|
exports.RunnableMultiActionAgent = RunnableMultiActionAgent;
|
|
386
384
|
exports.RunnableSingleActionAgent = RunnableSingleActionAgent;
|
|
387
385
|
exports.isRunnableAgent = isRunnableAgent;
|
|
386
|
+
|
|
388
387
|
//# sourceMappingURL=agent.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.cjs","names":["Serializable","RunnableSequence"],"sources":["../../src/agents/agent.ts"],"sourcesContent":["import type {\n StructuredToolInterface,\n ToolInterface,\n} from \"@langchain/core/tools\";\nimport type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport { CallbackManager, Callbacks } from \"@langchain/core/callbacks/manager\";\nimport { BasePromptTemplate } from \"@langchain/core/prompts\";\nimport { AgentAction, AgentFinish, AgentStep } from \"@langchain/core/agents\";\nimport { BaseMessage } from \"@langchain/core/messages\";\nimport { ChainValues } from \"@langchain/core/utils/types\";\nimport { Serializable } from \"@langchain/core/load/serializable\";\nimport {\n Runnable,\n patchConfig,\n type RunnableConfig,\n RunnableSequence,\n RunnableLike,\n} from \"@langchain/core/runnables\";\nimport { LLMChain } from \"../chains/llm_chain.js\";\nimport type {\n AgentActionOutputParser,\n AgentInput,\n RunnableMultiActionAgentInput,\n RunnableSingleActionAgentInput,\n SerializedAgent,\n StoppingMethod,\n} from \"./types.js\";\n\n/**\n * Record type for arguments passed to output parsers.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type OutputParserArgs = Record<string, any>;\n\n/**\n * Error class for parse errors in LangChain. Contains information about\n * the error message and the output that caused the error.\n */\nclass ParseError extends Error {\n output: string;\n\n constructor(msg: string, output: string) {\n super(msg);\n this.output = output;\n }\n}\n\n/**\n * Abstract base class for agents in LangChain. Provides common\n * functionality for agents, such as handling inputs and outputs.\n */\nexport abstract class BaseAgent extends Serializable {\n declare ToolType: StructuredToolInterface;\n\n abstract get inputKeys(): string[];\n\n get returnValues(): string[] {\n return [\"output\"];\n }\n\n get allowedTools(): string[] | undefined {\n return undefined;\n }\n\n /**\n * Return the string type key uniquely identifying this class of agent.\n */\n _agentType(): string {\n throw new Error(\"Not implemented\");\n }\n\n /**\n * Return the string type key uniquely identifying multi or single action agents.\n */\n abstract _agentActionType(): string;\n\n /**\n * Return response when agent has been stopped due to max iterations\n */\n returnStoppedResponse(\n earlyStoppingMethod: StoppingMethod,\n _steps: AgentStep[],\n _inputs: ChainValues,\n _callbackManager?: CallbackManager\n ): Promise<AgentFinish> {\n if (earlyStoppingMethod === \"force\") {\n return Promise.resolve({\n returnValues: { output: \"Agent stopped due to max iterations.\" },\n log: \"\",\n });\n }\n\n throw new Error(`Invalid stopping method: ${earlyStoppingMethod}`);\n }\n\n /**\n * Prepare the agent for output, if needed\n */\n async prepareForOutput(\n _returnValues: AgentFinish[\"returnValues\"],\n _steps: AgentStep[]\n ): Promise<AgentFinish[\"returnValues\"]> {\n return {};\n }\n}\n\n/**\n * Abstract base class for single action agents in LangChain. Extends the\n * BaseAgent class and provides additional functionality specific to\n * single action agents.\n */\nexport abstract class BaseSingleActionAgent extends BaseAgent {\n _agentActionType(): string {\n return \"single\" as const;\n }\n\n /**\n * Decide what to do, given some input.\n *\n * @param steps - Steps the LLM has taken so far, along with observations from each.\n * @param inputs - User inputs.\n * @param callbackManager - Callback manager.\n *\n * @returns Action specifying what tool to use.\n */\n abstract plan(\n steps: AgentStep[],\n inputs: ChainValues,\n callbackManager?: CallbackManager,\n config?: RunnableConfig\n ): Promise<AgentAction | AgentFinish>;\n}\n\n/**\n * Abstract base class for multi-action agents in LangChain. Extends the\n * BaseAgent class and provides additional functionality specific to\n * multi-action agents.\n */\nexport abstract class BaseMultiActionAgent extends BaseAgent {\n _agentActionType(): string {\n return \"multi\" as const;\n }\n\n /**\n * Decide what to do, given some input.\n *\n * @param steps - Steps the LLM has taken so far, along with observations from each.\n * @param inputs - User inputs.\n * @param callbackManager - Callback manager.\n *\n * @returns Actions specifying what tools to use.\n */\n abstract plan(\n steps: AgentStep[],\n inputs: ChainValues,\n callbackManager?: CallbackManager,\n config?: RunnableConfig\n ): Promise<AgentAction[] | AgentFinish>;\n}\n\nfunction isAgentAction(input: unknown): input is AgentAction {\n return !Array.isArray(input) && (input as AgentAction)?.tool !== undefined;\n}\n\nexport function isRunnableAgent(x: BaseAgent) {\n return (\n (x as RunnableMultiActionAgent | RunnableSingleActionAgent).runnable !==\n undefined\n );\n}\n\n// TODO: Remove in the future. Only for backwards compatibility.\n// Allows for the creation of runnables with properties that will\n// be passed to the agent executor constructor.\nexport class AgentRunnableSequence<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunInput = any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunOutput = any,\n> extends RunnableSequence<RunInput, RunOutput> {\n streamRunnable?: boolean;\n\n singleAction: boolean;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n static fromRunnables<RunInput = any, RunOutput = any>(\n [first, ...runnables]: [\n RunnableLike<RunInput>,\n ...RunnableLike[],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunnableLike<any, RunOutput>,\n ],\n config: { singleAction: boolean; streamRunnable?: boolean; name?: string }\n ): AgentRunnableSequence<RunInput, Exclude<RunOutput, Error>> {\n const sequence = RunnableSequence.from(\n [first, ...runnables],\n config.name\n ) as AgentRunnableSequence<RunInput, Exclude<RunOutput, Error>>;\n sequence.singleAction = config.singleAction;\n sequence.streamRunnable = config.streamRunnable;\n return sequence;\n }\n\n static isAgentRunnableSequence(x: Runnable): x is AgentRunnableSequence {\n return typeof (x as AgentRunnableSequence).singleAction === \"boolean\";\n }\n}\n\n/**\n * Class representing a single-action agent powered by runnables.\n * Extends the BaseSingleActionAgent class and provides methods for\n * planning agent actions with runnables.\n */\nexport class RunnableSingleActionAgent extends BaseSingleActionAgent {\n lc_namespace = [\"langchain\", \"agents\", \"runnable\"];\n\n runnable: Runnable<\n ChainValues & { steps: AgentStep[] },\n AgentAction | AgentFinish\n >;\n\n get inputKeys(): string[] {\n return [];\n }\n\n /**\n * Whether to stream from the runnable or not.\n * If true, the underlying LLM is invoked in a streaming fashion to make it\n * possible to get access to the individual LLM tokens when using\n * `streamLog` with the Agent Executor. If false then LLM is invoked in a\n * non-streaming fashion and individual LLM tokens will not be available\n * in `streamLog`.\n *\n * Note that the runnable should still only stream a single action or\n * finish chunk.\n */\n streamRunnable = true;\n\n defaultRunName = \"RunnableAgent\";\n\n constructor(fields: RunnableSingleActionAgentInput) {\n super(fields);\n this.runnable = fields.runnable;\n this.defaultRunName =\n fields.defaultRunName ?? this.runnable.name ?? this.defaultRunName;\n this.streamRunnable = fields.streamRunnable ?? this.streamRunnable;\n }\n\n async plan(\n steps: AgentStep[],\n inputs: ChainValues,\n callbackManager?: CallbackManager,\n config?: RunnableConfig\n ): Promise<AgentAction | AgentFinish> {\n const combinedInput = { ...inputs, steps };\n const combinedConfig = patchConfig(config, {\n callbacks: callbackManager,\n runName: this.defaultRunName,\n });\n if (this.streamRunnable) {\n const stream = await this.runnable.stream(combinedInput, combinedConfig);\n let finalOutput: AgentAction | AgentFinish | undefined;\n for await (const chunk of stream) {\n if (finalOutput === undefined) {\n finalOutput = chunk;\n } else {\n throw new Error(\n [\n `Multiple agent actions/finishes received in streamed agent output.`,\n `Set \"streamRunnable: false\" when initializing the agent to invoke this agent in non-streaming mode.`,\n ].join(\"\\n\")\n );\n }\n }\n if (finalOutput === undefined) {\n throw new Error(\n [\n \"No streaming output received from underlying runnable.\",\n `Set \"streamRunnable: false\" when initializing the agent to invoke this agent in non-streaming mode.`,\n ].join(\"\\n\")\n );\n }\n return finalOutput;\n } else {\n return this.runnable.invoke(combinedInput, combinedConfig);\n }\n }\n}\n\n/**\n * Class representing a multi-action agent powered by runnables.\n * Extends the BaseMultiActionAgent class and provides methods for\n * planning agent actions with runnables.\n */\nexport class RunnableMultiActionAgent extends BaseMultiActionAgent {\n lc_namespace = [\"langchain\", \"agents\", \"runnable\"];\n\n // TODO: Rename input to \"intermediate_steps\"\n runnable: Runnable<\n ChainValues & { steps: AgentStep[] },\n AgentAction[] | AgentAction | AgentFinish\n >;\n\n defaultRunName = \"RunnableAgent\";\n\n stop?: string[];\n\n streamRunnable = true;\n\n get inputKeys(): string[] {\n return [];\n }\n\n constructor(fields: RunnableMultiActionAgentInput) {\n super(fields);\n this.runnable = fields.runnable;\n this.stop = fields.stop;\n this.defaultRunName =\n fields.defaultRunName ?? this.runnable.name ?? this.defaultRunName;\n this.streamRunnable = fields.streamRunnable ?? this.streamRunnable;\n }\n\n async plan(\n steps: AgentStep[],\n inputs: ChainValues,\n callbackManager?: CallbackManager,\n config?: RunnableConfig\n ): Promise<AgentAction[] | AgentFinish> {\n const combinedInput = { ...inputs, steps };\n const combinedConfig = patchConfig(config, {\n callbacks: callbackManager,\n runName: this.defaultRunName,\n });\n let output;\n if (this.streamRunnable) {\n const stream = await this.runnable.stream(combinedInput, combinedConfig);\n let finalOutput: AgentAction | AgentFinish | AgentAction[] | undefined;\n for await (const chunk of stream) {\n if (finalOutput === undefined) {\n finalOutput = chunk;\n } else {\n throw new Error(\n [\n `Multiple agent actions/finishes received in streamed agent output.`,\n `Set \"streamRunnable: false\" when initializing the agent to invoke this agent in non-streaming mode.`,\n ].join(\"\\n\")\n );\n }\n }\n if (finalOutput === undefined) {\n throw new Error(\n [\n \"No streaming output received from underlying runnable.\",\n `Set \"streamRunnable: false\" when initializing the agent to invoke this agent in non-streaming mode.`,\n ].join(\"\\n\")\n );\n }\n output = finalOutput;\n } else {\n output = await this.runnable.invoke(combinedInput, combinedConfig);\n }\n\n if (isAgentAction(output)) {\n return [output];\n }\n\n return output;\n }\n}\n\nexport class RunnableAgent extends RunnableMultiActionAgent {}\n\n/**\n * Interface for input data for creating a LLMSingleActionAgent.\n */\nexport interface LLMSingleActionAgentInput {\n llmChain: LLMChain;\n outputParser: AgentActionOutputParser;\n stop?: string[];\n}\n\n/**\n * Class representing a single action agent using a LLMChain in LangChain.\n * Extends the BaseSingleActionAgent class and provides methods for\n * planning agent actions based on LLMChain outputs.\n * @example\n * ```typescript\n * const customPromptTemplate = new CustomPromptTemplate({\n * tools: [new Calculator()],\n * inputVariables: [\"input\", \"agent_scratchpad\"],\n * });\n * const customOutputParser = new CustomOutputParser();\n * const agent = new LLMSingleActionAgent({\n * llmChain: new LLMChain({\n * prompt: customPromptTemplate,\n * llm: new ChatOpenAI({ model: \"gpt-4o-mini\", temperature: 0 }),\n * }),\n * outputParser: customOutputParser,\n * stop: [\"\\nObservation\"],\n * });\n * const executor = new AgentExecutor({\n * agent,\n * tools: [new Calculator()],\n * });\n * const result = await executor.invoke({\n * input:\n * \"Who is Olivia Wilde's boyfriend? What is his current age raised to the 0.23 power?\",\n * });\n * ```\n */\nexport class LLMSingleActionAgent extends BaseSingleActionAgent {\n lc_namespace = [\"langchain\", \"agents\"];\n\n llmChain: LLMChain;\n\n outputParser: AgentActionOutputParser;\n\n stop?: string[];\n\n constructor(input: LLMSingleActionAgentInput) {\n super(input);\n this.stop = input.stop;\n this.llmChain = input.llmChain;\n this.outputParser = input.outputParser;\n }\n\n get inputKeys(): string[] {\n return this.llmChain.inputKeys;\n }\n\n /**\n * Decide what to do given some input.\n *\n * @param steps - Steps the LLM has taken so far, along with observations from each.\n * @param inputs - User inputs.\n * @param callbackManager - Callback manager.\n *\n * @returns Action specifying what tool to use.\n */\n async plan(\n steps: AgentStep[],\n inputs: ChainValues,\n callbackManager?: CallbackManager\n ): Promise<AgentAction | AgentFinish> {\n const output = await this.llmChain.call(\n {\n intermediate_steps: steps,\n stop: this.stop,\n ...inputs,\n },\n callbackManager\n );\n return this.outputParser.parse(\n output[this.llmChain.outputKey],\n callbackManager\n );\n }\n}\n\n/**\n * Interface for arguments used to create an agent in LangChain.\n */\nexport interface AgentArgs {\n outputParser?: AgentActionOutputParser;\n\n callbacks?: Callbacks;\n\n /**\n * @deprecated Use `callbacks` instead.\n */\n callbackManager?: CallbackManager;\n}\n\n/**\n * Class responsible for calling a language model and deciding an action.\n *\n * @remarks This is driven by an LLMChain. The prompt in the LLMChain *must*\n * include a variable called \"agent_scratchpad\" where the agent can put its\n * intermediary work.\n */\nexport abstract class Agent extends BaseSingleActionAgent {\n llmChain: LLMChain;\n\n outputParser: AgentActionOutputParser | undefined;\n\n private _allowedTools?: string[] = undefined;\n\n get allowedTools(): string[] | undefined {\n return this._allowedTools;\n }\n\n get inputKeys(): string[] {\n return this.llmChain.inputKeys.filter((k) => k !== \"agent_scratchpad\");\n }\n\n constructor(input: AgentInput) {\n super(input);\n\n this.llmChain = input.llmChain;\n this._allowedTools = input.allowedTools;\n this.outputParser = input.outputParser;\n }\n\n /**\n * Prefix to append the observation with.\n */\n abstract observationPrefix(): string;\n\n /**\n * Prefix to append the LLM call with.\n */\n abstract llmPrefix(): string;\n\n /**\n * Return the string type key uniquely identifying this class of agent.\n */\n abstract _agentType(): string;\n\n /**\n * Get the default output parser for this agent.\n */\n static getDefaultOutputParser(\n _fields?: OutputParserArgs\n ): AgentActionOutputParser {\n throw new Error(\"Not implemented\");\n }\n\n /**\n * Create a prompt for this class\n *\n * @param _tools - List of tools the agent will have access to, used to format the prompt.\n * @param _fields - Additional fields used to format the prompt.\n *\n * @returns A PromptTemplate assembled from the given tools and fields.\n * */\n static createPrompt(\n _tools: StructuredToolInterface[],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _fields?: Record<string, any>\n ): BasePromptTemplate {\n throw new Error(\"Not implemented\");\n }\n\n /** Construct an agent from an LLM and a list of tools */\n static fromLLMAndTools(\n _llm: BaseLanguageModelInterface,\n _tools: StructuredToolInterface[],\n\n _args?: AgentArgs\n ): Agent {\n throw new Error(\"Not implemented\");\n }\n\n /**\n * Validate that appropriate tools are passed in\n */\n static validateTools(_tools: StructuredToolInterface[]): void {}\n\n _stop(): string[] {\n return [`\\n${this.observationPrefix()}`];\n }\n\n /**\n * Name of tool to use to terminate the chain.\n */\n finishToolName(): string {\n return \"Final Answer\";\n }\n\n /**\n * Construct a scratchpad to let the agent continue its thought process\n */\n async constructScratchPad(\n steps: AgentStep[]\n ): Promise<string | BaseMessage[]> {\n return steps.reduce(\n (thoughts, { action, observation }) =>\n thoughts +\n [\n action.log,\n `${this.observationPrefix()}${observation}`,\n this.llmPrefix(),\n ].join(\"\\n\"),\n \"\"\n );\n }\n\n private async _plan(\n steps: AgentStep[],\n inputs: ChainValues,\n suffix?: string,\n callbackManager?: CallbackManager\n ): Promise<AgentAction | AgentFinish> {\n const thoughts = await this.constructScratchPad(steps);\n const newInputs: ChainValues = {\n ...inputs,\n agent_scratchpad: suffix ? `${thoughts}${suffix}` : thoughts,\n };\n\n if (this._stop().length !== 0) {\n newInputs.stop = this._stop();\n }\n\n const output = await this.llmChain.predict(newInputs, callbackManager);\n if (!this.outputParser) {\n throw new Error(\"Output parser not set\");\n }\n return this.outputParser.parse(output, callbackManager);\n }\n\n /**\n * Decide what to do given some input.\n *\n * @param steps - Steps the LLM has taken so far, along with observations from each.\n * @param inputs - User inputs.\n * @param callbackManager - Callback manager to use for this call.\n *\n * @returns Action specifying what tool to use.\n */\n plan(\n steps: AgentStep[],\n inputs: ChainValues,\n callbackManager?: CallbackManager\n ): Promise<AgentAction | AgentFinish> {\n return this._plan(steps, inputs, undefined, callbackManager);\n }\n\n /**\n * Return response when agent has been stopped due to max iterations\n */\n async returnStoppedResponse(\n earlyStoppingMethod: StoppingMethod,\n steps: AgentStep[],\n inputs: ChainValues,\n callbackManager?: CallbackManager\n ): Promise<AgentFinish> {\n if (earlyStoppingMethod === \"force\") {\n return {\n returnValues: { output: \"Agent stopped due to max iterations.\" },\n log: \"\",\n };\n }\n\n if (earlyStoppingMethod === \"generate\") {\n try {\n const action = await this._plan(\n steps,\n inputs,\n \"\\n\\nI now need to return a final answer based on the previous steps:\",\n callbackManager\n );\n if (\"returnValues\" in action) {\n return action;\n }\n\n return { returnValues: { output: action.log }, log: action.log };\n } catch (err) {\n // fine to use instanceof because we're in the same module\n // eslint-disable-next-line no-instanceof/no-instanceof\n if (!(err instanceof ParseError)) {\n throw err;\n }\n return { returnValues: { output: err.output }, log: err.output };\n }\n }\n\n throw new Error(`Invalid stopping method: ${earlyStoppingMethod}`);\n }\n\n /**\n * Load an agent from a json-like object describing it.\n */\n static async deserialize(\n data: SerializedAgent & {\n llm?: BaseLanguageModelInterface;\n tools?: ToolInterface[];\n }\n ): Promise<Agent> {\n switch (data._type) {\n case \"zero-shot-react-description\": {\n const { ZeroShotAgent } = await import(\"./mrkl/index.js\");\n return ZeroShotAgent.deserialize(data);\n }\n default:\n throw new Error(\"Unknown agent type\");\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent.cjs","names":["Serializable","RunnableSequence"],"sources":["../../src/agents/agent.ts"],"sourcesContent":["import type {\n StructuredToolInterface,\n ToolInterface,\n} from \"@langchain/core/tools\";\nimport type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport { CallbackManager, Callbacks } from \"@langchain/core/callbacks/manager\";\nimport { BasePromptTemplate } from \"@langchain/core/prompts\";\nimport { AgentAction, AgentFinish, AgentStep } from \"@langchain/core/agents\";\nimport { BaseMessage } from \"@langchain/core/messages\";\nimport { ChainValues } from \"@langchain/core/utils/types\";\nimport { Serializable } from \"@langchain/core/load/serializable\";\nimport {\n Runnable,\n patchConfig,\n type RunnableConfig,\n RunnableSequence,\n RunnableLike,\n} from \"@langchain/core/runnables\";\nimport { LLMChain } from \"../chains/llm_chain.js\";\nimport type {\n AgentActionOutputParser,\n AgentInput,\n RunnableMultiActionAgentInput,\n RunnableSingleActionAgentInput,\n SerializedAgent,\n StoppingMethod,\n} from \"./types.js\";\n\n/**\n * Record type for arguments passed to output parsers.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type OutputParserArgs = Record<string, any>;\n\n/**\n * Error class for parse errors in LangChain. Contains information about\n * the error message and the output that caused the error.\n */\nclass ParseError extends Error {\n output: string;\n\n constructor(msg: string, output: string) {\n super(msg);\n this.output = output;\n }\n}\n\n/**\n * Abstract base class for agents in LangChain. Provides common\n * functionality for agents, such as handling inputs and outputs.\n */\nexport abstract class BaseAgent extends Serializable {\n declare ToolType: StructuredToolInterface;\n\n abstract get inputKeys(): string[];\n\n get returnValues(): string[] {\n return [\"output\"];\n }\n\n get allowedTools(): string[] | undefined {\n return undefined;\n }\n\n /**\n * Return the string type key uniquely identifying this class of agent.\n */\n _agentType(): string {\n throw new Error(\"Not implemented\");\n }\n\n /**\n * Return the string type key uniquely identifying multi or single action agents.\n */\n abstract _agentActionType(): string;\n\n /**\n * Return response when agent has been stopped due to max iterations\n */\n returnStoppedResponse(\n earlyStoppingMethod: StoppingMethod,\n _steps: AgentStep[],\n _inputs: ChainValues,\n _callbackManager?: CallbackManager\n ): Promise<AgentFinish> {\n if (earlyStoppingMethod === \"force\") {\n return Promise.resolve({\n returnValues: { output: \"Agent stopped due to max iterations.\" },\n log: \"\",\n });\n }\n\n throw new Error(`Invalid stopping method: ${earlyStoppingMethod}`);\n }\n\n /**\n * Prepare the agent for output, if needed\n */\n async prepareForOutput(\n _returnValues: AgentFinish[\"returnValues\"],\n _steps: AgentStep[]\n ): Promise<AgentFinish[\"returnValues\"]> {\n return {};\n }\n}\n\n/**\n * Abstract base class for single action agents in LangChain. Extends the\n * BaseAgent class and provides additional functionality specific to\n * single action agents.\n */\nexport abstract class BaseSingleActionAgent extends BaseAgent {\n _agentActionType(): string {\n return \"single\" as const;\n }\n\n /**\n * Decide what to do, given some input.\n *\n * @param steps - Steps the LLM has taken so far, along with observations from each.\n * @param inputs - User inputs.\n * @param callbackManager - Callback manager.\n *\n * @returns Action specifying what tool to use.\n */\n abstract plan(\n steps: AgentStep[],\n inputs: ChainValues,\n callbackManager?: CallbackManager,\n config?: RunnableConfig\n ): Promise<AgentAction | AgentFinish>;\n}\n\n/**\n * Abstract base class for multi-action agents in LangChain. Extends the\n * BaseAgent class and provides additional functionality specific to\n * multi-action agents.\n */\nexport abstract class BaseMultiActionAgent extends BaseAgent {\n _agentActionType(): string {\n return \"multi\" as const;\n }\n\n /**\n * Decide what to do, given some input.\n *\n * @param steps - Steps the LLM has taken so far, along with observations from each.\n * @param inputs - User inputs.\n * @param callbackManager - Callback manager.\n *\n * @returns Actions specifying what tools to use.\n */\n abstract plan(\n steps: AgentStep[],\n inputs: ChainValues,\n callbackManager?: CallbackManager,\n config?: RunnableConfig\n ): Promise<AgentAction[] | AgentFinish>;\n}\n\nfunction isAgentAction(input: unknown): input is AgentAction {\n return !Array.isArray(input) && (input as AgentAction)?.tool !== undefined;\n}\n\nexport function isRunnableAgent(x: BaseAgent) {\n return (\n (x as RunnableMultiActionAgent | RunnableSingleActionAgent).runnable !==\n undefined\n );\n}\n\n// TODO: Remove in the future. Only for backwards compatibility.\n// Allows for the creation of runnables with properties that will\n// be passed to the agent executor constructor.\nexport class AgentRunnableSequence<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunInput = any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunOutput = any,\n> extends RunnableSequence<RunInput, RunOutput> {\n streamRunnable?: boolean;\n\n singleAction: boolean;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n static fromRunnables<RunInput = any, RunOutput = any>(\n [first, ...runnables]: [\n RunnableLike<RunInput>,\n ...RunnableLike[],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunnableLike<any, RunOutput>,\n ],\n config: { singleAction: boolean; streamRunnable?: boolean; name?: string }\n ): AgentRunnableSequence<RunInput, Exclude<RunOutput, Error>> {\n const sequence = RunnableSequence.from(\n [first, ...runnables],\n config.name\n ) as AgentRunnableSequence<RunInput, Exclude<RunOutput, Error>>;\n sequence.singleAction = config.singleAction;\n sequence.streamRunnable = config.streamRunnable;\n return sequence;\n }\n\n static isAgentRunnableSequence(x: Runnable): x is AgentRunnableSequence {\n return typeof (x as AgentRunnableSequence).singleAction === \"boolean\";\n }\n}\n\n/**\n * Class representing a single-action agent powered by runnables.\n * Extends the BaseSingleActionAgent class and provides methods for\n * planning agent actions with runnables.\n */\nexport class RunnableSingleActionAgent extends BaseSingleActionAgent {\n lc_namespace = [\"langchain\", \"agents\", \"runnable\"];\n\n runnable: Runnable<\n ChainValues & { steps: AgentStep[] },\n AgentAction | AgentFinish\n >;\n\n get inputKeys(): string[] {\n return [];\n }\n\n /**\n * Whether to stream from the runnable or not.\n * If true, the underlying LLM is invoked in a streaming fashion to make it\n * possible to get access to the individual LLM tokens when using\n * `streamLog` with the Agent Executor. If false then LLM is invoked in a\n * non-streaming fashion and individual LLM tokens will not be available\n * in `streamLog`.\n *\n * Note that the runnable should still only stream a single action or\n * finish chunk.\n */\n streamRunnable = true;\n\n defaultRunName = \"RunnableAgent\";\n\n constructor(fields: RunnableSingleActionAgentInput) {\n super(fields);\n this.runnable = fields.runnable;\n this.defaultRunName =\n fields.defaultRunName ?? this.runnable.name ?? this.defaultRunName;\n this.streamRunnable = fields.streamRunnable ?? this.streamRunnable;\n }\n\n async plan(\n steps: AgentStep[],\n inputs: ChainValues,\n callbackManager?: CallbackManager,\n config?: RunnableConfig\n ): Promise<AgentAction | AgentFinish> {\n const combinedInput = { ...inputs, steps };\n const combinedConfig = patchConfig(config, {\n callbacks: callbackManager,\n runName: this.defaultRunName,\n });\n if (this.streamRunnable) {\n const stream = await this.runnable.stream(combinedInput, combinedConfig);\n let finalOutput: AgentAction | AgentFinish | undefined;\n for await (const chunk of stream) {\n if (finalOutput === undefined) {\n finalOutput = chunk;\n } else {\n throw new Error(\n [\n `Multiple agent actions/finishes received in streamed agent output.`,\n `Set \"streamRunnable: false\" when initializing the agent to invoke this agent in non-streaming mode.`,\n ].join(\"\\n\")\n );\n }\n }\n if (finalOutput === undefined) {\n throw new Error(\n [\n \"No streaming output received from underlying runnable.\",\n `Set \"streamRunnable: false\" when initializing the agent to invoke this agent in non-streaming mode.`,\n ].join(\"\\n\")\n );\n }\n return finalOutput;\n } else {\n return this.runnable.invoke(combinedInput, combinedConfig);\n }\n }\n}\n\n/**\n * Class representing a multi-action agent powered by runnables.\n * Extends the BaseMultiActionAgent class and provides methods for\n * planning agent actions with runnables.\n */\nexport class RunnableMultiActionAgent extends BaseMultiActionAgent {\n lc_namespace = [\"langchain\", \"agents\", \"runnable\"];\n\n // TODO: Rename input to \"intermediate_steps\"\n runnable: Runnable<\n ChainValues & { steps: AgentStep[] },\n AgentAction[] | AgentAction | AgentFinish\n >;\n\n defaultRunName = \"RunnableAgent\";\n\n stop?: string[];\n\n streamRunnable = true;\n\n get inputKeys(): string[] {\n return [];\n }\n\n constructor(fields: RunnableMultiActionAgentInput) {\n super(fields);\n this.runnable = fields.runnable;\n this.stop = fields.stop;\n this.defaultRunName =\n fields.defaultRunName ?? this.runnable.name ?? this.defaultRunName;\n this.streamRunnable = fields.streamRunnable ?? this.streamRunnable;\n }\n\n async plan(\n steps: AgentStep[],\n inputs: ChainValues,\n callbackManager?: CallbackManager,\n config?: RunnableConfig\n ): Promise<AgentAction[] | AgentFinish> {\n const combinedInput = { ...inputs, steps };\n const combinedConfig = patchConfig(config, {\n callbacks: callbackManager,\n runName: this.defaultRunName,\n });\n let output;\n if (this.streamRunnable) {\n const stream = await this.runnable.stream(combinedInput, combinedConfig);\n let finalOutput: AgentAction | AgentFinish | AgentAction[] | undefined;\n for await (const chunk of stream) {\n if (finalOutput === undefined) {\n finalOutput = chunk;\n } else {\n throw new Error(\n [\n `Multiple agent actions/finishes received in streamed agent output.`,\n `Set \"streamRunnable: false\" when initializing the agent to invoke this agent in non-streaming mode.`,\n ].join(\"\\n\")\n );\n }\n }\n if (finalOutput === undefined) {\n throw new Error(\n [\n \"No streaming output received from underlying runnable.\",\n `Set \"streamRunnable: false\" when initializing the agent to invoke this agent in non-streaming mode.`,\n ].join(\"\\n\")\n );\n }\n output = finalOutput;\n } else {\n output = await this.runnable.invoke(combinedInput, combinedConfig);\n }\n\n if (isAgentAction(output)) {\n return [output];\n }\n\n return output;\n }\n}\n\nexport class RunnableAgent extends RunnableMultiActionAgent {}\n\n/**\n * Interface for input data for creating a LLMSingleActionAgent.\n */\nexport interface LLMSingleActionAgentInput {\n llmChain: LLMChain;\n outputParser: AgentActionOutputParser;\n stop?: string[];\n}\n\n/**\n * Class representing a single action agent using a LLMChain in LangChain.\n * Extends the BaseSingleActionAgent class and provides methods for\n * planning agent actions based on LLMChain outputs.\n * @example\n * ```typescript\n * const customPromptTemplate = new CustomPromptTemplate({\n * tools: [new Calculator()],\n * inputVariables: [\"input\", \"agent_scratchpad\"],\n * });\n * const customOutputParser = new CustomOutputParser();\n * const agent = new LLMSingleActionAgent({\n * llmChain: new LLMChain({\n * prompt: customPromptTemplate,\n * llm: new ChatOpenAI({ model: \"gpt-4o-mini\", temperature: 0 }),\n * }),\n * outputParser: customOutputParser,\n * stop: [\"\\nObservation\"],\n * });\n * const executor = new AgentExecutor({\n * agent,\n * tools: [new Calculator()],\n * });\n * const result = await executor.invoke({\n * input:\n * \"Who is Olivia Wilde's boyfriend? What is his current age raised to the 0.23 power?\",\n * });\n * ```\n */\nexport class LLMSingleActionAgent extends BaseSingleActionAgent {\n lc_namespace = [\"langchain\", \"agents\"];\n\n llmChain: LLMChain;\n\n outputParser: AgentActionOutputParser;\n\n stop?: string[];\n\n constructor(input: LLMSingleActionAgentInput) {\n super(input);\n this.stop = input.stop;\n this.llmChain = input.llmChain;\n this.outputParser = input.outputParser;\n }\n\n get inputKeys(): string[] {\n return this.llmChain.inputKeys;\n }\n\n /**\n * Decide what to do given some input.\n *\n * @param steps - Steps the LLM has taken so far, along with observations from each.\n * @param inputs - User inputs.\n * @param callbackManager - Callback manager.\n *\n * @returns Action specifying what tool to use.\n */\n async plan(\n steps: AgentStep[],\n inputs: ChainValues,\n callbackManager?: CallbackManager\n ): Promise<AgentAction | AgentFinish> {\n const output = await this.llmChain.call(\n {\n intermediate_steps: steps,\n stop: this.stop,\n ...inputs,\n },\n callbackManager\n );\n return this.outputParser.parse(\n output[this.llmChain.outputKey],\n callbackManager\n );\n }\n}\n\n/**\n * Interface for arguments used to create an agent in LangChain.\n */\nexport interface AgentArgs {\n outputParser?: AgentActionOutputParser;\n\n callbacks?: Callbacks;\n\n /**\n * @deprecated Use `callbacks` instead.\n */\n callbackManager?: CallbackManager;\n}\n\n/**\n * Class responsible for calling a language model and deciding an action.\n *\n * @remarks This is driven by an LLMChain. The prompt in the LLMChain *must*\n * include a variable called \"agent_scratchpad\" where the agent can put its\n * intermediary work.\n */\nexport abstract class Agent extends BaseSingleActionAgent {\n llmChain: LLMChain;\n\n outputParser: AgentActionOutputParser | undefined;\n\n private _allowedTools?: string[] = undefined;\n\n get allowedTools(): string[] | undefined {\n return this._allowedTools;\n }\n\n get inputKeys(): string[] {\n return this.llmChain.inputKeys.filter((k) => k !== \"agent_scratchpad\");\n }\n\n constructor(input: AgentInput) {\n super(input);\n\n this.llmChain = input.llmChain;\n this._allowedTools = input.allowedTools;\n this.outputParser = input.outputParser;\n }\n\n /**\n * Prefix to append the observation with.\n */\n abstract observationPrefix(): string;\n\n /**\n * Prefix to append the LLM call with.\n */\n abstract llmPrefix(): string;\n\n /**\n * Return the string type key uniquely identifying this class of agent.\n */\n abstract _agentType(): string;\n\n /**\n * Get the default output parser for this agent.\n */\n static getDefaultOutputParser(\n _fields?: OutputParserArgs\n ): AgentActionOutputParser {\n throw new Error(\"Not implemented\");\n }\n\n /**\n * Create a prompt for this class\n *\n * @param _tools - List of tools the agent will have access to, used to format the prompt.\n * @param _fields - Additional fields used to format the prompt.\n *\n * @returns A PromptTemplate assembled from the given tools and fields.\n * */\n static createPrompt(\n _tools: StructuredToolInterface[],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _fields?: Record<string, any>\n ): BasePromptTemplate {\n throw new Error(\"Not implemented\");\n }\n\n /** Construct an agent from an LLM and a list of tools */\n static fromLLMAndTools(\n _llm: BaseLanguageModelInterface,\n _tools: StructuredToolInterface[],\n\n _args?: AgentArgs\n ): Agent {\n throw new Error(\"Not implemented\");\n }\n\n /**\n * Validate that appropriate tools are passed in\n */\n static validateTools(_tools: StructuredToolInterface[]): void {}\n\n _stop(): string[] {\n return [`\\n${this.observationPrefix()}`];\n }\n\n /**\n * Name of tool to use to terminate the chain.\n */\n finishToolName(): string {\n return \"Final Answer\";\n }\n\n /**\n * Construct a scratchpad to let the agent continue its thought process\n */\n async constructScratchPad(\n steps: AgentStep[]\n ): Promise<string | BaseMessage[]> {\n return steps.reduce(\n (thoughts, { action, observation }) =>\n thoughts +\n [\n action.log,\n `${this.observationPrefix()}${observation}`,\n this.llmPrefix(),\n ].join(\"\\n\"),\n \"\"\n );\n }\n\n private async _plan(\n steps: AgentStep[],\n inputs: ChainValues,\n suffix?: string,\n callbackManager?: CallbackManager\n ): Promise<AgentAction | AgentFinish> {\n const thoughts = await this.constructScratchPad(steps);\n const newInputs: ChainValues = {\n ...inputs,\n agent_scratchpad: suffix ? `${thoughts}${suffix}` : thoughts,\n };\n\n if (this._stop().length !== 0) {\n newInputs.stop = this._stop();\n }\n\n const output = await this.llmChain.predict(newInputs, callbackManager);\n if (!this.outputParser) {\n throw new Error(\"Output parser not set\");\n }\n return this.outputParser.parse(output, callbackManager);\n }\n\n /**\n * Decide what to do given some input.\n *\n * @param steps - Steps the LLM has taken so far, along with observations from each.\n * @param inputs - User inputs.\n * @param callbackManager - Callback manager to use for this call.\n *\n * @returns Action specifying what tool to use.\n */\n plan(\n steps: AgentStep[],\n inputs: ChainValues,\n callbackManager?: CallbackManager\n ): Promise<AgentAction | AgentFinish> {\n return this._plan(steps, inputs, undefined, callbackManager);\n }\n\n /**\n * Return response when agent has been stopped due to max iterations\n */\n async returnStoppedResponse(\n earlyStoppingMethod: StoppingMethod,\n steps: AgentStep[],\n inputs: ChainValues,\n callbackManager?: CallbackManager\n ): Promise<AgentFinish> {\n if (earlyStoppingMethod === \"force\") {\n return {\n returnValues: { output: \"Agent stopped due to max iterations.\" },\n log: \"\",\n };\n }\n\n if (earlyStoppingMethod === \"generate\") {\n try {\n const action = await this._plan(\n steps,\n inputs,\n \"\\n\\nI now need to return a final answer based on the previous steps:\",\n callbackManager\n );\n if (\"returnValues\" in action) {\n return action;\n }\n\n return { returnValues: { output: action.log }, log: action.log };\n } catch (err) {\n // fine to use instanceof because we're in the same module\n // eslint-disable-next-line no-instanceof/no-instanceof\n if (!(err instanceof ParseError)) {\n throw err;\n }\n return { returnValues: { output: err.output }, log: err.output };\n }\n }\n\n throw new Error(`Invalid stopping method: ${earlyStoppingMethod}`);\n }\n\n /**\n * Load an agent from a json-like object describing it.\n */\n static async deserialize(\n data: SerializedAgent & {\n llm?: BaseLanguageModelInterface;\n tools?: ToolInterface[];\n }\n ): Promise<Agent> {\n switch (data._type) {\n case \"zero-shot-react-description\": {\n const { ZeroShotAgent } = await import(\"./mrkl/index.js\");\n return ZeroShotAgent.deserialize(data);\n }\n default:\n throw new Error(\"Unknown agent type\");\n }\n }\n}\n"],"mappings":"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"}
|
package/dist/agents/agent.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Serializable } from "@langchain/core/load/serializable";
|
|
2
2
|
import { RunnableSequence, patchConfig } from "@langchain/core/runnables";
|
|
3
|
-
|
|
4
3
|
//#region src/agents/agent.ts
|
|
5
4
|
/**
|
|
6
5
|
* Error class for parse errors in LangChain. Contains information about
|
|
@@ -373,7 +372,7 @@ var Agent = class extends BaseSingleActionAgent {
|
|
|
373
372
|
}
|
|
374
373
|
}
|
|
375
374
|
};
|
|
376
|
-
|
|
377
375
|
//#endregion
|
|
378
376
|
export { Agent, AgentRunnableSequence, BaseMultiActionAgent, BaseSingleActionAgent, LLMSingleActionAgent, RunnableAgent, RunnableMultiActionAgent, RunnableSingleActionAgent, isRunnableAgent };
|
|
377
|
+
|
|
379
378
|
//# sourceMappingURL=agent.js.map
|
package/dist/agents/agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","names":[],"sources":["../../src/agents/agent.ts"],"sourcesContent":["import type {\n StructuredToolInterface,\n ToolInterface,\n} from \"@langchain/core/tools\";\nimport type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport { CallbackManager, Callbacks } from \"@langchain/core/callbacks/manager\";\nimport { BasePromptTemplate } from \"@langchain/core/prompts\";\nimport { AgentAction, AgentFinish, AgentStep } from \"@langchain/core/agents\";\nimport { BaseMessage } from \"@langchain/core/messages\";\nimport { ChainValues } from \"@langchain/core/utils/types\";\nimport { Serializable } from \"@langchain/core/load/serializable\";\nimport {\n Runnable,\n patchConfig,\n type RunnableConfig,\n RunnableSequence,\n RunnableLike,\n} from \"@langchain/core/runnables\";\nimport { LLMChain } from \"../chains/llm_chain.js\";\nimport type {\n AgentActionOutputParser,\n AgentInput,\n RunnableMultiActionAgentInput,\n RunnableSingleActionAgentInput,\n SerializedAgent,\n StoppingMethod,\n} from \"./types.js\";\n\n/**\n * Record type for arguments passed to output parsers.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type OutputParserArgs = Record<string, any>;\n\n/**\n * Error class for parse errors in LangChain. Contains information about\n * the error message and the output that caused the error.\n */\nclass ParseError extends Error {\n output: string;\n\n constructor(msg: string, output: string) {\n super(msg);\n this.output = output;\n }\n}\n\n/**\n * Abstract base class for agents in LangChain. Provides common\n * functionality for agents, such as handling inputs and outputs.\n */\nexport abstract class BaseAgent extends Serializable {\n declare ToolType: StructuredToolInterface;\n\n abstract get inputKeys(): string[];\n\n get returnValues(): string[] {\n return [\"output\"];\n }\n\n get allowedTools(): string[] | undefined {\n return undefined;\n }\n\n /**\n * Return the string type key uniquely identifying this class of agent.\n */\n _agentType(): string {\n throw new Error(\"Not implemented\");\n }\n\n /**\n * Return the string type key uniquely identifying multi or single action agents.\n */\n abstract _agentActionType(): string;\n\n /**\n * Return response when agent has been stopped due to max iterations\n */\n returnStoppedResponse(\n earlyStoppingMethod: StoppingMethod,\n _steps: AgentStep[],\n _inputs: ChainValues,\n _callbackManager?: CallbackManager\n ): Promise<AgentFinish> {\n if (earlyStoppingMethod === \"force\") {\n return Promise.resolve({\n returnValues: { output: \"Agent stopped due to max iterations.\" },\n log: \"\",\n });\n }\n\n throw new Error(`Invalid stopping method: ${earlyStoppingMethod}`);\n }\n\n /**\n * Prepare the agent for output, if needed\n */\n async prepareForOutput(\n _returnValues: AgentFinish[\"returnValues\"],\n _steps: AgentStep[]\n ): Promise<AgentFinish[\"returnValues\"]> {\n return {};\n }\n}\n\n/**\n * Abstract base class for single action agents in LangChain. Extends the\n * BaseAgent class and provides additional functionality specific to\n * single action agents.\n */\nexport abstract class BaseSingleActionAgent extends BaseAgent {\n _agentActionType(): string {\n return \"single\" as const;\n }\n\n /**\n * Decide what to do, given some input.\n *\n * @param steps - Steps the LLM has taken so far, along with observations from each.\n * @param inputs - User inputs.\n * @param callbackManager - Callback manager.\n *\n * @returns Action specifying what tool to use.\n */\n abstract plan(\n steps: AgentStep[],\n inputs: ChainValues,\n callbackManager?: CallbackManager,\n config?: RunnableConfig\n ): Promise<AgentAction | AgentFinish>;\n}\n\n/**\n * Abstract base class for multi-action agents in LangChain. Extends the\n * BaseAgent class and provides additional functionality specific to\n * multi-action agents.\n */\nexport abstract class BaseMultiActionAgent extends BaseAgent {\n _agentActionType(): string {\n return \"multi\" as const;\n }\n\n /**\n * Decide what to do, given some input.\n *\n * @param steps - Steps the LLM has taken so far, along with observations from each.\n * @param inputs - User inputs.\n * @param callbackManager - Callback manager.\n *\n * @returns Actions specifying what tools to use.\n */\n abstract plan(\n steps: AgentStep[],\n inputs: ChainValues,\n callbackManager?: CallbackManager,\n config?: RunnableConfig\n ): Promise<AgentAction[] | AgentFinish>;\n}\n\nfunction isAgentAction(input: unknown): input is AgentAction {\n return !Array.isArray(input) && (input as AgentAction)?.tool !== undefined;\n}\n\nexport function isRunnableAgent(x: BaseAgent) {\n return (\n (x as RunnableMultiActionAgent | RunnableSingleActionAgent).runnable !==\n undefined\n );\n}\n\n// TODO: Remove in the future. Only for backwards compatibility.\n// Allows for the creation of runnables with properties that will\n// be passed to the agent executor constructor.\nexport class AgentRunnableSequence<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunInput = any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunOutput = any,\n> extends RunnableSequence<RunInput, RunOutput> {\n streamRunnable?: boolean;\n\n singleAction: boolean;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n static fromRunnables<RunInput = any, RunOutput = any>(\n [first, ...runnables]: [\n RunnableLike<RunInput>,\n ...RunnableLike[],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunnableLike<any, RunOutput>,\n ],\n config: { singleAction: boolean; streamRunnable?: boolean; name?: string }\n ): AgentRunnableSequence<RunInput, Exclude<RunOutput, Error>> {\n const sequence = RunnableSequence.from(\n [first, ...runnables],\n config.name\n ) as AgentRunnableSequence<RunInput, Exclude<RunOutput, Error>>;\n sequence.singleAction = config.singleAction;\n sequence.streamRunnable = config.streamRunnable;\n return sequence;\n }\n\n static isAgentRunnableSequence(x: Runnable): x is AgentRunnableSequence {\n return typeof (x as AgentRunnableSequence).singleAction === \"boolean\";\n }\n}\n\n/**\n * Class representing a single-action agent powered by runnables.\n * Extends the BaseSingleActionAgent class and provides methods for\n * planning agent actions with runnables.\n */\nexport class RunnableSingleActionAgent extends BaseSingleActionAgent {\n lc_namespace = [\"langchain\", \"agents\", \"runnable\"];\n\n runnable: Runnable<\n ChainValues & { steps: AgentStep[] },\n AgentAction | AgentFinish\n >;\n\n get inputKeys(): string[] {\n return [];\n }\n\n /**\n * Whether to stream from the runnable or not.\n * If true, the underlying LLM is invoked in a streaming fashion to make it\n * possible to get access to the individual LLM tokens when using\n * `streamLog` with the Agent Executor. If false then LLM is invoked in a\n * non-streaming fashion and individual LLM tokens will not be available\n * in `streamLog`.\n *\n * Note that the runnable should still only stream a single action or\n * finish chunk.\n */\n streamRunnable = true;\n\n defaultRunName = \"RunnableAgent\";\n\n constructor(fields: RunnableSingleActionAgentInput) {\n super(fields);\n this.runnable = fields.runnable;\n this.defaultRunName =\n fields.defaultRunName ?? this.runnable.name ?? this.defaultRunName;\n this.streamRunnable = fields.streamRunnable ?? this.streamRunnable;\n }\n\n async plan(\n steps: AgentStep[],\n inputs: ChainValues,\n callbackManager?: CallbackManager,\n config?: RunnableConfig\n ): Promise<AgentAction | AgentFinish> {\n const combinedInput = { ...inputs, steps };\n const combinedConfig = patchConfig(config, {\n callbacks: callbackManager,\n runName: this.defaultRunName,\n });\n if (this.streamRunnable) {\n const stream = await this.runnable.stream(combinedInput, combinedConfig);\n let finalOutput: AgentAction | AgentFinish | undefined;\n for await (const chunk of stream) {\n if (finalOutput === undefined) {\n finalOutput = chunk;\n } else {\n throw new Error(\n [\n `Multiple agent actions/finishes received in streamed agent output.`,\n `Set \"streamRunnable: false\" when initializing the agent to invoke this agent in non-streaming mode.`,\n ].join(\"\\n\")\n );\n }\n }\n if (finalOutput === undefined) {\n throw new Error(\n [\n \"No streaming output received from underlying runnable.\",\n `Set \"streamRunnable: false\" when initializing the agent to invoke this agent in non-streaming mode.`,\n ].join(\"\\n\")\n );\n }\n return finalOutput;\n } else {\n return this.runnable.invoke(combinedInput, combinedConfig);\n }\n }\n}\n\n/**\n * Class representing a multi-action agent powered by runnables.\n * Extends the BaseMultiActionAgent class and provides methods for\n * planning agent actions with runnables.\n */\nexport class RunnableMultiActionAgent extends BaseMultiActionAgent {\n lc_namespace = [\"langchain\", \"agents\", \"runnable\"];\n\n // TODO: Rename input to \"intermediate_steps\"\n runnable: Runnable<\n ChainValues & { steps: AgentStep[] },\n AgentAction[] | AgentAction | AgentFinish\n >;\n\n defaultRunName = \"RunnableAgent\";\n\n stop?: string[];\n\n streamRunnable = true;\n\n get inputKeys(): string[] {\n return [];\n }\n\n constructor(fields: RunnableMultiActionAgentInput) {\n super(fields);\n this.runnable = fields.runnable;\n this.stop = fields.stop;\n this.defaultRunName =\n fields.defaultRunName ?? this.runnable.name ?? this.defaultRunName;\n this.streamRunnable = fields.streamRunnable ?? this.streamRunnable;\n }\n\n async plan(\n steps: AgentStep[],\n inputs: ChainValues,\n callbackManager?: CallbackManager,\n config?: RunnableConfig\n ): Promise<AgentAction[] | AgentFinish> {\n const combinedInput = { ...inputs, steps };\n const combinedConfig = patchConfig(config, {\n callbacks: callbackManager,\n runName: this.defaultRunName,\n });\n let output;\n if (this.streamRunnable) {\n const stream = await this.runnable.stream(combinedInput, combinedConfig);\n let finalOutput: AgentAction | AgentFinish | AgentAction[] | undefined;\n for await (const chunk of stream) {\n if (finalOutput === undefined) {\n finalOutput = chunk;\n } else {\n throw new Error(\n [\n `Multiple agent actions/finishes received in streamed agent output.`,\n `Set \"streamRunnable: false\" when initializing the agent to invoke this agent in non-streaming mode.`,\n ].join(\"\\n\")\n );\n }\n }\n if (finalOutput === undefined) {\n throw new Error(\n [\n \"No streaming output received from underlying runnable.\",\n `Set \"streamRunnable: false\" when initializing the agent to invoke this agent in non-streaming mode.`,\n ].join(\"\\n\")\n );\n }\n output = finalOutput;\n } else {\n output = await this.runnable.invoke(combinedInput, combinedConfig);\n }\n\n if (isAgentAction(output)) {\n return [output];\n }\n\n return output;\n }\n}\n\nexport class RunnableAgent extends RunnableMultiActionAgent {}\n\n/**\n * Interface for input data for creating a LLMSingleActionAgent.\n */\nexport interface LLMSingleActionAgentInput {\n llmChain: LLMChain;\n outputParser: AgentActionOutputParser;\n stop?: string[];\n}\n\n/**\n * Class representing a single action agent using a LLMChain in LangChain.\n * Extends the BaseSingleActionAgent class and provides methods for\n * planning agent actions based on LLMChain outputs.\n * @example\n * ```typescript\n * const customPromptTemplate = new CustomPromptTemplate({\n * tools: [new Calculator()],\n * inputVariables: [\"input\", \"agent_scratchpad\"],\n * });\n * const customOutputParser = new CustomOutputParser();\n * const agent = new LLMSingleActionAgent({\n * llmChain: new LLMChain({\n * prompt: customPromptTemplate,\n * llm: new ChatOpenAI({ model: \"gpt-4o-mini\", temperature: 0 }),\n * }),\n * outputParser: customOutputParser,\n * stop: [\"\\nObservation\"],\n * });\n * const executor = new AgentExecutor({\n * agent,\n * tools: [new Calculator()],\n * });\n * const result = await executor.invoke({\n * input:\n * \"Who is Olivia Wilde's boyfriend? What is his current age raised to the 0.23 power?\",\n * });\n * ```\n */\nexport class LLMSingleActionAgent extends BaseSingleActionAgent {\n lc_namespace = [\"langchain\", \"agents\"];\n\n llmChain: LLMChain;\n\n outputParser: AgentActionOutputParser;\n\n stop?: string[];\n\n constructor(input: LLMSingleActionAgentInput) {\n super(input);\n this.stop = input.stop;\n this.llmChain = input.llmChain;\n this.outputParser = input.outputParser;\n }\n\n get inputKeys(): string[] {\n return this.llmChain.inputKeys;\n }\n\n /**\n * Decide what to do given some input.\n *\n * @param steps - Steps the LLM has taken so far, along with observations from each.\n * @param inputs - User inputs.\n * @param callbackManager - Callback manager.\n *\n * @returns Action specifying what tool to use.\n */\n async plan(\n steps: AgentStep[],\n inputs: ChainValues,\n callbackManager?: CallbackManager\n ): Promise<AgentAction | AgentFinish> {\n const output = await this.llmChain.call(\n {\n intermediate_steps: steps,\n stop: this.stop,\n ...inputs,\n },\n callbackManager\n );\n return this.outputParser.parse(\n output[this.llmChain.outputKey],\n callbackManager\n );\n }\n}\n\n/**\n * Interface for arguments used to create an agent in LangChain.\n */\nexport interface AgentArgs {\n outputParser?: AgentActionOutputParser;\n\n callbacks?: Callbacks;\n\n /**\n * @deprecated Use `callbacks` instead.\n */\n callbackManager?: CallbackManager;\n}\n\n/**\n * Class responsible for calling a language model and deciding an action.\n *\n * @remarks This is driven by an LLMChain. The prompt in the LLMChain *must*\n * include a variable called \"agent_scratchpad\" where the agent can put its\n * intermediary work.\n */\nexport abstract class Agent extends BaseSingleActionAgent {\n llmChain: LLMChain;\n\n outputParser: AgentActionOutputParser | undefined;\n\n private _allowedTools?: string[] = undefined;\n\n get allowedTools(): string[] | undefined {\n return this._allowedTools;\n }\n\n get inputKeys(): string[] {\n return this.llmChain.inputKeys.filter((k) => k !== \"agent_scratchpad\");\n }\n\n constructor(input: AgentInput) {\n super(input);\n\n this.llmChain = input.llmChain;\n this._allowedTools = input.allowedTools;\n this.outputParser = input.outputParser;\n }\n\n /**\n * Prefix to append the observation with.\n */\n abstract observationPrefix(): string;\n\n /**\n * Prefix to append the LLM call with.\n */\n abstract llmPrefix(): string;\n\n /**\n * Return the string type key uniquely identifying this class of agent.\n */\n abstract _agentType(): string;\n\n /**\n * Get the default output parser for this agent.\n */\n static getDefaultOutputParser(\n _fields?: OutputParserArgs\n ): AgentActionOutputParser {\n throw new Error(\"Not implemented\");\n }\n\n /**\n * Create a prompt for this class\n *\n * @param _tools - List of tools the agent will have access to, used to format the prompt.\n * @param _fields - Additional fields used to format the prompt.\n *\n * @returns A PromptTemplate assembled from the given tools and fields.\n * */\n static createPrompt(\n _tools: StructuredToolInterface[],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _fields?: Record<string, any>\n ): BasePromptTemplate {\n throw new Error(\"Not implemented\");\n }\n\n /** Construct an agent from an LLM and a list of tools */\n static fromLLMAndTools(\n _llm: BaseLanguageModelInterface,\n _tools: StructuredToolInterface[],\n\n _args?: AgentArgs\n ): Agent {\n throw new Error(\"Not implemented\");\n }\n\n /**\n * Validate that appropriate tools are passed in\n */\n static validateTools(_tools: StructuredToolInterface[]): void {}\n\n _stop(): string[] {\n return [`\\n${this.observationPrefix()}`];\n }\n\n /**\n * Name of tool to use to terminate the chain.\n */\n finishToolName(): string {\n return \"Final Answer\";\n }\n\n /**\n * Construct a scratchpad to let the agent continue its thought process\n */\n async constructScratchPad(\n steps: AgentStep[]\n ): Promise<string | BaseMessage[]> {\n return steps.reduce(\n (thoughts, { action, observation }) =>\n thoughts +\n [\n action.log,\n `${this.observationPrefix()}${observation}`,\n this.llmPrefix(),\n ].join(\"\\n\"),\n \"\"\n );\n }\n\n private async _plan(\n steps: AgentStep[],\n inputs: ChainValues,\n suffix?: string,\n callbackManager?: CallbackManager\n ): Promise<AgentAction | AgentFinish> {\n const thoughts = await this.constructScratchPad(steps);\n const newInputs: ChainValues = {\n ...inputs,\n agent_scratchpad: suffix ? `${thoughts}${suffix}` : thoughts,\n };\n\n if (this._stop().length !== 0) {\n newInputs.stop = this._stop();\n }\n\n const output = await this.llmChain.predict(newInputs, callbackManager);\n if (!this.outputParser) {\n throw new Error(\"Output parser not set\");\n }\n return this.outputParser.parse(output, callbackManager);\n }\n\n /**\n * Decide what to do given some input.\n *\n * @param steps - Steps the LLM has taken so far, along with observations from each.\n * @param inputs - User inputs.\n * @param callbackManager - Callback manager to use for this call.\n *\n * @returns Action specifying what tool to use.\n */\n plan(\n steps: AgentStep[],\n inputs: ChainValues,\n callbackManager?: CallbackManager\n ): Promise<AgentAction | AgentFinish> {\n return this._plan(steps, inputs, undefined, callbackManager);\n }\n\n /**\n * Return response when agent has been stopped due to max iterations\n */\n async returnStoppedResponse(\n earlyStoppingMethod: StoppingMethod,\n steps: AgentStep[],\n inputs: ChainValues,\n callbackManager?: CallbackManager\n ): Promise<AgentFinish> {\n if (earlyStoppingMethod === \"force\") {\n return {\n returnValues: { output: \"Agent stopped due to max iterations.\" },\n log: \"\",\n };\n }\n\n if (earlyStoppingMethod === \"generate\") {\n try {\n const action = await this._plan(\n steps,\n inputs,\n \"\\n\\nI now need to return a final answer based on the previous steps:\",\n callbackManager\n );\n if (\"returnValues\" in action) {\n return action;\n }\n\n return { returnValues: { output: action.log }, log: action.log };\n } catch (err) {\n // fine to use instanceof because we're in the same module\n // eslint-disable-next-line no-instanceof/no-instanceof\n if (!(err instanceof ParseError)) {\n throw err;\n }\n return { returnValues: { output: err.output }, log: err.output };\n }\n }\n\n throw new Error(`Invalid stopping method: ${earlyStoppingMethod}`);\n }\n\n /**\n * Load an agent from a json-like object describing it.\n */\n static async deserialize(\n data: SerializedAgent & {\n llm?: BaseLanguageModelInterface;\n tools?: ToolInterface[];\n }\n ): Promise<Agent> {\n switch (data._type) {\n case \"zero-shot-react-description\": {\n const { ZeroShotAgent } = await import(\"./mrkl/index.js\");\n return ZeroShotAgent.deserialize(data);\n }\n default:\n throw new Error(\"Unknown agent type\");\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent.js","names":[],"sources":["../../src/agents/agent.ts"],"sourcesContent":["import type {\n StructuredToolInterface,\n ToolInterface,\n} from \"@langchain/core/tools\";\nimport type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport { CallbackManager, Callbacks } from \"@langchain/core/callbacks/manager\";\nimport { BasePromptTemplate } from \"@langchain/core/prompts\";\nimport { AgentAction, AgentFinish, AgentStep } from \"@langchain/core/agents\";\nimport { BaseMessage } from \"@langchain/core/messages\";\nimport { ChainValues } from \"@langchain/core/utils/types\";\nimport { Serializable } from \"@langchain/core/load/serializable\";\nimport {\n Runnable,\n patchConfig,\n type RunnableConfig,\n RunnableSequence,\n RunnableLike,\n} from \"@langchain/core/runnables\";\nimport { LLMChain } from \"../chains/llm_chain.js\";\nimport type {\n AgentActionOutputParser,\n AgentInput,\n RunnableMultiActionAgentInput,\n RunnableSingleActionAgentInput,\n SerializedAgent,\n StoppingMethod,\n} from \"./types.js\";\n\n/**\n * Record type for arguments passed to output parsers.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type OutputParserArgs = Record<string, any>;\n\n/**\n * Error class for parse errors in LangChain. Contains information about\n * the error message and the output that caused the error.\n */\nclass ParseError extends Error {\n output: string;\n\n constructor(msg: string, output: string) {\n super(msg);\n this.output = output;\n }\n}\n\n/**\n * Abstract base class for agents in LangChain. Provides common\n * functionality for agents, such as handling inputs and outputs.\n */\nexport abstract class BaseAgent extends Serializable {\n declare ToolType: StructuredToolInterface;\n\n abstract get inputKeys(): string[];\n\n get returnValues(): string[] {\n return [\"output\"];\n }\n\n get allowedTools(): string[] | undefined {\n return undefined;\n }\n\n /**\n * Return the string type key uniquely identifying this class of agent.\n */\n _agentType(): string {\n throw new Error(\"Not implemented\");\n }\n\n /**\n * Return the string type key uniquely identifying multi or single action agents.\n */\n abstract _agentActionType(): string;\n\n /**\n * Return response when agent has been stopped due to max iterations\n */\n returnStoppedResponse(\n earlyStoppingMethod: StoppingMethod,\n _steps: AgentStep[],\n _inputs: ChainValues,\n _callbackManager?: CallbackManager\n ): Promise<AgentFinish> {\n if (earlyStoppingMethod === \"force\") {\n return Promise.resolve({\n returnValues: { output: \"Agent stopped due to max iterations.\" },\n log: \"\",\n });\n }\n\n throw new Error(`Invalid stopping method: ${earlyStoppingMethod}`);\n }\n\n /**\n * Prepare the agent for output, if needed\n */\n async prepareForOutput(\n _returnValues: AgentFinish[\"returnValues\"],\n _steps: AgentStep[]\n ): Promise<AgentFinish[\"returnValues\"]> {\n return {};\n }\n}\n\n/**\n * Abstract base class for single action agents in LangChain. Extends the\n * BaseAgent class and provides additional functionality specific to\n * single action agents.\n */\nexport abstract class BaseSingleActionAgent extends BaseAgent {\n _agentActionType(): string {\n return \"single\" as const;\n }\n\n /**\n * Decide what to do, given some input.\n *\n * @param steps - Steps the LLM has taken so far, along with observations from each.\n * @param inputs - User inputs.\n * @param callbackManager - Callback manager.\n *\n * @returns Action specifying what tool to use.\n */\n abstract plan(\n steps: AgentStep[],\n inputs: ChainValues,\n callbackManager?: CallbackManager,\n config?: RunnableConfig\n ): Promise<AgentAction | AgentFinish>;\n}\n\n/**\n * Abstract base class for multi-action agents in LangChain. Extends the\n * BaseAgent class and provides additional functionality specific to\n * multi-action agents.\n */\nexport abstract class BaseMultiActionAgent extends BaseAgent {\n _agentActionType(): string {\n return \"multi\" as const;\n }\n\n /**\n * Decide what to do, given some input.\n *\n * @param steps - Steps the LLM has taken so far, along with observations from each.\n * @param inputs - User inputs.\n * @param callbackManager - Callback manager.\n *\n * @returns Actions specifying what tools to use.\n */\n abstract plan(\n steps: AgentStep[],\n inputs: ChainValues,\n callbackManager?: CallbackManager,\n config?: RunnableConfig\n ): Promise<AgentAction[] | AgentFinish>;\n}\n\nfunction isAgentAction(input: unknown): input is AgentAction {\n return !Array.isArray(input) && (input as AgentAction)?.tool !== undefined;\n}\n\nexport function isRunnableAgent(x: BaseAgent) {\n return (\n (x as RunnableMultiActionAgent | RunnableSingleActionAgent).runnable !==\n undefined\n );\n}\n\n// TODO: Remove in the future. Only for backwards compatibility.\n// Allows for the creation of runnables with properties that will\n// be passed to the agent executor constructor.\nexport class AgentRunnableSequence<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunInput = any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunOutput = any,\n> extends RunnableSequence<RunInput, RunOutput> {\n streamRunnable?: boolean;\n\n singleAction: boolean;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n static fromRunnables<RunInput = any, RunOutput = any>(\n [first, ...runnables]: [\n RunnableLike<RunInput>,\n ...RunnableLike[],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunnableLike<any, RunOutput>,\n ],\n config: { singleAction: boolean; streamRunnable?: boolean; name?: string }\n ): AgentRunnableSequence<RunInput, Exclude<RunOutput, Error>> {\n const sequence = RunnableSequence.from(\n [first, ...runnables],\n config.name\n ) as AgentRunnableSequence<RunInput, Exclude<RunOutput, Error>>;\n sequence.singleAction = config.singleAction;\n sequence.streamRunnable = config.streamRunnable;\n return sequence;\n }\n\n static isAgentRunnableSequence(x: Runnable): x is AgentRunnableSequence {\n return typeof (x as AgentRunnableSequence).singleAction === \"boolean\";\n }\n}\n\n/**\n * Class representing a single-action agent powered by runnables.\n * Extends the BaseSingleActionAgent class and provides methods for\n * planning agent actions with runnables.\n */\nexport class RunnableSingleActionAgent extends BaseSingleActionAgent {\n lc_namespace = [\"langchain\", \"agents\", \"runnable\"];\n\n runnable: Runnable<\n ChainValues & { steps: AgentStep[] },\n AgentAction | AgentFinish\n >;\n\n get inputKeys(): string[] {\n return [];\n }\n\n /**\n * Whether to stream from the runnable or not.\n * If true, the underlying LLM is invoked in a streaming fashion to make it\n * possible to get access to the individual LLM tokens when using\n * `streamLog` with the Agent Executor. If false then LLM is invoked in a\n * non-streaming fashion and individual LLM tokens will not be available\n * in `streamLog`.\n *\n * Note that the runnable should still only stream a single action or\n * finish chunk.\n */\n streamRunnable = true;\n\n defaultRunName = \"RunnableAgent\";\n\n constructor(fields: RunnableSingleActionAgentInput) {\n super(fields);\n this.runnable = fields.runnable;\n this.defaultRunName =\n fields.defaultRunName ?? this.runnable.name ?? this.defaultRunName;\n this.streamRunnable = fields.streamRunnable ?? this.streamRunnable;\n }\n\n async plan(\n steps: AgentStep[],\n inputs: ChainValues,\n callbackManager?: CallbackManager,\n config?: RunnableConfig\n ): Promise<AgentAction | AgentFinish> {\n const combinedInput = { ...inputs, steps };\n const combinedConfig = patchConfig(config, {\n callbacks: callbackManager,\n runName: this.defaultRunName,\n });\n if (this.streamRunnable) {\n const stream = await this.runnable.stream(combinedInput, combinedConfig);\n let finalOutput: AgentAction | AgentFinish | undefined;\n for await (const chunk of stream) {\n if (finalOutput === undefined) {\n finalOutput = chunk;\n } else {\n throw new Error(\n [\n `Multiple agent actions/finishes received in streamed agent output.`,\n `Set \"streamRunnable: false\" when initializing the agent to invoke this agent in non-streaming mode.`,\n ].join(\"\\n\")\n );\n }\n }\n if (finalOutput === undefined) {\n throw new Error(\n [\n \"No streaming output received from underlying runnable.\",\n `Set \"streamRunnable: false\" when initializing the agent to invoke this agent in non-streaming mode.`,\n ].join(\"\\n\")\n );\n }\n return finalOutput;\n } else {\n return this.runnable.invoke(combinedInput, combinedConfig);\n }\n }\n}\n\n/**\n * Class representing a multi-action agent powered by runnables.\n * Extends the BaseMultiActionAgent class and provides methods for\n * planning agent actions with runnables.\n */\nexport class RunnableMultiActionAgent extends BaseMultiActionAgent {\n lc_namespace = [\"langchain\", \"agents\", \"runnable\"];\n\n // TODO: Rename input to \"intermediate_steps\"\n runnable: Runnable<\n ChainValues & { steps: AgentStep[] },\n AgentAction[] | AgentAction | AgentFinish\n >;\n\n defaultRunName = \"RunnableAgent\";\n\n stop?: string[];\n\n streamRunnable = true;\n\n get inputKeys(): string[] {\n return [];\n }\n\n constructor(fields: RunnableMultiActionAgentInput) {\n super(fields);\n this.runnable = fields.runnable;\n this.stop = fields.stop;\n this.defaultRunName =\n fields.defaultRunName ?? this.runnable.name ?? this.defaultRunName;\n this.streamRunnable = fields.streamRunnable ?? this.streamRunnable;\n }\n\n async plan(\n steps: AgentStep[],\n inputs: ChainValues,\n callbackManager?: CallbackManager,\n config?: RunnableConfig\n ): Promise<AgentAction[] | AgentFinish> {\n const combinedInput = { ...inputs, steps };\n const combinedConfig = patchConfig(config, {\n callbacks: callbackManager,\n runName: this.defaultRunName,\n });\n let output;\n if (this.streamRunnable) {\n const stream = await this.runnable.stream(combinedInput, combinedConfig);\n let finalOutput: AgentAction | AgentFinish | AgentAction[] | undefined;\n for await (const chunk of stream) {\n if (finalOutput === undefined) {\n finalOutput = chunk;\n } else {\n throw new Error(\n [\n `Multiple agent actions/finishes received in streamed agent output.`,\n `Set \"streamRunnable: false\" when initializing the agent to invoke this agent in non-streaming mode.`,\n ].join(\"\\n\")\n );\n }\n }\n if (finalOutput === undefined) {\n throw new Error(\n [\n \"No streaming output received from underlying runnable.\",\n `Set \"streamRunnable: false\" when initializing the agent to invoke this agent in non-streaming mode.`,\n ].join(\"\\n\")\n );\n }\n output = finalOutput;\n } else {\n output = await this.runnable.invoke(combinedInput, combinedConfig);\n }\n\n if (isAgentAction(output)) {\n return [output];\n }\n\n return output;\n }\n}\n\nexport class RunnableAgent extends RunnableMultiActionAgent {}\n\n/**\n * Interface for input data for creating a LLMSingleActionAgent.\n */\nexport interface LLMSingleActionAgentInput {\n llmChain: LLMChain;\n outputParser: AgentActionOutputParser;\n stop?: string[];\n}\n\n/**\n * Class representing a single action agent using a LLMChain in LangChain.\n * Extends the BaseSingleActionAgent class and provides methods for\n * planning agent actions based on LLMChain outputs.\n * @example\n * ```typescript\n * const customPromptTemplate = new CustomPromptTemplate({\n * tools: [new Calculator()],\n * inputVariables: [\"input\", \"agent_scratchpad\"],\n * });\n * const customOutputParser = new CustomOutputParser();\n * const agent = new LLMSingleActionAgent({\n * llmChain: new LLMChain({\n * prompt: customPromptTemplate,\n * llm: new ChatOpenAI({ model: \"gpt-4o-mini\", temperature: 0 }),\n * }),\n * outputParser: customOutputParser,\n * stop: [\"\\nObservation\"],\n * });\n * const executor = new AgentExecutor({\n * agent,\n * tools: [new Calculator()],\n * });\n * const result = await executor.invoke({\n * input:\n * \"Who is Olivia Wilde's boyfriend? What is his current age raised to the 0.23 power?\",\n * });\n * ```\n */\nexport class LLMSingleActionAgent extends BaseSingleActionAgent {\n lc_namespace = [\"langchain\", \"agents\"];\n\n llmChain: LLMChain;\n\n outputParser: AgentActionOutputParser;\n\n stop?: string[];\n\n constructor(input: LLMSingleActionAgentInput) {\n super(input);\n this.stop = input.stop;\n this.llmChain = input.llmChain;\n this.outputParser = input.outputParser;\n }\n\n get inputKeys(): string[] {\n return this.llmChain.inputKeys;\n }\n\n /**\n * Decide what to do given some input.\n *\n * @param steps - Steps the LLM has taken so far, along with observations from each.\n * @param inputs - User inputs.\n * @param callbackManager - Callback manager.\n *\n * @returns Action specifying what tool to use.\n */\n async plan(\n steps: AgentStep[],\n inputs: ChainValues,\n callbackManager?: CallbackManager\n ): Promise<AgentAction | AgentFinish> {\n const output = await this.llmChain.call(\n {\n intermediate_steps: steps,\n stop: this.stop,\n ...inputs,\n },\n callbackManager\n );\n return this.outputParser.parse(\n output[this.llmChain.outputKey],\n callbackManager\n );\n }\n}\n\n/**\n * Interface for arguments used to create an agent in LangChain.\n */\nexport interface AgentArgs {\n outputParser?: AgentActionOutputParser;\n\n callbacks?: Callbacks;\n\n /**\n * @deprecated Use `callbacks` instead.\n */\n callbackManager?: CallbackManager;\n}\n\n/**\n * Class responsible for calling a language model and deciding an action.\n *\n * @remarks This is driven by an LLMChain. The prompt in the LLMChain *must*\n * include a variable called \"agent_scratchpad\" where the agent can put its\n * intermediary work.\n */\nexport abstract class Agent extends BaseSingleActionAgent {\n llmChain: LLMChain;\n\n outputParser: AgentActionOutputParser | undefined;\n\n private _allowedTools?: string[] = undefined;\n\n get allowedTools(): string[] | undefined {\n return this._allowedTools;\n }\n\n get inputKeys(): string[] {\n return this.llmChain.inputKeys.filter((k) => k !== \"agent_scratchpad\");\n }\n\n constructor(input: AgentInput) {\n super(input);\n\n this.llmChain = input.llmChain;\n this._allowedTools = input.allowedTools;\n this.outputParser = input.outputParser;\n }\n\n /**\n * Prefix to append the observation with.\n */\n abstract observationPrefix(): string;\n\n /**\n * Prefix to append the LLM call with.\n */\n abstract llmPrefix(): string;\n\n /**\n * Return the string type key uniquely identifying this class of agent.\n */\n abstract _agentType(): string;\n\n /**\n * Get the default output parser for this agent.\n */\n static getDefaultOutputParser(\n _fields?: OutputParserArgs\n ): AgentActionOutputParser {\n throw new Error(\"Not implemented\");\n }\n\n /**\n * Create a prompt for this class\n *\n * @param _tools - List of tools the agent will have access to, used to format the prompt.\n * @param _fields - Additional fields used to format the prompt.\n *\n * @returns A PromptTemplate assembled from the given tools and fields.\n * */\n static createPrompt(\n _tools: StructuredToolInterface[],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _fields?: Record<string, any>\n ): BasePromptTemplate {\n throw new Error(\"Not implemented\");\n }\n\n /** Construct an agent from an LLM and a list of tools */\n static fromLLMAndTools(\n _llm: BaseLanguageModelInterface,\n _tools: StructuredToolInterface[],\n\n _args?: AgentArgs\n ): Agent {\n throw new Error(\"Not implemented\");\n }\n\n /**\n * Validate that appropriate tools are passed in\n */\n static validateTools(_tools: StructuredToolInterface[]): void {}\n\n _stop(): string[] {\n return [`\\n${this.observationPrefix()}`];\n }\n\n /**\n * Name of tool to use to terminate the chain.\n */\n finishToolName(): string {\n return \"Final Answer\";\n }\n\n /**\n * Construct a scratchpad to let the agent continue its thought process\n */\n async constructScratchPad(\n steps: AgentStep[]\n ): Promise<string | BaseMessage[]> {\n return steps.reduce(\n (thoughts, { action, observation }) =>\n thoughts +\n [\n action.log,\n `${this.observationPrefix()}${observation}`,\n this.llmPrefix(),\n ].join(\"\\n\"),\n \"\"\n );\n }\n\n private async _plan(\n steps: AgentStep[],\n inputs: ChainValues,\n suffix?: string,\n callbackManager?: CallbackManager\n ): Promise<AgentAction | AgentFinish> {\n const thoughts = await this.constructScratchPad(steps);\n const newInputs: ChainValues = {\n ...inputs,\n agent_scratchpad: suffix ? `${thoughts}${suffix}` : thoughts,\n };\n\n if (this._stop().length !== 0) {\n newInputs.stop = this._stop();\n }\n\n const output = await this.llmChain.predict(newInputs, callbackManager);\n if (!this.outputParser) {\n throw new Error(\"Output parser not set\");\n }\n return this.outputParser.parse(output, callbackManager);\n }\n\n /**\n * Decide what to do given some input.\n *\n * @param steps - Steps the LLM has taken so far, along with observations from each.\n * @param inputs - User inputs.\n * @param callbackManager - Callback manager to use for this call.\n *\n * @returns Action specifying what tool to use.\n */\n plan(\n steps: AgentStep[],\n inputs: ChainValues,\n callbackManager?: CallbackManager\n ): Promise<AgentAction | AgentFinish> {\n return this._plan(steps, inputs, undefined, callbackManager);\n }\n\n /**\n * Return response when agent has been stopped due to max iterations\n */\n async returnStoppedResponse(\n earlyStoppingMethod: StoppingMethod,\n steps: AgentStep[],\n inputs: ChainValues,\n callbackManager?: CallbackManager\n ): Promise<AgentFinish> {\n if (earlyStoppingMethod === \"force\") {\n return {\n returnValues: { output: \"Agent stopped due to max iterations.\" },\n log: \"\",\n };\n }\n\n if (earlyStoppingMethod === \"generate\") {\n try {\n const action = await this._plan(\n steps,\n inputs,\n \"\\n\\nI now need to return a final answer based on the previous steps:\",\n callbackManager\n );\n if (\"returnValues\" in action) {\n return action;\n }\n\n return { returnValues: { output: action.log }, log: action.log };\n } catch (err) {\n // fine to use instanceof because we're in the same module\n // eslint-disable-next-line no-instanceof/no-instanceof\n if (!(err instanceof ParseError)) {\n throw err;\n }\n return { returnValues: { output: err.output }, log: err.output };\n }\n }\n\n throw new Error(`Invalid stopping method: ${earlyStoppingMethod}`);\n }\n\n /**\n * Load an agent from a json-like object describing it.\n */\n static async deserialize(\n data: SerializedAgent & {\n llm?: BaseLanguageModelInterface;\n tools?: ToolInterface[];\n }\n ): Promise<Agent> {\n switch (data._type) {\n case \"zero-shot-react-description\": {\n const { ZeroShotAgent } = await import(\"./mrkl/index.js\");\n return ZeroShotAgent.deserialize(data);\n }\n default:\n throw new Error(\"Unknown agent type\");\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
const require_agent = require(
|
|
3
|
-
const require_llm_chain = require(
|
|
4
|
-
const require_prompt = require(
|
|
5
|
-
const require_outputParser = require(
|
|
1
|
+
require("../../_virtual/_rolldown/runtime.cjs");
|
|
2
|
+
const require_agent = require("../agent.cjs");
|
|
3
|
+
const require_llm_chain = require("../../chains/llm_chain.cjs");
|
|
4
|
+
const require_prompt = require("./prompt.cjs");
|
|
5
|
+
const require_outputParser = require("./outputParser.cjs");
|
|
6
6
|
let _langchain_core_prompts = require("@langchain/core/prompts");
|
|
7
|
-
|
|
8
7
|
//#region src/agents/chat/index.ts
|
|
9
8
|
const DEFAULT_HUMAN_MESSAGE_TEMPLATE = "{input}\n\n{agent_scratchpad}";
|
|
10
9
|
/**
|
|
@@ -113,7 +112,7 @@ var ChatAgent = class ChatAgent extends require_agent.Agent {
|
|
|
113
112
|
});
|
|
114
113
|
}
|
|
115
114
|
};
|
|
116
|
-
|
|
117
115
|
//#endregion
|
|
118
116
|
exports.ChatAgent = ChatAgent;
|
|
117
|
+
|
|
119
118
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":["Agent","ChatAgentOutputParser","PREFIX","SUFFIX","FORMAT_INSTRUCTIONS","SystemMessagePromptTemplate","HumanMessagePromptTemplate","ChatPromptTemplate","LLMChain"],"sources":["../../../src/agents/chat/index.ts"],"sourcesContent":["import type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport type { ToolInterface } from \"@langchain/core/tools\";\nimport {\n ChatPromptTemplate,\n HumanMessagePromptTemplate,\n SystemMessagePromptTemplate,\n} from \"@langchain/core/prompts\";\nimport type { AgentStep } from \"@langchain/core/agents\";\nimport { LLMChain } from \"../../chains/llm_chain.js\";\nimport { Optional } from \"../../types/type-utils.js\";\nimport { Agent, AgentArgs, OutputParserArgs } from \"../agent.js\";\nimport { AgentInput } from \"../types.js\";\nimport { ChatAgentOutputParser } from \"./outputParser.js\";\nimport { FORMAT_INSTRUCTIONS, PREFIX, SUFFIX } from \"./prompt.js\";\n\nconst DEFAULT_HUMAN_MESSAGE_TEMPLATE = \"{input}\\n\\n{agent_scratchpad}\";\n\n/**\n * Interface for arguments used to create a chat prompt.\n */\nexport interface ChatCreatePromptArgs {\n /** String to put after the list of tools. */\n suffix?: string;\n /** String to put before the list of tools. */\n prefix?: string;\n /** String to use directly as the human message template. */\n humanMessageTemplate?: string;\n /** Formattable string to use as the instructions template. */\n formatInstructions?: string;\n /** List of input variables the final prompt will expect. */\n inputVariables?: string[];\n}\n\n/**\n * Type for input data for creating a ChatAgent, extending AgentInput with\n * optional 'outputParser'.\n */\nexport type ChatAgentInput = Optional<AgentInput, \"outputParser\">;\n\n/**\n * Agent for the MRKL chain.\n * @augments Agent\n */\nexport class ChatAgent extends Agent {\n static lc_name() {\n return \"ChatAgent\";\n }\n\n lc_namespace = [\"langchain\", \"agents\", \"chat\"];\n\n declare ToolType: ToolInterface;\n\n constructor(input: ChatAgentInput) {\n const outputParser =\n input?.outputParser ?? ChatAgent.getDefaultOutputParser();\n super({ ...input, outputParser });\n }\n\n _agentType() {\n return \"chat-zero-shot-react-description\" as const;\n }\n\n observationPrefix() {\n return \"Observation: \";\n }\n\n llmPrefix() {\n return \"Thought:\";\n }\n\n _stop(): string[] {\n return [\"Observation:\"];\n }\n\n /**\n * Validates that all tools have descriptions. Throws an error if a tool\n * without a description is found.\n * @param tools Array of Tool instances to validate.\n * @returns void\n */\n static validateTools(tools: ToolInterface[]) {\n const descriptionlessTool = tools.find((tool) => !tool.description);\n if (descriptionlessTool) {\n const msg =\n `Got a tool ${descriptionlessTool.name} without a description.` +\n ` This agent requires descriptions for all tools.`;\n throw new Error(msg);\n }\n }\n\n /**\n * Returns a default output parser for the ChatAgent.\n * @param _fields Optional OutputParserArgs to customize the output parser.\n * @returns ChatAgentOutputParser instance\n */\n static getDefaultOutputParser(_fields?: OutputParserArgs) {\n return new ChatAgentOutputParser();\n }\n\n /**\n * Constructs the agent's scratchpad, which is a string representation of\n * the agent's previous steps.\n * @param steps Array of AgentStep instances representing the agent's previous steps.\n * @returns Promise resolving to a string representing the agent's scratchpad.\n */\n async constructScratchPad(steps: AgentStep[]): Promise<string> {\n const agentScratchpad = await super.constructScratchPad(steps);\n if (agentScratchpad) {\n return `This was your previous work (but I haven't seen any of it! I only see what you return as final answer):\\n${agentScratchpad}`;\n }\n return agentScratchpad;\n }\n\n /**\n * Create prompt in the style of the zero shot agent.\n *\n * @param tools - List of tools the agent will have access to, used to format the prompt.\n * @param args - Arguments to create the prompt with.\n * @param args.suffix - String to put after the list of tools.\n * @param args.prefix - String to put before the list of tools.\n * @param args.humanMessageTemplate - String to use directly as the human message template\n * @param args.formatInstructions - Formattable string to use as the instructions template\n */\n static createPrompt(tools: ToolInterface[], args?: ChatCreatePromptArgs) {\n const {\n prefix = PREFIX,\n suffix = SUFFIX,\n humanMessageTemplate = DEFAULT_HUMAN_MESSAGE_TEMPLATE,\n formatInstructions = FORMAT_INSTRUCTIONS,\n } = args ?? {};\n const toolStrings = tools\n .map((tool) => `${tool.name}: ${tool.description}`)\n .join(\"\\n\");\n const template = [prefix, toolStrings, formatInstructions, suffix].join(\n \"\\n\\n\"\n );\n const messages = [\n SystemMessagePromptTemplate.fromTemplate(template),\n HumanMessagePromptTemplate.fromTemplate(humanMessageTemplate),\n ];\n return ChatPromptTemplate.fromMessages(messages);\n }\n\n /**\n * Creates a ChatAgent instance using a language model, tools, and\n * optional arguments.\n * @param llm BaseLanguageModelInterface instance to use in the agent.\n * @param tools Array of Tool instances to include in the agent.\n * @param args Optional arguments to customize the agent and prompt.\n * @returns ChatAgent instance\n */\n static fromLLMAndTools(\n llm: BaseLanguageModelInterface,\n tools: ToolInterface[],\n args?: ChatCreatePromptArgs & AgentArgs\n ) {\n ChatAgent.validateTools(tools);\n const prompt = ChatAgent.createPrompt(tools, args);\n const chain = new LLMChain({\n prompt,\n llm,\n callbacks: args?.callbacks ?? args?.callbackManager,\n });\n const outputParser =\n args?.outputParser ?? ChatAgent.getDefaultOutputParser();\n\n return new ChatAgent({\n llmChain: chain,\n outputParser,\n allowedTools: tools.map((t) => t.name),\n });\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["Agent","ChatAgentOutputParser","PREFIX","SUFFIX","FORMAT_INSTRUCTIONS","SystemMessagePromptTemplate","HumanMessagePromptTemplate","ChatPromptTemplate","LLMChain"],"sources":["../../../src/agents/chat/index.ts"],"sourcesContent":["import type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport type { ToolInterface } from \"@langchain/core/tools\";\nimport {\n ChatPromptTemplate,\n HumanMessagePromptTemplate,\n SystemMessagePromptTemplate,\n} from \"@langchain/core/prompts\";\nimport type { AgentStep } from \"@langchain/core/agents\";\nimport { LLMChain } from \"../../chains/llm_chain.js\";\nimport { Optional } from \"../../types/type-utils.js\";\nimport { Agent, AgentArgs, OutputParserArgs } from \"../agent.js\";\nimport { AgentInput } from \"../types.js\";\nimport { ChatAgentOutputParser } from \"./outputParser.js\";\nimport { FORMAT_INSTRUCTIONS, PREFIX, SUFFIX } from \"./prompt.js\";\n\nconst DEFAULT_HUMAN_MESSAGE_TEMPLATE = \"{input}\\n\\n{agent_scratchpad}\";\n\n/**\n * Interface for arguments used to create a chat prompt.\n */\nexport interface ChatCreatePromptArgs {\n /** String to put after the list of tools. */\n suffix?: string;\n /** String to put before the list of tools. */\n prefix?: string;\n /** String to use directly as the human message template. */\n humanMessageTemplate?: string;\n /** Formattable string to use as the instructions template. */\n formatInstructions?: string;\n /** List of input variables the final prompt will expect. */\n inputVariables?: string[];\n}\n\n/**\n * Type for input data for creating a ChatAgent, extending AgentInput with\n * optional 'outputParser'.\n */\nexport type ChatAgentInput = Optional<AgentInput, \"outputParser\">;\n\n/**\n * Agent for the MRKL chain.\n * @augments Agent\n */\nexport class ChatAgent extends Agent {\n static lc_name() {\n return \"ChatAgent\";\n }\n\n lc_namespace = [\"langchain\", \"agents\", \"chat\"];\n\n declare ToolType: ToolInterface;\n\n constructor(input: ChatAgentInput) {\n const outputParser =\n input?.outputParser ?? ChatAgent.getDefaultOutputParser();\n super({ ...input, outputParser });\n }\n\n _agentType() {\n return \"chat-zero-shot-react-description\" as const;\n }\n\n observationPrefix() {\n return \"Observation: \";\n }\n\n llmPrefix() {\n return \"Thought:\";\n }\n\n _stop(): string[] {\n return [\"Observation:\"];\n }\n\n /**\n * Validates that all tools have descriptions. Throws an error if a tool\n * without a description is found.\n * @param tools Array of Tool instances to validate.\n * @returns void\n */\n static validateTools(tools: ToolInterface[]) {\n const descriptionlessTool = tools.find((tool) => !tool.description);\n if (descriptionlessTool) {\n const msg =\n `Got a tool ${descriptionlessTool.name} without a description.` +\n ` This agent requires descriptions for all tools.`;\n throw new Error(msg);\n }\n }\n\n /**\n * Returns a default output parser for the ChatAgent.\n * @param _fields Optional OutputParserArgs to customize the output parser.\n * @returns ChatAgentOutputParser instance\n */\n static getDefaultOutputParser(_fields?: OutputParserArgs) {\n return new ChatAgentOutputParser();\n }\n\n /**\n * Constructs the agent's scratchpad, which is a string representation of\n * the agent's previous steps.\n * @param steps Array of AgentStep instances representing the agent's previous steps.\n * @returns Promise resolving to a string representing the agent's scratchpad.\n */\n async constructScratchPad(steps: AgentStep[]): Promise<string> {\n const agentScratchpad = await super.constructScratchPad(steps);\n if (agentScratchpad) {\n return `This was your previous work (but I haven't seen any of it! I only see what you return as final answer):\\n${agentScratchpad}`;\n }\n return agentScratchpad;\n }\n\n /**\n * Create prompt in the style of the zero shot agent.\n *\n * @param tools - List of tools the agent will have access to, used to format the prompt.\n * @param args - Arguments to create the prompt with.\n * @param args.suffix - String to put after the list of tools.\n * @param args.prefix - String to put before the list of tools.\n * @param args.humanMessageTemplate - String to use directly as the human message template\n * @param args.formatInstructions - Formattable string to use as the instructions template\n */\n static createPrompt(tools: ToolInterface[], args?: ChatCreatePromptArgs) {\n const {\n prefix = PREFIX,\n suffix = SUFFIX,\n humanMessageTemplate = DEFAULT_HUMAN_MESSAGE_TEMPLATE,\n formatInstructions = FORMAT_INSTRUCTIONS,\n } = args ?? {};\n const toolStrings = tools\n .map((tool) => `${tool.name}: ${tool.description}`)\n .join(\"\\n\");\n const template = [prefix, toolStrings, formatInstructions, suffix].join(\n \"\\n\\n\"\n );\n const messages = [\n SystemMessagePromptTemplate.fromTemplate(template),\n HumanMessagePromptTemplate.fromTemplate(humanMessageTemplate),\n ];\n return ChatPromptTemplate.fromMessages(messages);\n }\n\n /**\n * Creates a ChatAgent instance using a language model, tools, and\n * optional arguments.\n * @param llm BaseLanguageModelInterface instance to use in the agent.\n * @param tools Array of Tool instances to include in the agent.\n * @param args Optional arguments to customize the agent and prompt.\n * @returns ChatAgent instance\n */\n static fromLLMAndTools(\n llm: BaseLanguageModelInterface,\n tools: ToolInterface[],\n args?: ChatCreatePromptArgs & AgentArgs\n ) {\n ChatAgent.validateTools(tools);\n const prompt = ChatAgent.createPrompt(tools, args);\n const chain = new LLMChain({\n prompt,\n llm,\n callbacks: args?.callbacks ?? args?.callbackManager,\n });\n const outputParser =\n args?.outputParser ?? ChatAgent.getDefaultOutputParser();\n\n return new ChatAgent({\n llmChain: chain,\n outputParser,\n allowedTools: tools.map((t) => t.name),\n });\n }\n}\n"],"mappings":";;;;;;;AAeA,MAAM,iCAAiC;;;;;AA4BvC,IAAa,YAAb,MAAa,kBAAkBA,cAAAA,MAAM;CACnC,OAAO,UAAU;AACf,SAAO;;CAGT,eAAe;EAAC;EAAa;EAAU;EAAO;CAI9C,YAAY,OAAuB;EACjC,MAAM,eACJ,OAAO,gBAAgB,UAAU,wBAAwB;AAC3D,QAAM;GAAE,GAAG;GAAO;GAAc,CAAC;;CAGnC,aAAa;AACX,SAAO;;CAGT,oBAAoB;AAClB,SAAO;;CAGT,YAAY;AACV,SAAO;;CAGT,QAAkB;AAChB,SAAO,CAAC,eAAe;;;;;;;;CASzB,OAAO,cAAc,OAAwB;EAC3C,MAAM,sBAAsB,MAAM,MAAM,SAAS,CAAC,KAAK,YAAY;AACnE,MAAI,qBAAqB;GACvB,MAAM,MACJ,cAAc,oBAAoB,KAAK;AAEzC,SAAM,IAAI,MAAM,IAAI;;;;;;;;CASxB,OAAO,uBAAuB,SAA4B;AACxD,SAAO,IAAIC,qBAAAA,uBAAuB;;;;;;;;CASpC,MAAM,oBAAoB,OAAqC;EAC7D,MAAM,kBAAkB,MAAM,MAAM,oBAAoB,MAAM;AAC9D,MAAI,gBACF,QAAO,4GAA4G;AAErH,SAAO;;;;;;;;;;;;CAaT,OAAO,aAAa,OAAwB,MAA6B;EACvE,MAAM,EACJ,SAASC,eAAAA,QACT,SAASC,eAAAA,QACT,uBAAuB,gCACvB,qBAAqBC,eAAAA,wBACnB,QAAQ,EAAE;EAId,MAAM,WAAW;GAAC;GAHE,MACjB,KAAK,SAAS,GAAG,KAAK,KAAK,IAAI,KAAK,cAAc,CAClD,KAAK,KAAK;GAC0B;GAAoB;GAAO,CAAC,KACjE,OACD;EACD,MAAM,WAAW,CACfC,wBAAAA,4BAA4B,aAAa,SAAS,EAClDC,wBAAAA,2BAA2B,aAAa,qBAAqB,CAC9D;AACD,SAAOC,wBAAAA,mBAAmB,aAAa,SAAS;;;;;;;;;;CAWlD,OAAO,gBACL,KACA,OACA,MACA;AACA,YAAU,cAAc,MAAM;AAU9B,SAAO,IAAI,UAAU;GACnB,UATY,IAAIC,kBAAAA,SAAS;IACzB,QAFa,UAAU,aAAa,OAAO,KAAK;IAGhD;IACA,WAAW,MAAM,aAAa,MAAM;IACrC,CAAC;GAMA,cAJA,MAAM,gBAAgB,UAAU,wBAAwB;GAKxD,cAAc,MAAM,KAAK,MAAM,EAAE,KAAK;GACvC,CAAC"}
|
|
@@ -3,7 +3,6 @@ import { LLMChain } from "../../chains/llm_chain.js";
|
|
|
3
3
|
import { FORMAT_INSTRUCTIONS, PREFIX, SUFFIX } from "./prompt.js";
|
|
4
4
|
import { ChatAgentOutputParser } from "./outputParser.js";
|
|
5
5
|
import { ChatPromptTemplate, HumanMessagePromptTemplate, SystemMessagePromptTemplate } from "@langchain/core/prompts";
|
|
6
|
-
|
|
7
6
|
//#region src/agents/chat/index.ts
|
|
8
7
|
const DEFAULT_HUMAN_MESSAGE_TEMPLATE = "{input}\n\n{agent_scratchpad}";
|
|
9
8
|
/**
|
|
@@ -112,7 +111,7 @@ var ChatAgent = class ChatAgent extends Agent {
|
|
|
112
111
|
});
|
|
113
112
|
}
|
|
114
113
|
};
|
|
115
|
-
|
|
116
114
|
//#endregion
|
|
117
115
|
export { ChatAgent };
|
|
116
|
+
|
|
118
117
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../src/agents/chat/index.ts"],"sourcesContent":["import type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport type { ToolInterface } from \"@langchain/core/tools\";\nimport {\n ChatPromptTemplate,\n HumanMessagePromptTemplate,\n SystemMessagePromptTemplate,\n} from \"@langchain/core/prompts\";\nimport type { AgentStep } from \"@langchain/core/agents\";\nimport { LLMChain } from \"../../chains/llm_chain.js\";\nimport { Optional } from \"../../types/type-utils.js\";\nimport { Agent, AgentArgs, OutputParserArgs } from \"../agent.js\";\nimport { AgentInput } from \"../types.js\";\nimport { ChatAgentOutputParser } from \"./outputParser.js\";\nimport { FORMAT_INSTRUCTIONS, PREFIX, SUFFIX } from \"./prompt.js\";\n\nconst DEFAULT_HUMAN_MESSAGE_TEMPLATE = \"{input}\\n\\n{agent_scratchpad}\";\n\n/**\n * Interface for arguments used to create a chat prompt.\n */\nexport interface ChatCreatePromptArgs {\n /** String to put after the list of tools. */\n suffix?: string;\n /** String to put before the list of tools. */\n prefix?: string;\n /** String to use directly as the human message template. */\n humanMessageTemplate?: string;\n /** Formattable string to use as the instructions template. */\n formatInstructions?: string;\n /** List of input variables the final prompt will expect. */\n inputVariables?: string[];\n}\n\n/**\n * Type for input data for creating a ChatAgent, extending AgentInput with\n * optional 'outputParser'.\n */\nexport type ChatAgentInput = Optional<AgentInput, \"outputParser\">;\n\n/**\n * Agent for the MRKL chain.\n * @augments Agent\n */\nexport class ChatAgent extends Agent {\n static lc_name() {\n return \"ChatAgent\";\n }\n\n lc_namespace = [\"langchain\", \"agents\", \"chat\"];\n\n declare ToolType: ToolInterface;\n\n constructor(input: ChatAgentInput) {\n const outputParser =\n input?.outputParser ?? ChatAgent.getDefaultOutputParser();\n super({ ...input, outputParser });\n }\n\n _agentType() {\n return \"chat-zero-shot-react-description\" as const;\n }\n\n observationPrefix() {\n return \"Observation: \";\n }\n\n llmPrefix() {\n return \"Thought:\";\n }\n\n _stop(): string[] {\n return [\"Observation:\"];\n }\n\n /**\n * Validates that all tools have descriptions. Throws an error if a tool\n * without a description is found.\n * @param tools Array of Tool instances to validate.\n * @returns void\n */\n static validateTools(tools: ToolInterface[]) {\n const descriptionlessTool = tools.find((tool) => !tool.description);\n if (descriptionlessTool) {\n const msg =\n `Got a tool ${descriptionlessTool.name} without a description.` +\n ` This agent requires descriptions for all tools.`;\n throw new Error(msg);\n }\n }\n\n /**\n * Returns a default output parser for the ChatAgent.\n * @param _fields Optional OutputParserArgs to customize the output parser.\n * @returns ChatAgentOutputParser instance\n */\n static getDefaultOutputParser(_fields?: OutputParserArgs) {\n return new ChatAgentOutputParser();\n }\n\n /**\n * Constructs the agent's scratchpad, which is a string representation of\n * the agent's previous steps.\n * @param steps Array of AgentStep instances representing the agent's previous steps.\n * @returns Promise resolving to a string representing the agent's scratchpad.\n */\n async constructScratchPad(steps: AgentStep[]): Promise<string> {\n const agentScratchpad = await super.constructScratchPad(steps);\n if (agentScratchpad) {\n return `This was your previous work (but I haven't seen any of it! I only see what you return as final answer):\\n${agentScratchpad}`;\n }\n return agentScratchpad;\n }\n\n /**\n * Create prompt in the style of the zero shot agent.\n *\n * @param tools - List of tools the agent will have access to, used to format the prompt.\n * @param args - Arguments to create the prompt with.\n * @param args.suffix - String to put after the list of tools.\n * @param args.prefix - String to put before the list of tools.\n * @param args.humanMessageTemplate - String to use directly as the human message template\n * @param args.formatInstructions - Formattable string to use as the instructions template\n */\n static createPrompt(tools: ToolInterface[], args?: ChatCreatePromptArgs) {\n const {\n prefix = PREFIX,\n suffix = SUFFIX,\n humanMessageTemplate = DEFAULT_HUMAN_MESSAGE_TEMPLATE,\n formatInstructions = FORMAT_INSTRUCTIONS,\n } = args ?? {};\n const toolStrings = tools\n .map((tool) => `${tool.name}: ${tool.description}`)\n .join(\"\\n\");\n const template = [prefix, toolStrings, formatInstructions, suffix].join(\n \"\\n\\n\"\n );\n const messages = [\n SystemMessagePromptTemplate.fromTemplate(template),\n HumanMessagePromptTemplate.fromTemplate(humanMessageTemplate),\n ];\n return ChatPromptTemplate.fromMessages(messages);\n }\n\n /**\n * Creates a ChatAgent instance using a language model, tools, and\n * optional arguments.\n * @param llm BaseLanguageModelInterface instance to use in the agent.\n * @param tools Array of Tool instances to include in the agent.\n * @param args Optional arguments to customize the agent and prompt.\n * @returns ChatAgent instance\n */\n static fromLLMAndTools(\n llm: BaseLanguageModelInterface,\n tools: ToolInterface[],\n args?: ChatCreatePromptArgs & AgentArgs\n ) {\n ChatAgent.validateTools(tools);\n const prompt = ChatAgent.createPrompt(tools, args);\n const chain = new LLMChain({\n prompt,\n llm,\n callbacks: args?.callbacks ?? args?.callbackManager,\n });\n const outputParser =\n args?.outputParser ?? ChatAgent.getDefaultOutputParser();\n\n return new ChatAgent({\n llmChain: chain,\n outputParser,\n allowedTools: tools.map((t) => t.name),\n });\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/agents/chat/index.ts"],"sourcesContent":["import type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport type { ToolInterface } from \"@langchain/core/tools\";\nimport {\n ChatPromptTemplate,\n HumanMessagePromptTemplate,\n SystemMessagePromptTemplate,\n} from \"@langchain/core/prompts\";\nimport type { AgentStep } from \"@langchain/core/agents\";\nimport { LLMChain } from \"../../chains/llm_chain.js\";\nimport { Optional } from \"../../types/type-utils.js\";\nimport { Agent, AgentArgs, OutputParserArgs } from \"../agent.js\";\nimport { AgentInput } from \"../types.js\";\nimport { ChatAgentOutputParser } from \"./outputParser.js\";\nimport { FORMAT_INSTRUCTIONS, PREFIX, SUFFIX } from \"./prompt.js\";\n\nconst DEFAULT_HUMAN_MESSAGE_TEMPLATE = \"{input}\\n\\n{agent_scratchpad}\";\n\n/**\n * Interface for arguments used to create a chat prompt.\n */\nexport interface ChatCreatePromptArgs {\n /** String to put after the list of tools. */\n suffix?: string;\n /** String to put before the list of tools. */\n prefix?: string;\n /** String to use directly as the human message template. */\n humanMessageTemplate?: string;\n /** Formattable string to use as the instructions template. */\n formatInstructions?: string;\n /** List of input variables the final prompt will expect. */\n inputVariables?: string[];\n}\n\n/**\n * Type for input data for creating a ChatAgent, extending AgentInput with\n * optional 'outputParser'.\n */\nexport type ChatAgentInput = Optional<AgentInput, \"outputParser\">;\n\n/**\n * Agent for the MRKL chain.\n * @augments Agent\n */\nexport class ChatAgent extends Agent {\n static lc_name() {\n return \"ChatAgent\";\n }\n\n lc_namespace = [\"langchain\", \"agents\", \"chat\"];\n\n declare ToolType: ToolInterface;\n\n constructor(input: ChatAgentInput) {\n const outputParser =\n input?.outputParser ?? ChatAgent.getDefaultOutputParser();\n super({ ...input, outputParser });\n }\n\n _agentType() {\n return \"chat-zero-shot-react-description\" as const;\n }\n\n observationPrefix() {\n return \"Observation: \";\n }\n\n llmPrefix() {\n return \"Thought:\";\n }\n\n _stop(): string[] {\n return [\"Observation:\"];\n }\n\n /**\n * Validates that all tools have descriptions. Throws an error if a tool\n * without a description is found.\n * @param tools Array of Tool instances to validate.\n * @returns void\n */\n static validateTools(tools: ToolInterface[]) {\n const descriptionlessTool = tools.find((tool) => !tool.description);\n if (descriptionlessTool) {\n const msg =\n `Got a tool ${descriptionlessTool.name} without a description.` +\n ` This agent requires descriptions for all tools.`;\n throw new Error(msg);\n }\n }\n\n /**\n * Returns a default output parser for the ChatAgent.\n * @param _fields Optional OutputParserArgs to customize the output parser.\n * @returns ChatAgentOutputParser instance\n */\n static getDefaultOutputParser(_fields?: OutputParserArgs) {\n return new ChatAgentOutputParser();\n }\n\n /**\n * Constructs the agent's scratchpad, which is a string representation of\n * the agent's previous steps.\n * @param steps Array of AgentStep instances representing the agent's previous steps.\n * @returns Promise resolving to a string representing the agent's scratchpad.\n */\n async constructScratchPad(steps: AgentStep[]): Promise<string> {\n const agentScratchpad = await super.constructScratchPad(steps);\n if (agentScratchpad) {\n return `This was your previous work (but I haven't seen any of it! I only see what you return as final answer):\\n${agentScratchpad}`;\n }\n return agentScratchpad;\n }\n\n /**\n * Create prompt in the style of the zero shot agent.\n *\n * @param tools - List of tools the agent will have access to, used to format the prompt.\n * @param args - Arguments to create the prompt with.\n * @param args.suffix - String to put after the list of tools.\n * @param args.prefix - String to put before the list of tools.\n * @param args.humanMessageTemplate - String to use directly as the human message template\n * @param args.formatInstructions - Formattable string to use as the instructions template\n */\n static createPrompt(tools: ToolInterface[], args?: ChatCreatePromptArgs) {\n const {\n prefix = PREFIX,\n suffix = SUFFIX,\n humanMessageTemplate = DEFAULT_HUMAN_MESSAGE_TEMPLATE,\n formatInstructions = FORMAT_INSTRUCTIONS,\n } = args ?? {};\n const toolStrings = tools\n .map((tool) => `${tool.name}: ${tool.description}`)\n .join(\"\\n\");\n const template = [prefix, toolStrings, formatInstructions, suffix].join(\n \"\\n\\n\"\n );\n const messages = [\n SystemMessagePromptTemplate.fromTemplate(template),\n HumanMessagePromptTemplate.fromTemplate(humanMessageTemplate),\n ];\n return ChatPromptTemplate.fromMessages(messages);\n }\n\n /**\n * Creates a ChatAgent instance using a language model, tools, and\n * optional arguments.\n * @param llm BaseLanguageModelInterface instance to use in the agent.\n * @param tools Array of Tool instances to include in the agent.\n * @param args Optional arguments to customize the agent and prompt.\n * @returns ChatAgent instance\n */\n static fromLLMAndTools(\n llm: BaseLanguageModelInterface,\n tools: ToolInterface[],\n args?: ChatCreatePromptArgs & AgentArgs\n ) {\n ChatAgent.validateTools(tools);\n const prompt = ChatAgent.createPrompt(tools, args);\n const chain = new LLMChain({\n prompt,\n llm,\n callbacks: args?.callbacks ?? args?.callbackManager,\n });\n const outputParser =\n args?.outputParser ?? ChatAgent.getDefaultOutputParser();\n\n return new ChatAgent({\n llmChain: chain,\n outputParser,\n allowedTools: tools.map((t) => t.name),\n });\n }\n}\n"],"mappings":";;;;;;AAeA,MAAM,iCAAiC;;;;;AA4BvC,IAAa,YAAb,MAAa,kBAAkB,MAAM;CACnC,OAAO,UAAU;AACf,SAAO;;CAGT,eAAe;EAAC;EAAa;EAAU;EAAO;CAI9C,YAAY,OAAuB;EACjC,MAAM,eACJ,OAAO,gBAAgB,UAAU,wBAAwB;AAC3D,QAAM;GAAE,GAAG;GAAO;GAAc,CAAC;;CAGnC,aAAa;AACX,SAAO;;CAGT,oBAAoB;AAClB,SAAO;;CAGT,YAAY;AACV,SAAO;;CAGT,QAAkB;AAChB,SAAO,CAAC,eAAe;;;;;;;;CASzB,OAAO,cAAc,OAAwB;EAC3C,MAAM,sBAAsB,MAAM,MAAM,SAAS,CAAC,KAAK,YAAY;AACnE,MAAI,qBAAqB;GACvB,MAAM,MACJ,cAAc,oBAAoB,KAAK;AAEzC,SAAM,IAAI,MAAM,IAAI;;;;;;;;CASxB,OAAO,uBAAuB,SAA4B;AACxD,SAAO,IAAI,uBAAuB;;;;;;;;CASpC,MAAM,oBAAoB,OAAqC;EAC7D,MAAM,kBAAkB,MAAM,MAAM,oBAAoB,MAAM;AAC9D,MAAI,gBACF,QAAO,4GAA4G;AAErH,SAAO;;;;;;;;;;;;CAaT,OAAO,aAAa,OAAwB,MAA6B;EACvE,MAAM,EACJ,SAAS,QACT,SAAS,QACT,uBAAuB,gCACvB,qBAAqB,wBACnB,QAAQ,EAAE;EAId,MAAM,WAAW;GAAC;GAHE,MACjB,KAAK,SAAS,GAAG,KAAK,KAAK,IAAI,KAAK,cAAc,CAClD,KAAK,KAAK;GAC0B;GAAoB;GAAO,CAAC,KACjE,OACD;EACD,MAAM,WAAW,CACf,4BAA4B,aAAa,SAAS,EAClD,2BAA2B,aAAa,qBAAqB,CAC9D;AACD,SAAO,mBAAmB,aAAa,SAAS;;;;;;;;;;CAWlD,OAAO,gBACL,KACA,OACA,MACA;AACA,YAAU,cAAc,MAAM;AAU9B,SAAO,IAAI,UAAU;GACnB,UATY,IAAI,SAAS;IACzB,QAFa,UAAU,aAAa,OAAO,KAAK;IAGhD;IACA,WAAW,MAAM,aAAa,MAAM;IACrC,CAAC;GAMA,cAJA,MAAM,gBAAgB,UAAU,wBAAwB;GAKxD,cAAc,MAAM,KAAK,MAAM,EAAE,KAAK;GACvC,CAAC"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
const require_types = require(
|
|
3
|
-
const require_prompt = require(
|
|
1
|
+
require("../../_virtual/_rolldown/runtime.cjs");
|
|
2
|
+
const require_types = require("../types.cjs");
|
|
3
|
+
const require_prompt = require("./prompt.cjs");
|
|
4
4
|
let _langchain_core_output_parsers = require("@langchain/core/output_parsers");
|
|
5
|
-
|
|
6
5
|
//#region src/agents/chat/outputParser.ts
|
|
7
6
|
const FINAL_ANSWER_ACTION = "Final Answer:";
|
|
8
7
|
/**
|
|
@@ -58,7 +57,7 @@ var ChatAgentOutputParser = class extends require_types.AgentActionOutputParser
|
|
|
58
57
|
* @returns An object that satisfies the AgentFinish interface or an object with the tool, toolInput, and log.
|
|
59
58
|
*/
|
|
60
59
|
async parse(text) {
|
|
61
|
-
if (text.includes(
|
|
60
|
+
if (text.includes("Final Answer:") || !text.includes(`"action":`)) {
|
|
62
61
|
const parts = text.split(FINAL_ANSWER_ACTION);
|
|
63
62
|
return {
|
|
64
63
|
returnValues: { output: parts[parts.length - 1].trim() },
|
|
@@ -86,7 +85,7 @@ var ChatAgentOutputParser = class extends require_types.AgentActionOutputParser
|
|
|
86
85
|
return require_prompt.FORMAT_INSTRUCTIONS;
|
|
87
86
|
}
|
|
88
87
|
};
|
|
89
|
-
|
|
90
88
|
//#endregion
|
|
91
89
|
exports.ChatAgentOutputParser = ChatAgentOutputParser;
|
|
90
|
+
|
|
92
91
|
//# sourceMappingURL=outputParser.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outputParser.cjs","names":["AgentActionOutputParser","OutputParserException","FORMAT_INSTRUCTIONS"],"sources":["../../../src/agents/chat/outputParser.ts"],"sourcesContent":["import type { AgentFinish } from \"@langchain/core/agents\";\nimport { OutputParserException } from \"@langchain/core/output_parsers\";\nimport { AgentActionOutputParser } from \"../types.js\";\nimport { FORMAT_INSTRUCTIONS } from \"./prompt.js\";\n\nexport const FINAL_ANSWER_ACTION = \"Final Answer:\";\n/**\n * A class that extends the AgentActionOutputParser to parse the output of\n * the ChatAgent in LangChain. It checks if the output text contains the\n * final answer action or a JSON response, and parses it accordingly.\n * @example\n * ```typescript\n * const prompt = ChatPromptTemplate.fromMessages([\n * [\n * \"ai\",\n * `{PREFIX}\n * {FORMAT_INSTRUCTIONS}\n * {SUFFIX}`,\n * ],\n * [\"human\", \"Question: {input}\"],\n * ]);\n * const runnableAgent = RunnableSequence.from([\n * {\n * input: (i: { input: string; steps: AgentStep[] }) => i.input,\n * agent_scratchpad: (i: { input: string; steps: AgentStep[] }) =>\n * formatLogToString(i.steps),\n * },\n * prompt,\n * new OpenAI({ temperature: 0 }),\n * new ChatAgentOutputParser(),\n * ]);\n *\n * const executor = AgentExecutor.fromAgentAndTools({\n * agent: runnableAgent,\n * tools: [new SerpAPI(), new Calculator()],\n * });\n *\n * const result = await executor.invoke({\n * input:\n * \"Who is Olivia Wilde's boyfriend? What is his current age raised to the 0.23 power?\",\n * });\n * ```\n */\nexport class ChatAgentOutputParser extends AgentActionOutputParser {\n lc_namespace = [\"langchain\", \"agents\", \"chat\"];\n\n /**\n * Parses the output text from the MRKL chain into an agent action or\n * agent finish. If the text contains the final answer action or does not\n * contain an action, it returns an AgentFinish with the output and log.\n * If the text contains a JSON response, it returns the tool, toolInput,\n * and log.\n * @param text The output text from the MRKL chain.\n * @returns An object that satisfies the AgentFinish interface or an object with the tool, toolInput, and log.\n */\n async parse(text: string) {\n if (text.includes(FINAL_ANSWER_ACTION) || !text.includes(`\"action\":`)) {\n const parts = text.split(FINAL_ANSWER_ACTION);\n const output = parts[parts.length - 1].trim();\n return { returnValues: { output }, log: text } satisfies AgentFinish;\n }\n\n const action = text.includes(\"```\")\n ? text.trim().split(/```(?:json)?/)[1]\n : text.trim();\n try {\n const response = JSON.parse(action.trim());\n return {\n tool: response.action,\n toolInput: response.action_input,\n log: text,\n };\n } catch {\n throw new OutputParserException(\n `Unable to parse JSON response from chat agent.\\n\\n${text}`\n );\n }\n }\n\n /**\n * Returns the format instructions used in the output parser for the\n * ChatAgent class.\n * @returns The format instructions as a string.\n */\n getFormatInstructions(): string {\n return FORMAT_INSTRUCTIONS;\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"outputParser.cjs","names":["AgentActionOutputParser","OutputParserException","FORMAT_INSTRUCTIONS"],"sources":["../../../src/agents/chat/outputParser.ts"],"sourcesContent":["import type { AgentFinish } from \"@langchain/core/agents\";\nimport { OutputParserException } from \"@langchain/core/output_parsers\";\nimport { AgentActionOutputParser } from \"../types.js\";\nimport { FORMAT_INSTRUCTIONS } from \"./prompt.js\";\n\nexport const FINAL_ANSWER_ACTION = \"Final Answer:\";\n/**\n * A class that extends the AgentActionOutputParser to parse the output of\n * the ChatAgent in LangChain. It checks if the output text contains the\n * final answer action or a JSON response, and parses it accordingly.\n * @example\n * ```typescript\n * const prompt = ChatPromptTemplate.fromMessages([\n * [\n * \"ai\",\n * `{PREFIX}\n * {FORMAT_INSTRUCTIONS}\n * {SUFFIX}`,\n * ],\n * [\"human\", \"Question: {input}\"],\n * ]);\n * const runnableAgent = RunnableSequence.from([\n * {\n * input: (i: { input: string; steps: AgentStep[] }) => i.input,\n * agent_scratchpad: (i: { input: string; steps: AgentStep[] }) =>\n * formatLogToString(i.steps),\n * },\n * prompt,\n * new OpenAI({ temperature: 0 }),\n * new ChatAgentOutputParser(),\n * ]);\n *\n * const executor = AgentExecutor.fromAgentAndTools({\n * agent: runnableAgent,\n * tools: [new SerpAPI(), new Calculator()],\n * });\n *\n * const result = await executor.invoke({\n * input:\n * \"Who is Olivia Wilde's boyfriend? What is his current age raised to the 0.23 power?\",\n * });\n * ```\n */\nexport class ChatAgentOutputParser extends AgentActionOutputParser {\n lc_namespace = [\"langchain\", \"agents\", \"chat\"];\n\n /**\n * Parses the output text from the MRKL chain into an agent action or\n * agent finish. If the text contains the final answer action or does not\n * contain an action, it returns an AgentFinish with the output and log.\n * If the text contains a JSON response, it returns the tool, toolInput,\n * and log.\n * @param text The output text from the MRKL chain.\n * @returns An object that satisfies the AgentFinish interface or an object with the tool, toolInput, and log.\n */\n async parse(text: string) {\n if (text.includes(FINAL_ANSWER_ACTION) || !text.includes(`\"action\":`)) {\n const parts = text.split(FINAL_ANSWER_ACTION);\n const output = parts[parts.length - 1].trim();\n return { returnValues: { output }, log: text } satisfies AgentFinish;\n }\n\n const action = text.includes(\"```\")\n ? text.trim().split(/```(?:json)?/)[1]\n : text.trim();\n try {\n const response = JSON.parse(action.trim());\n return {\n tool: response.action,\n toolInput: response.action_input,\n log: text,\n };\n } catch {\n throw new OutputParserException(\n `Unable to parse JSON response from chat agent.\\n\\n${text}`\n );\n }\n }\n\n /**\n * Returns the format instructions used in the output parser for the\n * ChatAgent class.\n * @returns The format instructions as a string.\n */\n getFormatInstructions(): string {\n return FORMAT_INSTRUCTIONS;\n }\n}\n"],"mappings":";;;;;AAKA,MAAa,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCnC,IAAa,wBAAb,cAA2CA,cAAAA,wBAAwB;CACjE,eAAe;EAAC;EAAa;EAAU;EAAO;;;;;;;;;;CAW9C,MAAM,MAAM,MAAc;AACxB,MAAI,KAAK,SAAA,gBAA6B,IAAI,CAAC,KAAK,SAAS,YAAY,EAAE;GACrE,MAAM,QAAQ,KAAK,MAAM,oBAAoB;AAE7C,UAAO;IAAE,cAAc,EAAE,QADV,MAAM,MAAM,SAAS,GAAG,MAAM,EACZ;IAAE,KAAK;IAAM;;EAGhD,MAAM,SAAS,KAAK,SAAS,MAAM,GAC/B,KAAK,MAAM,CAAC,MAAM,eAAe,CAAC,KAClC,KAAK,MAAM;AACf,MAAI;GACF,MAAM,WAAW,KAAK,MAAM,OAAO,MAAM,CAAC;AAC1C,UAAO;IACL,MAAM,SAAS;IACf,WAAW,SAAS;IACpB,KAAK;IACN;UACK;AACN,SAAM,IAAIC,+BAAAA,sBACR,qDAAqD,OACtD;;;;;;;;CASL,wBAAgC;AAC9B,SAAOC,eAAAA"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { AgentActionOutputParser } from "../types.js";
|
|
2
2
|
import { FORMAT_INSTRUCTIONS } from "./prompt.js";
|
|
3
3
|
import { OutputParserException } from "@langchain/core/output_parsers";
|
|
4
|
-
|
|
5
4
|
//#region src/agents/chat/outputParser.ts
|
|
6
5
|
const FINAL_ANSWER_ACTION = "Final Answer:";
|
|
7
6
|
/**
|
|
@@ -57,7 +56,7 @@ var ChatAgentOutputParser = class extends AgentActionOutputParser {
|
|
|
57
56
|
* @returns An object that satisfies the AgentFinish interface or an object with the tool, toolInput, and log.
|
|
58
57
|
*/
|
|
59
58
|
async parse(text) {
|
|
60
|
-
if (text.includes(
|
|
59
|
+
if (text.includes("Final Answer:") || !text.includes(`"action":`)) {
|
|
61
60
|
const parts = text.split(FINAL_ANSWER_ACTION);
|
|
62
61
|
return {
|
|
63
62
|
returnValues: { output: parts[parts.length - 1].trim() },
|
|
@@ -85,7 +84,7 @@ var ChatAgentOutputParser = class extends AgentActionOutputParser {
|
|
|
85
84
|
return FORMAT_INSTRUCTIONS;
|
|
86
85
|
}
|
|
87
86
|
};
|
|
88
|
-
|
|
89
87
|
//#endregion
|
|
90
88
|
export { ChatAgentOutputParser };
|
|
89
|
+
|
|
91
90
|
//# sourceMappingURL=outputParser.js.map
|