langchain 0.0.196 → 0.0.197-rc.1
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/LICENSE +21 -0
- package/dist/agents/executor.cjs +351 -1
- package/dist/agents/executor.d.ts +61 -3
- package/dist/agents/executor.js +350 -1
- package/dist/agents/openai/index.cjs +6 -2
- package/dist/agents/openai/index.js +6 -2
- package/dist/agents/toolkits/conversational_retrieval/token_buffer_memory.d.ts +1 -1
- package/dist/base_language/count_tokens.cjs +4 -4
- package/dist/base_language/count_tokens.d.ts +1 -1
- package/dist/base_language/count_tokens.js +1 -1
- package/dist/base_language/index.cjs +3 -3
- package/dist/base_language/index.d.ts +1 -1
- package/dist/base_language/index.js +1 -1
- package/dist/cache/base.cjs +1 -1
- package/dist/cache/base.d.ts +1 -1
- package/dist/cache/base.js +1 -1
- package/dist/cache/index.cjs +2 -2
- package/dist/cache/index.d.ts +1 -1
- package/dist/cache/index.js +1 -1
- package/dist/callbacks/base.cjs +1 -1
- package/dist/callbacks/base.d.ts +1 -1
- package/dist/callbacks/base.js +1 -1
- package/dist/callbacks/handlers/console.cjs +1 -1
- package/dist/callbacks/handlers/console.d.ts +1 -1
- package/dist/callbacks/handlers/console.js +1 -1
- package/dist/callbacks/handlers/initialize.cjs +1 -1
- package/dist/callbacks/handlers/initialize.d.ts +1 -1
- package/dist/callbacks/handlers/initialize.js +1 -1
- package/dist/callbacks/handlers/log_stream.cjs +1 -1
- package/dist/callbacks/handlers/log_stream.d.ts +1 -1
- package/dist/callbacks/handlers/log_stream.js +1 -1
- package/dist/callbacks/handlers/run_collector.cjs +1 -1
- package/dist/callbacks/handlers/run_collector.d.ts +1 -1
- package/dist/callbacks/handlers/run_collector.js +1 -1
- package/dist/callbacks/handlers/tracer.cjs +1 -1
- package/dist/callbacks/handlers/tracer.d.ts +1 -1
- package/dist/callbacks/handlers/tracer.js +1 -1
- package/dist/callbacks/handlers/tracer_langchain.cjs +1 -1
- package/dist/callbacks/handlers/tracer_langchain.d.ts +1 -1
- package/dist/callbacks/handlers/tracer_langchain.js +1 -1
- package/dist/callbacks/handlers/tracer_langchain_v1.cjs +1 -1
- package/dist/callbacks/handlers/tracer_langchain_v1.d.ts +1 -1
- package/dist/callbacks/handlers/tracer_langchain_v1.js +1 -1
- package/dist/callbacks/manager.cjs +1 -1
- package/dist/callbacks/manager.d.ts +1 -1
- package/dist/callbacks/manager.js +1 -1
- package/dist/callbacks/promises.cjs +1 -1
- package/dist/callbacks/promises.d.ts +1 -1
- package/dist/callbacks/promises.js +1 -1
- package/dist/chains/base.cjs +16 -0
- package/dist/chains/base.d.ts +2 -0
- package/dist/chains/base.js +16 -0
- package/dist/chains/openai_functions/structured_output.cjs +1 -1
- package/dist/chains/openai_functions/structured_output.d.ts +1 -1
- package/dist/chains/openai_functions/structured_output.js +1 -1
- package/dist/chains/openai_moderation.cjs +2 -2
- package/dist/chains/openai_moderation.d.ts +1 -1
- package/dist/chains/openai_moderation.js +1 -1
- package/dist/chat_models/anthropic.cjs +15 -348
- package/dist/chat_models/anthropic.d.ts +1 -156
- package/dist/chat_models/anthropic.js +1 -346
- package/dist/chat_models/base.cjs +1 -1
- package/dist/chat_models/base.d.ts +1 -1
- package/dist/chat_models/base.js +1 -1
- package/dist/chat_models/bedrock/web.cjs +21 -1
- package/dist/chat_models/bedrock/web.d.ts +1 -1
- package/dist/chat_models/bedrock/web.js +21 -1
- package/dist/chat_models/fireworks.d.ts +2 -2
- package/dist/chat_models/iflytek_xinghuo/common.d.ts +1 -1
- package/dist/chat_models/minimax.d.ts +2 -2
- package/dist/chat_models/openai.cjs +4 -698
- package/dist/chat_models/openai.d.ts +4 -137
- package/dist/chat_models/openai.js +2 -695
- package/dist/document.cjs +2 -2
- package/dist/document.d.ts +1 -1
- package/dist/document.js +1 -1
- package/dist/document_loaders/fs/openai_whisper_audio.cjs +2 -2
- package/dist/document_loaders/fs/openai_whisper_audio.d.ts +1 -1
- package/dist/document_loaders/fs/openai_whisper_audio.js +1 -1
- package/dist/document_loaders/web/azure_blob_storage_file.d.ts +1 -1
- package/dist/document_loaders/web/github.cjs +105 -0
- package/dist/document_loaders/web/github.d.ts +26 -0
- package/dist/document_loaders/web/github.js +105 -0
- package/dist/document_loaders/web/s3.d.ts +1 -1
- package/dist/embeddings/base.cjs +1 -1
- package/dist/embeddings/base.d.ts +1 -1
- package/dist/embeddings/base.js +1 -1
- package/dist/embeddings/cache_backed.cjs +1 -1
- package/dist/embeddings/cache_backed.js +1 -1
- package/dist/embeddings/openai.cjs +2 -240
- package/dist/embeddings/openai.d.ts +1 -82
- package/dist/embeddings/openai.js +1 -239
- package/dist/experimental/openai_assistant/index.cjs +3 -3
- package/dist/experimental/openai_assistant/index.d.ts +1 -1
- package/dist/experimental/openai_assistant/index.js +1 -1
- package/dist/experimental/openai_assistant/schema.d.ts +1 -1
- package/dist/experimental/openai_files/index.cjs +2 -2
- package/dist/experimental/openai_files/index.d.ts +1 -1
- package/dist/experimental/openai_files/index.js +1 -1
- package/dist/experimental/plan_and_execute/prompt.d.ts +1 -1
- package/dist/llms/base.cjs +1 -1
- package/dist/llms/base.d.ts +1 -1
- package/dist/llms/base.js +1 -1
- package/dist/llms/bedrock/web.cjs +21 -1
- package/dist/llms/bedrock/web.d.ts +1 -1
- package/dist/llms/bedrock/web.js +21 -1
- package/dist/llms/fireworks.d.ts +2 -2
- package/dist/llms/openai-chat.cjs +3 -445
- package/dist/llms/openai-chat.d.ts +4 -123
- package/dist/llms/openai-chat.js +2 -443
- package/dist/llms/openai.cjs +6 -530
- package/dist/llms/openai.d.ts +4 -123
- package/dist/llms/openai.js +2 -525
- package/dist/load/index.cjs +4 -2
- package/dist/load/index.d.ts +2 -2
- package/dist/load/index.js +4 -2
- package/dist/load/serializable.cjs +1 -1
- package/dist/load/serializable.d.ts +1 -1
- package/dist/load/serializable.js +1 -1
- package/dist/memory/base.cjs +2 -2
- package/dist/memory/base.d.ts +2 -2
- package/dist/memory/base.js +2 -2
- package/dist/output_parsers/list.cjs +4 -122
- package/dist/output_parsers/list.d.ts +1 -57
- package/dist/output_parsers/list.js +1 -119
- package/dist/output_parsers/openai_functions.cjs +1 -1
- package/dist/output_parsers/openai_functions.d.ts +1 -1
- package/dist/output_parsers/openai_functions.js +1 -1
- package/dist/output_parsers/structured.d.ts +1 -1
- package/dist/prompts/base.cjs +8 -8
- package/dist/prompts/base.d.ts +3 -3
- package/dist/prompts/base.js +3 -3
- package/dist/prompts/chat.cjs +13 -15
- package/dist/prompts/chat.d.ts +2 -1
- package/dist/prompts/chat.js +2 -1
- package/dist/prompts/few_shot.cjs +4 -15
- package/dist/prompts/few_shot.d.ts +1 -1
- package/dist/prompts/few_shot.js +1 -1
- package/dist/prompts/index.cjs +2 -2
- package/dist/prompts/index.d.ts +1 -1
- package/dist/prompts/index.js +1 -1
- package/dist/prompts/pipeline.cjs +3 -15
- package/dist/prompts/pipeline.d.ts +1 -1
- package/dist/prompts/pipeline.js +1 -1
- package/dist/prompts/prompt.cjs +3 -15
- package/dist/prompts/prompt.d.ts +1 -1
- package/dist/prompts/prompt.js +1 -1
- package/dist/prompts/selectors/LengthBasedExampleSelector.cjs +3 -15
- package/dist/prompts/selectors/LengthBasedExampleSelector.d.ts +1 -1
- package/dist/prompts/selectors/LengthBasedExampleSelector.js +1 -1
- package/dist/prompts/selectors/SemanticSimilarityExampleSelector.cjs +1 -1
- package/dist/prompts/selectors/SemanticSimilarityExampleSelector.d.ts +1 -1
- package/dist/prompts/selectors/SemanticSimilarityExampleSelector.js +1 -1
- package/dist/prompts/selectors/conditional.cjs +6 -15
- package/dist/prompts/selectors/conditional.d.ts +1 -1
- package/dist/prompts/selectors/conditional.js +1 -1
- package/dist/prompts/serde.cjs +0 -15
- package/dist/prompts/serde.d.ts +1 -1
- package/dist/prompts/serde.js +1 -1
- package/dist/prompts/template.cjs +9 -15
- package/dist/prompts/template.d.ts +1 -1
- package/dist/prompts/template.js +1 -1
- package/dist/runnables/index.cjs +1 -1
- package/dist/runnables/index.d.ts +1 -1
- package/dist/runnables/index.js +1 -1
- package/dist/schema/document.cjs +3 -3
- package/dist/schema/document.d.ts +1 -1
- package/dist/schema/document.js +1 -1
- package/dist/schema/index.cjs +12 -12
- package/dist/schema/index.d.ts +11 -11
- package/dist/schema/index.js +7 -7
- package/dist/schema/output_parser.cjs +1 -1
- package/dist/schema/output_parser.d.ts +1 -1
- package/dist/schema/output_parser.js +1 -1
- package/dist/schema/retriever.cjs +1 -1
- package/dist/schema/retriever.d.ts +1 -1
- package/dist/schema/retriever.js +1 -1
- package/dist/schema/runnable/base.cjs +1 -1
- package/dist/schema/runnable/base.d.ts +1 -1
- package/dist/schema/runnable/base.js +1 -1
- package/dist/schema/runnable/branch.cjs +1 -1
- package/dist/schema/runnable/branch.d.ts +1 -1
- package/dist/schema/runnable/branch.js +1 -1
- package/dist/schema/runnable/config.d.ts +1 -1
- package/dist/schema/runnable/index.cjs +1 -1
- package/dist/schema/runnable/index.d.ts +1 -1
- package/dist/schema/runnable/index.js +1 -1
- package/dist/schema/runnable/passthrough.cjs +1 -1
- package/dist/schema/runnable/passthrough.d.ts +1 -1
- package/dist/schema/runnable/passthrough.js +1 -1
- package/dist/schema/runnable/router.cjs +1 -1
- package/dist/schema/runnable/router.d.ts +1 -1
- package/dist/schema/runnable/router.js +1 -1
- package/dist/schema/storage.cjs +1 -1
- package/dist/schema/storage.d.ts +1 -1
- package/dist/schema/storage.js +1 -1
- package/dist/tools/base.cjs +4 -108
- package/dist/tools/base.d.ts +1 -72
- package/dist/tools/base.js +1 -105
- package/dist/tools/bingserpapi.d.ts +1 -1
- package/dist/tools/convert_to_openai.cjs +4 -38
- package/dist/tools/convert_to_openai.d.ts +1 -11
- package/dist/tools/convert_to_openai.js +1 -35
- package/dist/tools/searchapi.d.ts +1 -1
- package/dist/tools/serpapi.d.ts +1 -1
- package/dist/tools/serper.d.ts +1 -1
- package/dist/types/openai-types.d.ts +1 -133
- package/dist/util/async_caller.cjs +1 -1
- package/dist/util/async_caller.d.ts +1 -1
- package/dist/util/async_caller.js +1 -1
- package/dist/util/openai.cjs +2 -18
- package/dist/util/openai.d.ts +1 -1
- package/dist/util/openai.js +1 -17
- package/dist/util/openapi.d.ts +2 -2
- package/dist/util/prompt-layer.d.ts +1 -1
- package/dist/vectorstores/momento_vector_index.cjs +39 -0
- package/dist/vectorstores/momento_vector_index.d.ts +17 -1
- package/dist/vectorstores/momento_vector_index.js +40 -1
- package/dist/vectorstores/mongodb_atlas.cjs +22 -2
- package/dist/vectorstores/mongodb_atlas.d.ts +13 -0
- package/dist/vectorstores/mongodb_atlas.js +22 -2
- package/package.json +12 -10
- package/dist/util/openai-format-fndef.cjs +0 -81
- package/dist/util/openai-format-fndef.d.ts +0 -44
- package/dist/util/openai-format-fndef.js +0 -77
package/dist/agents/executor.js
CHANGED
|
@@ -1,8 +1,211 @@
|
|
|
1
1
|
import { BaseChain } from "../chains/base.js";
|
|
2
2
|
import { RunnableAgent, } from "./agent.js";
|
|
3
|
+
import { CallbackManager, } from "../callbacks/manager.js";
|
|
3
4
|
import { OutputParserException } from "../schema/output_parser.js";
|
|
4
|
-
import {
|
|
5
|
+
import { ToolInputParsingException, Tool, } from "../tools/base.js";
|
|
5
6
|
import { Runnable } from "../schema/runnable/base.js";
|
|
7
|
+
import { Serializable } from "../load/serializable.js";
|
|
8
|
+
export class AgentExecutorIterator extends Serializable {
|
|
9
|
+
get finalOutputs() {
|
|
10
|
+
return this._finalOutputs;
|
|
11
|
+
}
|
|
12
|
+
/** Intended to be used as a setter method, needs to be async. */
|
|
13
|
+
async setFinalOutputs(value) {
|
|
14
|
+
this._finalOutputs = undefined;
|
|
15
|
+
if (value) {
|
|
16
|
+
const preparedOutputs = await this.agentExecutor.prepOutputs(this.inputs, value, true);
|
|
17
|
+
this._finalOutputs = preparedOutputs;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
get nameToToolMap() {
|
|
21
|
+
const toolMap = this.agentExecutor.tools.map((tool) => ({
|
|
22
|
+
[tool.name]: tool,
|
|
23
|
+
}));
|
|
24
|
+
return Object.assign({}, ...toolMap);
|
|
25
|
+
}
|
|
26
|
+
constructor(fields) {
|
|
27
|
+
super(fields);
|
|
28
|
+
Object.defineProperty(this, "lc_namespace", {
|
|
29
|
+
enumerable: true,
|
|
30
|
+
configurable: true,
|
|
31
|
+
writable: true,
|
|
32
|
+
value: ["langchain", "agents", "executor_iterator"]
|
|
33
|
+
});
|
|
34
|
+
Object.defineProperty(this, "agentExecutor", {
|
|
35
|
+
enumerable: true,
|
|
36
|
+
configurable: true,
|
|
37
|
+
writable: true,
|
|
38
|
+
value: void 0
|
|
39
|
+
});
|
|
40
|
+
Object.defineProperty(this, "inputs", {
|
|
41
|
+
enumerable: true,
|
|
42
|
+
configurable: true,
|
|
43
|
+
writable: true,
|
|
44
|
+
value: void 0
|
|
45
|
+
});
|
|
46
|
+
Object.defineProperty(this, "callbacks", {
|
|
47
|
+
enumerable: true,
|
|
48
|
+
configurable: true,
|
|
49
|
+
writable: true,
|
|
50
|
+
value: void 0
|
|
51
|
+
});
|
|
52
|
+
Object.defineProperty(this, "tags", {
|
|
53
|
+
enumerable: true,
|
|
54
|
+
configurable: true,
|
|
55
|
+
writable: true,
|
|
56
|
+
value: void 0
|
|
57
|
+
});
|
|
58
|
+
Object.defineProperty(this, "metadata", {
|
|
59
|
+
enumerable: true,
|
|
60
|
+
configurable: true,
|
|
61
|
+
writable: true,
|
|
62
|
+
value: void 0
|
|
63
|
+
});
|
|
64
|
+
Object.defineProperty(this, "runName", {
|
|
65
|
+
enumerable: true,
|
|
66
|
+
configurable: true,
|
|
67
|
+
writable: true,
|
|
68
|
+
value: void 0
|
|
69
|
+
});
|
|
70
|
+
Object.defineProperty(this, "_finalOutputs", {
|
|
71
|
+
enumerable: true,
|
|
72
|
+
configurable: true,
|
|
73
|
+
writable: true,
|
|
74
|
+
value: void 0
|
|
75
|
+
});
|
|
76
|
+
Object.defineProperty(this, "runManager", {
|
|
77
|
+
enumerable: true,
|
|
78
|
+
configurable: true,
|
|
79
|
+
writable: true,
|
|
80
|
+
value: void 0
|
|
81
|
+
});
|
|
82
|
+
Object.defineProperty(this, "intermediateSteps", {
|
|
83
|
+
enumerable: true,
|
|
84
|
+
configurable: true,
|
|
85
|
+
writable: true,
|
|
86
|
+
value: []
|
|
87
|
+
});
|
|
88
|
+
Object.defineProperty(this, "iterations", {
|
|
89
|
+
enumerable: true,
|
|
90
|
+
configurable: true,
|
|
91
|
+
writable: true,
|
|
92
|
+
value: 0
|
|
93
|
+
});
|
|
94
|
+
this.agentExecutor = fields.agentExecutor;
|
|
95
|
+
this.inputs = fields.inputs;
|
|
96
|
+
this.tags = fields.tags;
|
|
97
|
+
this.metadata = fields.metadata;
|
|
98
|
+
this.runName = fields.runName;
|
|
99
|
+
this.runManager = fields.runManager;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Reset the iterator to its initial state, clearing intermediate steps,
|
|
103
|
+
* iterations, and the final output.
|
|
104
|
+
*/
|
|
105
|
+
reset() {
|
|
106
|
+
this.intermediateSteps = [];
|
|
107
|
+
this.iterations = 0;
|
|
108
|
+
this._finalOutputs = undefined;
|
|
109
|
+
}
|
|
110
|
+
updateIterations() {
|
|
111
|
+
this.iterations += 1;
|
|
112
|
+
}
|
|
113
|
+
async *streamIterator() {
|
|
114
|
+
this.reset();
|
|
115
|
+
// Loop to handle iteration
|
|
116
|
+
while (true) {
|
|
117
|
+
try {
|
|
118
|
+
if (this.iterations === 0) {
|
|
119
|
+
await this.onFirstStep();
|
|
120
|
+
}
|
|
121
|
+
const result = await this._callNext();
|
|
122
|
+
yield result;
|
|
123
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
124
|
+
}
|
|
125
|
+
catch (e) {
|
|
126
|
+
if ("message" in e &&
|
|
127
|
+
e.message.startsWith("Final outputs already reached: ")) {
|
|
128
|
+
if (!this.finalOutputs) {
|
|
129
|
+
throw e;
|
|
130
|
+
}
|
|
131
|
+
return this.finalOutputs;
|
|
132
|
+
}
|
|
133
|
+
if (this.runManager) {
|
|
134
|
+
await this.runManager.handleChainError(e);
|
|
135
|
+
}
|
|
136
|
+
throw e;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Perform any necessary setup for the first step
|
|
142
|
+
* of the asynchronous iterator.
|
|
143
|
+
*/
|
|
144
|
+
async onFirstStep() {
|
|
145
|
+
if (this.iterations === 0) {
|
|
146
|
+
const callbackManager = await CallbackManager.configure(this.callbacks, this.agentExecutor.callbacks, this.tags, this.agentExecutor.tags, this.metadata, this.agentExecutor.metadata, {
|
|
147
|
+
verbose: this.agentExecutor.verbose,
|
|
148
|
+
});
|
|
149
|
+
this.runManager = await callbackManager?.handleChainStart(this.agentExecutor.toJSON(), this.inputs, undefined, undefined, this.tags, this.metadata, this.runName);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Execute the next step in the chain using the
|
|
154
|
+
* AgentExecutor's _takeNextStep method.
|
|
155
|
+
*/
|
|
156
|
+
async _executeNextStep(runManager) {
|
|
157
|
+
return this.agentExecutor._takeNextStep(this.nameToToolMap, this.inputs, this.intermediateSteps, runManager);
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Process the output of the next step,
|
|
161
|
+
* handling AgentFinish and tool return cases.
|
|
162
|
+
*/
|
|
163
|
+
async _processNextStepOutput(nextStepOutput, runManager) {
|
|
164
|
+
if ("returnValues" in nextStepOutput) {
|
|
165
|
+
const output = await this.agentExecutor._return(nextStepOutput, this.intermediateSteps, runManager);
|
|
166
|
+
if (this.runManager) {
|
|
167
|
+
await this.runManager.handleChainEnd(output);
|
|
168
|
+
}
|
|
169
|
+
await this.setFinalOutputs(output);
|
|
170
|
+
return output;
|
|
171
|
+
}
|
|
172
|
+
this.intermediateSteps = this.intermediateSteps.concat(nextStepOutput);
|
|
173
|
+
let output = {};
|
|
174
|
+
if (Array.isArray(nextStepOutput) && nextStepOutput.length === 1) {
|
|
175
|
+
const nextStep = nextStepOutput[0];
|
|
176
|
+
const toolReturn = await this.agentExecutor._getToolReturn(nextStep);
|
|
177
|
+
if (toolReturn) {
|
|
178
|
+
output = await this.agentExecutor._return(toolReturn, this.intermediateSteps, runManager);
|
|
179
|
+
if (this.runManager) {
|
|
180
|
+
await this.runManager.handleChainEnd(output);
|
|
181
|
+
}
|
|
182
|
+
await this.setFinalOutputs(output);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
output = { intermediateSteps: nextStepOutput };
|
|
186
|
+
return output;
|
|
187
|
+
}
|
|
188
|
+
async _stop() {
|
|
189
|
+
const output = await this.agentExecutor.agent.returnStoppedResponse(this.agentExecutor.earlyStoppingMethod, this.intermediateSteps, this.inputs);
|
|
190
|
+
const returnedOutput = await this.agentExecutor._return(output, this.intermediateSteps, this.runManager);
|
|
191
|
+
await this.setFinalOutputs(returnedOutput);
|
|
192
|
+
return returnedOutput;
|
|
193
|
+
}
|
|
194
|
+
async _callNext() {
|
|
195
|
+
// final output already reached: stopiteration (final output)
|
|
196
|
+
if (this.finalOutputs) {
|
|
197
|
+
throw new Error(`Final outputs already reached: ${JSON.stringify(this.finalOutputs, null, 2)}`);
|
|
198
|
+
}
|
|
199
|
+
// timeout/max iterations: stopiteration (stopped response)
|
|
200
|
+
if (!this.agentExecutor.shouldContinueGetter(this.iterations)) {
|
|
201
|
+
return this._stop();
|
|
202
|
+
}
|
|
203
|
+
const nextStepOutput = await this._executeNextStep(this.runManager);
|
|
204
|
+
const output = await this._processNextStepOutput(nextStepOutput, this.runManager);
|
|
205
|
+
this.updateIterations();
|
|
206
|
+
return output;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
6
209
|
/**
|
|
7
210
|
* Tool that just returns the query.
|
|
8
211
|
* Used for exception tracking.
|
|
@@ -134,6 +337,9 @@ export class AgentExecutor extends BaseChain {
|
|
|
134
337
|
static fromAgentAndTools(fields) {
|
|
135
338
|
return new AgentExecutor(fields);
|
|
136
339
|
}
|
|
340
|
+
get shouldContinueGetter() {
|
|
341
|
+
return this.shouldContinue.bind(this);
|
|
342
|
+
}
|
|
137
343
|
/**
|
|
138
344
|
* Method that checks if the agent execution should continue based on the
|
|
139
345
|
* number of iterations.
|
|
@@ -253,6 +459,149 @@ export class AgentExecutor extends BaseChain {
|
|
|
253
459
|
const finish = await this.agent.returnStoppedResponse(this.earlyStoppingMethod, steps, inputs);
|
|
254
460
|
return getOutput(finish);
|
|
255
461
|
}
|
|
462
|
+
async _takeNextStep(nameToolMap, inputs, intermediateSteps, runManager) {
|
|
463
|
+
let output;
|
|
464
|
+
try {
|
|
465
|
+
output = await this.agent.plan(intermediateSteps, inputs, runManager?.getChild());
|
|
466
|
+
}
|
|
467
|
+
catch (e) {
|
|
468
|
+
// eslint-disable-next-line no-instanceof/no-instanceof
|
|
469
|
+
if (e instanceof OutputParserException) {
|
|
470
|
+
let observation;
|
|
471
|
+
let text = e.message;
|
|
472
|
+
if (this.handleParsingErrors === true) {
|
|
473
|
+
if (e.sendToLLM) {
|
|
474
|
+
observation = e.observation;
|
|
475
|
+
text = e.llmOutput ?? "";
|
|
476
|
+
}
|
|
477
|
+
else {
|
|
478
|
+
observation = "Invalid or incomplete response";
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
else if (typeof this.handleParsingErrors === "string") {
|
|
482
|
+
observation = this.handleParsingErrors;
|
|
483
|
+
}
|
|
484
|
+
else if (typeof this.handleParsingErrors === "function") {
|
|
485
|
+
observation = this.handleParsingErrors(e);
|
|
486
|
+
}
|
|
487
|
+
else {
|
|
488
|
+
throw e;
|
|
489
|
+
}
|
|
490
|
+
output = {
|
|
491
|
+
tool: "_Exception",
|
|
492
|
+
toolInput: observation,
|
|
493
|
+
log: text,
|
|
494
|
+
};
|
|
495
|
+
}
|
|
496
|
+
else {
|
|
497
|
+
throw e;
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
if ("returnValues" in output) {
|
|
501
|
+
return output;
|
|
502
|
+
}
|
|
503
|
+
let actions;
|
|
504
|
+
if (Array.isArray(output)) {
|
|
505
|
+
actions = output;
|
|
506
|
+
}
|
|
507
|
+
else {
|
|
508
|
+
actions = [output];
|
|
509
|
+
}
|
|
510
|
+
const result = [];
|
|
511
|
+
for (const agentAction of actions) {
|
|
512
|
+
let observation = "";
|
|
513
|
+
if (runManager) {
|
|
514
|
+
await runManager?.handleAgentAction(agentAction);
|
|
515
|
+
}
|
|
516
|
+
if (agentAction.tool in nameToolMap) {
|
|
517
|
+
const tool = nameToolMap[agentAction.tool];
|
|
518
|
+
try {
|
|
519
|
+
observation = await tool.call(agentAction.toolInput, runManager?.getChild());
|
|
520
|
+
}
|
|
521
|
+
catch (e) {
|
|
522
|
+
// eslint-disable-next-line no-instanceof/no-instanceof
|
|
523
|
+
if (e instanceof ToolInputParsingException) {
|
|
524
|
+
if (this.handleParsingErrors === true) {
|
|
525
|
+
observation =
|
|
526
|
+
"Invalid or incomplete tool input. Please try again.";
|
|
527
|
+
}
|
|
528
|
+
else if (typeof this.handleParsingErrors === "string") {
|
|
529
|
+
observation = this.handleParsingErrors;
|
|
530
|
+
}
|
|
531
|
+
else if (typeof this.handleParsingErrors === "function") {
|
|
532
|
+
observation = this.handleParsingErrors(e);
|
|
533
|
+
}
|
|
534
|
+
else {
|
|
535
|
+
throw e;
|
|
536
|
+
}
|
|
537
|
+
observation = await new ExceptionTool().call(observation, runManager?.getChild());
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
else {
|
|
542
|
+
observation = `${agentAction.tool} is not a valid tool, try another available tool: ${Object.keys(nameToolMap).join(", ")}`;
|
|
543
|
+
}
|
|
544
|
+
result.push({
|
|
545
|
+
action: agentAction,
|
|
546
|
+
observation,
|
|
547
|
+
});
|
|
548
|
+
}
|
|
549
|
+
return result;
|
|
550
|
+
}
|
|
551
|
+
async _return(output, intermediateSteps, runManager) {
|
|
552
|
+
if (runManager) {
|
|
553
|
+
await runManager.handleAgentEnd(output);
|
|
554
|
+
}
|
|
555
|
+
const finalOutput = output.returnValues;
|
|
556
|
+
if (this.returnIntermediateSteps) {
|
|
557
|
+
finalOutput.intermediateSteps = intermediateSteps;
|
|
558
|
+
}
|
|
559
|
+
return finalOutput;
|
|
560
|
+
}
|
|
561
|
+
async _getToolReturn(nextStepOutput) {
|
|
562
|
+
const { action, observation } = nextStepOutput;
|
|
563
|
+
const nameToolMap = Object.fromEntries(this.tools.map((t) => [t.name.toLowerCase(), t]));
|
|
564
|
+
const [returnValueKey = "output"] = this.agent.returnValues;
|
|
565
|
+
// Invalid tools won't be in the map, so we return False.
|
|
566
|
+
if (action.tool in nameToolMap) {
|
|
567
|
+
if (nameToolMap[action.tool].returnDirect) {
|
|
568
|
+
return {
|
|
569
|
+
returnValues: { [returnValueKey]: observation },
|
|
570
|
+
log: "",
|
|
571
|
+
};
|
|
572
|
+
}
|
|
573
|
+
}
|
|
574
|
+
return null;
|
|
575
|
+
}
|
|
576
|
+
_returnStoppedResponse(earlyStoppingMethod) {
|
|
577
|
+
if (earlyStoppingMethod === "force") {
|
|
578
|
+
return {
|
|
579
|
+
returnValues: {
|
|
580
|
+
output: "Agent stopped due to iteration limit or time limit.",
|
|
581
|
+
},
|
|
582
|
+
log: "",
|
|
583
|
+
};
|
|
584
|
+
}
|
|
585
|
+
throw new Error(`Got unsupported early_stopping_method: ${earlyStoppingMethod}`);
|
|
586
|
+
}
|
|
587
|
+
async *_streamIterator(
|
|
588
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
589
|
+
inputs) {
|
|
590
|
+
const agentExecutorIterator = new AgentExecutorIterator({
|
|
591
|
+
inputs,
|
|
592
|
+
agentExecutor: this,
|
|
593
|
+
metadata: this.metadata,
|
|
594
|
+
tags: this.tags,
|
|
595
|
+
callbacks: this.callbacks,
|
|
596
|
+
});
|
|
597
|
+
const iterator = agentExecutorIterator.streamIterator();
|
|
598
|
+
for await (const step of iterator) {
|
|
599
|
+
if (!step) {
|
|
600
|
+
continue;
|
|
601
|
+
}
|
|
602
|
+
yield step;
|
|
603
|
+
}
|
|
604
|
+
}
|
|
256
605
|
_chainType() {
|
|
257
606
|
return "agent_executor";
|
|
258
607
|
}
|
|
@@ -146,12 +146,16 @@ class OpenAIAgent extends agent_js_1.Agent {
|
|
|
146
146
|
const callKeys = "callKeys" in this.llmChain.llm ? this.llmChain.llm.callKeys : [];
|
|
147
147
|
for (const key of callKeys) {
|
|
148
148
|
if (key in inputs) {
|
|
149
|
-
valuesForLLM[key] =
|
|
149
|
+
valuesForLLM[key] =
|
|
150
|
+
inputs[key];
|
|
150
151
|
delete valuesForPrompt[key];
|
|
151
152
|
}
|
|
152
153
|
}
|
|
153
154
|
const promptValue = await this.llmChain.prompt.formatPromptValue(valuesForPrompt);
|
|
154
|
-
const message = await llm.
|
|
155
|
+
const message = await llm.invoke(promptValue.toChatMessages(), {
|
|
156
|
+
...valuesForLLM,
|
|
157
|
+
callbacks: callbackManager,
|
|
158
|
+
});
|
|
155
159
|
return this.outputParser.parseAIMessage(message);
|
|
156
160
|
}
|
|
157
161
|
}
|
|
@@ -142,12 +142,16 @@ export class OpenAIAgent extends Agent {
|
|
|
142
142
|
const callKeys = "callKeys" in this.llmChain.llm ? this.llmChain.llm.callKeys : [];
|
|
143
143
|
for (const key of callKeys) {
|
|
144
144
|
if (key in inputs) {
|
|
145
|
-
valuesForLLM[key] =
|
|
145
|
+
valuesForLLM[key] =
|
|
146
|
+
inputs[key];
|
|
146
147
|
delete valuesForPrompt[key];
|
|
147
148
|
}
|
|
148
149
|
}
|
|
149
150
|
const promptValue = await this.llmChain.prompt.formatPromptValue(valuesForPrompt);
|
|
150
|
-
const message = await llm.
|
|
151
|
+
const message = await llm.invoke(promptValue.toChatMessages(), {
|
|
152
|
+
...valuesForLLM,
|
|
153
|
+
callbacks: callbackManager,
|
|
154
|
+
});
|
|
151
155
|
return this.outputParser.parseAIMessage(message);
|
|
152
156
|
}
|
|
153
157
|
}
|
|
@@ -33,7 +33,7 @@ export declare class OpenAIAgentTokenBufferMemory extends BaseChatMemory {
|
|
|
33
33
|
* Retrieves the messages from the chat history.
|
|
34
34
|
* @returns Promise that resolves with the messages from the chat history.
|
|
35
35
|
*/
|
|
36
|
-
getMessages(): Promise<import("langchain
|
|
36
|
+
getMessages(): Promise<import("@langchain/core/messages").BaseMessage[]>;
|
|
37
37
|
/**
|
|
38
38
|
* Loads memory variables from the input values.
|
|
39
39
|
* @param _values Input values.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getEmbeddingContextSize = exports.getModelContextSize = exports.calculateMaxTokens = void 0;
|
|
4
|
-
var
|
|
5
|
-
Object.defineProperty(exports, "calculateMaxTokens", { enumerable: true, get: function () { return
|
|
6
|
-
Object.defineProperty(exports, "getModelContextSize", { enumerable: true, get: function () { return
|
|
7
|
-
Object.defineProperty(exports, "getEmbeddingContextSize", { enumerable: true, get: function () { return
|
|
4
|
+
var base_1 = require("@langchain/core/language_models/base");
|
|
5
|
+
Object.defineProperty(exports, "calculateMaxTokens", { enumerable: true, get: function () { return base_1.calculateMaxTokens; } });
|
|
6
|
+
Object.defineProperty(exports, "getModelContextSize", { enumerable: true, get: function () { return base_1.getModelContextSize; } });
|
|
7
|
+
Object.defineProperty(exports, "getEmbeddingContextSize", { enumerable: true, get: function () { return base_1.getEmbeddingContextSize; } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { calculateMaxTokens, getModelContextSize, getEmbeddingContextSize, } from "langchain
|
|
1
|
+
export { calculateMaxTokens, getModelContextSize, getEmbeddingContextSize, } from "@langchain/core/language_models/base";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { calculateMaxTokens, getModelContextSize, getEmbeddingContextSize, } from "langchain
|
|
1
|
+
export { calculateMaxTokens, getModelContextSize, getEmbeddingContextSize, } from "@langchain/core/language_models/base";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getModelContextSize = exports.calculateMaxTokens = exports.BaseLanguageModel = exports.BaseLangChain = void 0;
|
|
4
|
-
var
|
|
5
|
-
Object.defineProperty(exports, "BaseLangChain", { enumerable: true, get: function () { return
|
|
6
|
-
Object.defineProperty(exports, "BaseLanguageModel", { enumerable: true, get: function () { return
|
|
4
|
+
var base_1 = require("@langchain/core/language_models/base");
|
|
5
|
+
Object.defineProperty(exports, "BaseLangChain", { enumerable: true, get: function () { return base_1.BaseLangChain; } });
|
|
6
|
+
Object.defineProperty(exports, "BaseLanguageModel", { enumerable: true, get: function () { return base_1.BaseLanguageModel; } });
|
|
7
7
|
/*
|
|
8
8
|
* Export utility functions for token calculations:
|
|
9
9
|
* - calculateMaxTokens: Calculate max tokens for a given model and prompt (the model context size - tokens in prompt).
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { type SerializedLLM, type BaseLangChainParams, BaseLangChain, type BaseLanguageModelParams, type BaseLanguageModelCallOptions, type BaseFunctionCallOptions, type BaseLanguageModelInput, BaseLanguageModel, } from "langchain
|
|
1
|
+
export { type SerializedLLM, type BaseLangChainParams, BaseLangChain, type BaseLanguageModelParams, type BaseLanguageModelCallOptions, type BaseFunctionCallOptions, type BaseLanguageModelInput, BaseLanguageModel, } from "@langchain/core/language_models/base";
|
|
2
2
|
export { calculateMaxTokens, getModelContextSize } from "./count_tokens.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { BaseLangChain, BaseLanguageModel, } from "langchain
|
|
1
|
+
export { BaseLangChain, BaseLanguageModel, } from "@langchain/core/language_models/base";
|
|
2
2
|
/*
|
|
3
3
|
* Export utility functions for token calculations:
|
|
4
4
|
* - calculateMaxTokens: Calculate max tokens for a given model and prompt (the model context size - tokens in prompt).
|
package/dist/cache/base.cjs
CHANGED
|
@@ -14,4 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("langchain
|
|
17
|
+
__exportStar(require("@langchain/core/caches"), exports);
|
package/dist/cache/base.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "langchain
|
|
1
|
+
export * from "@langchain/core/caches";
|
package/dist/cache/base.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "langchain
|
|
1
|
+
export * from "@langchain/core/caches";
|
package/dist/cache/index.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.InMemoryCache = void 0;
|
|
4
|
-
var
|
|
5
|
-
Object.defineProperty(exports, "InMemoryCache", { enumerable: true, get: function () { return
|
|
4
|
+
var caches_1 = require("@langchain/core/caches");
|
|
5
|
+
Object.defineProperty(exports, "InMemoryCache", { enumerable: true, get: function () { return caches_1.InMemoryCache; } });
|
package/dist/cache/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { InMemoryCache } from "langchain
|
|
1
|
+
export { InMemoryCache } from "@langchain/core/caches";
|
package/dist/cache/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { InMemoryCache } from "langchain
|
|
1
|
+
export { InMemoryCache } from "@langchain/core/caches";
|
package/dist/callbacks/base.cjs
CHANGED
|
@@ -14,4 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("langchain
|
|
17
|
+
__exportStar(require("@langchain/core/callbacks/base"), exports);
|
package/dist/callbacks/base.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "langchain
|
|
1
|
+
export * from "@langchain/core/callbacks/base";
|
package/dist/callbacks/base.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "langchain
|
|
1
|
+
export * from "@langchain/core/callbacks/base";
|
|
@@ -14,4 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("langchain
|
|
17
|
+
__exportStar(require("@langchain/core/tracers/console"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "langchain
|
|
1
|
+
export * from "@langchain/core/tracers/console";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "langchain
|
|
1
|
+
export * from "@langchain/core/tracers/console";
|
|
@@ -14,4 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("langchain
|
|
17
|
+
__exportStar(require("@langchain/core/tracers/initialize"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "langchain
|
|
1
|
+
export * from "@langchain/core/tracers/initialize";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "langchain
|
|
1
|
+
export * from "@langchain/core/tracers/initialize";
|
|
@@ -14,4 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("langchain
|
|
17
|
+
__exportStar(require("@langchain/core/tracers/log_stream"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "langchain
|
|
1
|
+
export * from "@langchain/core/tracers/log_stream";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "langchain
|
|
1
|
+
export * from "@langchain/core/tracers/log_stream";
|
|
@@ -14,4 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("langchain
|
|
17
|
+
__exportStar(require("@langchain/core/tracers/run_collector"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "langchain
|
|
1
|
+
export * from "@langchain/core/tracers/run_collector";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "langchain
|
|
1
|
+
export * from "@langchain/core/tracers/run_collector";
|
|
@@ -14,4 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("langchain
|
|
17
|
+
__exportStar(require("@langchain/core/tracers/base"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "langchain
|
|
1
|
+
export * from "@langchain/core/tracers/base";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "langchain
|
|
1
|
+
export * from "@langchain/core/tracers/base";
|
|
@@ -14,4 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("langchain
|
|
17
|
+
__exportStar(require("@langchain/core/tracers/tracer_langchain"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "langchain
|
|
1
|
+
export * from "@langchain/core/tracers/tracer_langchain";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "langchain
|
|
1
|
+
export * from "@langchain/core/tracers/tracer_langchain";
|
|
@@ -14,4 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("langchain
|
|
17
|
+
__exportStar(require("@langchain/core/tracers/tracer_langchain_v1"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "langchain
|
|
1
|
+
export * from "@langchain/core/tracers/tracer_langchain_v1";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "langchain
|
|
1
|
+
export * from "@langchain/core/tracers/tracer_langchain_v1";
|
|
@@ -14,4 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("langchain
|
|
17
|
+
__exportStar(require("@langchain/core/callbacks/manager"), exports);
|