langchain 1.0.0-alpha.5 → 1.0.0-alpha.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agents/ReactAgent.cjs +5 -5
- package/dist/agents/ReactAgent.cjs.map +1 -1
- package/dist/agents/ReactAgent.d.cts +2 -5
- package/dist/agents/ReactAgent.d.cts.map +1 -1
- package/dist/agents/ReactAgent.d.ts +2 -5
- package/dist/agents/ReactAgent.d.ts.map +1 -1
- package/dist/agents/ReactAgent.js +6 -6
- package/dist/agents/ReactAgent.js.map +1 -1
- package/dist/agents/annotation.cjs.map +1 -1
- package/dist/agents/annotation.d.cts +13 -8
- package/dist/agents/annotation.d.cts.map +1 -1
- package/dist/agents/annotation.d.ts +13 -8
- package/dist/agents/annotation.d.ts.map +1 -1
- package/dist/agents/annotation.js.map +1 -1
- package/dist/agents/createAgent.cjs.map +1 -1
- package/dist/agents/createAgent.js.map +1 -1
- package/dist/agents/index.cjs +2 -2
- package/dist/agents/index.cjs.map +1 -1
- package/dist/agents/index.d.cts +50 -50
- package/dist/agents/index.d.cts.map +1 -1
- package/dist/agents/index.d.ts +50 -50
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +2 -2
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/interrupt.d.cts +14 -1
- package/dist/agents/interrupt.d.cts.map +1 -1
- package/dist/agents/interrupt.d.ts +14 -1
- package/dist/agents/interrupt.d.ts.map +1 -1
- package/dist/agents/middlewareAgent/ReactAgent.cjs +273 -66
- package/dist/agents/middlewareAgent/ReactAgent.cjs.map +1 -1
- package/dist/agents/middlewareAgent/ReactAgent.d.cts +102 -16
- package/dist/agents/middlewareAgent/ReactAgent.d.cts.map +1 -1
- package/dist/agents/middlewareAgent/ReactAgent.d.ts +102 -16
- package/dist/agents/middlewareAgent/ReactAgent.d.ts.map +1 -1
- package/dist/agents/middlewareAgent/ReactAgent.js +275 -68
- package/dist/agents/middlewareAgent/ReactAgent.js.map +1 -1
- package/dist/agents/middlewareAgent/annotation.cjs +12 -6
- package/dist/agents/middlewareAgent/annotation.cjs.map +1 -1
- package/dist/agents/middlewareAgent/annotation.js +12 -6
- package/dist/agents/middlewareAgent/annotation.js.map +1 -1
- package/dist/agents/middlewareAgent/constants.d.cts +5 -0
- package/dist/agents/middlewareAgent/constants.d.cts.map +1 -0
- package/dist/agents/middlewareAgent/constants.d.ts +5 -0
- package/dist/agents/middlewareAgent/constants.d.ts.map +1 -0
- package/dist/agents/middlewareAgent/index.cjs.map +1 -1
- package/dist/agents/middlewareAgent/index.js.map +1 -1
- package/dist/agents/middlewareAgent/middleware/bigTool.cjs +162 -0
- package/dist/agents/middlewareAgent/middleware/bigTool.cjs.map +1 -0
- package/dist/agents/middlewareAgent/middleware/bigTool.d.cts +113 -0
- package/dist/agents/middlewareAgent/middleware/bigTool.d.cts.map +1 -0
- package/dist/agents/middlewareAgent/middleware/bigTool.d.ts +113 -0
- package/dist/agents/middlewareAgent/middleware/bigTool.d.ts.map +1 -0
- package/dist/agents/middlewareAgent/middleware/bigTool.js +161 -0
- package/dist/agents/middlewareAgent/middleware/bigTool.js.map +1 -0
- package/dist/agents/middlewareAgent/middleware/dynamicSystemPrompt.cjs +58 -0
- package/dist/agents/middlewareAgent/middleware/dynamicSystemPrompt.cjs.map +1 -0
- package/dist/agents/middlewareAgent/middleware/dynamicSystemPrompt.d.cts +46 -0
- package/dist/agents/middlewareAgent/middleware/dynamicSystemPrompt.d.cts.map +1 -0
- package/dist/agents/middlewareAgent/middleware/dynamicSystemPrompt.d.ts +46 -0
- package/dist/agents/middlewareAgent/middleware/dynamicSystemPrompt.d.ts.map +1 -0
- package/dist/agents/middlewareAgent/middleware/dynamicSystemPrompt.js +58 -0
- package/dist/agents/middlewareAgent/middleware/dynamicSystemPrompt.js.map +1 -0
- package/dist/agents/middlewareAgent/middleware/hitl.cjs +311 -0
- package/dist/agents/middlewareAgent/middleware/hitl.cjs.map +1 -0
- package/dist/agents/middlewareAgent/middleware/hitl.d.cts +419 -0
- package/dist/agents/middlewareAgent/middleware/hitl.d.cts.map +1 -0
- package/dist/agents/middlewareAgent/middleware/hitl.d.ts +419 -0
- package/dist/agents/middlewareAgent/middleware/hitl.d.ts.map +1 -0
- package/dist/agents/middlewareAgent/middleware/hitl.js +310 -0
- package/dist/agents/middlewareAgent/middleware/hitl.js.map +1 -0
- package/dist/agents/middlewareAgent/middleware/index.cjs +32 -0
- package/dist/agents/middlewareAgent/middleware/index.cjs.map +1 -0
- package/dist/agents/middlewareAgent/middleware/index.d.cts +6 -0
- package/dist/agents/middlewareAgent/middleware/index.d.ts +6 -0
- package/dist/agents/middlewareAgent/middleware/index.js +21 -0
- package/dist/agents/middlewareAgent/middleware/index.js.map +1 -0
- package/dist/agents/middlewareAgent/{middlewares → middleware}/promptCaching.cjs +72 -27
- package/dist/agents/middlewareAgent/middleware/promptCaching.cjs.map +1 -0
- package/dist/agents/middlewareAgent/{middlewares → middleware}/promptCaching.d.cts +60 -15
- package/dist/agents/middlewareAgent/middleware/promptCaching.d.cts.map +1 -0
- package/dist/agents/middlewareAgent/{middlewares → middleware}/promptCaching.d.ts +60 -15
- package/dist/agents/middlewareAgent/middleware/promptCaching.d.ts.map +1 -0
- package/dist/agents/middlewareAgent/{middlewares → middleware}/promptCaching.js +71 -26
- package/dist/agents/middlewareAgent/middleware/promptCaching.js.map +1 -0
- package/dist/agents/middlewareAgent/{middlewares → middleware}/summarization.cjs +35 -23
- package/dist/agents/middlewareAgent/middleware/summarization.cjs.map +1 -0
- package/dist/agents/middlewareAgent/{middlewares → middleware}/summarization.d.cts +7 -5
- package/dist/agents/middlewareAgent/middleware/summarization.d.cts.map +1 -0
- package/dist/agents/middlewareAgent/{middlewares → middleware}/summarization.d.ts +7 -5
- package/dist/agents/middlewareAgent/middleware/summarization.d.ts.map +1 -0
- package/dist/agents/middlewareAgent/{middlewares → middleware}/summarization.js +29 -17
- package/dist/agents/middlewareAgent/middleware/summarization.js.map +1 -0
- package/dist/agents/middlewareAgent/middleware.cjs +8 -5
- package/dist/agents/middlewareAgent/middleware.cjs.map +1 -1
- package/dist/agents/middlewareAgent/middleware.d.cts +67 -7
- package/dist/agents/middlewareAgent/middleware.d.cts.map +1 -1
- package/dist/agents/middlewareAgent/middleware.d.ts +67 -7
- package/dist/agents/middlewareAgent/middleware.d.ts.map +1 -1
- package/dist/agents/middlewareAgent/middleware.js +8 -5
- package/dist/agents/middlewareAgent/middleware.js.map +1 -1
- package/dist/agents/middlewareAgent/nodes/AfterModalNode.cjs +2 -2
- package/dist/agents/middlewareAgent/nodes/AfterModalNode.cjs.map +1 -1
- package/dist/agents/middlewareAgent/nodes/AfterModalNode.js +2 -2
- package/dist/agents/middlewareAgent/nodes/AfterModalNode.js.map +1 -1
- package/dist/agents/middlewareAgent/nodes/AgentNode.cjs +125 -83
- package/dist/agents/middlewareAgent/nodes/AgentNode.cjs.map +1 -1
- package/dist/agents/middlewareAgent/nodes/AgentNode.js +128 -86
- package/dist/agents/middlewareAgent/nodes/AgentNode.js.map +1 -1
- package/dist/agents/middlewareAgent/nodes/BeforeModalNode.cjs +2 -2
- package/dist/agents/middlewareAgent/nodes/BeforeModalNode.cjs.map +1 -1
- package/dist/agents/middlewareAgent/nodes/BeforeModalNode.js +2 -2
- package/dist/agents/middlewareAgent/nodes/BeforeModalNode.js.map +1 -1
- package/dist/agents/middlewareAgent/nodes/middleware.cjs +42 -17
- package/dist/agents/middlewareAgent/nodes/middleware.cjs.map +1 -1
- package/dist/agents/middlewareAgent/nodes/middleware.js +42 -18
- package/dist/agents/middlewareAgent/nodes/middleware.js.map +1 -1
- package/dist/agents/middlewareAgent/nodes/utils.cjs +30 -16
- package/dist/agents/middlewareAgent/nodes/utils.cjs.map +1 -1
- package/dist/agents/middlewareAgent/nodes/utils.js +28 -14
- package/dist/agents/middlewareAgent/nodes/utils.js.map +1 -1
- package/dist/agents/middlewareAgent/types.d.cts +162 -88
- package/dist/agents/middlewareAgent/types.d.cts.map +1 -1
- package/dist/agents/middlewareAgent/types.d.ts +162 -88
- package/dist/agents/middlewareAgent/types.d.ts.map +1 -1
- package/dist/agents/model.cjs +13 -0
- package/dist/agents/model.cjs.map +1 -0
- package/dist/agents/model.js +11 -0
- package/dist/agents/model.js.map +1 -0
- package/dist/agents/nodes/AgentNode.cjs +60 -32
- package/dist/agents/nodes/AgentNode.cjs.map +1 -1
- package/dist/agents/nodes/AgentNode.js +61 -33
- package/dist/agents/nodes/AgentNode.js.map +1 -1
- package/dist/agents/nodes/ToolNode.cjs +4 -4
- package/dist/agents/nodes/ToolNode.cjs.map +1 -1
- package/dist/agents/nodes/ToolNode.d.cts +2 -3
- package/dist/agents/nodes/ToolNode.d.cts.map +1 -1
- package/dist/agents/nodes/ToolNode.d.ts +1 -2
- package/dist/agents/nodes/ToolNode.d.ts.map +1 -1
- package/dist/agents/nodes/ToolNode.js +5 -5
- package/dist/agents/nodes/ToolNode.js.map +1 -1
- package/dist/agents/responses.cjs +53 -11
- package/dist/agents/responses.cjs.map +1 -1
- package/dist/agents/responses.d.cts +12 -20
- package/dist/agents/responses.d.cts.map +1 -1
- package/dist/agents/responses.d.ts +12 -20
- package/dist/agents/responses.d.ts.map +1 -1
- package/dist/agents/responses.js +53 -12
- package/dist/agents/responses.js.map +1 -1
- package/dist/agents/types.d.cts +3 -6
- package/dist/agents/types.d.cts.map +1 -1
- package/dist/agents/types.d.ts +3 -6
- package/dist/agents/types.d.ts.map +1 -1
- package/dist/agents/utils.cjs +11 -29
- package/dist/agents/utils.cjs.map +1 -1
- package/dist/agents/utils.js +9 -26
- package/dist/agents/utils.js.map +1 -1
- package/dist/agents/withAgentName.cjs.map +1 -1
- package/dist/agents/withAgentName.js.map +1 -1
- package/dist/chains/api/prompts.cjs.map +1 -1
- package/dist/chains/api/prompts.js.map +1 -1
- package/dist/chains/constitutional_ai/constitutional_chain.cjs.map +1 -1
- package/dist/chains/constitutional_ai/constitutional_chain.js.map +1 -1
- package/dist/chains/index.cjs +0 -3
- package/dist/chains/index.cjs.map +1 -1
- package/dist/chains/index.d.cts +1 -2
- package/dist/chains/index.d.ts +1 -2
- package/dist/chains/index.js +1 -3
- package/dist/chains/index.js.map +1 -1
- package/dist/chains/openai_functions/extraction.cjs.map +1 -1
- package/dist/chains/openai_functions/extraction.d.cts +1 -3
- package/dist/chains/openai_functions/extraction.d.cts.map +1 -1
- package/dist/chains/openai_functions/extraction.d.ts +1 -3
- package/dist/chains/openai_functions/extraction.d.ts.map +1 -1
- package/dist/chains/openai_functions/extraction.js.map +1 -1
- package/dist/chains/openai_functions/index.cjs +0 -5
- package/dist/chains/openai_functions/index.cjs.map +1 -1
- package/dist/chains/openai_functions/index.d.cts +1 -2
- package/dist/chains/openai_functions/index.d.ts +1 -2
- package/dist/chains/openai_functions/index.js +1 -4
- package/dist/chains/openai_functions/index.js.map +1 -1
- package/dist/chains/openai_functions/openapi.cjs +4 -4
- package/dist/chains/openai_functions/openapi.cjs.map +1 -1
- package/dist/chains/openai_functions/openapi.d.cts +1 -1
- package/dist/chains/openai_functions/openapi.js +4 -4
- package/dist/chains/openai_functions/openapi.js.map +1 -1
- package/dist/chains/openai_functions/tagging.cjs.map +1 -1
- package/dist/chains/openai_functions/tagging.d.cts +1 -3
- package/dist/chains/openai_functions/tagging.d.cts.map +1 -1
- package/dist/chains/openai_functions/tagging.d.ts +1 -3
- package/dist/chains/openai_functions/tagging.d.ts.map +1 -1
- package/dist/chains/openai_functions/tagging.js.map +1 -1
- package/dist/chains/query_constructor/index.cjs +4 -4
- package/dist/chains/query_constructor/index.cjs.map +1 -1
- package/dist/chains/query_constructor/index.d.cts +4 -2
- package/dist/chains/query_constructor/index.d.cts.map +1 -1
- package/dist/chains/query_constructor/index.d.ts +4 -2
- package/dist/chains/query_constructor/index.d.ts.map +1 -1
- package/dist/chains/query_constructor/index.js +1 -1
- package/dist/chains/query_constructor/index.js.map +1 -1
- package/dist/chains/question_answering/load.d.ts +2 -2
- package/dist/chains/question_answering/load.d.ts.map +1 -1
- package/dist/chains/question_answering/map_reduce_prompts.cjs.map +1 -1
- package/dist/chains/question_answering/map_reduce_prompts.js.map +1 -1
- package/dist/chains/question_answering/refine_prompts.cjs.map +1 -1
- package/dist/chains/question_answering/refine_prompts.js.map +1 -1
- package/dist/chains/question_answering/stuff_prompts.cjs.map +1 -1
- package/dist/chains/question_answering/stuff_prompts.js.map +1 -1
- package/dist/chains/router/multi_prompt.cjs +4 -4
- package/dist/chains/router/multi_prompt.cjs.map +1 -1
- package/dist/chains/router/multi_prompt.js +1 -1
- package/dist/chains/router/multi_prompt.js.map +1 -1
- package/dist/chains/router/multi_retrieval_qa.cjs +4 -4
- package/dist/chains/router/multi_retrieval_qa.cjs.map +1 -1
- package/dist/chains/router/multi_retrieval_qa.js +1 -1
- package/dist/chains/router/multi_retrieval_qa.js.map +1 -1
- package/dist/chains/sql_db/sql_db_prompt.cjs.map +1 -1
- package/dist/chains/sql_db/sql_db_prompt.d.cts.map +1 -1
- package/dist/chains/sql_db/sql_db_prompt.d.ts.map +1 -1
- package/dist/chains/sql_db/sql_db_prompt.js.map +1 -1
- package/dist/chains/summarization/stuff_prompts.cjs.map +1 -1
- package/dist/chains/summarization/stuff_prompts.js.map +1 -1
- package/dist/chat_models/universal.cjs +8 -5
- package/dist/chat_models/universal.cjs.map +1 -1
- package/dist/chat_models/universal.d.cts +2 -2
- package/dist/chat_models/universal.d.cts.map +1 -1
- package/dist/chat_models/universal.d.ts +2 -2
- package/dist/chat_models/universal.d.ts.map +1 -1
- package/dist/chat_models/universal.js +8 -5
- package/dist/chat_models/universal.js.map +1 -1
- package/dist/document_loaders/fs/directory.cjs.map +1 -1
- package/dist/document_loaders/fs/directory.d.cts +0 -1
- package/dist/document_loaders/fs/directory.d.cts.map +1 -1
- package/dist/document_loaders/fs/directory.d.ts +0 -1
- package/dist/document_loaders/fs/directory.d.ts.map +1 -1
- package/dist/document_loaders/fs/directory.js.map +1 -1
- package/dist/document_loaders/fs/json.cjs +7 -1
- package/dist/document_loaders/fs/json.cjs.map +1 -1
- package/dist/document_loaders/fs/json.js +7 -1
- package/dist/document_loaders/fs/json.js.map +1 -1
- package/dist/embeddings/cache_backed.cjs +1 -1
- package/dist/embeddings/cache_backed.cjs.map +1 -1
- package/dist/embeddings/cache_backed.d.cts +1 -1
- package/dist/embeddings/cache_backed.d.ts +2 -2
- package/dist/embeddings/cache_backed.js +2 -2
- package/dist/embeddings/cache_backed.js.map +1 -1
- package/dist/evaluation/agents/trajectory.d.cts.map +1 -1
- package/dist/evaluation/comparison/pairwise.d.cts.map +1 -1
- package/dist/evaluation/criteria/criteria.d.cts.map +1 -1
- package/dist/evaluation/embedding_distance/base.cjs +2 -4
- package/dist/evaluation/embedding_distance/base.cjs.map +1 -1
- package/dist/evaluation/embedding_distance/base.js +2 -3
- package/dist/evaluation/embedding_distance/base.js.map +1 -1
- package/dist/evaluation/loader.cjs +7 -12
- package/dist/evaluation/loader.cjs.map +1 -1
- package/dist/evaluation/loader.d.cts +8 -2
- package/dist/evaluation/loader.d.cts.map +1 -1
- package/dist/evaluation/loader.d.ts +8 -2
- package/dist/evaluation/loader.d.ts.map +1 -1
- package/dist/evaluation/loader.js +7 -12
- package/dist/evaluation/loader.js.map +1 -1
- package/dist/hub/base.cjs.map +1 -1
- package/dist/hub/base.js.map +1 -1
- package/dist/index.cjs +38 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +11 -4
- package/dist/index.d.ts +11 -4
- package/dist/index.js +18 -4
- package/dist/index.js.map +1 -1
- package/dist/langchain-core/dist/load/serializable.d.cts.map +1 -1
- package/dist/langchain-core/dist/messages/base.d.cts +24 -33
- package/dist/langchain-core/dist/messages/base.d.cts.map +1 -1
- package/dist/langchain-core/dist/messages/content/index.d.cts +21 -2
- package/dist/langchain-core/dist/messages/content/index.d.cts.map +1 -1
- package/dist/langchain-core/dist/messages/content/tools.d.cts +67 -6
- package/dist/langchain-core/dist/messages/content/tools.d.cts.map +1 -1
- package/dist/langchain-core/dist/messages/message.d.cts +598 -0
- package/dist/langchain-core/dist/messages/message.d.cts.map +1 -0
- package/dist/langchain-core/dist/messages/metadata.d.cts +97 -0
- package/dist/langchain-core/dist/messages/metadata.d.cts.map +1 -0
- package/dist/langchain-core/dist/messages/utils.d.cts +75 -0
- package/dist/langchain-core/dist/messages/utils.d.cts.map +1 -0
- package/dist/langchain-core/dist/prompt_values.d.cts.map +1 -1
- package/dist/langchain-core/dist/utils/types/index.d.cts.map +1 -1
- package/dist/libs/langchain-core/dist/load/serializable.d.ts.map +1 -1
- package/dist/libs/langchain-core/dist/messages/base.d.ts +24 -33
- package/dist/libs/langchain-core/dist/messages/base.d.ts.map +1 -1
- package/dist/libs/langchain-core/dist/messages/content/index.d.ts +21 -2
- package/dist/libs/langchain-core/dist/messages/content/index.d.ts.map +1 -1
- package/dist/libs/langchain-core/dist/messages/content/tools.d.ts +67 -6
- package/dist/libs/langchain-core/dist/messages/content/tools.d.ts.map +1 -1
- package/dist/libs/langchain-core/dist/messages/message.d.ts +598 -0
- package/dist/libs/langchain-core/dist/messages/message.d.ts.map +1 -0
- package/dist/libs/langchain-core/dist/messages/metadata.d.ts +97 -0
- package/dist/libs/langchain-core/dist/messages/metadata.d.ts.map +1 -0
- package/dist/libs/langchain-core/dist/messages/utils.d.ts +75 -0
- package/dist/libs/langchain-core/dist/messages/utils.d.ts.map +1 -0
- package/dist/libs/langchain-core/dist/prompt_values.d.ts.map +1 -1
- package/dist/libs/langchain-core/dist/utils/types/index.d.ts +2 -0
- package/dist/libs/langchain-core/dist/utils/types/index.d.ts.map +1 -1
- package/dist/libs/langchain-core/dist/utils/types/zod.d.ts +1 -0
- package/dist/load/import_map.cjs +3 -14
- package/dist/load/import_map.cjs.map +1 -1
- package/dist/load/import_map.js +3 -14
- package/dist/load/import_map.js.map +1 -1
- package/dist/memory/prompt.cjs.map +1 -1
- package/dist/memory/prompt.d.cts.map +1 -1
- package/dist/memory/prompt.d.ts.map +1 -1
- package/dist/memory/prompt.js.map +1 -1
- package/dist/output_parsers/combining.cjs +1 -1
- package/dist/output_parsers/combining.cjs.map +1 -1
- package/dist/output_parsers/combining.js +1 -1
- package/dist/output_parsers/combining.js.map +1 -1
- 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.map +1 -1
- package/dist/output_parsers/expression_type_handlers/base.cjs +1 -1
- package/dist/output_parsers/expression_type_handlers/base.cjs.map +1 -1
- package/dist/output_parsers/expression_type_handlers/base.js +1 -1
- package/dist/output_parsers/expression_type_handlers/base.js.map +1 -1
- package/dist/output_parsers/regex.cjs.map +1 -1
- package/dist/output_parsers/regex.js.map +1 -1
- package/dist/output_parsers/structured.cjs +4 -4
- package/dist/output_parsers/structured.cjs.map +1 -1
- package/dist/output_parsers/structured.d.cts +1 -1
- package/dist/output_parsers/structured.d.cts.map +1 -1
- package/dist/output_parsers/structured.d.ts +1 -1
- package/dist/output_parsers/structured.d.ts.map +1 -1
- package/dist/output_parsers/structured.js +2 -2
- package/dist/output_parsers/structured.js.map +1 -1
- package/dist/retrievers/ensemble.cjs.map +1 -1
- package/dist/retrievers/ensemble.js.map +1 -1
- package/dist/storage/file_system.cjs +1 -1
- package/dist/storage/file_system.cjs.map +1 -1
- package/dist/storage/file_system.js +1 -1
- package/dist/storage/file_system.js.map +1 -1
- package/dist/tools/fs.cjs +5 -5
- package/dist/tools/fs.cjs.map +1 -1
- package/dist/tools/fs.d.cts +1 -1
- package/dist/tools/fs.d.cts.map +1 -1
- package/dist/tools/fs.d.ts +1 -1
- package/dist/tools/fs.d.ts.map +1 -1
- package/dist/tools/fs.js +1 -1
- package/dist/tools/fs.js.map +1 -1
- package/dist/tools/retriever.cjs +2 -2
- package/dist/tools/retriever.cjs.map +1 -1
- package/dist/tools/retriever.d.cts +1 -1
- package/dist/tools/retriever.d.cts.map +1 -1
- package/dist/tools/retriever.d.ts +1 -1
- package/dist/tools/retriever.d.ts.map +1 -1
- package/dist/tools/retriever.js +1 -1
- package/dist/tools/retriever.js.map +1 -1
- package/dist/tools/sql.cjs +1 -2
- package/dist/tools/sql.cjs.map +1 -1
- package/dist/tools/sql.d.cts +1 -1
- package/dist/tools/sql.d.cts.map +1 -1
- package/dist/tools/sql.d.ts +1 -1
- package/dist/tools/sql.d.ts.map +1 -1
- package/dist/tools/sql.js +1 -2
- package/dist/tools/sql.js.map +1 -1
- package/dist/types/expression-parser.d.cts +2 -0
- package/dist/types/expression-parser.d.cts.map +1 -1
- package/dist/types/expression-parser.d.ts +2 -0
- package/dist/types/expression-parser.d.ts.map +1 -1
- package/dist/util/hub.cjs +1 -1
- package/dist/util/hub.js +1 -1
- package/dist/util/openapi.cjs +1 -1
- package/dist/util/openapi.cjs.map +1 -1
- package/dist/util/openapi.js +1 -1
- package/dist/util/openapi.js.map +1 -1
- package/package.json +15 -21
- package/dist/agents/middlewareAgent/middlewares/hitl.cjs +0 -235
- package/dist/agents/middlewareAgent/middlewares/hitl.cjs.map +0 -1
- package/dist/agents/middlewareAgent/middlewares/hitl.d.cts +0 -199
- package/dist/agents/middlewareAgent/middlewares/hitl.d.cts.map +0 -1
- package/dist/agents/middlewareAgent/middlewares/hitl.d.ts +0 -199
- package/dist/agents/middlewareAgent/middlewares/hitl.d.ts.map +0 -1
- package/dist/agents/middlewareAgent/middlewares/hitl.js +0 -234
- package/dist/agents/middlewareAgent/middlewares/hitl.js.map +0 -1
- package/dist/agents/middlewareAgent/middlewares/index.cjs +0 -8
- package/dist/agents/middlewareAgent/middlewares/index.d.cts +0 -4
- package/dist/agents/middlewareAgent/middlewares/index.d.ts +0 -4
- package/dist/agents/middlewareAgent/middlewares/index.js +0 -5
- package/dist/agents/middlewareAgent/middlewares/promptCaching.cjs.map +0 -1
- package/dist/agents/middlewareAgent/middlewares/promptCaching.d.cts.map +0 -1
- package/dist/agents/middlewareAgent/middlewares/promptCaching.d.ts.map +0 -1
- package/dist/agents/middlewareAgent/middlewares/promptCaching.js.map +0 -1
- package/dist/agents/middlewareAgent/middlewares/summarization.cjs.map +0 -1
- package/dist/agents/middlewareAgent/middlewares/summarization.d.cts.map +0 -1
- package/dist/agents/middlewareAgent/middlewares/summarization.d.ts.map +0 -1
- package/dist/agents/middlewareAgent/middlewares/summarization.js.map +0 -1
- package/dist/chains/openai_functions/structured_output.cjs +0 -107
- package/dist/chains/openai_functions/structured_output.cjs.map +0 -1
- package/dist/chains/openai_functions/structured_output.d.cts +0 -38
- package/dist/chains/openai_functions/structured_output.d.cts.map +0 -1
- package/dist/chains/openai_functions/structured_output.d.ts +0 -38
- package/dist/chains/openai_functions/structured_output.d.ts.map +0 -1
- package/dist/chains/openai_functions/structured_output.js +0 -105
- package/dist/chains/openai_functions/structured_output.js.map +0 -1
- package/dist/chains/openai_moderation.cjs +0 -107
- package/dist/chains/openai_moderation.cjs.map +0 -1
- package/dist/chains/openai_moderation.d.cts +0 -74
- package/dist/chains/openai_moderation.d.cts.map +0 -1
- package/dist/chains/openai_moderation.d.ts +0 -74
- package/dist/chains/openai_moderation.d.ts.map +0 -1
- package/dist/chains/openai_moderation.js +0 -106
- package/dist/chains/openai_moderation.js.map +0 -1
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { AgentMiddleware } from "../types.js";
|
|
2
|
+
import * as _langchain_core_messages0 from "@langchain/core/messages";
|
|
3
|
+
import * as _langchain_core_language_models_chat_models0 from "@langchain/core/language_models/chat_models";
|
|
4
|
+
import { BaseChatModel } from "@langchain/core/language_models/chat_models";
|
|
5
|
+
import { InferInteropZodInput } from "@langchain/core/utils/types";
|
|
6
|
+
import { z } from "zod/v3";
|
|
7
|
+
|
|
8
|
+
//#region src/agents/middlewareAgent/middleware/bigTool.d.ts
|
|
9
|
+
/**
|
|
10
|
+
* Options for configuring the LLM Tool Selector middleware.
|
|
11
|
+
*/
|
|
12
|
+
declare const LLMToolSelectorOptionsSchema: z.ZodObject<{
|
|
13
|
+
/**
|
|
14
|
+
* The language model to use for tool selection (default: the provided model from the agent options).
|
|
15
|
+
*/
|
|
16
|
+
model: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodType<BaseChatModel<_langchain_core_language_models_chat_models0.BaseChatModelCallOptions, _langchain_core_messages0.BaseMessageChunk<_langchain_core_messages0.MessageStructure, _langchain_core_messages0.MessageType>>, z.ZodTypeDef, BaseChatModel<_langchain_core_language_models_chat_models0.BaseChatModelCallOptions, _langchain_core_messages0.BaseMessageChunk<_langchain_core_messages0.MessageStructure, _langchain_core_messages0.MessageType>>>]>>;
|
|
17
|
+
/**
|
|
18
|
+
* System prompt for the tool selection model.
|
|
19
|
+
*/
|
|
20
|
+
systemPrompt: z.ZodDefault<z.ZodString>;
|
|
21
|
+
/**
|
|
22
|
+
* Maximum number of tools to select.
|
|
23
|
+
*/
|
|
24
|
+
maxTools: z.ZodOptional<z.ZodNumber>;
|
|
25
|
+
/**
|
|
26
|
+
* Whether to include the full conversation history in the tool selection prompt.
|
|
27
|
+
*/
|
|
28
|
+
includeFullHistory: z.ZodDefault<z.ZodBoolean>;
|
|
29
|
+
/**
|
|
30
|
+
* Maximum number of retries if the model selects incorrect tools.
|
|
31
|
+
*/
|
|
32
|
+
maxRetries: z.ZodDefault<z.ZodNumber>;
|
|
33
|
+
}, "strip", z.ZodTypeAny, {
|
|
34
|
+
model?: string | BaseChatModel<_langchain_core_language_models_chat_models0.BaseChatModelCallOptions, _langchain_core_messages0.BaseMessageChunk<_langchain_core_messages0.MessageStructure, _langchain_core_messages0.MessageType>> | undefined;
|
|
35
|
+
systemPrompt: string;
|
|
36
|
+
maxTools?: number | undefined;
|
|
37
|
+
includeFullHistory: boolean;
|
|
38
|
+
maxRetries: number;
|
|
39
|
+
}, {
|
|
40
|
+
model?: string | BaseChatModel<_langchain_core_language_models_chat_models0.BaseChatModelCallOptions, _langchain_core_messages0.BaseMessageChunk<_langchain_core_messages0.MessageStructure, _langchain_core_messages0.MessageType>> | undefined;
|
|
41
|
+
systemPrompt?: string | undefined;
|
|
42
|
+
maxTools?: number | undefined;
|
|
43
|
+
includeFullHistory?: boolean | undefined;
|
|
44
|
+
maxRetries?: number | undefined;
|
|
45
|
+
}>;
|
|
46
|
+
type LLMToolSelectorConfig = InferInteropZodInput<typeof LLMToolSelectorOptionsSchema>;
|
|
47
|
+
/**
|
|
48
|
+
* Middleware for selecting tools using an LLM-based strategy.
|
|
49
|
+
*
|
|
50
|
+
* This middleware analyzes the user's query and available tools to select
|
|
51
|
+
* the most relevant tools for the task, reducing the cognitive load on the
|
|
52
|
+
* main model and improving response quality.
|
|
53
|
+
*
|
|
54
|
+
* @param options - Configuration options for the middleware
|
|
55
|
+
* @param options.model - The language model to use for tool selection (default: the provided model from the agent options).
|
|
56
|
+
* @param options.systemPrompt - System prompt for the tool selection model.
|
|
57
|
+
* @param options.maxTools - Maximum number of tools to select.
|
|
58
|
+
* @param options.includeFullHistory - Whether to include the full conversation history in the tool selection prompt.
|
|
59
|
+
* @param options.maxRetries - Maximum number of retries if the model selects incorrect tools.
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```ts
|
|
63
|
+
* import { llmToolSelectorMiddleware } from "langchain/agents/middleware";
|
|
64
|
+
*
|
|
65
|
+
* const middleware = llmToolSelectorMiddleware({
|
|
66
|
+
* maxTools: 3,
|
|
67
|
+
* systemPrompt: "Select the most relevant tools for the user's query."
|
|
68
|
+
* });
|
|
69
|
+
*
|
|
70
|
+
* const agent = createAgent({
|
|
71
|
+
* model: "openai:gpt-4o",
|
|
72
|
+
* tools: [tool1, tool2, tool3, tool4, tool5],
|
|
73
|
+
* middleware: [middleware],
|
|
74
|
+
* });
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
77
|
+
declare function llmToolSelectorMiddleware(options: LLMToolSelectorConfig): AgentMiddleware<undefined, z.ZodObject<{
|
|
78
|
+
/**
|
|
79
|
+
* The language model to use for tool selection (default: the provided model from the agent options).
|
|
80
|
+
*/
|
|
81
|
+
model: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodType<BaseChatModel<_langchain_core_language_models_chat_models0.BaseChatModelCallOptions, _langchain_core_messages0.BaseMessageChunk<_langchain_core_messages0.MessageStructure, _langchain_core_messages0.MessageType>>, z.ZodTypeDef, BaseChatModel<_langchain_core_language_models_chat_models0.BaseChatModelCallOptions, _langchain_core_messages0.BaseMessageChunk<_langchain_core_messages0.MessageStructure, _langchain_core_messages0.MessageType>>>]>>;
|
|
82
|
+
/**
|
|
83
|
+
* System prompt for the tool selection model.
|
|
84
|
+
*/
|
|
85
|
+
systemPrompt: z.ZodDefault<z.ZodString>;
|
|
86
|
+
/**
|
|
87
|
+
* Maximum number of tools to select.
|
|
88
|
+
*/
|
|
89
|
+
maxTools: z.ZodOptional<z.ZodNumber>;
|
|
90
|
+
/**
|
|
91
|
+
* Whether to include the full conversation history in the tool selection prompt.
|
|
92
|
+
*/
|
|
93
|
+
includeFullHistory: z.ZodDefault<z.ZodBoolean>;
|
|
94
|
+
/**
|
|
95
|
+
* Maximum number of retries if the model selects incorrect tools.
|
|
96
|
+
*/
|
|
97
|
+
maxRetries: z.ZodDefault<z.ZodNumber>;
|
|
98
|
+
}, "strip", z.ZodTypeAny, {
|
|
99
|
+
model?: string | BaseChatModel<_langchain_core_language_models_chat_models0.BaseChatModelCallOptions, _langchain_core_messages0.BaseMessageChunk<_langchain_core_messages0.MessageStructure, _langchain_core_messages0.MessageType>> | undefined;
|
|
100
|
+
systemPrompt: string;
|
|
101
|
+
maxTools?: number | undefined;
|
|
102
|
+
includeFullHistory: boolean;
|
|
103
|
+
maxRetries: number;
|
|
104
|
+
}, {
|
|
105
|
+
model?: string | BaseChatModel<_langchain_core_language_models_chat_models0.BaseChatModelCallOptions, _langchain_core_messages0.BaseMessageChunk<_langchain_core_messages0.MessageStructure, _langchain_core_messages0.MessageType>> | undefined;
|
|
106
|
+
systemPrompt?: string | undefined;
|
|
107
|
+
maxTools?: number | undefined;
|
|
108
|
+
includeFullHistory?: boolean | undefined;
|
|
109
|
+
maxRetries?: number | undefined;
|
|
110
|
+
}>, any>;
|
|
111
|
+
//#endregion
|
|
112
|
+
export { LLMToolSelectorConfig, llmToolSelectorMiddleware };
|
|
113
|
+
//# sourceMappingURL=bigTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bigTool.d.ts","names":["_langchain_core_messages0","___types_js3","z","BaseChatModel","InferInteropZodInput","LLMToolSelectorOptionsSchema","ZodString","_langchain_core_language_models_chat_models0","BaseChatModelCallOptions","MessageStructure","MessageType","BaseMessageChunk","ZodTypeDef","ZodType","ZodUnion","ZodOptional","ZodDefault","ZodNumber","ZodBoolean","ZodTypeAny","ZodObject","LLMToolSelectorConfig","llmToolSelectorMiddleware","AgentMiddleware"],"sources":["../../../../src/agents/middlewareAgent/middleware/bigTool.d.ts"],"sourcesContent":["import { z } from \"zod/v3\";\nimport { BaseChatModel } from \"@langchain/core/language_models/chat_models\";\nimport type { InferInteropZodInput } from \"@langchain/core/utils/types\";\n/**\n * Options for configuring the LLM Tool Selector middleware.\n */\nexport declare const LLMToolSelectorOptionsSchema: z.ZodObject<{\n /**\n * The language model to use for tool selection (default: the provided model from the agent options).\n */\n model: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodType<BaseChatModel<import(\"@langchain/core/language_models/chat_models\").BaseChatModelCallOptions, import(\"@langchain/core/messages\").BaseMessageChunk<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>>, z.ZodTypeDef, BaseChatModel<import(\"@langchain/core/language_models/chat_models\").BaseChatModelCallOptions, import(\"@langchain/core/messages\").BaseMessageChunk<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>>>]>>;\n /**\n * System prompt for the tool selection model.\n */\n systemPrompt: z.ZodDefault<z.ZodString>;\n /**\n * Maximum number of tools to select.\n */\n maxTools: z.ZodOptional<z.ZodNumber>;\n /**\n * Whether to include the full conversation history in the tool selection prompt.\n */\n includeFullHistory: z.ZodDefault<z.ZodBoolean>;\n /**\n * Maximum number of retries if the model selects incorrect tools.\n */\n maxRetries: z.ZodDefault<z.ZodNumber>;\n}, \"strip\", z.ZodTypeAny, {\n model?: string | BaseChatModel<import(\"@langchain/core/language_models/chat_models\").BaseChatModelCallOptions, import(\"@langchain/core/messages\").BaseMessageChunk<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>> | undefined;\n systemPrompt: string;\n maxTools?: number | undefined;\n includeFullHistory: boolean;\n maxRetries: number;\n}, {\n model?: string | BaseChatModel<import(\"@langchain/core/language_models/chat_models\").BaseChatModelCallOptions, import(\"@langchain/core/messages\").BaseMessageChunk<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>> | undefined;\n systemPrompt?: string | undefined;\n maxTools?: number | undefined;\n includeFullHistory?: boolean | undefined;\n maxRetries?: number | undefined;\n}>;\nexport type LLMToolSelectorConfig = InferInteropZodInput<typeof LLMToolSelectorOptionsSchema>;\n/**\n * Middleware for selecting tools using an LLM-based strategy.\n *\n * This middleware analyzes the user's query and available tools to select\n * the most relevant tools for the task, reducing the cognitive load on the\n * main model and improving response quality.\n *\n * @param options - Configuration options for the middleware\n * @param options.model - The language model to use for tool selection (default: the provided model from the agent options).\n * @param options.systemPrompt - System prompt for the tool selection model.\n * @param options.maxTools - Maximum number of tools to select.\n * @param options.includeFullHistory - Whether to include the full conversation history in the tool selection prompt.\n * @param options.maxRetries - Maximum number of retries if the model selects incorrect tools.\n *\n * @example\n * ```ts\n * import { llmToolSelectorMiddleware } from \"langchain/agents/middleware\";\n *\n * const middleware = llmToolSelectorMiddleware({\n * maxTools: 3,\n * systemPrompt: \"Select the most relevant tools for the user's query.\"\n * });\n *\n * const agent = createAgent({\n * model: \"openai:gpt-4o\",\n * tools: [tool1, tool2, tool3, tool4, tool5],\n * middleware: [middleware],\n * });\n * ```\n */\nexport declare function llmToolSelectorMiddleware(options: LLMToolSelectorConfig): import(\"../types.js\").AgentMiddleware<undefined, z.ZodObject<{\n /**\n * The language model to use for tool selection (default: the provided model from the agent options).\n */\n model: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodType<BaseChatModel<import(\"@langchain/core/language_models/chat_models\").BaseChatModelCallOptions, import(\"@langchain/core/messages\").BaseMessageChunk<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>>, z.ZodTypeDef, BaseChatModel<import(\"@langchain/core/language_models/chat_models\").BaseChatModelCallOptions, import(\"@langchain/core/messages\").BaseMessageChunk<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>>>]>>;\n /**\n * System prompt for the tool selection model.\n */\n systemPrompt: z.ZodDefault<z.ZodString>;\n /**\n * Maximum number of tools to select.\n */\n maxTools: z.ZodOptional<z.ZodNumber>;\n /**\n * Whether to include the full conversation history in the tool selection prompt.\n */\n includeFullHistory: z.ZodDefault<z.ZodBoolean>;\n /**\n * Maximum number of retries if the model selects incorrect tools.\n */\n maxRetries: z.ZodDefault<z.ZodNumber>;\n}, \"strip\", z.ZodTypeAny, {\n model?: string | BaseChatModel<import(\"@langchain/core/language_models/chat_models\").BaseChatModelCallOptions, import(\"@langchain/core/messages\").BaseMessageChunk<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>> | undefined;\n systemPrompt: string;\n maxTools?: number | undefined;\n includeFullHistory: boolean;\n maxRetries: number;\n}, {\n model?: string | BaseChatModel<import(\"@langchain/core/language_models/chat_models\").BaseChatModelCallOptions, import(\"@langchain/core/messages\").BaseMessageChunk<import(\"@langchain/core/messages\").MessageStructure, import(\"@langchain/core/messages\").MessageType>> | undefined;\n systemPrompt?: string | undefined;\n maxTools?: number | undefined;\n includeFullHistory?: boolean | undefined;\n maxRetries?: number | undefined;\n}>, any>;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { initChatModel } from "../../../chat_models/universal.js";
|
|
2
|
+
import { createMiddleware } from "../middleware.js";
|
|
3
|
+
import { HumanMessage } from "@langchain/core/messages";
|
|
4
|
+
import { BaseChatModel } from "@langchain/core/language_models/chat_models";
|
|
5
|
+
import { z } from "zod/v3";
|
|
6
|
+
|
|
7
|
+
//#region src/agents/middlewareAgent/middleware/bigTool.ts
|
|
8
|
+
/**
|
|
9
|
+
* Zod schema for tool selection structured output.
|
|
10
|
+
*/
|
|
11
|
+
const ToolSelectionSchema = z.object({ selectedTools: z.array(z.string()).describe("List of selected tool names") });
|
|
12
|
+
const DEFAULT_SYSTEM_PROMPT = "Your goal is to select the most relevant tool for answering the user's query.";
|
|
13
|
+
const DEFAULT_INCLUDE_FULL_HISTORY = false;
|
|
14
|
+
const DEFAULT_MAX_RETRIES = 3;
|
|
15
|
+
/**
|
|
16
|
+
* Options for configuring the LLM Tool Selector middleware.
|
|
17
|
+
*/
|
|
18
|
+
const LLMToolSelectorOptionsSchema = z.object({
|
|
19
|
+
model: z.string().or(z.instanceof(BaseChatModel)).optional(),
|
|
20
|
+
systemPrompt: z.string().default(DEFAULT_SYSTEM_PROMPT),
|
|
21
|
+
maxTools: z.number().optional(),
|
|
22
|
+
includeFullHistory: z.boolean().default(DEFAULT_INCLUDE_FULL_HISTORY),
|
|
23
|
+
maxRetries: z.number().default(DEFAULT_MAX_RETRIES)
|
|
24
|
+
});
|
|
25
|
+
/**
|
|
26
|
+
* Middleware for selecting tools using an LLM-based strategy.
|
|
27
|
+
*
|
|
28
|
+
* This middleware analyzes the user's query and available tools to select
|
|
29
|
+
* the most relevant tools for the task, reducing the cognitive load on the
|
|
30
|
+
* main model and improving response quality.
|
|
31
|
+
*
|
|
32
|
+
* @param options - Configuration options for the middleware
|
|
33
|
+
* @param options.model - The language model to use for tool selection (default: the provided model from the agent options).
|
|
34
|
+
* @param options.systemPrompt - System prompt for the tool selection model.
|
|
35
|
+
* @param options.maxTools - Maximum number of tools to select.
|
|
36
|
+
* @param options.includeFullHistory - Whether to include the full conversation history in the tool selection prompt.
|
|
37
|
+
* @param options.maxRetries - Maximum number of retries if the model selects incorrect tools.
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```ts
|
|
41
|
+
* import { llmToolSelectorMiddleware } from "langchain/agents/middleware";
|
|
42
|
+
*
|
|
43
|
+
* const middleware = llmToolSelectorMiddleware({
|
|
44
|
+
* maxTools: 3,
|
|
45
|
+
* systemPrompt: "Select the most relevant tools for the user's query."
|
|
46
|
+
* });
|
|
47
|
+
*
|
|
48
|
+
* const agent = createAgent({
|
|
49
|
+
* model: "openai:gpt-4o",
|
|
50
|
+
* tools: [tool1, tool2, tool3, tool4, tool5],
|
|
51
|
+
* middleware: [middleware],
|
|
52
|
+
* });
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
function llmToolSelectorMiddleware(options) {
|
|
56
|
+
return createMiddleware({
|
|
57
|
+
name: "LLMToolSelector",
|
|
58
|
+
contextSchema: LLMToolSelectorOptionsSchema,
|
|
59
|
+
async modifyModelRequest(request, _, runtime) {
|
|
60
|
+
const model = runtime.context.model ?? options.model;
|
|
61
|
+
const maxTools = runtime.context.maxTools ?? options.maxTools;
|
|
62
|
+
const includeFullHistory = runtime.context.includeFullHistory === DEFAULT_INCLUDE_FULL_HISTORY ? options.includeFullHistory ?? runtime.context.includeFullHistory : runtime.context.includeFullHistory ?? options.includeFullHistory;
|
|
63
|
+
const maxRetries = runtime.context.maxRetries === DEFAULT_MAX_RETRIES ? options.maxRetries ?? runtime.context.maxRetries : runtime.context.maxRetries ?? options.maxRetries;
|
|
64
|
+
const defaultSystemPrompt = runtime.context.systemPrompt === DEFAULT_SYSTEM_PROMPT ? options.systemPrompt ?? runtime.context.systemPrompt : runtime.context.systemPrompt ?? options.systemPrompt;
|
|
65
|
+
/**
|
|
66
|
+
* If no tools available, return request unchanged
|
|
67
|
+
*/
|
|
68
|
+
if (!request.tools || request.tools.length === 0) return request;
|
|
69
|
+
/**
|
|
70
|
+
* Extract tool information
|
|
71
|
+
*/
|
|
72
|
+
const toolInfo = runtime.tools.map((tool) => ({
|
|
73
|
+
name: tool.name,
|
|
74
|
+
description: tool.description,
|
|
75
|
+
tool
|
|
76
|
+
}));
|
|
77
|
+
/**
|
|
78
|
+
* Build tool representation for the prompt
|
|
79
|
+
*/
|
|
80
|
+
const toolRepresentation = toolInfo.map(({ name, description }) => `- ${name}: ${description}`).join("\n");
|
|
81
|
+
/**
|
|
82
|
+
* Build system message
|
|
83
|
+
*/
|
|
84
|
+
let systemMessage = `You are an agent that can use the following tools:\n${toolRepresentation}\n${defaultSystemPrompt}`;
|
|
85
|
+
if (includeFullHistory) {
|
|
86
|
+
const userMessages = request.messages.filter(HumanMessage.isInstance).map((msg) => msg.content).join("\n");
|
|
87
|
+
systemMessage += `\nThe full conversation history is:\n${userMessages}`;
|
|
88
|
+
}
|
|
89
|
+
if (maxTools !== void 0) systemMessage += ` You can select up to ${maxTools} tools.`;
|
|
90
|
+
/**
|
|
91
|
+
* Get the latest user message
|
|
92
|
+
*/
|
|
93
|
+
const latestMessage = request.messages.at(-1);
|
|
94
|
+
const userContent = typeof latestMessage?.content === "string" ? latestMessage?.content : JSON.stringify(latestMessage?.content);
|
|
95
|
+
/**
|
|
96
|
+
* Create tool selection model
|
|
97
|
+
*/
|
|
98
|
+
const toolSelectionModel = !model ? request.model : typeof model === "string" ? await initChatModel(model) : model;
|
|
99
|
+
const validToolNames = toolInfo.map(({ name }) => name);
|
|
100
|
+
const structuredModel = await toolSelectionModel.withStructuredOutput(ToolSelectionSchema);
|
|
101
|
+
let attempts = 0;
|
|
102
|
+
let selectedToolNames = [...validToolNames];
|
|
103
|
+
while (attempts <= maxRetries) try {
|
|
104
|
+
const response = await structuredModel.invoke([{
|
|
105
|
+
role: "system",
|
|
106
|
+
content: systemMessage
|
|
107
|
+
}, {
|
|
108
|
+
role: "user",
|
|
109
|
+
content: userContent
|
|
110
|
+
}]);
|
|
111
|
+
selectedToolNames = response.selectedTools;
|
|
112
|
+
/**
|
|
113
|
+
* Validate that selected tools exist
|
|
114
|
+
*/
|
|
115
|
+
const invalidTools = selectedToolNames.filter((name) => !validToolNames.includes(name));
|
|
116
|
+
if (selectedToolNames.length === 0) {
|
|
117
|
+
systemMessage += `\n\nNote: You have not selected any tools. Please select at least one tool.`;
|
|
118
|
+
attempts++;
|
|
119
|
+
} else if (invalidTools.length === 0 && maxTools && selectedToolNames.length > maxTools) {
|
|
120
|
+
systemMessage += `\n\nNote: You have selected more tools than the maximum allowed. You can select up to ${maxTools} tools.`;
|
|
121
|
+
attempts++;
|
|
122
|
+
} else if (invalidTools.length === 0)
|
|
123
|
+
/**
|
|
124
|
+
* Success
|
|
125
|
+
*/
|
|
126
|
+
break;
|
|
127
|
+
else if (attempts < maxRetries) {
|
|
128
|
+
/**
|
|
129
|
+
* Retry with feedback about invalid tools
|
|
130
|
+
*/
|
|
131
|
+
systemMessage += `\n\nNote: The following tools are not available: ${invalidTools.join(", ")}. Please select only from the available tools.`;
|
|
132
|
+
attempts++;
|
|
133
|
+
} else {
|
|
134
|
+
/**
|
|
135
|
+
* Filter out invalid tools on final attempt
|
|
136
|
+
*/
|
|
137
|
+
selectedToolNames = selectedToolNames.filter((name) => validToolNames.includes(name));
|
|
138
|
+
break;
|
|
139
|
+
}
|
|
140
|
+
} catch {
|
|
141
|
+
/**
|
|
142
|
+
* Fall back to using all tools
|
|
143
|
+
*/
|
|
144
|
+
if (attempts >= maxRetries) return request;
|
|
145
|
+
attempts++;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Filter tools based on selection
|
|
149
|
+
*/
|
|
150
|
+
const selectedTools = toolInfo.filter(({ name }) => selectedToolNames.includes(name)).map(({ name }) => name);
|
|
151
|
+
return {
|
|
152
|
+
...request,
|
|
153
|
+
tools: selectedTools
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
//#endregion
|
|
160
|
+
export { llmToolSelectorMiddleware };
|
|
161
|
+
//# sourceMappingURL=bigTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bigTool.js","names":["options: LLMToolSelectorConfig","msg: BaseMessage","selectedToolNames: string[]"],"sources":["../../../../src/agents/middlewareAgent/middleware/bigTool.ts"],"sourcesContent":["import { z } from \"zod/v3\";\nimport { BaseChatModel } from \"@langchain/core/language_models/chat_models\";\nimport type { InferInteropZodInput } from \"@langchain/core/utils/types\";\nimport { BaseMessage, HumanMessage } from \"@langchain/core/messages\";\n\nimport { createMiddleware } from \"../middleware.js\";\nimport { initChatModel } from \"../../../chat_models/universal.js\";\nimport type { ModelRequest } from \"../types.js\";\n\n/**\n * Zod schema for tool selection structured output.\n */\nconst ToolSelectionSchema = z.object({\n selectedTools: z.array(z.string()).describe(\"List of selected tool names\"),\n});\n\nconst DEFAULT_SYSTEM_PROMPT =\n \"Your goal is to select the most relevant tool for answering the user's query.\";\nconst DEFAULT_INCLUDE_FULL_HISTORY = false;\nconst DEFAULT_MAX_RETRIES = 3;\n\n/**\n * Options for configuring the LLM Tool Selector middleware.\n */\nexport const LLMToolSelectorOptionsSchema = z.object({\n /**\n * The language model to use for tool selection (default: the provided model from the agent options).\n */\n model: z.string().or(z.instanceof(BaseChatModel)).optional(),\n /**\n * System prompt for the tool selection model.\n */\n systemPrompt: z.string().default(DEFAULT_SYSTEM_PROMPT),\n /**\n * Maximum number of tools to select.\n */\n maxTools: z.number().optional(),\n /**\n * Whether to include the full conversation history in the tool selection prompt.\n */\n includeFullHistory: z.boolean().default(DEFAULT_INCLUDE_FULL_HISTORY),\n /**\n * Maximum number of retries if the model selects incorrect tools.\n */\n maxRetries: z.number().default(DEFAULT_MAX_RETRIES),\n});\nexport type LLMToolSelectorConfig = InferInteropZodInput<\n typeof LLMToolSelectorOptionsSchema\n>;\n\n/**\n * Middleware for selecting tools using an LLM-based strategy.\n *\n * This middleware analyzes the user's query and available tools to select\n * the most relevant tools for the task, reducing the cognitive load on the\n * main model and improving response quality.\n *\n * @param options - Configuration options for the middleware\n * @param options.model - The language model to use for tool selection (default: the provided model from the agent options).\n * @param options.systemPrompt - System prompt for the tool selection model.\n * @param options.maxTools - Maximum number of tools to select.\n * @param options.includeFullHistory - Whether to include the full conversation history in the tool selection prompt.\n * @param options.maxRetries - Maximum number of retries if the model selects incorrect tools.\n *\n * @example\n * ```ts\n * import { llmToolSelectorMiddleware } from \"langchain/agents/middleware\";\n *\n * const middleware = llmToolSelectorMiddleware({\n * maxTools: 3,\n * systemPrompt: \"Select the most relevant tools for the user's query.\"\n * });\n *\n * const agent = createAgent({\n * model: \"openai:gpt-4o\",\n * tools: [tool1, tool2, tool3, tool4, tool5],\n * middleware: [middleware],\n * });\n * ```\n */\nexport function llmToolSelectorMiddleware(options: LLMToolSelectorConfig) {\n return createMiddleware({\n name: \"LLMToolSelector\",\n contextSchema: LLMToolSelectorOptionsSchema,\n async modifyModelRequest(request, _, runtime): Promise<ModelRequest> {\n const model = runtime.context.model ?? options.model;\n const maxTools = runtime.context.maxTools ?? options.maxTools;\n const includeFullHistory =\n runtime.context.includeFullHistory === DEFAULT_INCLUDE_FULL_HISTORY\n ? options.includeFullHistory ?? runtime.context.includeFullHistory\n : runtime.context.includeFullHistory ?? options.includeFullHistory;\n const maxRetries =\n runtime.context.maxRetries === DEFAULT_MAX_RETRIES\n ? options.maxRetries ?? runtime.context.maxRetries\n : runtime.context.maxRetries ?? options.maxRetries;\n const defaultSystemPrompt =\n runtime.context.systemPrompt === DEFAULT_SYSTEM_PROMPT\n ? options.systemPrompt ?? runtime.context.systemPrompt\n : runtime.context.systemPrompt ?? options.systemPrompt;\n\n /**\n * If no tools available, return request unchanged\n */\n if (!request.tools || request.tools.length === 0) {\n return request;\n }\n\n /**\n * Extract tool information\n */\n const toolInfo = runtime.tools.map((tool) => ({\n name: tool.name as string,\n description: tool.description,\n tool,\n }));\n\n /**\n * Build tool representation for the prompt\n */\n const toolRepresentation = toolInfo\n .map(({ name, description }) => `- ${name}: ${description}`)\n .join(\"\\n\");\n\n /**\n * Build system message\n */\n let systemMessage = `You are an agent that can use the following tools:\\n${toolRepresentation}\\n${defaultSystemPrompt}`;\n\n if (includeFullHistory) {\n const userMessages = request.messages\n .filter(HumanMessage.isInstance)\n .map((msg: BaseMessage) => msg.content)\n .join(\"\\n\");\n systemMessage += `\\nThe full conversation history is:\\n${userMessages}`;\n }\n\n if (maxTools !== undefined) {\n systemMessage += ` You can select up to ${maxTools} tools.`;\n }\n\n /**\n * Get the latest user message\n */\n const latestMessage = request.messages.at(-1);\n const userContent =\n typeof latestMessage?.content === \"string\"\n ? latestMessage?.content\n : JSON.stringify(latestMessage?.content);\n\n /**\n * Create tool selection model\n */\n const toolSelectionModel = !model\n ? (request.model as BaseChatModel)\n : typeof model === \"string\"\n ? await initChatModel(model)\n : model;\n\n const validToolNames = toolInfo.map(({ name }) => name);\n const structuredModel = await toolSelectionModel.withStructuredOutput(\n ToolSelectionSchema\n );\n\n let attempts = 0;\n let selectedToolNames: string[] = [...validToolNames];\n\n while (attempts <= maxRetries) {\n try {\n const response = await structuredModel.invoke([\n { role: \"system\", content: systemMessage },\n { role: \"user\", content: userContent },\n ]);\n\n selectedToolNames = response.selectedTools;\n\n /**\n * Validate that selected tools exist\n */\n const invalidTools = selectedToolNames.filter(\n (name) => !validToolNames.includes(name)\n );\n\n if (selectedToolNames.length === 0) {\n systemMessage += `\\n\\nNote: You have not selected any tools. Please select at least one tool.`;\n attempts++;\n } else if (\n invalidTools.length === 0 &&\n maxTools &&\n selectedToolNames.length > maxTools\n ) {\n systemMessage += `\\n\\nNote: You have selected more tools than the maximum allowed. You can select up to ${maxTools} tools.`;\n attempts++;\n } else if (invalidTools.length === 0) {\n /**\n * Success\n */\n break;\n } else if (attempts < maxRetries) {\n /**\n * Retry with feedback about invalid tools\n */\n systemMessage += `\\n\\nNote: The following tools are not available: ${invalidTools.join(\n \", \"\n )}. Please select only from the available tools.`;\n attempts++;\n } else {\n /**\n * Filter out invalid tools on final attempt\n */\n selectedToolNames = selectedToolNames.filter((name) =>\n validToolNames.includes(name)\n );\n break;\n }\n } catch {\n /**\n * Fall back to using all tools\n */\n if (attempts >= maxRetries) {\n return request;\n }\n attempts++;\n }\n }\n\n /**\n * Filter tools based on selection\n */\n const selectedTools = toolInfo\n .filter(({ name }) => selectedToolNames.includes(name))\n .map(({ name }) => name);\n\n return {\n ...request,\n tools: selectedTools,\n };\n },\n });\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
const require_middleware = require('../middleware.cjs');
|
|
2
|
+
|
|
3
|
+
//#region src/agents/middlewareAgent/middleware/dynamicSystemPrompt.ts
|
|
4
|
+
/**
|
|
5
|
+
* Dynamic System Prompt Middleware
|
|
6
|
+
*
|
|
7
|
+
* Allows setting the system prompt dynamically right before each model invocation.
|
|
8
|
+
* Useful when the prompt depends on the current agent state or per-invocation context.
|
|
9
|
+
*
|
|
10
|
+
* @typeParam TContextSchema - The shape of the runtime context available at invocation time.
|
|
11
|
+
* If your agent defines a `contextSchema`, pass the inferred type here to get full type-safety
|
|
12
|
+
* for `runtime.context`.
|
|
13
|
+
*
|
|
14
|
+
* @param fn - Function that receives the current agent `state` and `runtime`, and
|
|
15
|
+
* returns the system prompt for the next model call as a string.
|
|
16
|
+
*
|
|
17
|
+
* @returns A middleware instance that sets `systemPrompt` for the next model call.
|
|
18
|
+
*
|
|
19
|
+
* @example Basic usage with typed context
|
|
20
|
+
* ```ts
|
|
21
|
+
* import { z } from "zod";
|
|
22
|
+
* import { dynamicSystemPrompt } from "langchain/middleware";
|
|
23
|
+
* import { createAgent, SystemMessage } from "langchain";
|
|
24
|
+
*
|
|
25
|
+
* const contextSchema = z.object({ region: z.string().optional() });
|
|
26
|
+
*
|
|
27
|
+
* const middleware = dynamicSystemPrompt<z.infer<typeof contextSchema>>(
|
|
28
|
+
* (_state, runtime) => `You are a helpful assistant. Region: ${runtime.context.region ?? "n/a"}`
|
|
29
|
+
* );
|
|
30
|
+
*
|
|
31
|
+
* const agent = createAgent({
|
|
32
|
+
* model: "anthropic:claude-3-5-sonnet",
|
|
33
|
+
* contextSchema,
|
|
34
|
+
* middleware: [middleware],
|
|
35
|
+
* });
|
|
36
|
+
*
|
|
37
|
+
* await agent.invoke({ messages }, { context: { region: "EU" } });
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* @public
|
|
41
|
+
*/
|
|
42
|
+
function dynamicSystemPromptMiddleware(fn) {
|
|
43
|
+
return require_middleware.createMiddleware({
|
|
44
|
+
name: "DynamicSystemPromptMiddleware",
|
|
45
|
+
modifyModelRequest: async (options, state, runtime) => {
|
|
46
|
+
const systemPrompt = await fn(state, runtime);
|
|
47
|
+
if (typeof systemPrompt !== "string") throw new Error("dynamicSystemPromptMiddleware function must return a string");
|
|
48
|
+
return {
|
|
49
|
+
...options,
|
|
50
|
+
systemPrompt
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
//#endregion
|
|
57
|
+
exports.dynamicSystemPromptMiddleware = dynamicSystemPromptMiddleware;
|
|
58
|
+
//# sourceMappingURL=dynamicSystemPrompt.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynamicSystemPrompt.cjs","names":["fn: DynamicSystemPromptMiddlewareConfig<TContextSchema>","createMiddleware"],"sources":["../../../../src/agents/middlewareAgent/middleware/dynamicSystemPrompt.ts"],"sourcesContent":["import { createMiddleware } from \"../middleware.js\";\nimport type { Runtime, AgentBuiltInState } from \"../types.js\";\n\nexport type DynamicSystemPromptMiddlewareConfig<TContextSchema> = (\n state: AgentBuiltInState,\n runtime: Runtime<AgentBuiltInState, TContextSchema>\n) => string | Promise<string>;\n\n/**\n * Dynamic System Prompt Middleware\n *\n * Allows setting the system prompt dynamically right before each model invocation.\n * Useful when the prompt depends on the current agent state or per-invocation context.\n *\n * @typeParam TContextSchema - The shape of the runtime context available at invocation time.\n * If your agent defines a `contextSchema`, pass the inferred type here to get full type-safety\n * for `runtime.context`.\n *\n * @param fn - Function that receives the current agent `state` and `runtime`, and\n * returns the system prompt for the next model call as a string.\n *\n * @returns A middleware instance that sets `systemPrompt` for the next model call.\n *\n * @example Basic usage with typed context\n * ```ts\n * import { z } from \"zod\";\n * import { dynamicSystemPrompt } from \"langchain/middleware\";\n * import { createAgent, SystemMessage } from \"langchain\";\n *\n * const contextSchema = z.object({ region: z.string().optional() });\n *\n * const middleware = dynamicSystemPrompt<z.infer<typeof contextSchema>>(\n * (_state, runtime) => `You are a helpful assistant. Region: ${runtime.context.region ?? \"n/a\"}`\n * );\n *\n * const agent = createAgent({\n * model: \"anthropic:claude-3-5-sonnet\",\n * contextSchema,\n * middleware: [middleware],\n * });\n *\n * await agent.invoke({ messages }, { context: { region: \"EU\" } });\n * ```\n *\n * @public\n */\nexport function dynamicSystemPromptMiddleware<TContextSchema = unknown>(\n fn: DynamicSystemPromptMiddlewareConfig<TContextSchema>\n) {\n return createMiddleware({\n name: \"DynamicSystemPromptMiddleware\",\n modifyModelRequest: async (options, state, runtime) => {\n const systemPrompt = await fn(\n state as AgentBuiltInState,\n runtime as Runtime<AgentBuiltInState, TContextSchema>\n );\n\n if (typeof systemPrompt !== \"string\") {\n throw new Error(\n \"dynamicSystemPromptMiddleware function must return a string\"\n );\n }\n\n return { ...options, systemPrompt };\n },\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CA,SAAgB,8BACdA,IACA;AACA,QAAOC,oCAAiB;EACtB,MAAM;EACN,oBAAoB,OAAO,SAAS,OAAO,YAAY;GACrD,MAAM,eAAe,MAAM,GACzB,OACA,QACD;AAED,OAAI,OAAO,iBAAiB,SAC1B,OAAM,IAAI,MACR;AAIJ,UAAO;IAAE,GAAG;IAAS;GAAc;EACpC;CACF,EAAC;AACH"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { AgentBuiltInState, AgentMiddleware, Runtime } from "../types.cjs";
|
|
2
|
+
|
|
3
|
+
//#region src/agents/middlewareAgent/middleware/dynamicSystemPrompt.d.ts
|
|
4
|
+
type DynamicSystemPromptMiddlewareConfig<TContextSchema> = (state: AgentBuiltInState, runtime: Runtime<AgentBuiltInState, TContextSchema>) => string | Promise<string>;
|
|
5
|
+
/**
|
|
6
|
+
* Dynamic System Prompt Middleware
|
|
7
|
+
*
|
|
8
|
+
* Allows setting the system prompt dynamically right before each model invocation.
|
|
9
|
+
* Useful when the prompt depends on the current agent state or per-invocation context.
|
|
10
|
+
*
|
|
11
|
+
* @typeParam TContextSchema - The shape of the runtime context available at invocation time.
|
|
12
|
+
* If your agent defines a `contextSchema`, pass the inferred type here to get full type-safety
|
|
13
|
+
* for `runtime.context`.
|
|
14
|
+
*
|
|
15
|
+
* @param fn - Function that receives the current agent `state` and `runtime`, and
|
|
16
|
+
* returns the system prompt for the next model call as a string.
|
|
17
|
+
*
|
|
18
|
+
* @returns A middleware instance that sets `systemPrompt` for the next model call.
|
|
19
|
+
*
|
|
20
|
+
* @example Basic usage with typed context
|
|
21
|
+
* ```ts
|
|
22
|
+
* import { z } from "zod";
|
|
23
|
+
* import { dynamicSystemPrompt } from "langchain/middleware";
|
|
24
|
+
* import { createAgent, SystemMessage } from "langchain";
|
|
25
|
+
*
|
|
26
|
+
* const contextSchema = z.object({ region: z.string().optional() });
|
|
27
|
+
*
|
|
28
|
+
* const middleware = dynamicSystemPrompt<z.infer<typeof contextSchema>>(
|
|
29
|
+
* (_state, runtime) => `You are a helpful assistant. Region: ${runtime.context.region ?? "n/a"}`
|
|
30
|
+
* );
|
|
31
|
+
*
|
|
32
|
+
* const agent = createAgent({
|
|
33
|
+
* model: "anthropic:claude-3-5-sonnet",
|
|
34
|
+
* contextSchema,
|
|
35
|
+
* middleware: [middleware],
|
|
36
|
+
* });
|
|
37
|
+
*
|
|
38
|
+
* await agent.invoke({ messages }, { context: { region: "EU" } });
|
|
39
|
+
* ```
|
|
40
|
+
*
|
|
41
|
+
* @public
|
|
42
|
+
*/
|
|
43
|
+
declare function dynamicSystemPromptMiddleware<TContextSchema = unknown>(fn: DynamicSystemPromptMiddlewareConfig<TContextSchema>): AgentMiddleware<undefined, undefined, any>;
|
|
44
|
+
//#endregion
|
|
45
|
+
export { DynamicSystemPromptMiddlewareConfig, dynamicSystemPromptMiddleware };
|
|
46
|
+
//# sourceMappingURL=dynamicSystemPrompt.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynamicSystemPrompt.d.cts","names":["Runtime","AgentBuiltInState","DynamicSystemPromptMiddlewareConfig","TContextSchema","Promise","dynamicSystemPromptMiddleware","___types_js1","AgentMiddleware"],"sources":["../../../../src/agents/middlewareAgent/middleware/dynamicSystemPrompt.d.ts"],"sourcesContent":["import type { Runtime, AgentBuiltInState } from \"../types.js\";\nexport type DynamicSystemPromptMiddlewareConfig<TContextSchema> = (state: AgentBuiltInState, runtime: Runtime<AgentBuiltInState, TContextSchema>) => string | Promise<string>;\n/**\n * Dynamic System Prompt Middleware\n *\n * Allows setting the system prompt dynamically right before each model invocation.\n * Useful when the prompt depends on the current agent state or per-invocation context.\n *\n * @typeParam TContextSchema - The shape of the runtime context available at invocation time.\n * If your agent defines a `contextSchema`, pass the inferred type here to get full type-safety\n * for `runtime.context`.\n *\n * @param fn - Function that receives the current agent `state` and `runtime`, and\n * returns the system prompt for the next model call as a string.\n *\n * @returns A middleware instance that sets `systemPrompt` for the next model call.\n *\n * @example Basic usage with typed context\n * ```ts\n * import { z } from \"zod\";\n * import { dynamicSystemPrompt } from \"langchain/middleware\";\n * import { createAgent, SystemMessage } from \"langchain\";\n *\n * const contextSchema = z.object({ region: z.string().optional() });\n *\n * const middleware = dynamicSystemPrompt<z.infer<typeof contextSchema>>(\n * (_state, runtime) => `You are a helpful assistant. Region: ${runtime.context.region ?? \"n/a\"}`\n * );\n *\n * const agent = createAgent({\n * model: \"anthropic:claude-3-5-sonnet\",\n * contextSchema,\n * middleware: [middleware],\n * });\n *\n * await agent.invoke({ messages }, { context: { region: \"EU\" } });\n * ```\n *\n * @public\n */\nexport declare function dynamicSystemPromptMiddleware<TContextSchema = unknown>(fn: DynamicSystemPromptMiddlewareConfig<TContextSchema>): import(\"../types.js\").AgentMiddleware<undefined, undefined, any>;\n"],"mappings":";;;KACYE,8DAA8DD,4BAA4BD,QAAQC,mBAAmBE,6BAA6BC;;AAA9J;;;;;;;AAAqK;AAuCrK;;;;;AAA+K;;;;;;;;;;;;;;;;;;;;;;;;iBAAvJC,4DAA4DH,oCAAoCC,kBAAD"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { AgentBuiltInState, AgentMiddleware, Runtime } from "../types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/agents/middlewareAgent/middleware/dynamicSystemPrompt.d.ts
|
|
4
|
+
type DynamicSystemPromptMiddlewareConfig<TContextSchema> = (state: AgentBuiltInState, runtime: Runtime<AgentBuiltInState, TContextSchema>) => string | Promise<string>;
|
|
5
|
+
/**
|
|
6
|
+
* Dynamic System Prompt Middleware
|
|
7
|
+
*
|
|
8
|
+
* Allows setting the system prompt dynamically right before each model invocation.
|
|
9
|
+
* Useful when the prompt depends on the current agent state or per-invocation context.
|
|
10
|
+
*
|
|
11
|
+
* @typeParam TContextSchema - The shape of the runtime context available at invocation time.
|
|
12
|
+
* If your agent defines a `contextSchema`, pass the inferred type here to get full type-safety
|
|
13
|
+
* for `runtime.context`.
|
|
14
|
+
*
|
|
15
|
+
* @param fn - Function that receives the current agent `state` and `runtime`, and
|
|
16
|
+
* returns the system prompt for the next model call as a string.
|
|
17
|
+
*
|
|
18
|
+
* @returns A middleware instance that sets `systemPrompt` for the next model call.
|
|
19
|
+
*
|
|
20
|
+
* @example Basic usage with typed context
|
|
21
|
+
* ```ts
|
|
22
|
+
* import { z } from "zod";
|
|
23
|
+
* import { dynamicSystemPrompt } from "langchain/middleware";
|
|
24
|
+
* import { createAgent, SystemMessage } from "langchain";
|
|
25
|
+
*
|
|
26
|
+
* const contextSchema = z.object({ region: z.string().optional() });
|
|
27
|
+
*
|
|
28
|
+
* const middleware = dynamicSystemPrompt<z.infer<typeof contextSchema>>(
|
|
29
|
+
* (_state, runtime) => `You are a helpful assistant. Region: ${runtime.context.region ?? "n/a"}`
|
|
30
|
+
* );
|
|
31
|
+
*
|
|
32
|
+
* const agent = createAgent({
|
|
33
|
+
* model: "anthropic:claude-3-5-sonnet",
|
|
34
|
+
* contextSchema,
|
|
35
|
+
* middleware: [middleware],
|
|
36
|
+
* });
|
|
37
|
+
*
|
|
38
|
+
* await agent.invoke({ messages }, { context: { region: "EU" } });
|
|
39
|
+
* ```
|
|
40
|
+
*
|
|
41
|
+
* @public
|
|
42
|
+
*/
|
|
43
|
+
declare function dynamicSystemPromptMiddleware<TContextSchema = unknown>(fn: DynamicSystemPromptMiddlewareConfig<TContextSchema>): AgentMiddleware<undefined, undefined, any>;
|
|
44
|
+
//#endregion
|
|
45
|
+
export { DynamicSystemPromptMiddlewareConfig, dynamicSystemPromptMiddleware };
|
|
46
|
+
//# sourceMappingURL=dynamicSystemPrompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynamicSystemPrompt.d.ts","names":["Runtime","AgentBuiltInState","DynamicSystemPromptMiddlewareConfig","TContextSchema","Promise","dynamicSystemPromptMiddleware","___types_js2","AgentMiddleware"],"sources":["../../../../src/agents/middlewareAgent/middleware/dynamicSystemPrompt.d.ts"],"sourcesContent":["import type { Runtime, AgentBuiltInState } from \"../types.js\";\nexport type DynamicSystemPromptMiddlewareConfig<TContextSchema> = (state: AgentBuiltInState, runtime: Runtime<AgentBuiltInState, TContextSchema>) => string | Promise<string>;\n/**\n * Dynamic System Prompt Middleware\n *\n * Allows setting the system prompt dynamically right before each model invocation.\n * Useful when the prompt depends on the current agent state or per-invocation context.\n *\n * @typeParam TContextSchema - The shape of the runtime context available at invocation time.\n * If your agent defines a `contextSchema`, pass the inferred type here to get full type-safety\n * for `runtime.context`.\n *\n * @param fn - Function that receives the current agent `state` and `runtime`, and\n * returns the system prompt for the next model call as a string.\n *\n * @returns A middleware instance that sets `systemPrompt` for the next model call.\n *\n * @example Basic usage with typed context\n * ```ts\n * import { z } from \"zod\";\n * import { dynamicSystemPrompt } from \"langchain/middleware\";\n * import { createAgent, SystemMessage } from \"langchain\";\n *\n * const contextSchema = z.object({ region: z.string().optional() });\n *\n * const middleware = dynamicSystemPrompt<z.infer<typeof contextSchema>>(\n * (_state, runtime) => `You are a helpful assistant. Region: ${runtime.context.region ?? \"n/a\"}`\n * );\n *\n * const agent = createAgent({\n * model: \"anthropic:claude-3-5-sonnet\",\n * contextSchema,\n * middleware: [middleware],\n * });\n *\n * await agent.invoke({ messages }, { context: { region: \"EU\" } });\n * ```\n *\n * @public\n */\nexport declare function dynamicSystemPromptMiddleware<TContextSchema = unknown>(fn: DynamicSystemPromptMiddlewareConfig<TContextSchema>): import(\"../types.js\").AgentMiddleware<undefined, undefined, any>;\n"],"mappings":";;;KACYE,8DAA8DD,4BAA4BD,QAAQC,mBAAmBE,6BAA6BC;;AAA9J;;;;;;;AAAqK;AAuCrK;;;;;AAA+K;;;;;;;;;;;;;;;;;;;;;;;;iBAAvJC,4DAA4DH,oCAAoCC,kBAAD"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { createMiddleware } from "../middleware.js";
|
|
2
|
+
|
|
3
|
+
//#region src/agents/middlewareAgent/middleware/dynamicSystemPrompt.ts
|
|
4
|
+
/**
|
|
5
|
+
* Dynamic System Prompt Middleware
|
|
6
|
+
*
|
|
7
|
+
* Allows setting the system prompt dynamically right before each model invocation.
|
|
8
|
+
* Useful when the prompt depends on the current agent state or per-invocation context.
|
|
9
|
+
*
|
|
10
|
+
* @typeParam TContextSchema - The shape of the runtime context available at invocation time.
|
|
11
|
+
* If your agent defines a `contextSchema`, pass the inferred type here to get full type-safety
|
|
12
|
+
* for `runtime.context`.
|
|
13
|
+
*
|
|
14
|
+
* @param fn - Function that receives the current agent `state` and `runtime`, and
|
|
15
|
+
* returns the system prompt for the next model call as a string.
|
|
16
|
+
*
|
|
17
|
+
* @returns A middleware instance that sets `systemPrompt` for the next model call.
|
|
18
|
+
*
|
|
19
|
+
* @example Basic usage with typed context
|
|
20
|
+
* ```ts
|
|
21
|
+
* import { z } from "zod";
|
|
22
|
+
* import { dynamicSystemPrompt } from "langchain/middleware";
|
|
23
|
+
* import { createAgent, SystemMessage } from "langchain";
|
|
24
|
+
*
|
|
25
|
+
* const contextSchema = z.object({ region: z.string().optional() });
|
|
26
|
+
*
|
|
27
|
+
* const middleware = dynamicSystemPrompt<z.infer<typeof contextSchema>>(
|
|
28
|
+
* (_state, runtime) => `You are a helpful assistant. Region: ${runtime.context.region ?? "n/a"}`
|
|
29
|
+
* );
|
|
30
|
+
*
|
|
31
|
+
* const agent = createAgent({
|
|
32
|
+
* model: "anthropic:claude-3-5-sonnet",
|
|
33
|
+
* contextSchema,
|
|
34
|
+
* middleware: [middleware],
|
|
35
|
+
* });
|
|
36
|
+
*
|
|
37
|
+
* await agent.invoke({ messages }, { context: { region: "EU" } });
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* @public
|
|
41
|
+
*/
|
|
42
|
+
function dynamicSystemPromptMiddleware(fn) {
|
|
43
|
+
return createMiddleware({
|
|
44
|
+
name: "DynamicSystemPromptMiddleware",
|
|
45
|
+
modifyModelRequest: async (options, state, runtime) => {
|
|
46
|
+
const systemPrompt = await fn(state, runtime);
|
|
47
|
+
if (typeof systemPrompt !== "string") throw new Error("dynamicSystemPromptMiddleware function must return a string");
|
|
48
|
+
return {
|
|
49
|
+
...options,
|
|
50
|
+
systemPrompt
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
//#endregion
|
|
57
|
+
export { dynamicSystemPromptMiddleware };
|
|
58
|
+
//# sourceMappingURL=dynamicSystemPrompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynamicSystemPrompt.js","names":["fn: DynamicSystemPromptMiddlewareConfig<TContextSchema>"],"sources":["../../../../src/agents/middlewareAgent/middleware/dynamicSystemPrompt.ts"],"sourcesContent":["import { createMiddleware } from \"../middleware.js\";\nimport type { Runtime, AgentBuiltInState } from \"../types.js\";\n\nexport type DynamicSystemPromptMiddlewareConfig<TContextSchema> = (\n state: AgentBuiltInState,\n runtime: Runtime<AgentBuiltInState, TContextSchema>\n) => string | Promise<string>;\n\n/**\n * Dynamic System Prompt Middleware\n *\n * Allows setting the system prompt dynamically right before each model invocation.\n * Useful when the prompt depends on the current agent state or per-invocation context.\n *\n * @typeParam TContextSchema - The shape of the runtime context available at invocation time.\n * If your agent defines a `contextSchema`, pass the inferred type here to get full type-safety\n * for `runtime.context`.\n *\n * @param fn - Function that receives the current agent `state` and `runtime`, and\n * returns the system prompt for the next model call as a string.\n *\n * @returns A middleware instance that sets `systemPrompt` for the next model call.\n *\n * @example Basic usage with typed context\n * ```ts\n * import { z } from \"zod\";\n * import { dynamicSystemPrompt } from \"langchain/middleware\";\n * import { createAgent, SystemMessage } from \"langchain\";\n *\n * const contextSchema = z.object({ region: z.string().optional() });\n *\n * const middleware = dynamicSystemPrompt<z.infer<typeof contextSchema>>(\n * (_state, runtime) => `You are a helpful assistant. Region: ${runtime.context.region ?? \"n/a\"}`\n * );\n *\n * const agent = createAgent({\n * model: \"anthropic:claude-3-5-sonnet\",\n * contextSchema,\n * middleware: [middleware],\n * });\n *\n * await agent.invoke({ messages }, { context: { region: \"EU\" } });\n * ```\n *\n * @public\n */\nexport function dynamicSystemPromptMiddleware<TContextSchema = unknown>(\n fn: DynamicSystemPromptMiddlewareConfig<TContextSchema>\n) {\n return createMiddleware({\n name: \"DynamicSystemPromptMiddleware\",\n modifyModelRequest: async (options, state, runtime) => {\n const systemPrompt = await fn(\n state as AgentBuiltInState,\n runtime as Runtime<AgentBuiltInState, TContextSchema>\n );\n\n if (typeof systemPrompt !== \"string\") {\n throw new Error(\n \"dynamicSystemPromptMiddleware function must return a string\"\n );\n }\n\n return { ...options, systemPrompt };\n },\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CA,SAAgB,8BACdA,IACA;AACA,QAAO,iBAAiB;EACtB,MAAM;EACN,oBAAoB,OAAO,SAAS,OAAO,YAAY;GACrD,MAAM,eAAe,MAAM,GACzB,OACA,QACD;AAED,OAAI,OAAO,iBAAiB,SAC1B,OAAM,IAAI,MACR;AAIJ,UAAO;IAAE,GAAG;IAAS;GAAc;EACpC;CACF,EAAC;AACH"}
|